Korea Public Data Catalog MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Korea Public Data Catalog MCP서울에서 아이 키우기 좋은 동네 비교 서비스에 필요한 공공데이터 후보를 찾아줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Korea Public Data Catalog MCP

공개 원격 서버 기준:
v0.4.0-beta.1· 기본 런타임 모드:catalog
“무엇을 만들고 싶은지” 말하면 대한민국 공공데이터포털의 정적 목록에서 관련 데이터 이름·제공기관·형식·공식 링크를 찾고, 함께 검토할 후보를 제안하는 읽기 전용 MCP 서버입니다. Claude Custom Connector용 공개 HTTPS 서버와 직접 실행하는 로컬 서버를 함께 제공합니다.
이 프로젝트는 데이터 실행기가 아니라 메타데이터 라우터입니다. 질문할 때 공공 API를 호출하거나 파일을 내려받지 않으며, 실제 데이터 값과 실시간 정보도 제공하지 않습니다.
한눈에 보는 동작 방식
만들고 싶은 서비스 아이디어
↓
96,056건 정적 공공데이터 목록에서 관련 종류 검색
↓
데이터명 · 제공기관 · 형식 · 공식 링크와 조합 순서 제안
↓
사용자가 공식 페이지에서 현재성 · 이용조건 · 실제 스키마를 확인위 그림은 이 흐름을 설명하기 위해 만든 생성형 이미지입니다. 실제 정부 시스템 화면, 공식 인증물 또는 실시간 조회 결과가 아닙니다. 이미지 생성 조건과 주의점은 이미지 자산 안내에 공개합니다.
Related MCP server: Open Data MCP
현재 카탈로그 범위
항목 | 현재 값 |
출처 | 공공데이터포털 |
출처 스냅샷 기준일 | 2026-06-30 |
CSV에서 엄격하게 파싱한 고유 목록 | 96,056건 |
출처 상세 페이지가 표시한 전체 행 | 87,581건 |
두 수치의 차이 | 8,475건 |
질의 중 네트워크/API 호출 | 없음 |
96,056건은 공식 CSV에서 (목록유형, 목록키)가 고유한 행을 엄격한 CSV 파서로
검증해 수록한 수입니다. 출처 상세 페이지는
87,581행이라고 표시합니다. 이 프로젝트는 차이 8,475건을 숨기거나 임의로 버리지
않고 두 수치를 함께 공개합니다. 어느 숫자도 대한민국 전체 공공데이터의 국가
총량이라고 주장하지 않습니다. 집계 시점이나 포털의 집계 기준 차이는 출처에서
다시 확인해야 합니다.
96,056건의 목록유형 코드는 FILE 83,695건, API 12,061건, STD 300건입니다.
이는 실제 파일 행이나 API 호출 횟수가 아니라 카탈로그 목록 건수입니다.
각 목록에는 라우팅에 필요한 최소 필드만 들어 있습니다.
목록키와 목록유형
데이터명, 제공기관, 분류체계
제공 형식, 업데이트 주기와 검색용 키워드
공식
data.go.krURL과 출처에 표시된 이용허락범위 문구
원자료 행, 파일 내용, API 응답, 상세 설명, 담당자 연락처, 인증키는 포함하지 않습니다.
환경변수를 생략하면 catalog 모드가 실행됩니다. beta 모드는 이전 14건 fixture의
회귀 테스트를 위한 유지보수용 호환 모드이며 일반 사용자 기본값이 아닙니다.
Claude에서 가장 쉽게 시작하기
추천: 공개 원격 Custom Connector
설치나 Node.js가 필요 없습니다. Claude에 로그인한 브라우저에서 아래 링크를 열고 표시된 이름과 주소를 확인한 뒤 Add 또는 추가를 누르세요.
Claude에 Korea Public Data Catalog 추가
직접 입력할 때는 Settings/Customize → Connectors → Add custom connector에서 다음
값을 사용합니다. 화면 이름은 Claude 버전에 따라 조금 다를 수 있습니다.
이름: Korea Public Data Catalog
원격 MCP URL: https://korea-public-data-catalog-mcp-production.up.railway.app/mcp
인증: 없음/mcp까지 포함해야 합니다. GitHub 주소, 서버 루트 주소, /health, localhost는
Connector URL이 아닙니다. 저장소에서 사전입력 링크를 다시 만들려면 다음 명령을
사용합니다. 이 명령은 scripts/print-claude-install-link.mjs를 실행해 위 링크와 같은
주소를 출력합니다.
npm run claude:install-link -- https://korea-public-data-catalog-mcp-production.up.railway.app/mcp사용 중 HTTP 429가 표시되면 응답의 Retry-After 시간이 지난 뒤 다시 시도하세요.
네트워크 출구를 공유하는 요청은 같은 분당 횟수 묶음을 사용할 수 있습니다.
연결 후 새 채팅의 Connectors 메뉴에서 Korea Public Data Catalog를 켜고 아래 첫 테스트를 실행하세요.
로컬 대안 1: Claude Desktop Release의 .mcpb 설치
공개 서버를 통하지 않고 자신의 PC에서 실행하고 싶을 때 사용하는 방법입니다.
v0.3.0-beta.2 릴리스에서
korea-public-data-catalog-mcp-v0.3.0-beta.2.mcpb를 내려받습니다.파일을 더블클릭하거나 Claude Desktop으로 드래그합니다. 또는
Settings → Extensions → Advanced settings → Install Extension…에서 선택합니다.설치 후 새 채팅의
+ → Connectors에서 Korea Public Data Catalog 도구를 선택합니다.
이 파일은 Windows와 macOS용으로 포장한 서명되지 않은 직접 배포 베타이므로 설치 승인 경고가 나올 수 있습니다. 릴리스의 SHA-256 파일과 다운로드한 파일의 해시를 비교할 수 있습니다.
GitHub에서 직접 배포한 Desktop Extension은 자동 업데이트되지 않습니다. 새 릴리스가
나오면 새 .mcpb를 내려받아 수동으로 다시 설치하세요. Release에 .mcpb가 아직
첨부되지 않은 버전은 아래 Claude Code 또는 수동 Desktop 설정을
사용할 수 있습니다.
로컬 대안 2: Claude Code에서 저장소의 .mcp.json 사용
Node.js 22.16 이상, Git과 Claude Code가 필요합니다. 저장소에는 프로젝트 범위
.mcp.json이 이미 있으므로 절대경로를 직접 등록할 필요가 없습니다.
git clone https://github.com/obundh/korea-public-data-catalog-mcp.git
cd korea-public-data-catalog-mcp
npm ci
npm run build
npm test
claude처음 열 때 저장소(workspace)를 신뢰하고 프로젝트 MCP 사용을 승인합니다. Claude Code
안에서 /mcp를 실행해 korea-public-data-catalog와 7개 도구가 보이는지 확인하세요.
이 설정은 이 저장소에서 Claude Code를 실행할 때만 적용됩니다.
모든 프로젝트에서 같은 서버를 쓰고 싶다면 사용자 범위로 별도 등록할 수 있습니다. 다음 경로를 실제 저장소 절대경로로 바꾸세요.
claude mcp add --transport stdio --scope user korea-public-data-catalog -- node "E:\absolute\path\korea-public-data-catalog-mcp\dist\index.js"
claude mcp list
claude mcp get korea-public-data-catalog원격 Custom Connector는 위 공개 서버를 사용하므로 설치와 로컬 업데이트가 필요
없습니다. .mcpb, .mcp.json, 수동 JSON 설정은 같은 7개 도구를 자신의 PC에서
실행하는 로컬 방식입니다. 두 방식 모두 96,056건 정적 스냅샷을 검색하며 실시간
공공 API를 호출하지 않습니다.
화면별 설치, 수동 설정과 문제 해결은 Claude 연결 안내를 참고하세요.
연결 후 첫 테스트
먼저 범위를 확인합니다.
현재 검색 가능한 메타데이터가 몇 건인지 알려줘. CSV에서 파싱한 수와 출처 페이지가 보고한 수를 구분하고, 어느 것도 대한민국 전체 공공데이터 총량이라고 말하지 마. 외부 API도 호출하지 마.
정상이라면 get_inventory_coverage_status를 사용해 96,056건, 87,581건, 차이
8,475건, 기준일 2026-06-30, network_access: false를 설명합니다.
그다음 만들고 싶은 것을 말합니다.
서울에서 아이 키우기 좋은 동네를 비교하는 서비스를 만들고 싶어. 어린이집, 학교, 공원, 병원, 대기질, 주택 관련 공공데이터 후보를 찾아 제공기관과 공식 링크를 보여줘. 어떤 데이터를 함께 검토할지와 빠진 항목도 설명하되, 실제 값을 조회했거나 결합이 검증됐다고 말하지 마.
또는 다음처럼 물을 수 있습니다.
부산 침수 대응 대시보드를 기획하고 싶어. 침수 이력, 강수, 배수시설, 대피소, 인구 관련 후보를 찾아 조합 순서를 제안해 줘. 서로 다른 지역·시점·코드체계일 수 있다는 점과 원자료에서 확인할 항목도 적어줘.
응답은 데이터 후보와 공식 확인 경로를 제안합니다. 실제 행을 조회하거나 스키마와 결합 키를 검증하지 않았으므로, 찾지 못한 요구와 불확실성을 구분해 읽어야 합니다.
답변은 대략 이렇게 나옵니다
실제 문장은 Claude가 정리하는 방식에 따라 달라지지만, 정상 응답에는 다음 구조가 포함됩니다.
추천 상태: 참고용 메타데이터 후보
- 어린이집: 후보 데이터명 / 제공기관 / 형식 / data.go.kr 공식 링크
- 학교: 후보 데이터명 / 제공기관 / 형식 / data.go.kr 공식 링크
- 공원: 후보 데이터명 / 제공기관 / 형식 / data.go.kr 공식 링크
- 병원·대기질·주택가격: 같은 방식의 후보와 빠진 요구
조합 전 확인:
- 실제 주소·행정동 코드와 기준 시점
- 현재 제공 상태와 인증 방식
- 이용조건, 제3자 권리와 개인정보
- 실제 필드와 결합 키
주의: 실제 값과 실시간 API를 조회하지 않았으며 결합 성공을 보증하지 않음전기차 충전소, 부산 침수, 창업 상권, 최신값 요청, 법적 보증 요청까지 실제 도구 출력을 바탕으로 정리한 8개 예시는 복사해서 쓰는 프롬프트와 응답 예시에 있습니다.
공개 도구 7개
도구 | 하는 일 |
| 스냅샷 기준일, 두 건수와 차이, 카탈로그 범위 확인 |
| 포함된 출처와 갱신 기준 확인 |
| 주제·지역·기관·형식으로 후보 검색 |
| 후보 하나의 최소 메타데이터와 공식 URL 확인 |
| 목표에 맞는 후보 묶음과 미충족 요구 제안 |
| 후보를 바탕으로 제품 구성과 검증 순서 설계 |
| 선택한 후보의 메타데이터상 조합 가능성 점검 |
call_api 같은 실행 도구는 없습니다.
갱신 방식
질문할 때마다 포털을 긁지 않습니다. 저장소에 포함된 월간 정적 스냅샷을 검색하므로 속도와 결과 재현성이 높고 API 키도 필요 없습니다. 대신 포털에 새 데이터가 등록되거나 내용이 바뀌어도 자동 반영되지 않습니다.
공개 원격 Connector 사용자는 매 질문마다 갱신하거나 다시 설치할 필요가 없습니다.
프로젝트 관리자가 검증된 새 스냅샷을 서버에 배포하면 이후 요청부터 적용됩니다.
Desktop Extension 사용자는 새 .mcpb를 수동으로 다시 설치하고, 소스 사용자는
저장소를 업데이트해 다시 빌드한 뒤 Claude를 재시작해야 합니다. 어느 방식이든 실제
원자료를 쓰기 전에는 응답의 공식 URL에서 게시 상태, 최신성, 이용조건,
다운로드/API 방법을 다시 확인하세요.
참고용 결과와 법적 경계
프로젝트 코드의 MIT License는 링크된 공공데이터나 제공기관 문서의 이용 권리를 대신 부여하지 않습니다.
메타데이터의 이용허락범위 문구는 출처에서 가져온 탐색 정보이며 법률의견, 이용 승인 또는 무위험 보증이 아닙니다.
추천은 특정 데이터의 정확성·완전성·최신성·목적 적합성이나 실제 결합 성공을 보증하지 않습니다.
정부, 공공데이터포털 또는 제공기관의 공식 서비스·추천·인증·제휴를 뜻하지 않습니다.
실제 파일/API를 취득·가공·결합·상업 이용·재배포하기 전에는 공식 페이지의 현재 조건과 제3자 권리, 개인정보 포함 여부를 직접 확인해야 합니다.
재난·의료·복지 등 중요한 의사결정을 이 라우팅 결과만으로 자동화하지 마세요.
자세한 원칙은 법적 안전성 설계, 개인정보 안내, 고지사항을 확인하세요. 이 문서들은 법률자문이 아닙니다.
개발 확인
npm run check
npm test
npm run inventory:check
npm run inventory:test:legal-compliance
npm pack --dry-run --json --ignore-scripts로컬에서 MCP 프로토콜과 도구 목록을 눈으로 확인하려면 다음을 실행합니다.
npm run inspect자동 테스트는 MCP 프로토콜과 도구 응답을 검증합니다. Claude 앱의 설치·로그인 상태는 사용자 환경마다 다르므로 실제 연결은 위 확인 명령과 테스트 프롬프트로 점검하세요.
Desktop Extension 유지보수
릴리스 관리자는 검증된 전용 staging 절차로 .mcpb와 SHA-256 파일을 만듭니다.
npm run desktop:packdesktop-extension/manifest.json을 template으로 사용한 결과가 artifacts/에
생성됩니다. 저장소 루트 전체에 mcpb pack을 실행하거나 전체 저장소를 확장 번들로
압축하지 마세요. 전용 스크립트는 공개 runtime, 정적 catalog, 필요한 문서와
production 의존성만 staging해 내부 인벤토리·raw 자료·테스트·개발 파일이 bundle에
섞이지 않게 합니다.
문서와 신고
일반 오류와 공개 메타데이터 정정은 GitHub Issues로 제안할 수 있습니다. 비밀값, 개인정보, 보안 취약점은 공개 이슈에 원문을 쓰지 말고 GitHub 비공개 취약점 신고를 사용하세요.
Available Tools
7 toolscheck_combination_feasibility공공데이터 조합 가능성 검사ARead-onlyIdempotent
선택한 카탈로그 ID가 존재하는지 확인하고 실제 스키마·지역·인증·결합 키를 공식 페이지에서 추가 확인해야 하는 항목을 정리합니다. 원자료를 호출하거나 결합하지 않습니다.
| Name | Required | Description | Default |
|---|---|---|---|
| regions | No | ||
| dataset_ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context by stating it does not call or combine raw data, reinforcing that it is a metadata-only check. This goes beyond the annotations by clarifying the tool's non-execution nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary action and adds a clarifying exclusion. Every clause contributes meaning without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, no output schema) and the description covers the core function and non-execution behavior. However, it lacks parameter semantics for 'regions' and provides no details about output or return values. It is minimally viable but has clear gaps for an agent's full understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It mentions '카탈로그 ID' (catalog ID) which maps to dataset_ids, but does not explain the 'regions' parameter or how it is used. The description only indirectly references 지역 (region) as a check item, leaving the regions parameter semantically unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks whether selected catalog IDs exist and organizes items to verify on the official page (schema, region, auth, join keys). It uses a specific verb (확인, 정리) and distinct resource (catalog IDs). It also explicitly excludes calling or combining raw data, distinguishing it from sibling tools like recommend_data_combination or design_public_data_product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a preliminary feasibility check before combining data, and notes it does not execute raw data calls or joins. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention cases where it should not be used. No alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_public_data_product공공데이터 서비스·제품 설계ARead-onlyIdempotent
정적 목록의 데이터 종류와 공식 제공처를 바탕으로 제품 구성·데이터 흐름·확인 절차·예상 결과물의 참고 설계안을 만듭니다. 실제 데이터는 조회하지 않습니다.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | ||
| limit | No | ||
| regions | No | ||
| data_needs | No | ||
| desired_outputs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is known. The description adds valuable context by clarifying that it draws from a static list and does not query live data, giving the agent a clear mental model of the tool's behavior beyond the annotations. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured Korean sentence that states the core function and a critical limitation, with no redundancy or filler. It is front-loaded with the primary action and includes an important boundary in the same sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five parameters and no output schema, the description should explain how inputs influence the result and what the reference design proposal looks like. It mentions the content areas (product composition, data flow, verification procedures, expected outputs) but gives no details on parameter usage or output format, leaving significant gaps for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema lists five parameters (goal, limit, regions, data_needs, desired_outputs) with 0% description coverage. The description makes no mention of any parameter, leaving the agent without any guidance on what values to provide or how the parameters shape the design. The description fails to compensate for the lack of schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a reference design proposal for product composition, data flow, verification procedures, and expected outputs, based on a static list of data types and official providers. The verb '만듭니다' (creates) is specific, and the resource is clearly '공공데이터 서비스·제품 설계' (public data service/product design). This distinguishes it from sibling tools that list, search, or recommend data combinations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for design tasks rather than actual data retrieval, especially with the note '실제 데이터는 조회하지 않습니다' (doesn't query actual data). However, it does not explicitly mention alternatives or state when to use this tool over others, leaving the guidance implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inventory_coverage_status공공데이터 인벤토리 커버리지 상태ARead-onlyIdempotent
현재 런타임 채널, 기준일, CSV 파싱 행 수, 포털 표시 행 수와 그 차이, 유형별 수를 반환합니다. 이 숫자는 정적 스냅샷 범위이며 대한민국 전체 공공데이터의 현재 총량이 아닙니다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by noting that the numbers are a static snapshot, not the current total of all public data in South Korea. It also mentions 'current runtime channel', providing useful context about the tool's scope. Annotations already indicate read-only and idempotent behavior, and the description complements them without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and front-loaded with the action ('returns') and the specific items returned. The second sentence adds an important caveat, keeping it concise without unnecessary detail. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no output schema), the description adequately lists all return values and their semantic meaning. The snapshot caveat adds necessary context about data freshness, making the tool's output interpretable without further documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so parameter semantics are trivially satisfied. The description does not need to explain parameters, and the empty input schema is fully consistent. The baseline score of 4 applies given the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: it returns specific inventory coverage metrics (runtime channel, base date, row counts, differences, type counts). The verb '반환합니다' (returns) and the explicit list of returned data make the purpose unambiguous and distinct from sibling tools that list or search datasets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking coverage status but does not explicitly state when to use this tool versus alternatives like 'search_public_datasets' or 'list_public_data_sources'. There is no mention of exclusions or alternative tools, so guidance is only implicit via the scope of the returned data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_public_dataset_details공공데이터셋 상세와 연결 레코드ARead-onlyIdempotent
검색 결과 ID로 데이터 종류·기관·분류·형식·갱신주기·키워드·공식 링크를 조회합니다. 원자료 설명·필드·연락처·실제 값과 결합 키는 포함하지 않습니다.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the read-only, idempotent, non-destructive nature. The description adds behavioral context by listing exactly which fields are returned and which are omitted (source description, fields, contact info, actual values, join keys). This goes beyond annotations by clarifying the tool's scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences. The first sentence lists the returned fields, the second states exclusions. Every word is information-dense with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple detail-retrieval tool with one parameter and no output schema, the description covers the purpose, the data returned, and the exclusions. It could have mentioned that the ID must originate from `search_public_datasets`, but it is strongly implied. Given the tool's simplicity, this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides the parameter name (`dataset_id`) and type/length constraints. The description adds crucial semantic meaning by identifying it as a 'search result ID', clarifying that it must come from a previous search operation. This fully compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb '조회합니다' (retrieves) and enumerates the exact data fields returned (data type, institution, classification, format, update cycle, keywords, official link). It also explicitly states what is not included, which helps differentiate it from tools that return full dataset content. This makes the purpose unambiguous and distinguishes it from sibling tools like search_public_datasets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '검색 결과 ID로' indicates that this tool is intended for use after obtaining an ID from a search result, providing clear context for when to call it. However, it does not explicitly name alternative tools or state exclusions (e.g., 'use this instead of X'). The condition is implied, not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_public_data_sources대한민국 공공데이터 소스 목록ARead-onlyIdempotent
현재 로컬 런타임에 포함된 정적 메타데이터 소스와 기준일·행 수 범위를 조회합니다. 기본 카탈로그는 공공데이터포털 월간 CSV 전체 96,056행을 담지만 포털 표시 87,581행과 차이가 있어 대한민국 전체 총량으로 단정하지 않습니다. 외부 포털에는 접속하지 않습니다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| offset | No | ||
| enabled | No | ||
| review_states | No | ||
| authority_levels | No | ||
| only_with_records | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent), the description discloses valuable behavioral traits: it operates only on local data without external network access, and it explicitly cautions about row count discrepancies (96,056 vs 87,581), preventing misinterpretation of national totals. This is rich contextual transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with the primary purpose, followed by a data quality caveat and a scope clarification. Every sentence adds substantive value without redundancy, achieving a high signal-to-noise ratio.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides important context about local-only operation and data limitations, but with 7 undocumented parameters and no output schema, it leaves the agent short of understanding how to construct queries or interpret results. It is a minimally viable description for a list tool, but gaps remain in parameter and return-value coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the 7 parameters (limit, offset, query, enabled, etc.). It mentions 'reference date and row count ranges' but fails to connect these to specific parameters or provide filter guidance, leaving the agent without adequate parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (retrieve/list), resource (static metadata sources), and scope (local runtime only, not external portals). It explicitly says 'does not access external portals,' distinguishing it from sibling tools like search_public_datasets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when needing local static metadata sources and their reference date/row count ranges. It notes it does not access external portals, implying a boundary, but does not explicitly name alternative tools or state when not to use this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_data_combination공공데이터 조합 추천ARead-onlyIdempotent
만들고 싶은 서비스·분석을 데이터 요구로 나눠 전체 정적 목록에서 관련 공공데이터 종류·기관·공식 확인 링크를 제안합니다. 실제 취득·가공·결합은 공식 페이지를 확인한 뒤 사용자 제품에서 수행합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | ||
| limit | No | ||
| regions | No | ||
| data_needs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and idempotent annotations, the description adds important behavioral context: it operates on a static list and does not actually fetch, process, or combine data; those steps are left to the user after checking official pages. This boundary-setting is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and followed by a scope clarification. Every sentence carries necessary information with no redundancies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only recommendation tool, it covers the main workflow and output (data types, institutions, links), but lacks details on optional parameters and result ranking/format. Given the absence of an output schema, more could be added, but it is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description only partially compensates. It explains that the goal is broken into data needs, which relates to 'goal' and 'data_needs', but it does not describe 'limit' or 'regions' parameters or their formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool decomposes a service/analysis goal into data needs and recommends relevant public data types, institutions, and official verification links from the entire static list. This specific verb+resource+scope distinguishes it from sibling tools like search_public_datasets or list_public_data_sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear usage context: when the user has a desired service/analysis and wants to identify relevant public data. However, it does not explicitly mention alternatives or when not to use this tool, which would make it a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_public_datasets대한민국 공공데이터 메타데이터 검색ARead-onlyIdempotent
2026-06-30 기준 로컬 정적 목록에서 이름·기관·분류·형식·키워드와 공식 링크 후보를 검색합니다. 원자료 값이나 외부 API를 조회하지 않으며 이용허락 표시는 공식 페이지 재확인을 위한 출처 메타데이터입니다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| offset | No | ||
| formats | No | ||
| regions | No | ||
| licenses | No | ||
| statuses | No | ||
| providers | No | ||
| source_ids | No | ||
| access_types | No | ||
| record_kinds | No | ||
| classifications | No | ||
| include_non_data | No | ||
| authentication_required | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the read-only/idempotent annotations: it specifies the snapshot date (2026-06-30), that the source is a fixed local list, that it does not access external APIs or raw data, and that license indications are merely metadata for verification. This helps set accurate expectations about data freshness and limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the action and scope, the second clarifies limitations. It is front-loaded and every sentence adds value without redundancy or excessive detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 14 parameters and no output schema, the description gives enough high-level context for an agent to know what the tool does and its limitations, but it does not cover parameter semantics, result structure, or pagination behavior. It is adequate for selection but lacks depth for confident invocation without relying on parameter names alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the 14 parameters. It mentions searchable fields (name, agency, classification, format, keyword) but does not map them to schema properties like 'query', 'providers', 'formats', or 'classifications', nor does it clarify how array filters or booleans (e.g., 'include_non_data') behave. The description provides minimal compensation for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: searching a local static list for metadata fields like name, agency, classification, format, and keyword, plus official link candidates. It uses a specific verb ('검색합니다') and resource, and its scope is delineated from sibling tools that list, fetch details, or recommend combinations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for searching metadata and distinguishes itself by noting it does not query raw values or external APIs, but it does not explicitly state when to prefer this over sibling tools or when not to use it. No alternatives are named, so usage guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.4.0-beta.1- First observed
check_combination_feasibility - First observed
design_public_data_product - First observed
get_inventory_coverage_status - First observed
get_public_dataset_details - First observed
list_public_data_sources - First observed
recommend_data_combination - First observed
search_public_datasets
TDQS
Scored across 7 tools
Most tools have clearly distinct purposes: searching, retrieving details, recommending combinations, designing products, and checking feasibility. However, list_public_data_sources and get_inventory_coverage_status both report on catalog scope and row counts, which could cause confusion for an agent deciding which to call.
All tool names follow a consistent verb_noun snake_case pattern (list_, search_, get_, recommend_, design_, check_). The verbs are specific and the naming style is uniform throughout.
Seven tools is well-scoped for a catalog server that covers inventory listing, search, details, recommendation, design, feasibility, and status. Each tool contributes to a coherent workflow without unnecessary bloat.
The toolset covers the core lifecycle of exploring and planning public data combinations: inventory awareness, search, details, recommendation, product design, and feasibility checks. Minor gaps exist, such as no explicit way to browse all datasets or compare two datasets directly, but these do not block primary workflows.
Maintenance
Related MCP Connectors
Find official Korean public datasets, agency-site menus, disclosure listings, and source URLs.
Korean government open data - weather, population, law search via data.go.kr
Search, sample and query open reproducible datasets published as immutable Parquet with schemas.
Who qualifies for 10,956 Korean government benefits (보조금24). Plus public data and weather.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables access to Korean public data services through OpenAPI integration. Supports querying government datasets like parking information in Sejong City through natural language interactions.MIT
- AlicenseNot gradedqualityDmaintenanceEnables exploration and interaction with South Korea's Public Data Portal (OpenAPI) through keyword search, standard documentation retrieval, and direct API endpoint calls with automatic service key injection.11Apache 2.0
- FlicenseAqualityBmaintenanceEnables searching and retrieving Korean government documents (press releases, policies, laws, statistics, etc.) from about 50 central administrative agencies through natural language interactions with AI assistants like Claude and ChatGPT.112-

FieldCure PublicData.Krofficial
AlicenseNot gradedqualityCmaintenanceKorean public data API gateway that enables searching, inspecting, and calling 80,000+ data.go.kr APIs (weather, real estate, air quality, etc.) via natural language.MIT