GitHub - Koomook/data-go-mcp-servers: Korea public data portal (data.go.kr) API MCP servers
Key Points
- 1The data-go-mcp-servers project transforms various APIs from Korea's public data portal (data.go.kr) into Model Context Protocol (MCP) servers, enabling AI tools to easily access government data.
- 2This initiative provides standardized access to diverse datasets, including business, financial, procurement, and safety information, allowing seamless integration with AI applications like Claude Desktop and Cline.
- 3Users can readily install these MCP servers via pip or uv, enhancing AI workflows with type-safe access to critical public sector data.
The data-go-mcp-servers project by Koomook provides an open-source solution to integrate the Korea public data portal (data.go.kr) APIs with AI tools by exposing them as Model Context Protocol (MCP) servers. Its primary objective is to enable large language model (LLM) applications and AI-driven development environments (IDEs) to seamlessly access and leverage diverse Korean public datasets through a standardized interface.
The core methodology revolves around the Model Context Protocol (MCP), an open specification designed to facilitate robust integration between LLM applications and external data sources or computational tools. An MCP server, in this context, is a lightweight Python program that encapsulates specific functionalities of the data.go.kr APIs and exposes them via the MCP. This abstraction layer allows various AI clients, such as Claude Desktop, Cline (for VS Code), Cursor, and Windsurf, to interact with these public data sources in a unified manner. The project effectively acts as a mediator, translating MCP client requests into appropriate data.go.kr RESTful API calls and subsequently mapping the API responses back into an MCP-compatible format. The utilization of Pydantic is explicitly mentioned to ensure strong type validation for data ingress and egress, enhancing the reliability and predictability of data exchange.
The project offers several key advantages: It provides standardized access by wrapping disparate public APIs under a consistent MCP interface, thereby simplifying integration complexity. It enables direct AI tool integration, allowing LLMs to directly query and utilize public data. Installation is streamlined via common Python package managers (pip or uv), and the aforementioned Pydantic integration ensures type safety.
The project currently offers six distinct MCP servers, categorized by their domain:
- Business Information:
data-go-mcp.nps-business-enrollment: For querying National Pension Service (NPS) business enrollment details.data-go-mcp.nts-business-verification: For verifying business registration information and status from the National Tax Service (NTS).
- Procurement/Contract:
data-go-mcp.pps-narajangteo: For accessing bid notices, successful bid information, and contract details from the Public Procurement Service's "Narajangteo" platform.
- Financial Information:
data-go-mcp.fsc-financial-info: For retrieving corporate financial statements (e.g., balance sheets, income statements) from the Financial Services Commission.
- Public Records:
data-go-mcp.presidential-speeches: For querying presidential speech records.
- Safety Information:
data-go-mcp.msds-chemical-info: For accessing chemical information from Material Safety Data Sheets (MSDS).
Users can install these servers as individual Python packages. Configuration for MCP clients, such as Claude Desktop or VS Code's Cline extension, involves defining server entries in their respective JSON configuration files. Each entry specifies a command (e.g., uvx or python -m) to execute the server, args for passing parameters (e.g., @latest for versioning), and env for crucial environment variables like API_KEY required for data.go.kr authentication.
For specific server functionalities, the project details the NPS Business Enrollment and NTS Business Verification servers.
- The NPS Business Enrollment server provides a
search_businesstool, allowing queries based on geographic codes (e.g.,ldong_addr_mgpl_dg_cdfor metropolitan/provincial codes,ldong_addr_mgpl_sggu_cdfor city/district codes), business name (wkpl_nm), or partial business registration number (bzowr_rgst_no). - The NTS Business Verification server offers three tools:
validate_business: For verifying a single business registration against parameters likebusiness_number,start_date, andrepresentative_name.check_business_status: For querying the status (e.g.,01: active,02: temporarily closed,03: permanently closed) and tax type (e.g.,01: general taxpayer,02: simplified taxpayer) of up to 100 business registration numbers.batch_validate_businesses: For validating up to 100 businesses in a single batch request using a JSON array input.
Development and contribution are facilitated by a clear guide, including steps for cloning the repository, installing development dependencies (uv sync --dev), and testing (uv run pytest). A key feature for new server creation is an automated script (scripts/create_mcp_server.py) that interactively guides developers through the process, leveraging a cookiecutter template for rapid scaffolding of new MCP server modules within the project structure.
The project is licensed under Apache License 2.0 and clarifies that it is not officially affiliated with the Korean government or data.go.kr, emphasizing the need for users to comply with respective data usage terms.