oecd_list_agencies
Oecd List Agencies
List OECD SDMX agencies, the directorate each belongs to, and the number of dataflows each publishes. Use to discover agency IDs before filtering oecd_search_datasets by department.
无需输入参数。

io.github.cyanheads由 GitHub 账号 cyanheads 发布v0.6.1更新于 Nov 3, 2026
通过SDMX搜索和查询1500多个OECD统计数据集。无需密钥。
AI 翻译由 AI 模型根据下方的原文描述翻译,可能有误。
Search and query 1,500+ OECD statistical datasets via SDMX. Keyless.
Oecd 的托管 MCP 服务(oecd.caseyjhand.com);无需登录;Streamable HTTP;7 个工具。
暂无 AI 概览:以下信息来自注册中心条目和服务本身。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。
阅读 https://sourceweft.com/mcp/io.github.cyanheads%2Foecd-mcp-server/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。把它添加到你客户端的 mcpServers 配置中。
{
"mcpServers": {
"oecd": {
"type": "http",
"url": "https://oecd.caseyjhand.com/mcp"
}
}
}Search, explore, and query 1,500+ OECD statistical datasets (national accounts, employment, trade, education, health) from the OECD SDMX API via MCP. STDIO or Streamable HTTP.
Public Hosted Server: https://oecd.caseyjhand.com/mcp
OECD statistics across 1,500+ datasets on national accounts, employment, trade, education, and health. Search datasets, inspect their dimensions, query observations, and run SQL over large multi-country time series. No API key required.
Five discovery and data tools plus three DataCanvas tools for large query results:
All resource data is also reachable via tools. Use oecd_get_dataset_info for the same content.
oecd_list_agencies toolOECD.SDD.NAD) with its directorate name and dataflow count, sorted by countESTAT, IAEG-SDGs) carry no directorateoecd_search_datasets toolquery token-matched across dataflow names and descriptions; optional agency_id scope; limit (1–100) and offset paging with total_matchesflow_ref — the identifier every other tool takes — and matched_in (name, description, or both)oecd_get_dataset_info toolflow_ref; returns every dimension in key order with its concept name and codelist reference, plus a key_example for oecd_query_datasetinvalid_flow_ref for a string that is not a flow reference and dataflow_not_found for one OECD does not publishoecd_get_dimension_values toolflow_ref and dimension_id; optional query substring-matches both code and labellimit (1–500, default 50) and offset page the matches, with the full match count when more remainoecd_query_dataset toolflow_ref plus a dot-delimited key (+ for multiple values, empty segments as wildcards) and optional start_period / end_periodvalue is pre-multiplied by value_scaletruncated: true, canvas_id, and table_name; without a canvas every row stays in structuredContent and only the rendered table is capped (content_table_capped)notice naming the canvas and table: inspect columns with oecd_dataframe_describe, then use oecd_dataframe_query for SQL over the full result. Fitting results allocate no new canvas; an explicit canvas_id is checked before the download, so a stale one fails as canvas_not_found without spending an OECD request.oecd_dataframe_describe toolcanvas_id oecd_query_dataset returned; lists each staged table and view with its row count and column names and typesoecd_dataframe_query toolcanvas_id plus one read-only SQL SELECT; writes, DDL, and system-catalog access are rejectedlimit (default 100) returns up to 1,000 rows per call, within 1 MiB of row data; a limit from 1,001 to 10,000 is served at 1,000 with a noticetruncated: true marks a result with more rows than it returned, and its notice names how to reach the rest; row_count counts the rows returnedquery_timeoutoecd_dataframe_drop toolcanvas_id plus a table_name as oecd_dataframe_describe lists it; returns the dropped object's kind and the remaining_tablesOECD_DATAFRAME_DROP_ENABLED=trueoecd://dataflow/{agency_id}/{flow_id} resourceoecd_get_dataset_info, as application/json{flow_id} is {dsd_id}@{df_id} with @ encoded as %40 (e.g. oecd://dataflow/OECD.SDD.NAD/DSD_NAAG%40DF_NAAG_I), or the bare {df_id}Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
OECD-specific:
AllDimensions observation mode — one-pass SDMX-JSON decoding into flat row objects, no nested series key reconstructionoecd_query_dataset materializes large observation sets (multi-country time-series) on a DuckDB DataCanvas for in-conversation SQL analytics; the oecd_dataframe_* tools work on it; DataCanvas is on by default and CANVAS_PROVIDER_TYPE=none disables itAgent-friendly output:
flow_ref from search flows directly into info, values, and query tools without reconstructiontruncated: true + canvas_id tells the agent to switch to SQL instead of parsing a truncated inline list{ REF_AREA: "United States", MEASURE: "Gross domestic product", UNIT_MULT: "Billions", value: 26054614000000, value_scale: 1000000000 }, not raw index arraysConnect to the hosted instance, no install:
Or run it locally:
For other clients, add this to the MCP config file:
No API key is needed — OECD SDMX is a free, public API. DataCanvas SQL analytics over large query results is on by default; set CANVAS_PROVIDER_TYPE=none to get capped inline previews instead. For Docker or a source build, see Running the server.
All configuration is validated at startup via Zod schemas in src/config/server-config.ts. Key environment variables:
See .env.example for the full list of optional overrides.
Requires Bun v1.4.0 or higher (or Node.js v24+).
Clone and install:
Build and run:
Run checks and tests:
The image defaults to HTTP transport, stateless session mode, and logs to /var/log/oecd-mcp-server. To run it over stdio from an MCP client, use "command": "docker" with "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/oecd-mcp-server:latest"]. To build locally, docker build -t oecd-mcp-server .; OpenTelemetry peer dependencies are installed by default — build with --build-arg OTEL_ENABLED=false to omit them.
See CLAUDE.md for development guidelines and architectural rules. The short version:
try/catch in tool logicctx.log for request-scoped logging, ctx.state for tenant-scoped storagesrc/mcp-server/*/index.tsIssues are welcome — see CONTRIBUTING.md for what makes one actionable, and CODE_OF_CONDUCT.md for how we work together. Run checks and tests before submitting:
Apache-2.0 — see LICENSE for details.
来源:README.md,提交 ea92c52
Oecd List Agencies
List OECD SDMX agencies, the directorate each belongs to, and the number of dataflows each publishes. Use to discover agency IDs before filtering oecd_search_datasets by department.
无需输入参数。
Oecd Search Datasets
Search OECD dataflows by keyword or theme, matching against dataflow names and descriptions. Returns flow_ref identifiers, names, and agency IDs for use with oecd_get_dataset_info.
limitquery必填offsetagency_idOecd Get Dataset Info
Fetch a dataflow's dimensions, their order, and how to construct a query key. Returns per-dimension names, codelist references, and position in the dot-delimited key. Required before calling oecd_query_dataset to understand key structure.
flow_ref必填Oecd Get Dimension Values
Fetch the valid codes and labels for one dimension of a dataflow. Use to resolve human-readable names (countries, measures) to SDMX codes before querying with oecd_query_dataset. Pass query to match a code or label by substring — codelists run to a thousand-plus entries, and the response is a page of at most limit codes either way.
limitqueryoffsetflow_ref必填dimension_id必填Oecd Query Dataset
Fetch observations from an OECD dataflow filtered by a dimension key and optional time range. Returns decoded rows (one per observation) with dimension and attribute labels, and values already scaled by the observation unit multiplier. Large multi-country time-series spill to a DataCanvas table — inspect columns with oecd_dataframe_describe, then query the full table with SQL using oecd_dataframe_query; without DataCanvas every row still comes back, but the rendered table stops at a preview slice. Call oecd_get_dataset_info first to learn the dimension order for constructing the key.
key必填flow_ref必填canvas_idend_periodstart_periodOecd Dataframe Describe
List tables and columns staged on a DataCanvas by a prior oecd_query_dataset spill. Call this before oecd_dataframe_query to discover exact table and column names for SQL. Unavailable when the server runs with DataCanvas disabled.
canvas_id必填Oecd Dataframe Query
Run a read-only SQL SELECT against OECD observation tables staged on a DataCanvas by oecd_query_dataset. Call oecd_dataframe_describe first to discover exact table and column names, then use this tool for aggregation, filtering, GROUP BY, JOIN, and window functions. Returns up to `limit` rows (default 100, at most 1,000 per call) and at most 1 MiB of row data; truncated: true marks a result with more rows than came back, and its notice says how to reach the rest. A query still running after 30 seconds is stopped. Unavailable when the server runs with DataCanvas disabled.
sql必填limitcanvas_id必填已满足适用检查项的 100%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
claude mcp add --transport http oecd-mcp-server https://oecd.caseyjhand.com/mcpclaude mcp add oecd-mcp-server -- npx -y @cyanheads/oecd-mcp-server{ "mcpServers": { "oecd-mcp-server": { "command": "npx", "args": ["-y", "@cyanheads/oecd-mcp-server"] } }}git clone https://github.com/cyanheads/oecd-mcp-server.gitcd oecd-mcp-server && bun installcp .env.example .env # optional — every variable has a default# One-time buildbun run rebuild
# Run the built serverbun run start:stdio# orbun run start:httpbun run devcheck # Lint, format, typecheck, securitybun run test # Vitest test suitebun run lint:mcp # Validate MCP definitions against specdocker run --rm -p 3010:3010 ghcr.io/cyanheads/oecd-mcp-server:latestbun run devcheckbun run test