GitHub - Koomook/data-go-mcp-servers: Korea public data portal (data.go.kr) API MCP servers
핵심 포인트
- 1한국 공공 데이터 포털(data.go.kr)의 API들을 AI 도구에서 쉽게 활용할 수 있도록 Model Context Protocol(MCP) 서버로 래핑하여 제공하는 프로젝트입니다.
- 2이 프로젝트는 표준화된 인터페이스를 통해 Claude, Cline 등 AI 도구와 공공 데이터의 통합을 가능하게 하며, 간편한 설치와 강력한 타입 검증을 제공합니다.
- 3국민연금, 국세청, 나라장터 등 다양한 카테고리의 MCP 서버를 `pip` 또는 `uv`로 설치하여 활용할 수 있으며, 개발 가이드를 통해 새로운 서버를 쉽게 생성할 수 있습니다.
data-go-mcp-servers 프로젝트는 한국 공공 데이터 포털(data.go.kr)에서 제공하는 다양한 공공 기관의 API들을 Model Context Protocol (MCP) 서버로 래핑하여 인공지능(AI) 도구들이 해당 데이터에 쉽게 접근하고 활용할 수 있도록 하는 것을 목표로 합니다.
MCP (Model Context Protocol)에 대한 심층 설명:
MCP는 LLM(Large Language Model) 애플리케이션이 외부 데이터 소스 및 도구와 원활하게 통합될 수 있도록 설계된 개방형 프로토콜입니다. 이는 AI 기반 IDE(Integrated Development Environment) 구축, 채팅 인터페이스 강화 또는 사용자 정의 AI 워크플로우 생성 등 다양한 시나리오에서 LLM이 필요한 컨텍스트에 연결하기 위한 표준화된 방법을 제공합니다. MCP 서버는 이 프로토콜을 통해 특정 기능을 노출하는 경량 프로그램으로, Claude Desktop, Cline, Cursor, Windsurf와 같은 AI 도구들이 MCP 클라이언트로서 이러한 서버와 통신합니다. 이 프로젝트는 data.go.kr의 RESTful API를 이 MCP 표준에 맞춰 Python 기반의 경량 서버로 변환합니다. 이는 복잡한 API 연동 로직을 추상화하고, AI 도구가 마치 자체 기능처럼 외부 데이터를 호출할 수 있도록 Pydantic을 활용하여 강력한 타입 검증(Type Safety)을 제공합니다. 이를 통해 데이터 요청 및 응답의 안정성과 예측 가능성을 높입니다.
프로젝트의 이점:
이 프로젝트는 data.go.kr의 방대한 공공 데이터를 AI 도구에서 직접 활용할 수 있도록 함으로써 다음과 같은 주요 이점을 제공합니다:
- 표준화된 접근 (Standardized Access): 다양한 형태의 공공 API들을 통일된 MCP 인터페이스를 통해 접근 가능하게 합니다.
- AI 도구 통합 (AI Tool Integration):
Claude,Cline등 AI 도구 내에서 별도의 개발 없이 직접 공공 데이터를 조회하고 활용할 수 있습니다. - 간편한 설치 (Easy Installation):
pip또는uv와 같은 Python 패키지 관리자를 사용하여 쉽게 설치 및 배포가 가능합니다. - 타입 안정성 (Type Safety):
Pydantic라이브러리를 사용하여 API 입력 및 출력 데이터에 대한 강력한 타입 검증을 수행하여 데이터 처리 오류를 줄이고 개발 편의성을 높입니다.
제공되는 MCP 서버 및 기능:
현재 프로젝트는 다음 카테고리 및 서버를 제공합니다:
- 비즈니스 정보:
NPS Business Enrollment: 국민연금공단 사업장 가입 정보 조회. (search_business도구 제공)NTS Business Verification: 국세청 사업자등록정보 진위확인 및 상태조회. (validate_business,check_business_status,batch_validate_businesses도구 제공)
- 조달/계약:
PPS Narajangteo: 나라장터 입찰공고, 낙찰정보, 계약정보 조회. - 금융 정보:
FSC Financial Info: 금융위원회 기업 재무정보(재무제표, 손익계산서) 조회. - 공공 기록:
Presidential Speeches: 대통령기록관 연설문 조회. - 안전 정보:
MSDS Chemical Info: 물질안전보건자료(MSDS) 화학물질 정보 조회.
각 서버는 data.go.kr에서 발급받은 API_KEY 환경 변수를 필요로 하며, 해당 API에서 제공하는 기능을 MCP 도구(tool) 형태로 노출합니다. 예를 들어, NPS Business Enrollment 서버의 search_business 도구는 법정동주소 코드(ldong_addr_mgpl_dg_cd, ldong_addr_mgpl_sggu_cd, ldong_addr_mgpl_sggu_emd_cd), 사업장명(wkpl_nm), 사업자등록번호(bzowr_rgst_no) 등을 파라미터로 받아 사업장 정보를 검색합니다. NTS Business Verification 서버는 사업자등록번호(business_number), 개업일자(start_date), 대표자성명(representative_name) 등을 이용해 진위확인 및 상태조회 기능을 제공합니다.
설치 및 설정:
MCP 서버는 Python uv 또는 pip 명령어를 사용하여 각 패키지(data-go-mcp.nps-business-enrollment 등) 형태로 설치됩니다. 설치 후, Claude Desktop의 claude_desktop_config.json 파일이나 Cline의 .vscode/cline_mcp_settings.json 파일에 mcpServers 설정을 추가하여 AI 도구와 연동합니다. 이 설정에는 서버의 command, args, 그리고 필수적인 API_KEY 환경 변수(env)가 포함됩니다.
개발자 가이드:
이 프로젝트는 새로운 MCP 서버를 쉽고 빠르게 생성할 수 있는 자동화된 스크립트(scripts/create_mcp_server.py)를 제공합니다. 이 스크립트는 대화형으로 필요한 정보를 입력받아 template/ 디렉토리에 정의된 템플릿을 기반으로 새로운 서버의 기본 구조를 생성합니다. 개발자는 uv sync --dev를 통해 개발 의존성을 설치하고, uv run pytest 명령으로 테스트를 실행하여 개발을 진행할 수 있습니다. 기여는 GitHub를 통한 Pull Request 방식으로 이루어지며, Apache License 2.0 하에 배포됩니다.