The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Korea Business Verify (KBV) listing page.
KBV is a hosted MCP server that verifies Korean businesses in real time — 10 free calls/day, then pay-per-call (x402). Give it a 10-digit Korean business registration number (사업자등록번호) and it returns the registration status (active / suspended / closed), tax type, and — optionally — whether the number matches a representative name and opening date. Data comes live from the Korea National Tax Service (NTS) and is returned as clean, English-normalized JSON.
No account, no API key, no installation — connect any MCP-capable agent to one URL:
Built for AI agents and developers doing KYB / due-diligence on Korean companies: procurement, contracting, payments, marketplace onboarding.
| MCP endpoint | https://kbv-server-f7vfitmlkq-du.a.run.app/mcp |
| Transport | MCP Streamable HTTP (POST) |
| Health check | GET https://kbv-server-f7vfitmlkq-du.a.run.app/health → {"ok":true} |
| Authentication | None required |
| Price | 10 free calls/day per IP, then pay-per-call via x402 ($0.02–$0.05) — see Pricing |
| Tools | check_korean_business_status, check_korean_business_batch, verify_korean_business |
| REST API | GET /v1/business/{number}/status · POST /v1/business/verify · POST /v1/business/batch — see REST API |
| Data source | Korea National Tax Service (국세청), official open-data API — queried live per request |
| Data license | Korean government open data, no usage restrictions (이용허락범위 제한 없음) |
| Privacy | Query contents are never logged — see Privacy |
| Region | Google Cloud Run, Seoul (asia-northeast3) |
https://kbv-server-f7vfitmlkq-du.a.run.app/mcphttps://kbv-server-f7vfitmlkq-du.a.run.app/mcpAdd to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
Use transport Streamable HTTP with the endpoint above. Clients must send Accept: application/json, text/event-stream (standard MCP clients do this automatically). Opening /mcp in a browser returns Method not allowed by design — browsers send GET, MCP uses POST. Use /health for a visual liveness check.
check_korean_business_statusCheck the registration status of a Korean business by its 10-digit business registration number.
Input — hyphens/spaces allowed; normalized internally:
Output (real example — Samsung Electronics):
Field reference:
status: active | suspended | closed | not_registeredtax_type: general | simplified | exempt | non_profit | unknownclosed_date: ISO date ("2023-01-31"), only for closed businesses, otherwise nullchecked_at: ISO 8601 UTC timestamp of the NTS querycache: true only when the NTS API was temporarily unavailable and a cached result (max 24 h old) was served; checked_at then reflects the original fetch timeA number that is well-formed but not registered with the NTS returns "status": "not_registered" (not an error).
check_korean_business_batchCheck up to 100 businesses in a single call — for screening supplier or customer lists without 100 round-trips.
Input:
Output — one entry per input number (order preserved, same schema as above) plus a summary:
"cache": true with their original checked_at) and are excluded from the upstream query.verify_korean_businessVerify that a business registration number matches the provided representative name and opening date (KYB identity check), and get the current status in the same call.
Input:
representative_name and opening_date (YYYY-MM-DD) are required.address is optional and improves match precision.Output — same schema as above plus identity_match:
identity_match is true only when the NTS confirms that the number, representative name, and opening date all match its records.
The same three operations are available as plain HTTP endpoints — same JSON schemas as the MCP tools, no auth. Append ?free=1 to use the daily free tier (10 lookups per IP per day); without the flag, unpaid requests return 402 with x402 payment requirements:
HTTP status codes: 200 success (including cache-served results), 400 invalid input, 402 payment required (no ?free=1, or the daily free tier is exhausted — pay per call via x402), 503 NTS temporarily unavailable with no cached result.
Errors are returned as MCP tool errors (or REST 4xx/5xx responses) with a machine-readable JSON body:
error | Meaning |
|---|---|
invalid_business_number | Input is not a 10-digit number, or the date is not YYYY-MM-DD. Nothing was queried. |
batch_limit_exceeded | More than 100 numbers in one batch call. Nothing was queried. |
invalid_request | (REST only) The request body does not match the expected shape. |
upstream_unavailable | The NTS API is down or over quota and no cached result exists. Retry later. |
?free=1 — without the flag, REST answers 402 with x402 payment requirements. MCP and REST share the same counter.GET /v1/business/{number}/status — $0.02POST /v1/business/verify — $0.05POST /v1/business/batch — $0.02 per number (authorize up to $2.00, settled at actual usage)free_tier_exceeded error that points to the paid REST endpoints above.What is a Korean business registration number? A 10-digit identifier (사업자등록번호, often written 123-45-67890) issued by the Korea National Tax Service to every registered business in South Korea.
Can I check whether a Korean company is still operating? Yes — call check_korean_business_status; "status": "active" means the business is currently registered and operating, "closed" includes the closure date.
Can I verify a Korean company's identity before a transaction (KYB)? Yes — call verify_korean_business with the number, representative name, and opening date; identity_match: true means the NTS confirms all three match.
Can I screen a whole supplier list at once? Yes — check_korean_business_batch (or POST /v1/business/batch) takes up to 100 numbers per call and returns per-number results plus a summary.
Do I need an API key? No. Connect to the MCP URL and call the tools, or call the REST endpoints directly.
The server is open for local development (Node.js ≥ 22, TypeScript, Express + official MCP SDK):
Deployment guide (Google Cloud Run): see DEPLOY.md. Architecture and design spec: DESIGN.md.