Skip to main content
Glama
icen-ai
by icen-ai

CNBS MCP Server

MCP server for querying China National Bureau of Statistics (NBS) data and major international statistical databases. All data is fetched from real APIs — no mock data.

Data Sources

Source

Auth

Coverage

China NBS (data.stats.gov.cn)

None

Monthly / Quarterly / Yearly / Provincial domestic data

World Bank (api.worldbank.org)

None

200+ countries — GDP, CPI, trade, population, FDI, Gini, etc.

IMF DataMapper

None

WEO forecasts — GDP growth, inflation, government debt, current account

OECD SDMX

None

Member-country quarterly GDP, employment, leading indicators

BIS Statistics

None

Effective exchange rates, credit gaps, property prices, cross-border banking

FRED (Federal Reserve)

X-Fred-Api-Key request header

US rates, CNY/USD, oil, gold, S&P 500, M2

NBS Census

None

Population (2020), Economic (2018), Agriculture (2016) censuses

NBS Departments

None

Finance, Industry, Trade, Agriculture, PBoC monetary, Social Security, Housing, Energy

FRED API Key: Free registration at https://fred.stlouisfed.org/docs/api/api_key.html
Pass it as the X-Fred-Api-Key request header (HTTP mode) or set FRED_API_KEY env var (stdio mode).


Related MCP server: Chinese Stock MCP

Installation

npx mcp-cnbs

HTTP transport

npx mcp-cnbs --port 12345

Install globally

npm install -g mcp-cnbs
mcp-cnbs

MCP Client Configuration

stdio mode (npx)

Supported clients: Claude Desktop, Cursor, Windsurf, Cherry Studio, Trae, Continue, and all MCP-compatible clients.

{
  "mcpServers": {
    "cnbs": {
      "command": "npx",
      "args": ["mcp-cnbs"]
    }
  }
}

With FRED support:

{
  "mcpServers": {
    "cnbs": {
      "command": "npx",
      "args": ["mcp-cnbs"],
      "env": {
        "FRED_API_KEY": "your_fred_api_key"
      }
    }
  }
}

HTTP mode (remote)

Supported clients: Trae, Cherry Studio, and other clients with HTTP transport support.

Free demo on ModelScope (no FRED):

{
  "mcpServers": {
    "cnbs": {
      "url": "https://mcp.api-inference.modelscope.net/c2ca6ece4e9946/mcp"
    }
  }
}

HTTP mode with FRED:

{
  "mcpServers": {
    "cnbs": {
      "url": "https://your-cnbs-server/mcp",
      "headers": {
        "X-Fred-Api-Key": "your_fred_api_key"
      }
    }
  }
}

Free public demo by Alibaba Cloud ModelScope. No auth required.
For production use, deploy your own instance.


HTTP Endpoints

Endpoint

Method

Description

/ or /mcp

POST

Streamable HTTP — initialize session or send requests

/ or /mcp

GET

SSE notification stream (requires Mcp-Session-Id header)

/ or /mcp

DELETE

Terminate session (requires Mcp-Session-Id header)

/sse

GET

Legacy SSE mode

/message

POST

Legacy SSE messages


Tools

NBS Core Query

Tool

Description

cnbs_search

Search by keyword, returns latest value — start here

cnbs_batch_search

Batch search multiple keywords in one call

cnbs_economic_snapshot

One-shot snapshot of 10 key Chinese macro indicators (GDP, CPI, PPI, PMI, unemployment, industrial output, retail sales, fixed investment, trade, M2)

cnbs_compare

Compare data across regions or time periods

cnbs_fetch_nodes

Get category tree nodes — accepts one or multiple categories

cnbs_fetch_metrics

Get indicator list — accepts one or multiple setIds

cnbs_fetch_series

Get time series data

cnbs_fetch_end_nodes

Recursively get all leaf nodes

NBS Reference

Tool

Description

cnbs_get_guide

Full tool guide (useful for LLMs to self-orient)

cnbs_get_regions

Region codes and names (GB/T 2260)

cnbs_get_categories

NBS category codes

cnbs_list_data_sources

All available data sources with tool mappings

cnbs_fetch_data_from_source

Fetch data from any named source

cnbs_get_source_categories

Categories for a given source

cnbs_search_in_source

Search within a specific source

World Bank

Tool

Description

ext_world_bank

Query a single indicator across countries and years

ext_world_bank_multi

Query multiple indicators at once

ext_world_bank_indicators

List all supported World Bank indicators

IMF

Tool

Description

ext_imf

Query IMF WEO data — accepts one or multiple indicators

ext_imf_indicators

List supported IMF indicators

ext_imf_all_indicators

Full IMF DataMapper indicator catalog

OECD

Tool

Description

ext_oecd

Query OECD SDMX data by dataset and key

ext_oecd_datasets

List supported OECD datasets

BIS

Tool

Description

ext_bis

Query BIS statistics — accepts one or multiple countries

ext_bis_datasets

List supported BIS datasets with key templates

FRED (Federal Reserve)

Tool

Description

ext_fred

Query FRED series — accepts one or multiple series

ext_fred_series

List all supported FRED series

China Extended Sources

Tool

Description

ext_cn_census

NBS census data (population, economic, agriculture)

ext_cn_department

NBS department statistics by ministry

ext_cn_department_list

All department categories and indicator keywords

Cross-Source Comparison

Tool

Description

ext_global_compare

Simultaneously query World Bank + IMF for the same indicator across countries


Quick Examples

China Economy At a Glance

// Full macro snapshot in one call
cnbs_economic_snapshot()

// Latest single indicator
cnbs_search(keyword="GDP")

// Batch indicators
cnbs_batch_search(keywords=["GDP", "CPI", "城镇化率", "出生率"])

// Regional comparison
cnbs_compare(keyword="GDP", regions=["北京", "上海", "广东"], compareType="region")

// Time series
cnbs_fetch_series(setId="...", metricIds=["..."], periods=["2015YY-2024YY"])

International Comparison

// China GDP growth vs peers (World Bank)
ext_world_bank(indicator="GDP_GROWTH", countries=["CHN","USA","DEU","JPN","IND"], startYear=2015)

// Multiple indicators for China
ext_world_bank_multi(indicators=["GDP_GROWTH","CPI","UNEMPLOYMENT"], countries=["CHN"], startYear=2010)

// IMF: single indicator
ext_imf(indicators="GDP_GROWTH", countries=["CHN","USA","JPN"], periods=["2022","2023","2024","2025"])

// IMF: multiple indicators in one call
ext_imf(indicators=["GDP_GROWTH","CPI_INFLATION","GOVT_DEBT"], countries=["CHN","USA"], periods=["2020","2021","2022","2023","2024"])

// World Bank + IMF side-by-side
ext_global_compare(wbIndicator="GDP_GROWTH", imfIndicator="GDP_GROWTH", countries=["CHN","USA","DEU","JPN"])

BIS & FRED

// BIS: single country
ext_bis(dataset="EER", countries="CN", lastNObservations=36)

// BIS: multiple countries in one call
ext_bis(dataset="EER", countries=["CN","US","DE","JP"], lastNObservations=24)

// BIS: credit gap
ext_bis(dataset="CREDIT_GAP", countries=["CN","US"], lastNObservations=20)

// FRED: single series
ext_fred(series="OIL_PRICE_WTI", limit=100, sortOrder="desc")

// FRED: multiple series in one call
ext_fred(series=["FED_FUNDS","CNY_USD","OIL_PRICE_WTI","GOLD_PRICE"], limit=30, sortOrder="desc")

NBS Census & Departments

// 2020 Population census
ext_cn_census(type="population")

// PBoC M2 monetary data
ext_cn_department(department="monetary", indicator="M2货币供应量")

// All finance ministry indicators
ext_cn_department(department="finance", fetchAll=true)

NBS Category Codes

Code

Category

Typical Indicators

1

Monthly

CPI, PPI, Industrial Output, PMI

2

Quarterly

GDP quarterly growth

3

Annual

GDP, population, urbanization rate

5

Provincial Quarterly

Provincial GDP by quarter

6

Provincial Annual

Provincial GDP, population by year

7

Other / Surveys

Household surveys, special surveys

NBS Time Format

  • Annual: 2024YY, range ["2020YY-2024YY"]

  • Quarterly: 2024A/B/C/D (A=Q1, B=Q2, C=Q3, D=Q4), shortcuts LAST6/LAST12/LAST18

  • Monthly: 202401MM, range ["202301MM-202412MM"]

NBS Region Codes

Follows GB/T 2260 standard. Use cnbs_get_regions for the full list.

Region

Code

National

000000000000

Beijing

110000000000

Shanghai

310000000000

Guangdong

440000000000

Zhejiang

330000000000

Jiangsu

320000000000


Authentication

No authentication required by default. Enable Bearer token auth:

stdio / HTTP mode

npx mcp-cnbs --port 12345 --auth-token your-secret-token
# or via env var
MCP_CNBS_AUTH_TOKEN=your-secret-token npx mcp-cnbs --port 12345

Requests must then include:

Authorization: Bearer your-secret-token

Cloudflare Workers

npx wrangler secret put MCP_CNBS_AUTH_TOKEN

Development

npm install
npm run build
npm run start

Requirements

  • Node.js >= 18.0.0

  • Network access to data.stats.gov.cn, api.worldbank.org, www.imf.org, sdmx.oecd.org, stats.bis.org, api.stlouisfed.org

License

MIT

Available Tools

31 tools
cnbs_compareCompare CNBS DataA
Read-onlyIdempotent

对比不同地区或不同时间的数据。支持地区对比和时间对比。

Args:

  • keyword (string): 搜索关键词

  • regions (string[]): 要对比的地区名称数组,如 ["北京", "上海", "广东"]

  • compareType (string): 对比类型,"region"(地区对比)或 "time"(时间对比)

  • years (string[]): 时间对比时的年份数组,如 ["2022", "2023", "2024"]

Returns: 对比结果表格

示例:

  • 地区对比:cnbs_compare(keyword="GDP", regions=["北京", "上海"], compareType="region")

  • 时间对比:cnbs_compare(keyword="GDP", compareType="time", years=["2022", "2023", "2024"])

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYes搜索关键词
regionsNo要对比的地区名称数组
compareTypeNo对比类型region
yearsNo时间对比时的年份数组

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate readOnly, non-destructive, idempotent, openWorld. The description adds that it returns a comparison table (结果表格), but no additional behavioral details like authentication or data source limitations.

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 well-structured with Args, Returns, and Examples sections. It is concise (3 lines of Args, 2 examples) with no redundant information.

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?

No output schema, so description must cover return values—it mentions '对比结果表格' (comparison result table), which is adequate but lacks details on table structure. Given the tool's complexity and good annotations, this is mostly sufficient.

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 coverage is 100%, so baseline 3. The description adds value by providing example parameter combinations and clarifying the relationship between compareType and other parameters (regions for region, years for time).

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 compares CNBS data across regions or time, with specific verbs '对比' and 'compare'. This distinguishes it from sibling tools like cnbs_search which retrieve data without comparison.

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?

Examples show when to use region vs time comparison, but no explicit guidance on when not to use this tool or to prefer siblings. The context is clear for intended use cases.

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

cnbs_economic_snapshotChina Economic SnapshotA
Read-onlyIdempotent

一次性获取中国当前核心宏观经济指标的最新值,覆盖 GDP、CPI、PPI、PMI、失业率、工业、消费、投资、贸易、货币供应。 适合需要快速了解中国经济全貌的场景,避免多次单独调用 cnbs_search。

Returns: 10 项核心指标的最新值及元数据(指标名、值、单位、时间)

示例: cnbs_economic_snapshot()

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds that it returns 10 indicators with metadata (name, value, unit, time). No contradictions. Could mention output format or limitations, but adequate.

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?

Two concise paragraphs, front-loaded with purpose. Example provided. Every sentence adds value; no waste.

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

Completeness5/5

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

Tool has zero parameters and no output schema; description fully explains what it returns (10 indicators with metadata). No missing context for a simple aggregated fetch tool.

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?

No parameters exist; schema coverage is 100% (empty). Baseline for 0 params is 4. Description does not need to add param info, and it correctly omits any reference.

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 values of core macro indicators (GDP, CPI, etc.) in one call, listing all 10 indicators. It distinguishes itself from sibling tools like cnbs_search by aggregating common indicators, avoiding multiple calls.

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?

Explicitly says '适合需要快速了解中国经济全貌的场景,避免多次单独调用 cnbs_search' (suitable for quickly understanding China's economic overview, avoiding repeated calls to cnbs_search). Provides clear when-to-use and alternative.

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

cnbs_fetch_data_from_sourceFetch Data from Specific SourceA
Read-onlyIdempotent

从特定数据源获取数据,支持扩展数据源。

Args:

  • source (string): 数据源名称,如 "cnbs"、"census"、"international"、"department"

  • params (object): 数据源特定的参数

Returns: 数据源返回的数据

⚠️ FRED 注意:通过此工具调用 source="fred" 时,仅支持 FRED_API_KEY 环境变量,不支持 X-Fred-Api-Key 请求头。HTTP 模式请改用专用工具 ext_fred。

示例: cnbs_fetch_data_from_source(source="cnbs", params={keyword: "GDP"}) cnbs_fetch_data_from_source(source="census", params={type: "population", year: "2020"}) cnbs_fetch_data_from_source(source="international", params={source: "world_bank", indicator: "GDP", country: "CHN"}) cnbs_fetch_data_from_source(source="department", params={department: "finance", indicator: "财政收入", period: "2024Q1"})

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes数据源名称
paramsYes数据源特定的参数

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, and openWorldHint. The description adds behavioral context: it supports extended data sources and discloses the FRED authentication caveat, which is beyond what annotations provide.

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 well-structured with Args, Returns, a warning note, and examples. Every sentence adds value, and the overall length is appropriate for the tool's complexity.

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?

Without an output schema, the description states '数据源返回的数据' (data returned by the source), which is vague but acceptable for a generic fetch tool. Examples cover major sources, but error handling or pagination is not discussed.

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?

Examples show concrete usage for each source (e.g., source='cnbs' with keyword, source='census' with type and year), adding significant meaning beyond the minimal schema descriptions. Schema coverage is 100% but the description compensates richly.

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 '从特定数据源获取数据' (fetch data from a specific data source) and lists supported sources like cnbs, census, international, department. It distinguishes from siblings (e.g., cnbs_search, ext_fred) by focusing on fetching raw data from a source.

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 warns about FRED authentication limitations and suggests using ext_fred for HTTP mode. It provides examples for multiple sources, but does not explicitly state when to use this tool versus dedicated ext_ tools for other sources.

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

cnbs_fetch_end_nodesFetch CNBS End NodesA
Read-onlyIdempotent

递归获取指定分类代码下所有叶子节点(setId)。注意:耗时长,不建议频繁使用。

Args:

  • category (string): 分类代码:1月度 2季度 3年度 5分省季度 6分省年度 7其他

Returns: 所有叶子节点列表

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYes分类代码:1月度 2季度 3年度 5分省季度 6分省年度 7其他

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior; the description adds valuable context about recursion and time consumption, which goes beyond annotations.

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 very concise with a clear front-loaded purpose, no unnecessary words, and a structured Args section.

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

Completeness5/5

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

For a simple tool with one parameter, good annotations, and no output schema, the description fully explains purpose, behavior, and return value.

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 100% and the description repeats the exact same parameter info, adding no new meaning beyond the 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 it recursively fetches leaf nodes under a classification code, which is specific and distinct from sibling tools that fetch nodes, series, or metrics.

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 warns that the operation is time-consuming and not recommended for frequent use, but does not provide explicit guidance on when to use this tool vs alternatives like cnbs_fetch_nodes.

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

cnbs_fetch_metricsFetch CNBS MetricsA
Read-onlyIdempotent

根据数据集ID (setId) 获取所有可用指标列表。支持同时查询多个数据集。

Args:

  • setIds (string | string[]): 单个或多个数据集ID,来自 cnbs_search 或 cnbs_fetch_nodes 的 isEnd=true 节点

  • name (string): 指标名称过滤(可选,单个 setId 时有效)

Returns: 指标列表,多个 setId 时返回按 setId 分组的结果

ParametersJSON Schema
NameRequiredDescriptionDefault
setIdsYes单个或多个数据集ID
nameNo指标名称过滤(可选)

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint=false, idempotentHint, and openWorldHint. The description adds that results are grouped by setId when multiple setIds are provided, which is a behavioral detail beyond annotations. No contradictions.

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 concise with an Args and Returns section, front-loading key information. No unnecessary sentences.

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 no output schema, the description explains the return structure (grouped by setId for multiple inputs). It covers both parameters adequately, though it does not address error scenarios.

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 coverage is 100%, but the description adds value by specifying that setIds come from specific sources and that name filtering is only for single setId. This aids correct invocation beyond the schema descriptions.

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 fetches all available metrics for given dataset IDs, specifying it can handle multiple setIds. It distinguishes itself from sibling tools like cnbs_search and cnbs_fetch_nodes by focusing on metrics retrieval after dataset identification.

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?

It provides clear context on when to use: after obtaining setIds from cnbs_search or cnbs_fetch_nodes with isEnd=true. It also notes that name filtering is optional and only effective with a single setId. However, it does not explicitly state 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.

cnbs_fetch_nodesFetch CNBS NodesA
Read-onlyIdempotent

获取中国国家统计局分类树节点。支持同时查询多个分类。isEnd=true 的节点 id 即为 setId。

Args:

  • categories (string | string[]): 单个或多个分类代码,如 "3" 或 ["1","2","3"](1月度 2季度 3年度 5分省季度 6分省年度 7其他)

  • parentId (string): 父节点ID,空或省略表示从根节点开始(单分类时有效)

Returns: 分类树节点列表,多个分类时返回按分类代码分组的结果

ParametersJSON Schema
NameRequiredDescriptionDefault
categoriesYes单个或多个分类代码,如 "3" 或 ["1","2","3"]
parentIdNo父节点ID,空或省略表示从根节点开始

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds behavioral detail about isEnd=true indicating setIds, which is useful beyond annotations. No contradictions with annotations.

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

Conciseness5/5

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

The description is concise with a clear Args section and Returns line. It is front-loaded with the purpose and every sentence provides value. No wasted words.

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?

Input schema is simple with no output schema, so the description must explain return values. It states the return is a list of tree nodes, grouped by category for multiple categories, but lacks details on node fields (e.g., id, name, isEnd). This is adequate but not fully complete.

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 coverage is 100%, but the description adds significant domain-specific meaning: it explains the numeric code mapping for categories (e.g., '3' for 年度) and clarifies that parentId is only effective for single categories, going beyond the schema descriptions.

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 fetches CNBS classification tree nodes, with specific verb 'fetch' and resource 'nodes'. It distinguishes itself from siblings like cnbs_fetch_end_nodes by supporting multiple categories and explaining that nodes with isEnd=true are setIds.

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 support for multiple categories and that parentId is only effective for a single category, but does not explicitly contrast with siblings like cnbs_fetch_end_nodes or provide when-to-use vs alternatives. Usage context is implied but not clearly bounded.

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

cnbs_fetch_seriesFetch CNBS SeriesB
Read-onlyIdempotent

批量获取统计指标数据。支持多个指标ID、多个时间段、多地区。

Args:

  • setId (string): 数据集ID

  • metricIds (string[]): 指标ID数组

  • periods (string[]): 时间范围数组,如 ["202501MM-202503MM"] 或 ["2023YY-2025YY"]

  • areas (array): 地区维度,默认全国

  • rootId (string): 根节点ID,月度数据默认为 fc982599aa684be7969d7b90b1bd0e84

Returns: 统计数据点列表

ParametersJSON Schema
NameRequiredDescriptionDefault
setIdYes数据集ID
metricIdsYes指标ID数组
periodsYes时间范围数组,如 ["202501MM-202503MM"] 或 ["2023YY-2025YY"]
areasNo地区维度,默认全国
rootIdNo根节点ID,月度数据默认为 fc982599aa684be7969d7b90b1bd0e84

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering the safety profile. The description adds that it returns a list of data points, which is useful but not extensive. It does not mention rate limits or error handling.

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 well-structured with a summary sentence followed by an Args list and Returns. It is front-loaded and uses clear formatting, though it could be slightly more concise by avoiding duplication of schema content.

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, the description only vaguely mentions '统计数据点列表' (list of statistical data points). It does not describe the structure of each data point, how pagination works, or what errors may occur. This is insufficient for an agent to fully understand the return format.

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 100%, so the input schema already documents all parameters adequately. The tool description mostly repeats the same information without adding new semantic details or usage nuances.

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 '批量获取统计指标数据' (batch fetch statistical indicator data) and specifies support for multiple metric IDs, time periods, and areas. However, it does not differentiate from sibling tools like cnbs_fetch_metrics or cnbs_search, leaving room for confusion.

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 support for multiple IDs, periods, and areas, providing context on when to use the tool. However, it lacks explicit guidance on when not to use it or alternatives among the many sibling tools.

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

cnbs_get_categoriesGet CNBS CategoriesA
Read-onlyIdempotent

获取所有数据分类信息,包括分类代码、名称和时间粒度。

Returns: 分类列表,包含代码、名称、时间粒度类型

示例返回:

  • 代码 1:月度数据(CPI、PPI等)

  • 代码 2:季度数据(GDP季度值等)

  • 代码 3:年度数据(GDP年度值、人口等)

  • 代码 6:分省年度数据

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by listing example return values and clarifying that the tool returns all categories. It does not contradict annotations.

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 very concise: one short sentence about purpose plus example returns. No fluff, front-loaded with the main action. Every sentence contributes.

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 tool with no parameters and good annotations, the description is fairly complete. It explains the output structure with examples. Minor gap: it does not mention if the output is sorted or any ordering, but examples suffice.

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 tool has no parameters, so the input schema provides no meaning. The description compensates by explaining what the output contains, including example categories, which adds semantic value beyond the 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 gets all category information including code, name, and time granularity. It provides example return values, making the purpose unambiguous. It distinguishes from siblings like cnbs_fetch_nodes or cnbs_get_regions by focusing on categories.

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. It does not mention any prerequisites, when it is appropriate to call it, or when to use other tools instead.

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

cnbs_get_guideGet CNBS MCP GuideA
Read-onlyIdempotent

获取本 MCP 服务器的使用指南,包括工具列表、使用建议和重要提示。建议首次使用时调用此工具了解如何正确使用其他工具。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare read-only, non-destructive, and idempotent. Description adds that the guide includes tool list and tips, fully disclosing behavior without contradiction.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, then usage recommendation. Every word is essential.

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

Completeness5/5

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

For a zero-parameter, read-only guide tool with annotations, the description fully covers what the tool does and when to use it.

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?

No parameters exist; baseline 4 applies. Description correctly omits parameter details as none are needed.

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 it retrieves a usage guide including tool list, suggestions, and tips, which is specific and distinguishable from 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 Guidelines4/5

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

Explicitly recommends use on first access, providing clear context. No explicit exclusions, but the guide's nature makes usage straightforward.

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

cnbs_get_regionsGet CNBS RegionsA
Read-onlyIdempotent

获取可用的地区列表,用于分省数据查询。返回地区代码和名称列表。

Args:

  • keyword (string): 搜索关键词,可选,用于过滤地区

  • level (string): 地区级别过滤,可选:province(省级)、city(市级)、county(县级)

Returns: 地区列表,包含 code(地区代码)、name(全称)、shortName(简称)

示例:

  • 不传参数:返回所有省份

  • keyword="广东":返回广东省

  • keyword="江":返回名称包含"江"的省份(江苏、浙江等)

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNo搜索关键词,如 "广东"、"北京"
levelNo地区级别过滤

TDQS

A4.7/5.0
Behavior5/5

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

Description adds behavioral details beyond annotations: explains return fields (code, name, shortName), shows filtering behavior (e.g., keyword='江' returns provinces with '江'), and default behavior (returns all provinces with no params). No contradictions with annotations.

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

Conciseness4/5

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

Description is well-structured with Args, Returns, and Examples sections. Slightly verbose but clear and front-loaded with purpose.

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

Completeness5/5

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

Tool is simple with only two optional params; description covers purpose, parameters, examples, and return structure completely. No output schema needed.

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 has 100% coverage with descriptions, but description adds examples and clarifies default behavior (no params returns provinces), which is not in 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?

Description states '获取可用的地区列表' (get available region list) and explains filtering by keyword and level, distinguishing it from sibling tools like cnbs_search which search for 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?

Provides examples of usage (no params, keyword filters), but does not explicitly say when to use this tool vs alternatives. However, context from sibling tools makes it clear.

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

cnbs_get_source_categoriesGet Source CategoriesA
Read-onlyIdempotent

获取特定数据源的分类信息。

Args:

  • source (string): 数据源名称,如 "census"、"international"、"department"

Returns: 数据源的分类信息

示例: cnbs_get_source_categories(source="census") cnbs_get_source_categories(source="international")

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes数据源名称

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds minimal behavioral context beyond stating it returns category information, which does not contradict the annotations.

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 concise, well-structured with clear sections (Args, Returns, examples), and every sentence serves a purpose. No unnecessary text.

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 read-only tool with one parameter and no output schema, the description covers the essential purpose and usage. However, it lacks detail on the return format or structure, which could aid the agent.

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 100% coverage with parameter description. The description adds value by providing concrete example values for the 'source' parameter (census, international, department), which are not in 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 the tool gets category information for a specific data source, using a specific verb and resource. However, it does not differentiate from sibling tools like cnbs_get_categories, relying on the tool name's context.

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?

Examples are provided for valid source values, implying usage context. But there is no explicit guidance on when to use this tool versus alternatives (e.g., cnbs_get_categories), or 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.

cnbs_list_data_sourcesList CNBS Data SourcesA
Read-onlyIdempotent

列出所有可用的数据源,包括国家统计局数据、普查数据、国际数据等。

Returns: 数据源列表,包括名称、描述、状态等信息

示例: cnbs_list_data_sources()

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds value by specifying the return content (name, description, status) beyond what annotations provide, but it does not cover any potential limitations like pagination or performance.

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: three sentences covering purpose, return value, and an example. Every sentence is necessary and front-loaded with the key action.

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 absence of parameters and output schema, the description is adequately complete. It explains what the tool does and what it returns. A minor gap is that it does not mention typical use cases or that this tool is for discovery before using other data-fetching tools.

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?

With zero parameters, the baseline is 4. The description correctly adds no parameter details since none exist, and the schema already covers 100% of parameters.

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 verb '列出' (list) clearly specifies the action on the resource '数据源' (data sources). It distinguishes itself from sibling tools like cnbs_fetch_data_from_source or cnbs_search, which operate on specific sources or search within them, by indicating it lists all available sources.

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 implies usage as a starting point to discover available data sources, but it does not explicitly state when or when not to use this tool or mention alternatives. For example, it could clarify that this is for browsing all sources before narrowing down with other tools.

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

cnbs_search_in_sourceSearch in Specific SourceC
Read-onlyIdempotent

在特定数据源中搜索数据。

Args:

  • source (string): 数据源名称,如 "census"、"international"、"department"

  • keyword (string): 搜索关键词

Returns: 搜索结果

示例: cnbs_search_in_source(source="census", keyword="人口") cnbs_search_in_source(source="international", keyword="GDP")

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes数据源名称
keywordYes搜索关键词

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds no new behavioral context such as result format, pagination, or error handling.

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 purpose. The docstring format is slightly redundant (Args/Returns) but overall efficient.

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?

No output schema and the return description is vague. Given sibling tools, the description lacks clarity on scope and limitations. Somewhat incomplete.

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 coverage is 100%, so baseline is 3. The description provides example values for 'source' which adds some meaning, but does not detail constraints or format for 'keyword'.

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 states the tool searches within a specific data source, which is clear and uses a verb+resource structure. However, it does not explicitly differentiate from siblings like 'cnbs_search' or 'cnbs_batch_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 on when to use this tool versus alternatives. Examples are provided but they only show parameter values without explaining selection criteria.

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

ext_bisBIS Statistics QueryA
Read-onlyIdempotent

查询国际清算银行 (BIS) 统计数据。涵盖有效汇率、信贷缺口、住宅房价、债务偿还比率等金融稳定指标。支持同时查询多个国家。完全免费,无需认证。

Args:

  • dataset (string): 数据集名,如 "EER"(有效汇率)、"CREDIT_GAP"(信贷缺口)、"PROPERTY_PRICES"(房价)

  • countries (string | string[]): 单个或多个 ISO2 代码,如 "CN" 或 ["CN","US","DE"];默认 "CN"

  • lastNObservations (number): 最近 N 期,默认 20

  • startPeriod (string): 起始期间,如 "2015-Q1" 或 "2015-01"

预置数据集: EER | CREDIT_GAP | TOTAL_CREDIT | PROPERTY_PRICES | DEBT_SERVICE | CROSS_BORDER_BANKING

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetYes数据集: EER | CREDIT_GAP | TOTAL_CREDIT | PROPERTY_PRICES | DEBT_SERVICE | CROSS_BORDER_BANKING
countriesNo单个或多个 ISO2 代码,如 "CN" 或 ["CN","US","DE"]CN
keyNo覆盖默认键模板(高级用法,单国)
lastNObservationsNo最近 N 期数据
startPeriodNo起始期间,如 "2015-Q1" 或 "2015-01"

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnly, idempotent, and openWorld hints. The description reinforces these by stating 'completely free, no authentication needed' and adds that multiple countries can be queried simultaneously. No contradictions, and it provides useful behavioral context beyond annotations.

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 concise and front-loaded with the main purpose, followed by a structured Args list. However, it fails to include the 'key' parameter in that list, which is an omission that harms completeness without being overly verbose.

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 5 parameters (1 required), no output schema, and good annotations, the description covers the core functionality and free/no-auth context. However, the missing 'key' parameter and lack of detail on pagination or date format prevent it from being fully complete 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 coverage is 100%, so baseline is 3. The description explains most parameters with examples, defaults, and preset datasets. However, it omits the 'key' parameter entirely, which is present in the schema but not mentioned in the Args list, slightly reducing comprehensiveness.

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 queries BIS statistics, lists specific indicators (effective exchange rates, credit gaps, etc.), and mentions multi-country support. It distinguishes from sibling tools by explicitly naming 'BIS' versus other data sources like IMF, World Bank, 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 implies use for BIS data via its name and domain, and adds context that it is free and requires no authentication. However, it does not explicitly state when not to use it or name alternative tools for other data sources, though the sibling list makes this implicit.

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

ext_bis_datasetsList BIS DatasetsB
Read-onlyIdempotent

列出 BIS 数据源支持的所有预置数据集及键模板。

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNo按关键词过滤

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, destructiveHint, idempotentHint. The description adds that it lists 'preset datasets and key templates', but no additional behavioral context. No contradiction.

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?

Single sentence with clear purpose. Efficient, though could be slightly more structured with bullet points.

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?

No output schema, but the description explains what is returned (datasets and key templates). Lacks detail on return format or pagination, adequate for a simple list tool.

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 coverage is 100% with one optional parameter 'keyword' described as 'filter by keyword'. The description adds no extra meaning beyond the 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 it lists all preset datasets and key templates from the BIS data source, using a specific verb ('list') and resource. It distinguishes from siblings like ext_oecd_datasets by specifying BIS.

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 on when to use this tool versus other ext_* list tools. No mention of filtering (though a keyword parameter exists) or comparison to alternatives.

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

ext_cn_censusChina NBS Census DataA
Read-onlyIdempotent

查询国家统计局普查数据(人口普查、经济普查、农业普查)。通过 NBS 官方 API 获取真实数据。

Args:

  • type (string): 普查类型 "population"(人口)| "economic"(经济)| "agriculture"(农业)

  • keyword (string): 自定义搜索关键词(可选,覆盖默认)

  • pageSize (number): 返回结果数,默认 20

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo普查类型population
keywordNo自定义搜索关键词
pageSizeNo返回结果数

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. Description adds '通过 NBS 官方 API 获取真实数据' confirming read-only nature, but no additional behavioral traits like rate limits or data freshness. No contradiction with annotations.

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

Conciseness5/5

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

Concise: one sentence for purpose, then parameter list. Every sentence adds value, front-loaded with purpose. No unnecessary 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?

Covers purpose and all parameters adequately. Lacks description of output format or return structure, but openWorldHint suggests completeness not required. For a data retrieval tool, a note on expected output would improve completeness, but not essential.

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 coverage is 100%, with descriptions in Chinese that match the parameter list in the description. Description adds minor context: for keyword it says '覆盖默认' (overrides default), for pageSize it states default 20. Baseline 3 is appropriate as schema does most of the work.

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?

States it queries China NBS census data (population, economic, agriculture) via official API. Clear verb '查询' and resource '普查数据', distinguishing it from sibling tools like ext_fred or cnbs_search that handle other data sources.

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?

No explicit guidance on when to use this tool versus alternatives. Implied by name and description that it is for Chinese census data, but no when-not-to-use or comparison with similar tools like cnbs_search.

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

ext_cn_departmentChina Department StatisticsA
Read-onlyIdempotent

查询各部门在国家统计局发布的统计数据。涵盖财政、工业、商务、农业、货币金融、社会保障、房地产、能源等。

Args:

  • department (string): 部门键

  • indicator (string): 具体指标关键词(可选,不填则用部门默认首个关键词)

  • pageSize (number): 返回数量,默认 20

  • fetchAll (boolean): 是否获取该部门所有关键词数据(较慢),默认 false

可用部门: finance(财政)| industry(工业)| trade(商务)| agriculture(农业)| monetary(货币金融)| social_security(社保)| housing(房地产)| energy(能源)

ParametersJSON Schema
NameRequiredDescriptionDefault
departmentYes部门键
indicatorNo具体指标关键词,如 "财政收入"
pageSizeNo返回数量
fetchAllNo是否获取该部门所有关键词数据

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds behavioral traits like fetchAll being slow and indicator defaulting to first keyword, providing additional transparency beyond annotations.

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 structured with a header, parameter list, and department enumeration. It is concise and informative, though slightly longer due to the list, but every sentence adds value.

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?

The description lacks information about the output format or structure, which is important since no output schema is provided. It adequately covers input parameters and basic behavior but not the return data.

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 100%, so the baseline is high. The description adds context by listing valid department keys and explaining the behavior of optional parameters (indicator, fetchAll), which adds meaning beyond the 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 it queries department statistics from the National Bureau of Statistics, covering multiple fields. It uses a specific verb 'query' and identifies the resource, and the list of departments distinguishes it from sibling tools like ext_cn_census or ext_cn_department_list.

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 parameter usage details (optional indicator, default values, slow fetchAll) but does not explicitly state when to use this tool versus alternatives. It implies usage context but lacks direct comparisons.

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

ext_cn_department_listList Department CategoriesA
Read-onlyIdempotent

列出所有可查询的部门及其指标关键词列表。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide readOnlyHint and idempotentHint. The description adds that it lists 'all queryable' departments, clarifying the scope. No contradictions, but no additional behavioral detail beyond annotations.

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 a single clear sentence, front-loaded with the core purpose, with no unnecessary 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?

For a simple listing tool with no parameters and adequate annotations, the description is complete. It could optionally mention the return format or ordering, but it is sufficient.

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?

No parameters exist, and schema coverage is 100%. The description is not required to add parameter details, and the baseline of 4 is appropriate.

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 'List all queryable departments and their indicator keyword lists', using a specific verb and resource. It distinguishes itself from sibling tools like ext_cn_department by focusing on listing all departments.

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 on when to use this tool versus alternatives. With many sibling tools, explicit usage conditions or exclusions would help, but they are absent.

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

ext_fredFRED Economic Data (Federal Reserve)B
Read-onlyIdempotent

查询美联储经济数据库 (FRED)。涵盖美国GDP、利率、汇率、通胀、大宗商品价格等 800,000+ 系列。支持同时查询多个系列。 ⚠️ 需要 FRED API Key:在 MCP 客户端配置中添加请求头 X-Fred-Api-Key: (在 https://fred.stlouisfed.org/docs/api/api_key.html 免费申请)。stdio 模式可改用 FRED_API_KEY 环境变量。

Args:

  • series (string | string[]): 单个或多个系列名/FRED代码,如 "FED_FUNDS" 或 ["FED_FUNDS","CNY_USD","OIL_PRICE_WTI"]

  • limit (number): 每个系列返回数量,默认 100

  • sortOrder (string): "desc"(最新优先)或 "asc"

  • observationStart (string): 起始日期,如 "2010-01-01"

常用系列: US_GDP | US_GDP_GROWTH | FED_FUNDS | US_10Y_YIELD | US_2Y_YIELD | CNY_USD | EUR_USD | US_UNEMPLOYMENT | US_CPI | OIL_PRICE_WTI | GOLD_PRICE | US_M2 | SP500 | VIX | DOLLAR_INDEX

ParametersJSON Schema
NameRequiredDescriptionDefault
seriesYes单个系列名或数组,如 "FED_FUNDS" 或 ["FED_FUNDS","CNY_USD"]
limitNo每个系列返回数量
sortOrderNo排序方向desc
observationStartNo起始日期 YYYY-MM-DD
observationEndNo结束日期 YYYY-MM-DD

TDQS

B3.3/5.0
Behavior3/5

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

注解已声明只读、幂等特性,描述额外提供了API密钥配置要求,这是有用的行为信息。但未提及响应格式、速率限制或常见错误,附加值一般。

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?

描述结构清晰:先陈述目的,后给出API密钥警告,再列出参数及示例,最后补充常用系列列表。内容精炼,无冗余,每个部分都有价值。

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?

对于5个参数的工具,描述覆盖了参数细节和API密钥,但缺少输出片段的描述(无输出模式),也没有说明错误处理或限制。尽管注解补充了部分内容,但整体完整性仍有欠缺。

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?

模式描述覆盖率为100%,基线为3。描述在参数示例、常用系列列表和日期格式方面增加了超出模式的实用指导,尤其是series参数的说明和常见系列列举,提升了可用性。

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?

描述明确说明工具用于查询FRED经济数据库,涵盖800k+系列,并支持多系列查询。虽然很清晰,但未与同级工具ext_fred_series进行区分,因此减1分。

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?

描述未提供何时使用此工具而非其他数据源(如ext_imf、ext_oecd)的指导,也没有说明不适用的情况。缺乏使用上下文或替代方案比较。

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

ext_fred_seriesList FRED SeriesA
Read-onlyIdempotent

列出 FRED 数据源支持的所有预置系列(利率、汇率、大宗商品、宏观经济等)。

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNo按关键词过滤

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate read-only, non-destructive, idempotent behavior. Description adds content types (利率、汇率等) but does not disclose pagination, result limits, or other behavioral details beyond annotations.

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?

Single concise sentence in Chinese, no redundant words. Front-loaded with tool purpose and scope.

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 simple schema (1 optional param, no output schema) and clear annotations, description sufficiently covers purpose and content types. Could mention the return format or whether series are paginated, but overall complete for a list endpoint.

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 coverage is 100% with keyword parameter already described as '按关键词过滤'. Description does not add further semantics beyond filtering; baseline score of 3 is appropriate.

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?

Description clearly states the tool lists all preset series from FRED data source (interest rates, exchange rates, commodities, macroeconomics). Verb '列出' (list) and resource 'FRED 系列' are specific and distinct from siblings like ext_fred (which likely fetches data).

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?

Description implies usage for browsing available series but does not explicitly state when to use this tool versus alternatives (e.g., ext_fred or search tools). No when-not-to-use or exclusion criteria provided.

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

ext_global_compareGlobal Economic Indicator ComparisonA
Read-onlyIdempotent

同时从世界银行和 IMF 获取同一指标的多国数据,快速进行国际横向对比。

Args:

  • wbIndicator (string): 世界银行指标,如 "GDP_GROWTH"

  • imfIndicator (string): IMF 指标,如 "GDP_GROWTH"

  • countries (string[]): ISO 代码,如 ["CHN","USA","DEU","JPN","IND"]

  • startYear (number): 起始年份

ParametersJSON Schema
NameRequiredDescriptionDefault
wbIndicatorYes世界银行指标名,如 "GDP_GROWTH"
imfIndicatorNoIMF 指标名,如 "GDP_GROWTH"(不填则只查 WB)
countriesNoISO3 代码数组
startYearNo起始年份

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint, covering safety. The description adds the key behavioral trait of simultaneously fetching from two sources, which is beyond what annotations provide. No contradiction.

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 consists of one purposeful sentence and a structured Args list. Every element adds value without redundancy or unnecessary length.

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 no output schema, the description lacks details on the return format or structure. It mentions fetching data but not whether results are merged or how errors from one source are handled. This leaves the agent guessing about the output, reducing completeness.

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 coverage is 100%, providing baseline 3. The description adds value by noting that omitting imfIndicator queries only World Bank, and specifying ISO3 codes for countries. These details supplement the schema descriptions.

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 fetches multi-country data for the same indicator from both World Bank and IMF, enabling quick international comparison. This distinguishes it from individual source tools like ext_world_bank and ext_imf, which lack cross-source comparison.

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 implies when to use (when needing cross-source comparison for the same indicator), but does not provide explicit guidance on when not to use it or mention alternative tools like individual source tools. Usage context is clear but not comprehensive.

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

ext_imfIMF DataMapper QueryA
Read-onlyIdempotent

查询 IMF 世界经济展望 (WEO) 数据。支持 GDP 增速、通胀、失业率、经常账户、政府债务等。支持同时查询多个指标。完全免费,无需认证。

Args:

  • indicators (string | string[]): 单个或多个指标名/IMF代码,如 "GDP_GROWTH" 或 ["GDP_GROWTH","CPI_INFLATION","GOVT_DEBT"]

  • countries (string[]): ISO 代码数组,如 ["CHN","USA","JPN"];默认 ["CHN"]

  • periods (string[]): 年份数组,如 ["2020","2021","2022","2023"];不传则返回全部

常用指标: GDP_GROWTH | GDP_USD | GDP_PER_CAPITA | CPI_INFLATION | UNEMPLOYMENT | CURRENT_ACCOUNT | GOVT_DEBT | GOVT_BALANCE | GROSS_SAVINGS | INVESTMENT | POPULATION

ParametersJSON Schema
NameRequiredDescriptionDefault
indicatorsYes单个或多个指标名,如 "GDP_GROWTH" 或 ["GDP_GROWTH","CPI_INFLATION"]
countriesNoISO 代码数组,如 ["CHN","USA"]
periodsNo年份数组,如 ["2020","2021","2022"]

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds value by stating '完全免费,无需认证' (completely free, no authentication), which is behavioral context beyond annotations. No contradiction detected.

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 concise, with a front-loaded purpose statement and structured 'Args:' section. Every sentence is informative, and there is no redundant information. It efficiently uses both Chinese and English to cover key points.

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 absence of an output schema, the description does not explain the return format or structure of the query results. While the input parameters and behavior are well-covered, the lack of output details leaves the agent uncertain about what to expect from the response.

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?

With 100% schema description coverage, the description still adds significant value by providing usage examples (e.g., '["GDP_GROWTH","CPI_INFLATION"]') and a comprehensive list of common indicators. This helps the agent select valid parameter values beyond the schema's generic descriptions.

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 it queries IMF World Economic Outlook (WEO) data and lists specific supported indicators. The verb '查询' (query) and resource 'IMF 世界经济展望 (WEO) 数据' are clear. It differentiates from siblings like ext_fred or ext_world_bank by specifying the IMF source, though not explicitly distinguishing from other IMF 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 provides context (free, no auth, supports multiple indicators) but does not explicitly state when to use this tool over alternatives like ext_fred or ext_world_bank. Usage is implied for IMF data queries, but no exclusions or when-not-to-use guidance is given.

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

ext_imf_all_indicatorsIMF All WEO IndicatorsA
Read-onlyIdempotent

获取 IMF DataMapper 完整指标目录(直接调用 IMF API)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds that it directly calls the IMF API, specifying the external source. This goes beyond annotations but still lacks details like response size or potential delays.

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 a single short sentence that is front-loaded with the core purpose. No unnecessary words; every part adds value.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, strong annotations, no output schema), the description is fully adequate. It tells the agent exactly what the tool does and its external dependency.

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 tool has no parameters, so the schema provides full coverage. The description is not required to add parameter information. A baseline score of 4 is appropriate for a zero-parameter tool.

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 the complete indicator catalog from IMF DataMapper, using a specific verb ('获取') and resource ('完整指标目录'). It distinguishes itself from sibling tools like ext_imf_indicators by indicating it returns all indicators.

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 vs alternatives (e.g., ext_imf_indicators). The description only mentions it calls the IMF API directly without any context about prerequisites, limitations, or use cases.

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

ext_imf_indicatorsList IMF IndicatorsB
Read-onlyIdempotent

列出 IMF DataMapper 支持的所有预置指标。

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNo按关键词过滤

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare it read-only, non-destructive, and idempotent. The description adds no behavioral context beyond that.

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?

A single, concise sentence. It is efficient but could benefit from more structure or details.

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?

No output schema is provided, and the description does not explain what the output looks like. Additionally, it lacks context on how this tool relates to similar siblings.

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 coverage is 100% with a single optional 'keyword' parameter described. The description does not add any additional meaning beyond the schema's description.

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 lists all preset indicators. However, it does not differentiate from the sibling tool 'ext_imf_all_indicators', which likely has similar functionality.

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 on when to use this tool versus alternatives like 'ext_imf_all_indicators' or other similar listing tools. The description only states what it does.

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

ext_oecdOECD SDMX Data QueryA
Read-onlyIdempotent

查询 OECD 统计数据(SDMX-JSON)。支持季度GDP、就业、先行指标等。完全免费,无需认证。

Args:

  • dataset (string): 预置数据集名,如 "QNA_GDP"、"KEI_CPI"、"EMPLOYMENT"

  • key (string): SDMX 维度键,如 "Q.G20.B1GQ....V.N"(可选,默认 "all",注意数据量可能较大)

  • startPeriod (string): 起始期间,如 "2015-Q1" 或 "2015-01"

  • lastNObservations (number): 返回最近 N 期,默认 20

预置数据集: QNA_GDP | KEI_CPI | EMPLOYMENT | TRADE

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetYes预置数据集: QNA_GDP | KEI_CPI | EMPLOYMENT | TRADE,或自定义 agencyId+dataflowId
keyNoSDMX 维度键,默认 "all"
agencyIdNo自定义 agencyId,与 dataflowId 配合使用
dataflowIdNo自定义 dataflowId
startPeriodNo起始期间,如 "2015-Q1"
endPeriodNo结束期间
lastNObservationsNo最近 N 期数据

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint; the description adds value by stating it is free, requires no authentication, and warns about potential large data volume when using default key, which are useful behavioral traits beyond metadata.

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 well-structured with an Args section and a preset dataset list, but it partially repeats information already in the schema (parameter descriptions), making it slightly less concise.

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?

The description does not explain the return format or structure of the query results; given there is no output schema, this omission leaves agents without guidance on how to interpret the response.

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 description supplements the 100% schema-covered parameters with examples, preset dataset names, and notes on default behavior (e.g., 'all' key may return large data), adding meaning beyond the schema descriptions.

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 queries OECD statistics (SDMX-JSON) and lists supported datasets, distinguishing it from the sibling tool ext_oecd_datasets which likely lists datasets rather than querying 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?

The description provides clear context (free, no authentication) and examples of dataset usage, but lacks explicit guidance on when to use this tool versus other external data tools like ext_imf or ext_fred.

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

ext_oecd_datasetsList OECD DatasetsA
Read-onlyIdempotent

列出 OECD 数据源支持的所有预置数据集。

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNo按关键词过滤

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds no additional behavioral context (e.g., pagination, rate limits). With annotations present, a 3 is appropriate.

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?

Single sentence in Chinese, no wasted words. Front-loaded with purpose. Appropriate for a simple tool.

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?

The tool is simple, but without an output schema, the description could hint at return format (e.g., dataset names, IDs). It does not, leaving some ambiguity. Still, it is mostly complete for listing datasets.

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 coverage is 100%; the description adds no extra meaning beyond the schema. Baseline 3 is adequate as the parameter is optional and has its own description.

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 lists all pre-built datasets from the OECD data source. The verb 'list' and resource 'datasets' are specific, and the name distinguishes it from sibling tools like 'ext_oecd'.

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 on when to use this tool versus alternatives (e.g., 'ext_oecd' for actual data). It does not mention when not to use it or provide context on filtering.

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

ext_world_bankWorld Bank Open DataA
Read-onlyIdempotent

查询世界银行开放数据。支持 GDP、CPI、贸易、人口、失业率等全球 200+ 国家数据。完全免费,无需认证。

Args:

  • indicator (string): 指标名(如 "GDP"、"CPI"、"UNEMPLOYMENT")或 WB 指标代码(如 "NY.GDP.MKTP.CD")

  • countries (string[]): ISO3 国家代码数组,如 ["CHN","USA","JPN"];默认 ["CHN"]

  • startYear (number): 起始年份,默认 2000

  • endYear (number): 结束年份,默认当前年

常用指标: GDP | GDP_GROWTH | GDP_PER_CAPITA | CPI | UNEMPLOYMENT | POPULATION | EXPORTS | IMPORTS | FDI_INFLOWS | GOVT_DEBT | GINI | LIFE_EXPECTANCY | CO2_EMISSIONS | CURRENT_ACCOUNT

ParametersJSON Schema
NameRequiredDescriptionDefault
indicatorYes指标名如 "GDP" 或 WB 代码如 "NY.GDP.MKTP.CD"
countriesNoISO3 代码数组,如 ["CHN","USA"]
startYearNo起始年份
endYearNo结束年份,默认当前年

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare readOnlyHint and idempotentHint, but the description adds that the tool is '完全免费,无需认证' (completely free, no authentication required), which is beyond annotations. This clarifies access requirements and cost, enhancing transparency.

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 concise: a short introductory sentence, clear parameter definitions with defaults, and a list of common indicators. No redundant information, and the structure is easy to parse.

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?

The description lacks details about the return format or data structure, which is not covered by an output schema. While it includes common indicators and defaults, an agent may need to know the shape of the response to use the tool effectively.

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?

All 4 parameters are described both in the schema and in the description. The description adds value by explaining that indicator can be a common name or WB code, countries are ISO3 codes with defaults, and provides a list of common indicators for reference.

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 '查询世界银行开放数据' (query World Bank open data) and specifies supported indicators (GDP, CPI, etc.) and global 200+ countries. It distinguishes itself from sibling tools like ext_world_bank_indicators and ext_world_bank_multi by focusing on data querying with parameters.

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 explains parameters and lists common indicators but does not provide explicit guidance on when to use this tool versus its siblings. Usage context is implied but not contrasted with alternatives.

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

ext_world_bank_indicatorsList World Bank IndicatorsA
Read-onlyIdempotent

列出世界银行数据源支持的所有预置指标及其代码和说明。

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNo按关键词过滤

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, destructiveHint, idempotentHint. The description adds that it lists 'all preset indicators,' which aligns with openWorldHint=false but adds minimal behavioral context beyond annotations.

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 a single concise sentence in Chinese. It is front-loaded with the action and essential output. Could optionally include more detail, but remains efficient.

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 no output schema, the description adequately describes what is returned (indicators, codes, descriptions). It does not mention pagination or limits, but the tool's simplicity makes this acceptable.

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?

The input schema has one optional parameter with a description in Chinese, covering 100% of parameters. The tool description does not mention the parameter, so it adds no meaning beyond the 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's action (listing indicators), the data source (World Bank), and what is included (codes and descriptions). It distinguishes from siblings like ext_world_bank (likely for fetching data) and ext_world_bank_multi.

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?

No explicit guidance on when to use this tool versus alternatives, such as ext_world_bank. The purpose implies it is for discovering available indicators before querying data, but this is not stated.

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

ext_world_bank_multiWorld Bank Multi-Indicator QueryA
Read-onlyIdempotent

同时查询世界银行多个指标,跨国对比。

Args:

  • indicators (string[]): 指标数组,如 ["GDP_GROWTH","CPI","UNEMPLOYMENT"]

  • countries (string[]): ISO3 代码数组,如 ["CHN","USA","DEU"]

  • startYear (number): 起始年份

  • endYear (number): 结束年份

ParametersJSON Schema
NameRequiredDescriptionDefault
indicatorsYes指标数组
countriesNoISO3 代码数组
startYearNo起始年份
endYearNo结束年份

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true, indicating a safe read operation. The description adds no behavioral traits beyond that, such as rate limits or error behavior. It does not contradict annotations, so baseline of 3 is appropriate.

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 concise: a one-line Chinese summary followed by a structured docstring listing parameters. It is front-loaded and avoids unnecessary detail. The docstring format is slightly redundant with the schema but still 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 moderate complexity (multi-indicator, multi-country), the description covers query intent and parameter semantics well. However, it lacks information about the return format (since no output schema exists) and any limitations or pagination. It is adequate but could be more 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?

Schema description coverage is 100%, so baseline is 3. The description adds value by providing realistic examples for indicators (e.g., 'GDP_GROWTH', 'CPI') and countries (e.g., 'CHN', 'USA'), and clarifying that countries use ISO3 codes. This practical guidance raises the score to 4.

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 queries multiple World Bank indicators simultaneously and enables cross-country comparison. The verb 'query' and resource 'multiple World Bank indicators' are specific, and it distinguishes from siblings like ext_world_bank (single indicator) and ext_world_bank_indicators (list 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 implies when to use (multi-indicator, cross-country queries) via the title and summary, and provides detailed argument examples. However, it does not explicitly state when not to use or mention alternatives like ext_world_bank for single indicators, which would improve guidance.

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. Dates show when Glama detected each change.

  1. 31 tool updatesv1.1.0
    • First observedcnbs_batch_search
    • First observedcnbs_compare
    • First observedcnbs_economic_snapshot
    • First observedcnbs_fetch_data_from_source
    • First observedcnbs_fetch_end_nodes
    • First observedcnbs_fetch_metrics
    • First observedcnbs_fetch_nodes
    • First observedcnbs_fetch_series
    • First observedcnbs_get_categories
    • First observedcnbs_get_guide
    • First observedcnbs_get_regions
    • First observedcnbs_get_source_categories
    • First observedcnbs_list_data_sources
    • First observedcnbs_search
    • First observedcnbs_search_in_source
    • First observedext_bis
    • First observedext_bis_datasets
    • First observedext_cn_census
    • First observedext_cn_department
    • First observedext_cn_department_list
    • First observedext_fred
    • First observedext_fred_series
    • First observedext_global_compare
    • First observedext_imf
    • First observedext_imf_all_indicators
    • First observedext_imf_indicators
    • First observedext_oecd
    • First observedext_oecd_datasets
    • First observedext_world_bank
    • First observedext_world_bank_indicators
    • First observedext_world_bank_multi

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but there is some overlap between cnbs_search and cnbs_batch_search (both search by keyword), and between cnbs_fetch_data_from_source and the dedicated ext_* tools. Detailed descriptions help differentiate, but agents might still confuse similar functions.

Naming Consistency3/5

The cnbs_ tools mix verbs inconsistently: fetch_, get_, list_, search_. The ext_ tools follow a more consistent pattern (ext_<source>_<action>). This inconsistency may confuse agents expecting a uniform naming convention.

Tool Count2/5

With 31 tools, the server exceeds the recommended range (3-15). While each tool serves a distinct purpose, the high number can overwhelm agents and increase selection difficulty. A more streamlined surface would improve coherence.

Completeness5/5

The tool set covers a comprehensive range of data retrieval operations: search, browse hierarchies, batch queries, comparisons, and dedicated access to major international sources (BIS, IMF, OECD, World Bank, FRED). There are no obvious gaps for the stated domain of Chinese and global economic data.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to 800,000+ Federal Reserve Economic Data (FRED) time series, enabling users to search, retrieve, and analyze economic indicators like GDP, unemployment, inflation, and interest rates through natural language queries.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time quotes, fund flows, and corporate announcements for Chinese A-share stocks. It enables users to search for stocks, analyze financial indicators, and summarize quarterly reports through natural language.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables users to query Chinese A-share stock data, including stock basics, historical prices, financial reports, and macroeconomic indicators.
    1
    MIT
  • A
    license
    A
    quality
    D
    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
    61
    16
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/icen-ai/mcp-cnbs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server