Skip to main content
Glama
korea-public-data-mcp

korea-public-data-mcp

korea-public-data

대한민국 공공데이터를 Claude가 직접 조회해서 답하게 해주는 MCP 입니다.

기업 재무제표, 환율·금리 같은 경제 지표, 정부 지원사업 공고, 공공 입찰공고, 특허·학교정보·국가 R&D 과제까지 물어보면 기관 API를 실제로 호출해 받아온 값으로 답합니다. 도구 이름을 외울 필요 없이 한국어로 물어보면 됩니다.

중소기업 수출 지원사업 뭐 있어?
조달청 사전규격에 시스템 관련 뭐 올라왔어?
삼성전자 2024년 재무제표 알려줘
작년부터 지금까지 기준금리 어떻게 변했어?
이차전지 관련 국가 R&D 과제 뭐 있어?
인공지능 관련 특허 좀 찾아줘
서울 강남구에 있는 고등학교 알려줘
그 회사 국민연금 가입자수(재직자수) 추이 어때?
백엔드 개발자 채용공고 좀 찾아줘

분야별 진행 현황

분야

상태

소스

금융

✅ 완료

4곳

정부사업 · 조달

✅ 완료

9곳

지식재산권 / 특허

✅ 완료

KIPRIS Plus

교육

✅ 완료

NEIS

학술 / 연구

🔶 일부

서울연구원(완료) · NTIS(신청자 개인 IP에서만 동작) · KCI(코드 완료, 키 발급 보류) · KISTI(승인 대기)

인력 / 채용

🔶 일부

국민연금(완료) · 원티드(코드 완료, 키 발급 보류) · 고용24 KDT(코드 완료, 키 발급 보류)

상태 표기: ✅ 코드 완료 + 키 발급 + 정상 호출 확인 · ⏸ 코드 완료, 키 발급 대기/보류 · ⚠️ 동작은 하지만 조건부(특정 IP·별도 신청 등) · ⛔ 제외.

금융

기관

제공 데이터

출처

금융감독원 OpenDART

상장·외감법인 재무제표, 공시, 기업코드

opendart.fss.or.kr

한국은행 ECOS

기준금리, 환율, GDP, 물가 등 거시경제 통계

ecos.bok.or.kr

통계청 KOSIS

국가통계 13만종

kosis.kr

한국수출입은행

현재환율, 대출금리, 국제금리

koreaexim.go.kr

정부사업 — 지원사업 3가지

소스

제공 데이터

출처

기업마당 (중소벤처기업부)

중소기업·소상공인 지원사업 공고. 금융·기술·인력·수출·내수·창업·경영 8개 분야. 중앙부처와 지자체 공고 포함

bizinfo.go.kr

K-Startup (창업진흥원)

창업 지원사업 공고. 예비창업자~창업 7년 이내

data.go.kr 15125364

과기정통부 사업공고

R&D·국제협력·인프라 사업 공모 공고

data.go.kr 15074634

정부사업 — 조달 6가지 (조달청 나라장터)

조달은 한 사업이 아래 6단계의 순서로 흘러갑니다.

발주계획  →  조달요청  →  사전규격  →  입찰공고  →  낙찰  →  계약
수개월 전     구매요청    2주~1달 전     지금       결과     완료

단계

제공 데이터

출처

발주계획

공공기관이 미리 공개하는 발주 예정 목록. 사업명·발주기관·발주월·발주금액

data.go.kr 15129462

조달요청

수요기관이 조달청에 구매를 요청한 건. 요청명·수요기관·예산액

data.go.kr 15129468

사전규격

입찰 전 의견수렴 단계의 규격안. 사업명·수요기관·배정예산·의견마감

data.go.kr 15129437

입찰공고

공고명·공고기관·수요기관·배정예산·추정가격·입찰마감

data.go.kr 15058815

낙찰

낙찰업체·낙찰금액·낙찰률·참여업체수

data.go.kr 15129397

계약

계약명·수요기관·계약금액·계약방법

data.go.kr 15129427

그 밖에 호출 가능한 서비스

아래는 공고가 아니라 통계·단가·코드사전 성격이라 gov_search 결과에 넣지 않았습니다. 인증키 권한은 확보되어 있고 엔드포인트도 확인되어, data_go_kr_generic_get 으로 바로 호출됩니다. gov_list_sources 를 호출하면 주소와 오퍼레이션명이 함께 나옵니다.

서비스

쓰임

출처

공공조달통계정보

기관별·기업별·계약방법별 조달 실적 집계

15129412

나라장터 가격정보현황

시설공통자재·시장시공 단가. 입찰 가격 산정 참고

15129415

나라장터 계약과정통합공개

계약 체결 과정 통합 공개

15129459

나라장터 사용자정보

등록 조달업체·수요기관 정보

15129466

나라장터 업종·근거법규

업종 코드와 근거 법령. 입찰 참가자격 해석용

15129467

나라장터쇼핑몰 품목정보

종합쇼핑몰 물품 카탈로그

15129471

조달청 물품목록정보

물품 분류번호 사전

15129417

조달청 물품관리정보

물품 내용연수 고시

15129470

창업진흥원 창업공간플랫폼

창업 보육센터·공간 정보

15125365

한국연구재단 NRIC

연구인력 채용정보

15088749

지식재산권

기관

제공 데이터

출처

KIPRIS Plus (특허청)

국내 특허·실용신안 서지정보. 발명명칭·초록으로 키워드 검색, 출원인·등록상태·IPC 분류 반환

plus.kipris.or.kr

교육

기관

제공 데이터

출처

NEIS (교육부)

전국 초·중·고·특수학교 기본정보(주소·전화·홈페이지 등). 인증키 없이도 동작(5건 제한), 키가 있으면 최대 1,000건

open.neis.go.kr

학술 / 연구

기관

제공 데이터

상태

출처

서울연구원

연구보고서·정책리포트 등 11개 카테고리의 메타데이터(제목·날짜·저자·원문링크)

✅ 완료 (실호출로 확인)

si.re.kr/openapi

NTIS (과기정통부)

국가 R&D 과제 키워드 검색 (과제명·연구책임자·주관기관·연구기간·연구비)

⚠️ 신청자 개인 공인 IP에서만 동작 (실호출로 확인) — 다른 사람 PC/서버에서 호출하면 IP 미등록으로 막힌다. 회사 소속기관 정보가 이미 한 계정에 걸려 있어 동료가 재신청해도 중복으로 막힐 수 있으므로, 고정 공인 IP 서버 배포 + 기존 키의 등록 IP 갱신을 권장

ntis.go.kr

KCI (한국연구재단)

국내 학술논문 제목 검색 (저자·저널명·발행연도·DOI·초록·인용횟수)

⏸ 코드 완료, 키 발급 보류 — 신청 시 사업자등록증 필요, 실호출 미검증 (명세 페이지 기준으로 구현)

kci.go.kr

KISTI

국가R&D 연구보고서 검색

⏸ 활용신청 승인 대기 (승인되면 data_go_kr_generic_get으로 즉시 호출 가능)

scienceon.kisti.re.kr

인력 / 채용

기관

제공 데이터

상태

출처

국민연금공단

회사명으로 사업장 검색 → 가입자수(재직자수 근사치) 및 신규취득·상실 추이

✅ 완료 (실호출로 확인)

data.go.kr 3046071

원티드 (Wanted)

회사 검색 → 회사ID로 채용중 포지션 조회, 직무 키워드 검색

⏸ 코드 완료, 키 발급 보류 (OpenAPI 스펙 확인) — 신청 시 사업자등록번호 필수, 팀/회사 명의로 신청해야 해 발급이 미뤄지고 있음

openapi.wanted.jobs

HRD-Net / 고용24 (KDT)

국민내일배움카드·K-디지털 트레이닝(KDT) 훈련과정 검색

⏸ 코드 완료, 키 발급 보류 (work24.go.kr 자체 엔드포인트 명세 확인) — 신청 시 사업자등록번호 필수, 기업회원 전용 서비스라 발급이 미뤄지고 있음

work24.go.kr


Related MCP server: korean-stat-mcp

인증키 현황

발급처는 15곳이며, 공공데이터포털 키 하나가 gov_search 소스 8곳(+ 국민연금)을 담당합니다. ✅ 발급 완료·정상 동작 / ⏸ 코드는 완료, 키 발급 대기·보류 / ⚠️ 동작은 하지만 조건부(특정 IP·별도 신청 등).

발급처

환경변수

상태

발급 방법

금융감독원 OpenDART

DART_API_KEY

✅

회원가입 → 인증키 신청, 즉시

한국은행 ECOS

ECOS_API_KEY

✅

Open API 신청, 즉시~1일

통계청 KOSIS

KOSIS_API_KEY

✅

OpenAPI 활용신청 후 승인

공공데이터포털

DATA_GO_KR_API_KEY

✅

서비스 상세페이지에서 활용신청

한국수출입은행

KOREAEXIM_EXCHANGE_API_KEYKOREAEXIM_LOAN_API_KEYKOREAEXIM_INTERNATIONAL_API_KEY

✅

상품별로 각각 신청, 즉시

기업마당

BIZINFO_API_KEY

✅

신청서 작성 → 이메일 수신, 1일

KIPRIS Plus

KIPRIS_API_KEY

✅

회원가입 → Open API 인증키 신청, 즉시

NEIS

NEIS_API_KEY

✅

회원가입 → 인증키 신청, 즉시. 없어도 동작(5건 제한)

NTIS

NTIS_API_KEY

⚠️ 신청자 개인 IP에서만 동작

소속기관 등록 + 서버 공인 IP 등록, 승인 수일 — 지금 키는 신청자 개인 공인 IP로만 등록돼 있어 그 사람 PC 외에는 막힌다. 회사 소속기관 정보가 이미 한 계정에 걸려 있어 동료가 별도 계정으로 재신청해도 중복으로 막힐 수 있다. 팀에서 쓰려면 고정 공인 IP 서버를 확보해 그 서버에 배포하고, NTIS 활용신청 관리 페이지에서 기존 키의 등록 IP를 그 고정 IP로 갱신하는 쪽을 권장 (단, IP 변경 후 신청자 개인 PC에서는 안 될 수 있음 — 여러 IP 동시 등록 가능 여부는 NTIS 화면에서 직접 확인)

서울연구원

SEOUL_INSTITUTE_API_KEY

✅

신청 폼 제출 → 승인 후 이메일로 키·연동가이드 수신

국민연금공단

DATA_GO_KR_API_KEY (공용)

✅

서비스 상세페이지(3046071)에서 별도 활용신청 완료. 활용신청을 안 하면 같은 키로도 SERVICE_KEY_IS_NOT_REGISTERED_ERROR가 남

원티드

WANTED_CLIENT_IDWANTED_CLIENT_SECRETWANTED_AUTHORIZATION

⏸ 코드 완료, 키 발급 보류

/apply/ 신청(사업자등록번호 필수 — 개인 신청 불가) → 3영업일 내 이메일로 3개 값 수신. 회사/팀 명의 신청이 필요해 아직 미발급. 쿼리파라미터가 아니라 헤더 3종으로 인증

HRD-Net/고용24

WORK24_API_KEY

⏸ 코드 완료, 키 발급 보류

기업회원 가입 → Open API 신청(사업자등록번호 필수) → authKey 발급. 회사 명의 신청이 필요해 아직 미발급

KCI

KCI_API_KEY

⏸ 코드 완료, 키 발급 보류

openApiList.kci에서 신청 → 서류 심사(사업자등록증 필요) 후 발급. 코드는 완료돼 있어 키만 넣으면 동작

공공데이터포털 인증키는 계정당 1개입니다

서비스마다 키가 발급되지 않습니다. 키 1개에 서비스별 사용 권한이 붙는 구조입니다. 서비스를 몇 개 신청하든 .env 에 넣을 값은 하나뿐입니다.

포털이 인증키를 Encoding / Decoding 두 형태로 보여주는데, Decoding 키를 넣어야 합니다.


설치 및 실행

이 서버는 stdio(표준입출력)로 통신합니다. 어딘가에 띄워두고 여러 명이 접속하는 서버가 아니라, Claude Desktop/Code가 이 프로그램을 각자의 컴퓨터에서 직접 실행해서 대화하는 방식입니다. 그래서 쓰려는 사람마다 아래 두 단계(① 실행 환경 준비 → ② Claude에 등록)를 각자 자기 컴퓨터에서 진행해야 하고, .env의 키도 각자 자기 것을 넣어야 합니다.

0. 코드 받기 (git clone)
        ↓
① 실행 환경 준비 (venv 또는 Docker 중 택1)
        ↓ (실행 명령 하나가 나옴)
② 그 실행 명령을 Claude Desktop/Code에 등록
        ↓
   도구 사용 가능

0. 코드 받기

아직 이 저장소가 없는 컴퓨터라면 먼저 clone합니다 (git이 없다면 git-scm.com에서 먼저 설치).

git clone https://github.com/GeeYun086/korea-public-data-mcp.git
cd korea-public-data-mcp

아래 ①·② 의 C:\경로\public-data-mcp 는 이 clone된 폴더의 실제 경로로 바꿔서 씁니다.

① 실행 환경 준비

venv (Python을 직접 설치하는 방식)

python -m venv .venv
.venv/Scripts/pip install -e .
cp .env.example .env      # 발급받은 키 입력

키가 하나도 없어도 서버는 정상적으로 뜹니다. 키가 필요한 도구를 호출할 때만 발급 안내가 나옵니다. 이 방식의 실행 명령은 C:\경로\public-data-mcp\.venv\Scripts\python.exe -m korea_public_data_mcp.server 입니다.

Docker (Python 설치가 필요 없는 방식)

docker build -t korea-public-data-mcp .

stdio 통신이라 포트는 열지 않으며, 인증키는 이미지에 넣지 않고 실행 시점에 .env로 주입합니다. 이 방식의 실행 명령은 docker run -i --rm --env-file C:\경로\public-data-mcp\.env korea-public-data-mcp 입니다 (Claude가 어느 폴더에서 이 명령을 실행할지 알 수 없으므로 --env-file은 상대경로 .env가 아니라 반드시 절대경로로 지정하세요).

venv와 Docker는 둘 중 하나만 고르면 됩니다. 아래 ②에서 등록할 때 어느 쪽을 골랐는지에 따라 command/args만 바뀌고, 나머지는 동일합니다.

② Claude Desktop 또는 Claude Code에 등록

①에서 나온 실행 명령을 아래처럼 등록합니다. venv를 골랐으면 A, Docker를 골랐으면 B를 씁니다.

Claude Desktop

%APPDATA%\Claude\claude_desktop_config.json 의 mcpServers 에 추가한 뒤 앱을 재시작합니다.

A. venv로 준비했다면:

"korea-public-data": {
  "command": "C:\\경로\\public-data-mcp\\.venv\\Scripts\\python.exe",
  "args": ["-m", "korea_public_data_mcp.server"]
}

B. Docker로 준비했다면:

"korea-public-data": {
  "command": "docker",
  "args": ["run", "-i", "--rm", "--env-file", "C:\\경로\\public-data-mcp\\.env", "korea-public-data-mcp"]
}

Claude Code

프로젝트 루트에 .mcp.json 을 만들거나 아래 명령으로 등록합니다.

A. venv로 준비했다면:

claude mcp add korea-public-data -- C:\경로\public-data-mcp\.venv\Scripts\python.exe -m korea_public_data_mcp.server

B. Docker로 준비했다면:

claude mcp add korea-public-data -- docker run -i --rm --env-file C:\경로\public-data-mcp\.env korea-public-data-mcp

제공 도구 (25개)

정부사업 · 조달

여러 기관이 같은 성격의 "공고"를 제공하므로 하나의 검색 도구로 묶었습니다.

도구

설명

gov_search

9개 소스를 한 번에 검색합니다. 기관을 지정하면 그쪽만 조회하고, 지정하지 않으면 전체를 훑되 기관별 상한(기본 10건)을 적용합니다

gov_list_sources

조회 가능한 소스 목록과 각 소스의 특성을 반환합니다. generic_get 으로 호출할 수 있는 서비스의 주소·오퍼레이션명도 함께 나옵니다

gov_search 인자

인자

설명

query

공고명·요약·지원대상·분야·기관명에서 찾을 키워드. 공백으로 나눈 여러 단어는 AND

sources

기관 지정 (예: ["조달청"], ["기업마당","K-Startup"])

domain

gov_program(지원사업) 또는 procurement(조달)

target

지원대상 (예: 중소기업, 소상공인, 창업)

open_only

접수 마감된 공고 제외 (기본 true)

limit_per_source

기관별 최대 반환 건수 (기본 10)

금융

기관마다 데이터 성격이 완전히 달라 개별 도구로 제공합니다.

도구

설명

dart_search_company

회사명으로 기업코드를 찾습니다. 다른 DART 도구보다 먼저 호출합니다

dart_get_financial_statements

재무제표 전체를 한 번에 조회합니다 (연결 CFS / 별도 OFS)

dart_get_company_disclosures

기간별 공시 목록을 조회합니다

ecos_get_key_indicator

기준금리·원달러환율·GDP성장률·소비자물가지수를 이름으로 바로 조회합니다

ecos_search_statistics

그 밖의 한국은행 통계표를 검색합니다

ecos_get_statistic_data

통계표 코드로 실제 수치를 조회합니다

kosis_search_statistics

통계청 통계표를 검색합니다

kosis_get_statistics_data

통계표를 기간 범위 단위로 일괄 조회합니다

koreaexim_get_exchange_rates

환율 (매매기준율·전신환매매율)

koreaexim_get_loan_rates

대출금리

koreaexim_get_international_rates

국제금리 (SOFR·ESTR 등)

지식재산권 · 교육 · 학술연구

기관마다 데이터 성격이 완전히 달라 개별 도구로 제공합니다.

도구

설명

ip_search

KIPRIS Plus로 국내 특허·실용신안을 키워드로 검색합니다 (발명명칭·초록·출원인 대상). 무료 한도가 월 1,000회로 빠듯합니다

neis_search_schools

NEIS로 전국 초·중·고·특수학교 기본정보를 조회합니다. 인증키가 없어도 동작하지만 5건으로 제한됩니다

ntis_search_projects

NTIS로 국가 R&D 과제를 키워드로 검색합니다. ⚠️ 지금 키는 신청자 개인 공인 IP로만 등록돼 있어 그 사람 환경에서만 동작합니다 — 팀 공용은 고정 IP 서버 배포 + 등록 IP 갱신 필요

si_search_reports

서울연구원 연구보고서·정책리포트 등 11개 카테고리에서 자료를 검색합니다. 카테고리(content_type)를 먼저 지정해야 합니다

kci_search_articles

KCI(한국학술지인용색인)에 등재된 국내 학술논문을 제목 키워드로 검색합니다. 저자·발행연도로 좁힐 수 있습니다. 키 발급이 보류 중이라 실호출 미검증입니다

인력 · 채용

도구

설명

nps_search_employee_count

회사명으로 국민연금 사업장을 찾아 가입자수(재직자수 근사치)를 조회합니다

nps_get_employee_trend

사업장코드(seq)로 신규취득·상실가입자수(입퇴사 흐름)를 조회합니다. nps_search_employee_count 결과의 사업장코드를 그대로 씁니다

wanted_search_company

원티드에 등록된 회사를 이름으로 검색해 회사ID를 얻습니다. ⏸ 코드는 완료됐지만 키 발급이 보류 중입니다 (사업자등록번호 필요)

wanted_get_company_jobs

회사ID로 그 회사가 현재 채용 중인 포지션 목록을 조회합니다. ⏸ 키 발급 보류 중

wanted_search_positions

직무 키워드로 채용공고를 검색합니다 (특정 회사에 한정하지 않음). ⏸ 키 발급 보류 중

work24_search_kdt_courses

고용24에서 국민내일배움카드 훈련과정을 검색합니다. K-디지털 트레이닝(KDT)이 기본값입니다. ⏸ 코드는 완료됐지만 키 발급이 보류 중입니다 (사업자등록번호 필요)

공통

도구

설명

data_go_kr_generic_get

공공데이터포털의 다른 서비스를 호출합니다. 포털에서 활용신청만 하면 코드 수정 없이 사용할 수 있습니다


라이선스

각 기관 API의 이용약관과 출처표시 의무를 따릅니다.

Available Tools

13 tools
dart_get_company_disclosuresC

기간 내 회사 공시 목록을 조회한다. 날짜는 YYYYMMDD 형식 (예: 20240101).

NameRequiredDescriptionDefault
end_dateYes
corp_codeYes
start_dateYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of disclosure. It does not mention that this is a read-only operation, what the response format is (which is important since there is no output schema), whether it paginates, or any limitations (e.g., maximum date range, rate limits). The agent has little beyond the parameter types.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short—one sentence. It is front-loaded with the purpose (조회한다). However, it quotes length is reasonable, but it lacks structure (no paragraphs or lists) and could include the date format inline. It is not verbose, but it is under-informative, not just concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 required parameters, no output schema, and no annotations, the description is incomplete. It does not tell the agent what the response will look like, how to interpret corp_code, or any usage constraints. The date format instruction is helpful but insufficient given the complexity of the Korean DART system (which has specific code formats and pagination).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the parameters have no descriptions other than their types. The tool description only explains the date format (YYYYMMDD) but does not explain what corp_code refers to (likely a DART company code), nor how to obtain it. It adds minimal value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves (조회한다) a list of company disclosures (회사 공시 목록) within a date range. The verb '조회한다' (retrieve) and the resource '회사 공시 목록' (company disclosure list) are specific. It is distinguishable from sibling tools, which focus on financial statements, exchange rates, or general search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool compared to siblings like dart_get_financial_statements or dart_search_company. There is no mention of prerequisites, such as needing a valid corp_code from dart_search_company, which would be critical for an agent to use it correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dart_get_financial_statementsB

OpenDART 단일회사 전체 재무제표를 조회한다. corp_code는 dart_search_company로 먼저 찾을 것. report: '사업보고서'(연간, 기본값) | '1분기' | '반기' | '3분기'. fs_div: 'CFS'(연결재무제표, 기본값) | 'OFS'(별도재무제표).

NameRequiredDescriptionDefault
yearYes
fs_divNoCFS
reportNo사업보고서
corp_codeYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It mentions that the tool retrieves financial statements but does not disclose any side effects, authentication requirements, rate limits, error behavior, or what happens with invalid input. The behavioral traits beyond the action are largely absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the main action. It uses a clear list format for parameter options. Every sentence serves a purpose, and there is no redundant information. It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, no output schema, and no annotations, the description is incomplete. It does not describe the return value format, what 'entire financial statements' includes, error conditions, or pagination. Year parameter is unexplained. The description lacks sufficient context for the agent to fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the allowed values and defaults for 'report' and 'fs_div', and clarifies that 'corp_code' should be obtained from a sibling tool. However, 'year' is not explained (e.g., format, range) and 'corp_code' details are minimal. The description adds some meaning but not for all parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves entire financial statements for a single company from OpenDART, which is a specific verb and resource. It also mentions a prerequisite (finding corp_code via dart_search_company). However, it does not explicitly distinguish itself from the sibling tool 'dart_get_company_disclosures', which could be related.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a prerequisite instruction to use dart_search_company first and explains the allowed values for 'report' and 'fs_div'. However, it does not give explicit guidance on when to use this tool versus alternatives like dart_get_company_disclosures, nor does it state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dart_search_companyA

회사명으로 OpenDART corp_code를 검색한다. 재무제표/공시 조회 전에 먼저 호출해서 정확한 corp_code를 확인하는 용도. 예: company_name='삼성전자'.

NameRequiredDescriptionDefault
limitNo
company_nameYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It states the tool searches by company name and returns a corp_code, which covers the core purpose. However, it does not disclose potential behavior such as partial matches, error handling, rate limits, or whether it is read-only versus destructive. The description is adequate for a simple data lookup but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus an example, with no wasted words. It is front-loaded with the core purpose and immediately provides usage context and an example.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (2 parameters, no output schema, no annotations), the description covers the essential information: what it does, when to use it, and an example. It does not explicitly describe the return value format, but for this tool it is adequately implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It describes 'company_name' with an example ('삼성전자'), clarifying the expected input. The 'limit' parameter is not mentioned, but its default value of 10 and integer type are in the schema. The description adds significant semantic value for 'company_name'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('검색한다') and resource ('OpenDART corp_code'), and clearly distinguishes the tool's role as a preliminary step before financial statement or disclosure queries. The example '삼성전자' clarifies the input format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to call this tool before financial statement or disclosure searches, providing a clear when-to-use directive. It does not mention alternatives, but the sibling list includes similar DART tools, so the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

data_go_kr_check_business_statusA

사업자등록번호(하이픈 없이 10자리) 상태를 최대 100건까지 한 번에 배치 조회한다. 예: business_numbers=['1234567890', '0987654321'].

NameRequiredDescriptionDefault
business_numbersYes

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description alone must disclose behavioral traits. It indicates a read operation but omits details on error handling (e.g., invalid numbers), rate limits, authentication needs, or whether the operation is idempotent. This lack of transparency could lead to confusion during execution.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two sentences and an example—with no redundant words. The key constraint (format, limit) and usage pattern are front-loaded, earning every sentence its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool without an output schema, the description covers input format and batch limit adequately. It lacks details about the return value or status, but given the tool's straightforward nature (batch status check), it is mostly complete. Minor gap: no mention of what '상태' (status) entails.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate. It adds significant semantic value: explains the expected number format (10 digits, no hyphen), batch limit (100), and provides an example. This goes well beyond the bare schema definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the specific verb '조회한다' (inquire/check) and the resource 'business registration numbers', with precise constraints: 10 digits, no hyphen, max 100 batch. This distinguishes it from sibling tools which focus on different Korean data sources (dart, ecos, kosis, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the required input format (10 digits without hyphen) and batch size limit (100), which are key usage guidelines. While it does not mention when not to use (there are no direct alternatives), the provided constraints are clear and actionable for an AI agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

data_go_kr_generic_getA

공공데이터포털의 다른 서비스(사전에 클라이언트 코드가 없는 것)를 호출할 때 쓰는 범용 도구. base_url/path는 해당 서비스의 활용신청 상세페이지에 나온 End Point를 그대로 넣고, params에는 serviceKey를 제외한 나머지 파라미터만 넣는다(serviceKey는 자동으로 채워짐). 자주 쓰는 서비스는 전용 client/tool을 새로 만드는 것을 권장 (README 확장 가이드 참고).

NameRequiredDescriptionDefault
pathYes
paramsYes
base_urlYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must convey behavioral traits. It mentions that serviceKey is auto-filled (an important side effect), but does not disclose other behaviors such as rate limits, authentication requirements, error handling, or whether the tool is read-only or destructive. The description implies a safe call, but lacks explicit behavioral details beyond the auto-fill mechanism.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is remarkably concise: three sentences that front-load the purpose, then dive into usage details. Every sentence adds unique value—purpose, parameter semantics, and recommendation for alternatives. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema, the description does not mention return values or error formats. However, for a generic endpoint tool, the focus on input parameters and usage is appropriate. The description covers why, when, and how to use it, but could benefit from a note on response format or common error codes. Still, it feels sufficient for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are 3 parameters (base_url, path, params) with 0% schema description coverage, meaning the schema provides no descriptions. The description compensates by explaining that base_url and path come from the endpoint, and params should not include serviceKey. It also notes that params is an object (additionalProperties: true). While not exhaustive (e.g., no format details for base_url), it adds significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a generic tool for calling other public data portal services not having a client code. It specifies the verb (call/invoke) and the resource (공공데이터포털 services), distinguishing it from sibling tools that are specialized (e.g., dart_search_company, kosis_get_statistics_data). However, it does not explicitly name these siblings, relying on the context of 'pre-made client tools'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides excellent usage guidance: it explains when to use this tool (for services without client code), what to put in base_url/path (endpoint from application details), and what not to include in params (excluding serviceKey since it's auto-filled). It also recommends creating a dedicated client/tool for frequently used services, pointing to a README extension guide. This explicitly helps the agent decide between this generic tool and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecos_get_key_indicatorA

자주 찾는 거시경제 지표를 이름으로 바로 조회한다. indicator: '기준금리' | '원달러환율' | 'GDP성장률' | '소비자물가지수'. start/end 형식은 지표의 주기에 맞춰야 함(월간=YYYYMM, 분기=YYYYQn, 일간=YYYYMMDD).

NameRequiredDescriptionDefault
endYes
startYes
indicatorYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully compensates by clearly explaining date format requirements (monthly=YYYYMM, quarterly=YYYYQn, daily=YYYYMMDD) and listing the exact supported indicators. This is sufficient behavioral context for an agent to use the tool correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two short sentences. The first sentence states the core purpose, and the second provides enumerations and format rules. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low schema coverage (0%) and no annotations or output schema, the description covers purpose, parameter options, and date format rules. It is nearly complete for this simple key indicator lookup tool, though it omits details like error handling or response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 0% description coverage, meaning no parameter descriptions exist. The tool description adds significant value by specifying the exact indicator values and date format rules. However, it could benefit from clarifying start/end meaning (e.g., date range, inclusive) but is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches frequently searched macroeconomic indicators by name, listing four specific indicator values. It is distinct from sibling tools like ecos_search_statistics and ecos_get_statistic_data, which imply broader search or data retrieval, while this tool targets specific key indicators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides specific indicator names ('기준금리', etc.) and start/end date format rules based on indicator frequency. However, it lacks explicit guidance on when to use this tool versus alternatives, such as ecos_get_statistic_data for a wider range of statistics.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecos_get_statistic_dataB

ecos_search_statistics로 찾은 stat_code로 실제 수치 데이터를 조회한다. cycle: D(일)/M(월)/Q(분기)/A(연).

NameRequiredDescriptionDefault
endYes
cycleYes
startYes
stat_codeYes
item_code1No
item_code2No

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral disclosure burden. It does not mention any behavioral traits such as whether the tool is read-only, rate limits, auth requirements, or what happens if invalid parameters are provided. The description only adds the cycle format, which is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (two sentences) and front-loaded with the main purpose. However, the second sentence is a list of cycle options, which could be more structured. Still, no redundant information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters (4 required), no output schema, and no annotations, the description is severely incomplete. It does not explain the meaning of start and end, the format of item_code1 and item_code2, or the expected return format. The context signals confirm high complexity, and the description fails to provide adequate guidance for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. It only explains the cycle parameter and leaves the other five parameters (stat_code, start, end, item_code1, item_code2) completely undocumented. The schema provides no default values for required parameters, so the description adds value only for cycle. This is a partial compensation, earning a baseline-adjusted 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool retrieves numeric data using a stat_code obtained from a sibling tool (ecos_search_statistics), and specifies the cycle options. It effectively distinguishes its purpose from the search tool and other sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that the stat_code should come from a sibling tool, providing a basic usage context. However, it does not explain when to use this tool vs. other tools like ecos_get_key_indicator or kosis_get_statistics_data, nor does it provide any exclusions or prerequisites beyond the input schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecos_search_statisticsA

키워드로 ECOS 통계표(stat_code)를 검색한다. 사전 등록되지 않은 지표를 찾을 때 사용.

NameRequiredDescriptionDefault
keywordYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The description accurately describes the operation as a search (read-only) but does not disclose important behavioral aspects such as whether it returns multiple results, pagination behavior, or any rate limits. With zero annotations, a score of 3 is appropriate as it doesn't offer deep behavioral insight beyond the single sentence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise at two short sentences. It directly states the core function in the first sentence and adds usage context in the second. Every word serves a purpose, and there is no redundancy. However, it could be slightly improved by more clearly separating the main purpose from additional context, but overall it's efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has a single required parameter, no output schema, no annotations, and a clear purpose, the description is nearly sufficient but lacks details on the return format (e.g., what fields are returned alongside the stat_code). The sibling context suggests other tools exist for fetching data once the code is known, but the description doesn't explicitly connect this. Overall, adequate for a simple search tool but leaves some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the schema itself provides no description for the only parameter 'keyword'. The description mentions that the tool searches by keyword but does not elaborate on the nature of acceptable keywords (e.g., English or Korean, partial match, case sensitivity). For a single parameter with zero schema documentation, the description should compensate, but it barely does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: searching for ECOS statistics tables by keyword. It uses specific verb-resource pairing (검색한다+ECOS 통계표) and distinguishes the return value being a stat_code. The additional phrase '사전 등록되지 않은 지표를 찾을 때 사용' adds context that this tool is for finding unregistered indicators, which differentiates it from sibling tools like ecos_get_statistic_data that likely use an already-known code.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool: when searching for a stat_code for an indicator that is not pre-registered. However, it does not explicitly state when NOT to use it (e.g., if you already have the stat_code) or explicitly name alternatives. The sibling tool ecos_get_statistic_data is implied as the alternative for when you have the code, but this is not stated outright.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

koreaexim_get_exchange_ratesA

한국수출입은행 현재환율(매매기준율/전신환매매율)을 조회한다. search_date: YYYYMMDD 또는 YYYY-MM-DD, 생략 시 당일 영업일 기준. 영업일 11시 이전이나 비영업일 조회 시 데이터가 비어 있을 수 있다.

NameRequiredDescriptionDefault
search_dateNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that data may be empty if queried before 11 AM on a business day or on a non-business day, and that the date defaults to the current business day. It does not mention authentication, rate limits, or whether the operation is read-only (though implicit from 'get').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: purpose, parameter details, behavioral note. Information is front-loaded and no words are wasted. Ideal length for a single-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema, no annotations), the description covers the main usage and limitations. However, it does not describe the return format or fields, which would be useful for an agent. Still, it is largely complete for the task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It fully explains the search_date parameter: accepted formats (YYYYMMDD or YYYY-MM-DD), default behavior (current business day if omitted), and the consequence of querying at certain times. This adds significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves current exchange rates (basic rate/telegraphic transfer rate) from Korea Exim Bank, using a specific verb (조회하다) and resource. It distinguishes from sibling tools like get_loan_rates and get_international_rates by naming the exact rate types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (for exchange rates) and provides practical context: search_date format, default behavior, and warning about empty data on non-business days or before 11 AM. It does not explicitly state when not to use it or name alternatives, but the sibling tools are clearly different domains.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

koreaexim_get_international_ratesA

한국수출입은행 국제금리(LIBOR 등)를 조회한다. search_date: YYYYMMDD 또는 YYYY-MM-DD, 생략 시 당일 영업일 기준.

NameRequiredDescriptionDefault
search_dateNo

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read operation but does not explicitly state that it is non-destructive, does not mention authentication requirements, rate limits, or error handling behaviors. The only behavioral point is the default date logic.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences covering the core purpose and the single parameter. Every word adds value, with no redundancy or filler. It is front-loaded with the primary action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, no output schema), the description is adequate for basic understanding. However, it lacks information about the response structure, potential empty results, or any connection to other Korea Eximbank data. It is minimally viable but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage (the property has only a title). The description adds meaningful detail by specifying the accepted formats (YYYYMMDD or YYYY-MM-DD) and the default behavior (current business day if omitted). This compensates well for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool retrieves international interest rates (LIBOR etc.) from Korea Eximbank. This is a specific verb+resource combination, and it clearly distinguishes from sibling tools like koreaexim_get_exchange_rates (currency) and koreaexim_get_loan_rates (loans).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It only describes the parameter format and default, which is insufficient for an agent deciding between sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

koreaexim_get_loan_ratesA

한국수출입은행 대출금리(고정기준금리)를 조회한다. search_date: YYYYMMDD 또는 YYYY-MM-DD, 생략 시 당일 영업일 기준.

NameRequiredDescriptionDefault
search_dateNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It adds transparency about the input format (YYYYMMDD or YYYY-MM-DD) and default behavior (current business day if omitted). However, it fails to disclose other behavioral aspects such as authentication requirements, rate limits, or whether the tool returns a single value or a list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences. The first sentence immediately states the purpose, and the second covers the parameter. Every word earns its place, and the structure is well front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks information about the output format or data structure. Since there is no output schema, the description should at least hint at what the tool returns (e.g., a single rate, multiple rates, or additional fields). This gap makes the tool less self-contained for an agent without prior knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, leaving the parameter `search_date` completely unexplained. The description compensates by specifying the accepted formats and default behavior, which adds essential meaning beyond the bare schema. This is helpful for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves loan rates (fixed base rate) from the Korea Export-Import Bank. The verb '조회한다' (retrieves/query) and resource '대출금리' (loan rates) are specific, and the tool is easily distinguished from siblings like exchange rate or international rate tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any explicit guidance on when to use this tool versus alternatives. While the sibling tools cover different financial data types, the description relies on the user to infer usage context from the name rather than stating it explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kosis_get_statistics_dataB

kosis_search_statistics로 찾은 org_id/tbl_id의 통계자료를 표 단위로 일괄 조회한다. prd_se: 'Y'(연)|'Q'(분기)|'M'(월). start_prd~end_prd로 기간 범위를 지정하면 여러 연도/월을 한 번의 호출로 받아올 수 있다 (개별 호출 반복 금지).

NameRequiredDescriptionDefault
org_idYes
prd_seNoY
tbl_idYes
end_prdNo
item_idsNo
start_prdNo

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations at all, so the description carries full transparency responsibility. It hints at batching advantages ('individual call repetition prohibited') but omits what gets destroyed (nothing), auth requirements, or whether the tool is read-only or state-changing. A batch-fetch tool needs to clarify whether partial failures are possible and if the result is a single combined table.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences are adequate: first states main action, second explains period selection parameter, third emphasizes batch advantage. Every sentence earns its place, but a bit more structure (e.g., a line for required params) would help scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and 0% schema parameter descriptions, the description should compensate by stating return format (e.g., rows/columns), handling of missing data, maximum period range, and error responses for invalid IDs. Sibling tools (ecos_search_statistics etc.) add context but don't fill gaps for this tool's specific output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description is the only source for parameter meaning. It explains prd_se values ('Y'/'Q'/'M') and teaches start_prd~end_prd as a range idiom. But org_id, tbl_id, item_ids, and end_prd are not described: org_id and tbl_id are required and assumed from kosis_search_statistics results, yet no linking description is given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb ('retrieve') and specific resource ('statistics data for org_id/tbl_id found via kosis_search_statistics'), then distills from sibling tools (dart_, ecos_, kosis_) by referring to the search tool. Distinct from dart's financial statements and ecos's indicator data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: after kosis_search_statistics provides org_id/tbl_id. Also gives explicit when-not: avoid individual calls by using start_prd~end_prd batched range. No mention of when to prefer siblings like ecos_get_statistic_data for other data sources.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kosis_search_statisticsC

키워드로 KOSIS 통계표(org_id/tbl_id)를 검색한다. 예: '실업률', '인구', '출생아수'.

NameRequiredDescriptionDefault
keywordYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden of behavioral disclosure. It only states that the tool searches for tables with a keyword; it does not mention return format, pagination, rate limits, or any side effects (e.g., whether it initiates downloads or is read-only).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and to the point, which is appropriate for a simple tool. It includes one example. However, it could be more efficient by front-loading the purpose and possibly trimming the example formatting.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only one required parameter and no output schema, the description is relatively complete. It identifies the resource being searched (KOSIS statistics tables) and provides examples. However, it lacks any detail on what the search results look like, which limits the agent's ability to plan subsequent steps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has only one parameter 'keyword' with no title or description, and schema description coverage is 0%. The description adds minimal semantic value by noting that the keyword is something like '실업률' or '인구', but it does not explain expected format (e.g., partial vs exact match), language, or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for KOSIS statistics tables (org_id/tbl_id) by a keyword. It provides relevant examples ('실업률', '인구', '출생아수') that clarify the type of queries it handles. However, it doesn't explicitly distinguish it from siblings like ecos_search_statistics, which also searches statistical data by keyword.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives such as ecos_search_statistics or kosis_get_statistics_data. The context suggests Korean economic/statistical data search, but no exclusions or recommendations for other tools are provided.

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.

  1. 13 tool updatesv0.1.0
    • First observeddart_get_company_disclosures
    • First observeddart_get_financial_statements
    • First observeddart_search_company
    • First observeddata_go_kr_check_business_status
    • First observeddata_go_kr_generic_get
    • First observedecos_get_key_indicator
    • First observedecos_get_statistic_data
    • First observedecos_search_statistics
    • First observedkoreaexim_get_exchange_rates
    • First observedkoreaexim_get_international_rates
    • First observedkoreaexim_get_loan_rates
    • First observedkosis_get_statistics_data
    • First observedkosis_search_statistics

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation5/5

Each tool is clearly scoped to a specific data source and operation (e.g., search, get data, check status). Tools within the same source have distinct purposes (e.g., dart_search_company vs. dart_get_financial_statements), and the ECOS/KOSIS pairs are well-separated by search vs. retrieval. No overlapping or ambiguous tools.

Naming Consistency5/5

All tool names follow a consistent `source_verb_noun` pattern in snake_case (e.g., dart_search_company, ecos_get_key_indicator, koreaexim_get_exchange_rates). The naming convention is uniform across all 13 tools, making it predictable for an agent.

Tool Count5/5

13 tools is a well-balanced count for a server aggregating multiple Korean public data sources. Each source (OpenDART, ECOS, KOSIS, data.go.kr, Korea Eximbank) gets a focused set of 2-4 tools, covering search and data retrieval without becoming bloated.

Completeness4/5

The tool set covers core operations for each integrated source: search, retrieve financial/statistical data, check business status, and fetch exchange/loan rates. The inclusion of a generic `data_go_kr_generic_get` tool fills gaps for unlisted data.go.kr services. Minor absences like more granular OpenDART disclosure filters or additional KOSIS metadata tools do not critically hinder coverage.

Maintenance

ActivityStale
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables natural language querying of Korean statistical data from KOSIS, including population, employment, GDP, housing prices, and more, with support for regional and trend analysis.
    8
    7 npm
    17
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying Korean official statistics from KOSIS via natural language in MCP clients like Claude Desktop, wrapping the KOSIS OpenAPI for search, data retrieval, and metadata exploration.
    MIT