OECD Stats 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., "@OECD Stats MCPOECD 회원국 중 우리나라 청년실업률 몇 위야?"
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.
OECD Stats MCP
OECD 통계 사이트에 들어가지 않습니다. Claude에게 한국어로 물어보면 OECD 공식 수치가 출처와 함께 바로 나옵니다.
OECD SDMX OpenAPI 기반 MCP 서버. Claude Desktop에서 바로 사용합니다. API 키가 필요 없고, 설정 파일에 네 줄만 추가하면 됩니다.
30초 만에 겪어보기
채팅창에 이렇게 칩니다.
나: OECD 회원국 중 우리나라 청년실업률 몇 위야?
Claude: 한국 청년실업률(15~24세) 6.41% — OECD 37개국 중 4위(낮은 순), 2025년
• 상위: 일본 3.83% → 이스라엘 4.70% → 멕시코 5.86% → 한국 6.41%
• OECD 평균 14.45% 대비 8.04%p 낮음, 백분위 91.7
• 최하위: 스페인 24.84%, 스웨덴 24.28%
⚠ 주의: OECD 기준 청년은 15~24세, 국내 고용통계 청년은 15~29세라
국내 발표 청년실업률과 직접 비교 불가.
출처: OECD SDMX OECD.SDD.TPS,DSD_LFS@DF_IALFS_UNE_M,1.0Data Explorer에 들어가 데이터셋을 찾고 → 차원 코드를 고르고 → 37개국을 정렬할 필요가 없습니다. 궁금한 것만 한국어로 던지면 됩니다.
Related MCP server: OECD MCP Server
이럴 때 씁니다
📊 "우리나라 OECD에서 몇 위죠?" — 보고서에 늘 들어가는 그 한 줄
상황 — 정책보고서 현황 분석에 "OECD 대비 우리 수준"을 넣어야 합니다. 회원국 수치를 하나씩 받아 정렬하는 데 매번 30분.
나: 고용률 OECD 순위 알려줘동일 시점 데이터만 골라 순위·백분위·평균 격차를 한 번에 냅니다. 국가마다 최신 시점이 다르면 경고를 붙여 사과와 배를 비교하는 일을 막습니다.
📈 "최근 10년 추세" — 챕터 하나가 한 줄로
상황 — 청년고용 대책 보고서에 시계열이 필요합니다.
나: 한국 청년실업률 2015년부터 추세 보여줘변화율·연평균증가율(CAGR)·최고/최저 시점·추세 방향을 계산해서 돌려줍니다. "등락 속 하락" 같은 판정까지 붙습니다.
🌍 "일본이랑 독일은 어때?" — 국가 비교표
나: 한국, 일본, 독일, 미국 고용률 비교해줘여러 국가를 한 번에 조회해 정렬된 표로 만듭니다.
🔍 목록에 없는 통계도 — 검색해서 가져옵니다
나: OECD에 NEET 통계 있어? 있으면 한국 수치 알려줘기본 지표에 없어도 OECD 전체 데이터셋을 검색하고, 구조를 확인해서 조회합니다.
🛡 이게 진짜 중요한 부분입니다
통계는 틀린 값보다 맞는 값을 잘못 갖다 쓰는 것이 사고가 됩니다. OECD 고용률을 KOSIS 고용률인 줄 알고 보고서에 넣으면, 숫자는 정확한데 문장이 틀립니다.
그래서 이 서버는 수치만 주지 않고 매번 해석 주의사항을 함께 보냅니다.
지표 | 자동으로 붙는 경고 |
고용률 | 분모가 15~64세. KOSIS 고용률(15세 이상)과 값이 달라 같은 표에 넣으면 안 됨 |
청년실업률 | OECD 청년은 15 |
취업자수·실업자수 | 천 명 단위. 명으로 인용하면 1000배 오류 (28,768 = 약 2,877만 명) |
평균임금 | 국민계정 기반 FTE 환산치. 사업체 임금조사(「고용형태별 근로실태조사」)와 성격이 다름 |
이 문구들은 지어낸 게 아니라 OECD 메타데이터에서 확인한 것입니다.
UNIT_MULT=Thousands, PT_WAP_SUB(생산가능인구 대비) 같은 원본 코드가 근거이고,
python verify.py --meta로 언제든 재확인할 수 있습니다.
OECD 원문에서 확인된 사실과 국내 통계 대조(작성자 판단)는 [참고]로 구분해 뒀습니다.
무의미한 비교는 아예 막습니다. 평균임금_원화는 원화가 한국에만 제공되므로
국가 비교·순위 요청 자체를 거부하고 대안을 안내합니다.
"38개국 중 1위" 같은 답이 나올 여지를 없앴습니다.
잠정치는 잠정치라고 말합니다. 관측치 상태(OBS_STATUS)가 확정값이 아니면
응답에 명시합니다. 추정치를 실측처럼 인용하는 사고를 막습니다.
모든 응답에 출처가 붙습니다. dataflow ID가 함께 나오므로 그대로 각주에 쓰거나 직접 검증할 수 있습니다.
설치
처음 설치하신다면 INSTALL.md를 보세요. 단계별로 쪼개고 자주 나는 실수와 오류별 조치까지 정리해 뒀습니다. 아래는 요약입니다.
1. uv 설치 (최초 1회, Python 불필요)
winget install --id astral-sh.uv -emacOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh설치 후 터미널을 새로 엽니다.
2. Claude Desktop 설정에 추가
설정 → 개발자 → 설정 편집 으로 claude_desktop_config.json을 열고
mcpServers 안에 아래를 넣습니다.
{
"mcpServers": {
"oecd-stats": {
"command": "uvx",
"args": ["oecd-stats-mcp"]
}
}
}3. Claude Desktop 완전 종료 후 재시작
창만 닫으면 백그라운드에 남습니다. 트레이 아이콘에서 종료한 뒤 다시 실행하세요.
4. 확인
OECD 회원국 중 우리나라 청년실업률 몇 위야?spawn uvx ENOENT — Claude Desktop이 앱 컨테이너로 실행돼 uvx를 못 찾는 경우입니다.
절대경로를 넣으면 해결됩니다.
(Get-Command uvx).Source"command": "C:\\Users\\이름\\AppData\\Local\\Microsoft\\WinGet\\Links\\uvx.exe"설정 파일을 못 찾겠음 — Microsoft Store로 설치했다면 %APPDATA%\Claude가 없습니다.
Get-ChildItem $env:APPDATA, $env:LOCALAPPDATA -Filter "claude_desktop_config.json" -Recurse -ErrorAction SilentlyContinue | Select-Object FullName로그는 설정 파일과 같은 폴더의 logs\mcp-server-oecd-stats.log에 쌓입니다.
JSON 실수 3종 — 역슬래시는 두 개(
\\), 항목 사이엔 쉼표 필수, 마지막 항목 뒤엔 쉼표 금지. 문법이 깨지면 이 서버만이 아니라 MCP가 통째로 안 뜹니다.
무엇을 물어볼 수 있나
기본 제공 지표 9종입니다.
분야 | 지표 |
실업 | 실업률, 청년실업률, 실업률(월별), 실업자수 |
고용 | 고용률, 경제활동참가율, 취업자수 |
임금 | 평균임금(USD PPP), 평균임금(원화) |
정식 용어를 몰라도 됩니다. 연봉→평균임금, 고용율→고용률, 취업률→고용률처럼
줄임말·오타를 자동으로 알아듣습니다. 국가명도 한국·KOR·대한민국 모두 인식합니다.
목록에 없는 통계는 이렇게 물어보면 됩니다.
나: OECD 통계로 뭘 물어볼 수 있어?
나: OECD에 노동시간 통계 있어?검색 → 구조 확인 → 조회 3단계를 Claude가 알아서 밟습니다.
도구 8개
대부분의 질문은 앞의 다섯 개로 끝납니다. 나머지는 미등록 통계를 파고들 때 씁니다.
구분 | 도구 | 하는 일 |
일상 |
| 등록 지표 목록 — 뭘 물어볼 수 있는지 |
| 단일 수치 (한 국가 × 한 지표) | |
| 시계열 추세 — 변화율·CAGR·최고/최저·추세 판정 | |
| N개국 비교표 + 시점 불일치 경고 | |
| OECD 회원국 중 순위·백분위·평균 격차 | |
확장 |
| 미등록 통계 검색 (영문 키워드) |
| 데이터셋의 차원·코드 + OECD 공식 정의문 | |
| 임의 데이터셋 직접 조회 (탈출구) |
⚠ 알아둘 한계
업무망(폐쇄망)에서는 동작하지 않습니다. OECD 서버에 직접 접속하는 구조입니다. 폐쇄망에서 쓰려면 개인 PC에서 데이터를 뽑아 xlsx/csv로 반출한 뒤, 로컬 파일을 읽는 별도 도구를 쓰는 방식으로 가야 합니다.
국내 통계와 정의가 다릅니다. 위의 「해석 주의」 표를 반드시 확인하세요. OECD는 국제 비교를 위해 조화(harmonised)된 정의를 쓰기 때문에, KOSIS 수치와 다른 게 오류가 아니라 정상입니다.
개발자용
지표를 추가하거나 코드를 고칠 분만 해당됩니다.
git clone https://github.com/seongapark/oecd_mcp.git
cd oecd_mcp
python -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
activate가PSSecurityException으로 막히면 activate 없이.venv\Scripts\python.exe를 직접 쓰면 됩니다. 굳이 쓰려면 그 세션에서만Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass.mcp1.x / 2.x 양쪽에서 동작합니다.
설정에는 uvx 대신 해당 python을 지정합니다.
{
"mcpServers": {
"oecd-stats": {
"command": "C:\\경로\\oecd_mcp\\.venv\\Scripts\\python.exe",
"args": ["-m", "oecd_mcp.server"],
"cwd": "C:\\경로\\oecd_mcp"
}
}
}지표가 제대로 나오는지 검증
python verify.py # 9개 지표가 실제로 값을 받아오는지
python verify.py --meta # 주의 문구의 근거를 OECD 메타데이터에서 확인
python verify.py --describe 고용률 # 해당 데이터셋의 차원·코드 전체[OK] 실업률 2025 = 2.79처럼 찍히면 정상입니다.
[EMPTY]/[FAIL]이면 그 지표의 필터가 틀린 것이니 --describe로 실제 코드를 확인해
oecd_mcp/indicators.py의 filters를 고칩니다.
계열이 2건 이상 잡히면 어느 차원이 안 걸렸는지 [!]로 짚어줍니다.
Windows 콘솔은 cp949라 한글이 깨질 수 있습니다. 파일로 받으세요.
python verify.py --meta 2>&1 | Out-File -Encoding UTF8 meta.txt→Get-Content meta.txt -Encoding UTF8
지표 추가하는 법
oecd_search_dataflow("NEET")— 데이터셋 ID 확보oecd_describe_flow(agency, flow)— 차원 ID와 코드 확인indicators.py의INDICATORS에 항목 추가,ALIASES에 한국어 별칭 추가note에 해석 주의사항 작성 — 근거는--meta로 확인한 OECD 원문에서python verify.py로 확인
코드 구조
oecd_mcp/
client.py SDMX REST 호출 + JSON 파싱 + 캐시 + 429 재시도
indicators.py 지표 카탈로그 (데이터셋 + 필터 + 별칭 + 해석주의)
countries.py ISO3 ↔ 한국어 국가명
analysis.py 추세·비교·순위 계산 (표준 라이브러리만)
server.py MCP 도구 정의
verify.py 지표 실동작 + 메타데이터 검증SDMX 조회 키는 KOR..._T.Y_GE15..A처럼 점의 위치로 차원을 지정합니다.
위치를 코드에 박아두면 OECD가 차원을 하나 추가하는 순간, 오류 없이 조용히 엉뚱한 값이
나옵니다. 통계 도구에서 가장 위험한 실패 방식입니다.
그래서 이 서버는 조회 전에 데이터 구조 정의(DSD)를 먼저 읽어 차원 순서를 얻고,
{"REF_AREA":"KOR","SEX":"_T"} 같은 이름 기반 dict로 키를 조립합니다
(client.build_key). 지정하지 않은 차원은 자동으로 전체가 됩니다.
부작용으로 필터가 덜 걸리면 여러 계열이 섞여 돌아오는데,
server._series_note가 이를 감지해 응답에 경고를 붙입니다.
429 대응 — OECD는 짧은 시간에 요청이 몰리면 429 Too Many Requests를 줍니다.
Retry-After 헤더를 읽어 지수 백오프로 최대 4회 재시도하고, 연속 요청 사이에
최소 간격을 둡니다. 404 같은 영구 오류는 재시도하지 않습니다.
동일 질의는 6시간 캐싱됩니다.
라이선스
참고
OECD Data Explorer — 화면에서 데이터를 고른 뒤
Developer API버튼으로 쿼리를 복사할 수 있습니다chrisryugj/korean-stats-mcp — KOSIS 기반 MCP. 이 프로젝트의 구조를 참고했습니다
Available Tools
8 toolsoecd_compareB
여러 국가의 동일 지표를 한 번에 비교한다.
countries: '한국,일본,독일,미국' 처럼 쉼표 구분. period: '2024' 등. 비우면 국가별 최신값.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | ||
| countries | Yes | ||
| indicator | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full transparency burden. It discloses one behavioral detail: 'period... if empty, uses latest values per country.' However, it fails to mention return format, pagination, or any limitations. The default behavior for period is helpful but insufficient overall.
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 extremely concise: one sentence for purpose and one line for parameter hints. It is front-loaded and contains no fluff, making it easy to parse quickly.
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 has 3 parameters, 2 required, and an output schema. The description covers only two parameters and omits the essential indicator parameter. It also does not mention any caveats or limitations beyond the period default. Given the simplicity of the tool, the description is incomplete.
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 compensate. It explains the countries parameter format (comma-separated) and the period default behavior, but it does not explain the indicator parameter at all, even though it is required. This is a significant gap.
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 core function: 'Compares the same indicator across multiple countries at once.' This is a specific verb (compare) with a specific resource (same indicator) and scope (multiple countries), which distinguishes it from sibling tools like oecd_trend or oecd_rank.
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 no guidance on when to use this tool versus alternatives. It only gives parameter formatting examples and does not mention any exclusions, prerequisites, or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oecd_describe_flowA
특정 dataflow의 차원 목록과 각 차원에서 선택 가능한 코드를 반환한다. OECD 공식 정의·설명문도 함께 나오므로 지표 해석 근거로 쓸 수 있다. oecd_raw_query의 filters를 조립하기 전에 호출한다. max_codes: 차원당 표시할 코드 수(기본 40). 특정 코드를 못 찾으면 늘릴 것.
| Name | Required | Description | Default |
|---|---|---|---|
| flow | Yes | ||
| agency | Yes | ||
| version | No | 1.0 | |
| max_codes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that OECD definitions are included and explains max_codes limiting behavior. However, it does not mention read-only nature or error conditions, leaving gaps in behavioral expectations.
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 four sentences with the core purpose first, followed by context, usage timing, and a parameter hint. Every sentence adds value with no 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?
Given an output schema exists, return details are covered. The description provides purpose, usage timing, and max_codes guidance. It lacks an example but is sufficiently complete for a describe-style tool.
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 coverage is 0%, so the description must compensate. It explains max_codes precisely ('차원당 표시할 코드 수(기본 40)') but leaves agency, flow, and version self-explanatory without further meaning. This is adequate but not fully compensating.
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 returns the dimension list and selectable codes for a specific dataflow, using a specific verb ('반환한다') and naming the resource. It also distinguishes itself from siblings by positioning as a precursor to oecd_raw_query, indicating it describes structure rather than retrieving data.
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 gives an explicit usage instruction: 'oecd_raw_query의 filters를 조립하기 전에 호출한다' (call before assembling filters). This provides clear contextual timing but does not mention alternatives or when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oecd_list_indicatorsA
등록된 OECD 고용·노동 지표 목록과 각 지표의 dataflow ID를 반환한다. 어떤 지표를 물어볼 수 있는지 모를 때 가장 먼저 호출.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns a list of indicators and dataflow IDs, which is helpful, but it doesn't mention things like read-only behavior, auth requirements, or output size. For a simple list tool this is adequate but not rich.
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, front-loads the purpose, and contains no fluff. Every word adds 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?
The tool is simple with 0 parameters and an output schema, so the description doesn't need to explain return values in depth. It mentions the key output (dataflow IDs) and use case. A bit more detail about how the list is ordered or filtered could help, but it's largely 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 tool has zero parameters, so the description doesn't need to explain parameter details. The baseline for 0 parameters is 4, and the description correctly focuses on the output rather than parameter semantics.
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 a specific verb 'list' and clearly identifies the resource: registered OECD employment/labor indicators. It also states the output (dataflow IDs), which clearly differentiates it from sibling tools like oecd_search_dataflow or oecd_raw_query.
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 explicitly says to call this tool first when you don't know which indicators can be requested. This provides clear usage context, though it doesn't name specific alternative tools for exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oecd_rankA
OECD 회원국 전체 대비 특정 국가의 순위·백분위·평균 격차를 계산한다. 동일 시점 데이터만 비교해 비교가능성을 보장한다.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | 한국 | |
| indicator | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It reveals a key trait: only same-time data are used for comparability. However, it does not mention edge cases (e.g., missing data, tie handling) or the read-only nature, leaving some gaps.
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 concise sentences, front-loaded with the primary action and resource. Every word adds value, and it avoids repetition of the tool name or schema fields.
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 moderate complexity and the presence of an output schema, the description covers the core function and an important constraint. It could mention how it interacts with sibling tools, but the current content is sufficient for basic invocation.
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 adds minimal parameter meaning. It implies 'country' refers to a specific nation, but 'indicator' is not elaborated—no examples, allowed values, or format hints are provided. The description only partially compensates for the schema's lack of detail.
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: calculating a country's rank, percentile, and average gap relative to all OECD member countries. This specific verb+resource combination ('계산한다... 순위·백분위·평균 격차') distinguishes it from siblings like oecd_trend or oecd_compare.
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 a clear usage context by noting it compares only same-time data, ensuring comparability. This implies when to use the tool (for cross-country ranking at a fixed point) but does not explicitly mention alternatives or exclusion cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oecd_raw_queryA
등록되지 않은 OECD 통계를 직접 조회한다 (탈출구).
filters: JSON 문자열. 예 '{"REF_AREA":"KOR","SEX":"_T","FREQ":"A"}' 값에 리스트를 주면 다중선택(+로 결합)된다.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| flow | Yes | ||
| start | No | ||
| agency | Yes | ||
| last_n | No | ||
| filters | No | {} | |
| version | No | 1.0 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full behavioral burden. It only explains the 'filters' parameter's list-to-'+' behavior, but does not disclose whether the tool is read-only, how errors are presented, pagination, or any other operational traits expected from a raw query tool.
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 extremely concise: one purpose sentence and one parameter example. It is front-loaded with the core purpose and contains no wasted words, making it easy to scan quickly.
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?
Despite having an output schema, the tool is a 7-parameter raw query with no annotations. The description only documents one parameter and gives minimal usage context, leaving significant gaps for an agent attempting to invoke it 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?
Schema description coverage is 0%, so the description must compensate. It adds meaning only for the 'filters' parameter via an example and list behavior, while the other 6 parameters (agency, flow, start, end, last_n, version) remain entirely undocumented.
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 states a specific verb and resource: '직접 조회한다' (directly queries) '등록되지 않은 OECD 통계' (unregistered OECD statistics). It clearly distinguishes this tool from siblings by framing it as an 'escape hatch' for data not covered by the registered/curated tools.
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 '등록되지 않은 OECD 통계' and '탈출구' (escape hatch) clearly imply use when other tools (like oecd_stats, oecd_trend) do not cover a given statistic. However, it does not explicitly name alternatives or state when not to use this tool, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oecd_search_dataflowA
OECD 전체 데이터셋(dataflow)을 영문 키워드로 검색한다. 등록 지표에 없는 통계를 찾을 때 사용. 예: 'unemployment', 'wage', 'GDP', 'NEET'.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It implies a safe read-only search but does not disclose return format, error behavior, or other behavioral details beyond the basic action.
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?
Two concise sentences with front-loaded purpose and illustrative examples. No redundant words.
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 one-parameter tool with an output schema, the description covers purpose, usage context, and keyword semantics. It lacks explicit output behavior, but the output schema likely fills that gap.
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 coverage is 0%, but the description compensates by specifying the keyword must be English and by providing example values, adding meaningful semantics beyond the bare schema.
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 searches the entire OECD dataset (dataflow) by English keyword, using a specific verb+resource. It also distinguishes from siblings by noting it's for finding statistics not in registered indicators.
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?
Provides clear context: use when looking for stats not in registered indicators, with concrete keyword examples. However, it does not explicitly name alternative tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oecd_statsA
OECD 단일 수치 조회. 특정 국가의 특정 지표 최신값(또는 지정 시점 값)을 반환한다.
indicator: '실업률', '고용률', '청년실업률', '평균임금' 등 (oecd_list_indicators 참고) country: '한국', 'KOR', '일본', 'OECD' 등 period: '2024' 또는 '2024-03'. 비우면 최신값.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | ||
| country | No | 한국 | |
| indicator | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains the default behavior ('비우면 최신값' – empty period yields latest value) and gives input examples. However, it does not disclose error handling, exact return format, or potential limitations; the output schema mitigates the return format gap.
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 brief, front-loaded with purpose, and uses three short bullet-style lines for parameters. Every sentence serves a purpose, with no redundant repetition of schema fields.
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 lookup with an output schema, the description covers the essential aspects: purpose, parameters, formats, and a pointer to the indicator list. It lacks only minor details like behavior for invalid inputs, but is otherwise complete for typical use.
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 coverage is 0%, so the description compensates by providing concrete examples for each parameter (indicator names, country variants like '한국'/'KOR', period formats). It adds value beyond the bare schema by explaining formats and defaults.
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 it performs an 'OECD 단일 수치 조회' (single value lookup) and returns the latest or specified-period value for a given country and indicator. This specific verb+resource distinguishes it from siblings like oecd_trend (time series) and oecd_compare (comparison).
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 use when a single value is needed and explicitly advises referencing oecd_list_indicators for indicator names. It does not explicitly mention when not to use it or mention alternative siblings, but the single-value scope is clear and provides adequate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oecd_trendB
OECD 시계열 추세 분석. 변화율·CAGR·최고/최저·추세방향을 계산해 반환한다.
start/end: '2010', '2024' 형식. 비우면 최근 10년.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| country | No | 한국 | |
| indicator | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 burden. It discloses that it calculates and returns trend metrics and explains the default time range behavior (recent 10 years if start/end empty). However, it does not mention limitations, data requirements, or output structure (though the output schema exists).
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 concise sentences that are front-loaded: the first states the tool's core purpose, and the second clarifies date parameters. No filler or redundancy.
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 has 4 parameters, an output schema, and no annotations. The description gives the essential purpose, lists returned computations, and explains start/end default behavior. However, it omits guidance on valid indicator values and does not mention that indicator is required. Sibling tools like oecd_list_indicators would provide necessary context, but the description does not reference them.
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 compensate. It only explains start and end format ('2010', '2024' and default to recent 10 years) but does not explain the indicator parameter (required) or the country parameter (default '한국'). The description adds some value but leaves half the parameters undocumented.
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 analyzes OECD time series and computes specific trend metrics (rate of change, CAGR, high/low, trend direction). This distinguishes it from sibling tools like oecd_stats (raw data) and oecd_rank (rankings).
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?
No guidance is provided on when to use this tool versus alternatives. It does not mention sibling tools or exclusion criteria. The only usage info is the start/end format instruction, which relates to parameters, not tool selection.
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.
8 tool updates
v0.1.0- First observed
oecd_compare - First observed
oecd_describe_flow - First observed
oecd_list_indicators - First observed
oecd_rank - First observed
oecd_raw_query - First observed
oecd_search_dataflow - First observed
oecd_stats - First observed
oecd_trend
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: listing indicators, fetching a single value, analyzing trends, comparing countries, ranking, searching dataflows, describing dimensions, and raw querying. No two tools overlap in function, and the descriptions clearly distinguish their use cases.
All tool names share the 'oecd_' prefix and use snake_case, but the second part is inconsistent: some are verb_noun (list_indicators, search_dataflow, describe_flow), some are just nouns (stats, trend), and some are bare verbs (compare, rank). This mixed convention makes the set slightly less predictable despite the common prefix.
The server has 8 tools, which is well within the ideal range. Each tool covers a distinct aspect of OECD data access: discovery, simple queries, trend analysis, cross-country comparison, ranking, broader search, metadata description, and raw querying. No tool feels redundant or excessive.
The toolset provides full lifecycle coverage for a read-only statistics server: discover available indicators, fetch specific values, analyze trends, compare countries, rank, search for unlisted data, understand data structure, and perform raw queries. There are no obvious gaps in the domain.
Maintenance
Related MCP Connectors
Search and query 1,500+ OECD statistical datasets via SDMX. Keyless.
Statistics from 28 agencies: FRED, Eurostat, ECB, World Bank, OECD. Cited values, computed answers.
Access European statistics: GDP, unemployment, inflation, population data.
Compare 488 Korean universities on 17 official disclosure indicators (대학알리미). No API key.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables MCP clients like Claude Desktop to search, retrieve, and analyze Korean statistical data from KOSIS OpenAPI.161MIT
- AlicenseAqualityFmaintenanceProvides AI assistants access to over 5,000 OECD economic and statistical datasets via the SDMX API for search, analysis, and comparison across 38 countries.922 npm8MIT
- AlicenseAqualityBmaintenanceEnables natural language querying of Korean statistical data from KOSIS, including population, employment, GDP, housing prices, and more, with support for regional and trend analysis.814 npm16MIT
- AlicenseNot gradedqualityBmaintenanceEnables 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