e-Stat MCP
This server provides MCP tools to search, retrieve, and manage Japanese government statistics via the e-Stat API.
Search statistical tables by keyword, survey year, stats code, government code, field, update date, etc. (
get_stats_list,search_stats_by_keyword)Get statistical table metadata (
get_meta_info)Retrieve statistical data by stats table ID, with filtering by area, time, category, and level codes (
get_stats_data)Bulk-fetch multiple statistical tables or datasets (
get_stats_data_bulk)Register, update, delete, and reference datasets (
post_dataset,get_dataset)Get data catalog information (
get_data_catalog)Retrieve CSV versions of lists, metadata, and data (
get_stats_list_csv,get_meta_info_csv,get_stats_data_csv,get_data_catalog_csv)Get the list of statistical field codes (
get_stats_fields)
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@e-Stat MCPsearch for population statistics in Tokyo from 2020"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
e-Stat MCP
政府統計の総合窓口(e-Stat)API MCP サーバー。
Features
統計表情報の検索(JSON/CSV)
統計データの取得・一括取得(JSON/CSV)
メタ情報の取得(JSON/CSV)
データセットの登録・参照
データカタログ情報の取得(JSON/CSV)
キーワード検索
Related MCP server: mcp-estat-japan
Data Source
e-Stat API: https://www.e-stat.go.jp/api/
API仕様: https://www.e-stat.go.jp/api/api-info/e-stat-manual3-0
出典:政府統計の総合窓口(e-Stat)(https://www.e-stat.go.jp/)
Installation
uv tool install git+https://github.com/koizumikento/e-stats-mcp.gitOr install locally:
git clone https://github.com/koizumikento/e-stats-mcp.git
cd e-stats-mcp
uv syncConfiguration
Application ID
e-Stat APIを使用するにはアプリケーションIDが必要です。
e-Stat API にアクセス
ユーザー登録・ログイン
アプリケーションIDを取得
環境変数に設定:
export E_STAT_APP_ID="your-app-id"MCP Server Configuration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Installed version:
{
"mcpServers": {
"e-stats-mcp": {
"command": "e-stats-mcp",
"env": {
"E_STAT_APP_ID": "your-app-id"
}
}
}
}Direct from GitHub:
{
"mcpServers": {
"e-stats-mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/koizumikento/e-stats-mcp.git",
"e-stats-mcp"
],
"env": {
"E_STAT_APP_ID": "your-app-id"
}
}
}
}Local development:
{
"mcpServers": {
"e-stats-mcp": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/e-stats-mcp",
"e-stats-mcp"
],
"env": {
"E_STAT_APP_ID": "your-app-id"
}
}
}
}Codex
Add to ~/.codex/config.toml:
Direct from GitHub:
[mcp_servers.e-stats-mcp]
command = "uvx"
args = [
"--from",
"git+https://github.com/koizumikento/e-stats-mcp.git",
"e-stats-mcp",
]
env = { E_STAT_APP_ID = "your-app-id" }Local development:
[mcp_servers.e-stats-mcp]
command = "uv"
args = [
"run",
"--directory",
"/path/to/e-stats-mcp",
"e-stats-mcp",
]
env = { E_STAT_APP_ID = "your-app-id" }Cursor
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"e-stats-mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/koizumikento/e-stats-mcp.git",
"e-stats-mcp"
],
"env": {
"E_STAT_APP_ID": "your-app-id"
}
}
}
}Available Tools
統計表検索
get_stats_list/get_stats_list_csv- 統計表情報を検索search_stats_by_keyword- キーワードで簡単検索
メタ情報取得
get_meta_info/get_meta_info_csv- 統計表のメタ情報を取得
統計データ取得
get_stats_data/get_stats_data_csv- 統計データを取得get_stats_data_bulk- statsDatasSpec形式で複数ID/データセットを一括取得
データセット
post_dataset- データセット登録(postDataset)get_dataset- データセット参照(refDataset)
refDataset はAPI側に一覧取得用の limit / startPosition がないため、
get_dataset でデータセット一覧を取得する場合の limit / start_position はMCP側で適用されます。
データカタログ
get_data_catalog/get_data_catalog_csv- データカタログ情報を取得
広いキーワードだけでデータカタログを検索すると、e-Stat API側で非常に多くの候補に一致して
時間がかかることがあります。まず get_stats_list で統計表候補を探し、stats_code などで
絞ってから get_data_catalog を呼ぶのがおすすめです。広すぎる検索や upstream timeout では、
MCPクライアントが自己修正しやすいように MCP_GUIDANCE または structuredContent.error に
次に試すべき呼び出しを含めて返します。
get_data_catalog_csv も広すぎる検索ではCSV文字列だけでなく、csv と MCP_GUIDANCE を含む
JSONオブジェクトを返します。
分野コード
get_stats_fields- 統計分野コード一覧(静的マッピング)
Examples
キーワードで統計を検索
Tool: search_stats_by_keyword
Arguments: {"keyword": "人口", "limit": 10}統計表情報をCSVで取得
Tool: get_stats_list_csv
Arguments: {"search_word": "国勢調査", "survey_years": "2020", "limit": 5}統計表情報を詳細検索
Tool: get_stats_list
Arguments: {"search_word": "国勢調査", "survey_years": "2020"}統計データを取得
Tool: get_stats_data
Arguments: {"stats_data_id": "0003411001", "limit": 50}統計データを一括取得
Tool: get_stats_data_bulk
Arguments: {
"requests": [
{"statsDataId": "0003411001", "limit": "100"},
{"statsDataId": "0003411002", "limit": "100"}
]
}stats_data_ids / dataset_ids も後方互換用に利用できますが、e-Stat APIには内部で
statsDatasSpec JSON文字列として送信されます。limit / startPosition はMCP側で
e-Stat APIが受け付ける文字列形式に正規化されます。
メタ情報を取得
Tool: get_meta_info
Arguments: {"stats_data_id": "0003411001"}データセットを登録
Tool: post_dataset
Arguments: {
"dataset_name": "sample-dataset",
"stats_data_id": "0003411001",
"conditions": {"cdCat01": "000"}
}postDataset はe-Stat API側の応答がXMLのみのため、このMCPではXMLをdictに変換して返します。
APIの業務エラーは通常データではなくツールエラーとして扱います。
データカタログ情報をCSVで取得
Tool: get_data_catalog_csv
Arguments: {"search_word": "人口", "limit": 20}e-Stat API 3.0にはデータカタログ取得のCSVエンドポイントがないため、MCP側で
JSON版 getDataCatalog の DATA_CATALOG_INF をCSVへ変換して返します。
統計分野コード一覧を取得
Tool: get_stats_fields
Arguments: {}統計分野コード
コード | 分野 |
01 | 国土・気象 |
02 | 人口・世帯 |
03 | 労働・賃金 |
04 | 農林水産業 |
05 | 鉱工業 |
06 | 商業・サービス業 |
07 | 企業・家計・経済 |
08 | 住宅・土地・建設 |
09 | エネルギー・水 |
10 | 運輸・観光 |
11 | 情報通信・科学技術 |
12 | 教育・文化・スポーツ・生活 |
13 | 行財政 |
14 | 司法・安全・環境 |
15 | 社会保障・衛生 |
16 | 国際 |
17 | その他 |
License
Available Tools
13 toolsget_data_catalogARead-only
データカタログ情報を取得する.
広い探索にはget_stats_listを使い、stats_code等で候補を絞ってから get_data_catalogを呼ぶと安定しやすい。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 取得件数 | |
| gov_code | No | 政府機関コード | |
| open_years | No | 公開年 | |
| stats_code | No | 政府統計コード | |
| search_word | No | 検索キーワード | |
| stats_field | No | 統計分野コード | |
| survey_years | No | 調査年 | |
| updated_date | No | 更新日 | |
| start_position | No | データ取得開始位置 | |
| stats_name_list | No | 調査・集計の種類 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the agent already knows this is a safe read operation. The description adds a behavioral hint about stability when narrowing candidates ('安定しやすい'), but does not disclose other traits like pagination or rate limits. With annotations covering the safety profile, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence states the purpose, and the second provides actionable usage guidance relative to a sibling. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are documented. All parameters are described in the schema, annotations cover read-only safety, and the usage guidance clarifies the recommended workflow. Minor gaps like detailed filtering behaviors or examples are absent, but not critical given the schema and output schema. Overall, an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning each of the 10 parameters has a description in the schema. The tool description itself does not add additional semantic meaning beyond what the schema provides, but given full coverage, this is sufficient. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (取得する) and resource (データカタログ情報), and distinguishes itself from the sibling get_stats_list by explaining that get_stats_list is for broad search. This clearly tells an agent what this tool does and how it differs from a closely related alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage guidance: for broad searches, use get_stats_list first, then narrow candidates with stats_code before calling get_data_catalog for stability. This gives clear when-to-use and when-not-to-use instructions relative to a specific sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_data_catalog_csvARead-only
データカタログ情報をCSVで取得する.
e-Stat API 3.0にはデータカタログのCSVエンドポイントがないため、 JSON版getDataCatalogのデータカタログ行をMCP側でCSVへ変換する。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| gov_code | No | ||
| open_years | No | ||
| stats_code | No | ||
| search_word | No | ||
| stats_field | No | ||
| survey_years | No | ||
| updated_date | No | ||
| start_position | No | ||
| stats_name_list | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, covering the safety profile. The description adds the behavior of fetching JSON data and converting it to CSV, which is a meaningful operational detail. However, it does not disclose other behaviors like response size, pagination, or performance implications of the conversion. This aligns with the get_calls calibration example—adds scoping (conversion) but lacks richer behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste. The main purpose is front-loaded, and the second sentence provides essential context (why the CSV is generated). Every word contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose and the conversion logic but is incomplete given the complexity: 10 parameters with no schema descriptions and an output schema (CSV) that is not detailed. An agent cannot correctly construct a call without understanding parameter semantics. The lack of any parameter guidance makes this inadequate for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description is the only source of parameter meaning, yet it mentions none of the 10 parameters (limit, gov_code, open_years, etc.). An agent has no guidance on what these parameters control. The description fails entirely to compensate for the lack of schema documentation, making this a significant gap for a tool with this many parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (取得する/retrieve), the resource (データカタログ情報/data catalog info), and the output format (CSV). It distinguishes itself from the sibling get_data_catalog by explicitly mentioning CSV conversion and referencing the JSON version, leaving no ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the rationale for the tool (no CSV endpoint in e-Stat API 3.0, so conversion is done MCP-side), implying that this tool is used when CSV output is needed. It indirectly references the JSON alternative (getDataCatalog) but does not explicitly state 'use this instead of get_data_catalog for CSV' or mention any other condition. The context is clear, but explicit exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datasetCRead-only
データセットを参照する.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 取得件数 | |
| dataset_id | No | 取得対象のデータセットID(省略時は利用可能一覧) | |
| start_position | No | データ取得開始位置 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already signals a safe read operation, and the description does not contradict it. However, the description adds no behavioral context beyond the annotation – it does not disclose whether pagination is supported, what the response contains, or any limitations. With output schema present, the return structure is documented elsewhere, but the description itself contributes nothing beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise and front-loaded. However, it is under-specified to the point of being unhelpful – brevity is not a substitute for content. It is structured as a minimal phrase but lacks the substance needed for effective tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and readOnly annotation, the description lacks crucial context about what a 'dataset' is in this API, how it relates to sibling tools, and what the agent should expect when calling it. The tool is simple (3 optional params), but even so, the description is inadequate for an agent to confidently choose or invoke this tool over its many alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (limit, dataset_id, start_position) are documented in the schema. The description adds no additional meaning about parameter usage or relationships. Baseline 3 is appropriate since the schema fully handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'データセットを参照する' ('refer to the dataset'), which is nearly a tautology with the tool name get_dataset. It does not specify whether the tool retrieves a single dataset by ID or lists available datasets, even though the schema indicates both are possible. It also does not differentiate from sibling tools like get_stats_data or get_data_catalog, which likely also fetch datasets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the many sibling tools (get_stats_list, get_meta_info, get_data_catalog, etc.). There is no mention of intended scenarios, alternatives, or exclusions, leaving the agent to guess based solely on the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meta_infoBRead-only
統計表のメタ情報を取得する.
| Name | Required | Description | Default |
|---|---|---|---|
| stats_data_id | Yes | 統計表ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint: true, and the description merely says 'get', adding no extra behavioral context such as response format, error scenarios, or any special handling. The description does not contradict the annotation but also does not enrich the agent's understanding of what happens beyond the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and object. There is zero fluff, and every word contributes to understanding the tool's primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, read-only annotation, and an existing output schema), the description is adequate for an agent to call it correctly. It does not detail what meta information includes, but the output schema likely covers that; the lack of sibling differentiation is a minor gap for such a straightforward getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the single parameter (stats_data_id) with a clear description ('統計表ID'), so the baseline of 3 applies. The description adds no additional parameter semantics beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('取得する' = get) and resource ('統計表のメタ情報' = meta info of a statistical table), clearly indicating the tool's function. However, it does not distinguish itself from sibling tools like get_meta_info_csv or get_stats_fields, which could lead to ambiguity in selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many sibling tools. It does not mention alternatives or the context that would make this the preferred choice (e.g., when you need metadata rather than data or a CSV export).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meta_info_csvCRead-only
統計表のメタ情報をCSVで取得する.
| Name | Required | Description | Default |
|---|---|---|---|
| stats_data_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to restate that. It does add the CSV format detail, which is useful. However, it doesn't disclose other behaviors such as rate limits, response size, or pagination. Given the annotation coverage, the description adds limited but relevant context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the purpose and format. It is concise and free of fluff, but it is also minimal. It earns its place by conveying the core action and output format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single parameter, an output schema, and readOnlyHint annotation. However, the description omits key contextual information: what 'stats_data_id' represents, how it relates to other tools, and when to choose CSV over JSON. This leaves gaps in understanding for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single required parameter 'stats_data_id' with no description (0% coverage). The tool description also does not explain what this ID is or how to obtain it. Thus, the agent has no semantic guidance for this parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb (取得する) and resource (統計表のメタ情報) and explicitly mentions CSV format, which distinguishes it from get_meta_info. However, it does not explicitly name the sibling or describe the exact difference beyond format, so it's clear but not fully differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_meta_info or get_stats_data_csv. The description only states what it does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stats_dataCRead-only
統計データを取得する.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 取得件数(デフォルト100件) | |
| cdarea | No | 地域コード(絞り込み用) | |
| cdtime | No | 時間軸コード(絞り込み用) | |
| cdcat01 | No | 分類事項01のコード(絞り込み用) | |
| cdcat02 | No | 分類事項02のコード(絞り込み用) | |
| cdcat03 | No | 分類事項03のコード(絞り込み用) | |
| lvcat01 | No | ||
| lvcat02 | No | ||
| lvcat03 | No | ||
| lvcat04 | No | ||
| lvcat05 | No | ||
| lvcat06 | No | ||
| lvcat07 | No | ||
| lvcat08 | No | ||
| lvcat09 | No | ||
| lvcat10 | No | ||
| lvcat11 | No | ||
| lvcat12 | No | ||
| lvcat13 | No | ||
| lvcat14 | No | ||
| lvcat15 | No | ||
| cnt_get_flg | No | 件数取得フラグ(Trueで有効) | |
| stats_data_id | Yes | 統計表ID | |
| start_position | No | データ取得開始位置 | |
| section_header_flg | No | セクションヘッダ出力フラグ(Trueで出力、Falseで非出力) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the description does not need to restate safety. However, the description adds no behavioral context beyond that, such as whether results are paginated, the format of the response, or the meaning of the many filter parameters. Given the annotations cover safety, the bar is lower, but the description still provides zero additional behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise in length, but it is under-specified, not appropriately concise. It lacks any structured information about parameters, usage, or response behavior. Front-loading is irrelevant since there is nothing substantive to front-load.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has 25 parameters, an output schema, and complex filtering options, yet the description is a bare statement. It completely fails to convey essential information like what the tool returns, how to use the filter codes, the meaning of flags like cnt_get_flg or section_header_flg, and how this tool differs from siblings. Given the complexity, this is grossly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 40% schema description coverage, the description is expected to compensate for the many undocumented parameters (especially the 15 lvcat parameters). It does not mention any parameter semantics at all. The description gives no clues about how codes like cdarea, cdtime, or lvcat01 should be formatted or used. This is a severe gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '統計データを取得する' (get statistical data) states a verb and a vague resource, but it does not clarify exactly what kind of statistical data (e.g., a specific data table vs. metadata vs. lists). It is not a tautology, but it fails to distinguish this tool from siblings like get_stats_list, get_stats_fields, or get_stats_data_csv, which likely have distinct purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the many sibling tools. There is no mention of typical use cases, required prerequisites, or how to choose between get_stats_data, get_stats_data_csv, or get_stats_data_bulk. The description is purely a one-line statement with no context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stats_data_bulkBRead-only
複数の統計表ID/データセットIDから統計データを一括取得する.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 後方互換用の取得件数 | |
| requests | No | statsDatasSpecに入れる取得条件のリスト | |
| dataset_ids | No | 後方互換用のデータセットIDリスト | |
| start_position | No | 後方互換用のデータ取得開始位置 | |
| stats_data_ids | No | 後方互換用の統計表IDリスト |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations: '取得する' (fetch) is consistent with readOnlyHint=true, so there is no contradiction. The only added behavior is the bulk-across-multiple-IDs nature, which is largely implied by the tool name. It does not warn about potentially large responses from bulk fetches or what happens if one ID in the batch fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded Japanese sentence with zero filler, conveying purpose and scope efficiently. Slightly under-specified rather than verbose, which is acceptable conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema and readOnly annotation, the tool is a complex bulk operation with a primary free-form `requests` field whose structure is unexplained. The description does not cover request-spec semantics, whether IDs are AND/OR combined, or batch/limit behavior. For a bulk tool that is the heavier counterpart of get_stats_data, this is a meaningful completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so per the rubric the baseline is 3. The description adds only marginal value by mapping the 'multiple IDs' phrasing onto stats_data_ids/dataset_ids. It does not compensate for the opaque `requests` parameter, which is a free-form object (additionalProperties: true) referencing the API-internal 'statsDatasSpec' — the agent cannot infer its structure without outside knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (一括取得する, bulk-fetch), a concrete resource (統計データ, statistical data), and the scope (複数の統計表ID/データセットID, multiple table/dataset IDs). The 'bulk' + 'multiple IDs' framing clearly separates it from the sibling get_stats_data, though it never names the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to prefer this tool over get_stats_data or the CSV variants. Nothing states 'use this when fetching multiple tables at once', no exclusions, no context about payload-size trade-offs. The definition's own sibling get_stats_data exists and the description never acknowledges the choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stats_data_csvCRead-only
統計データをCSVで取得する.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cdarea | No | ||
| cdtime | No | ||
| cdcat01 | No | ||
| cdcat02 | No | ||
| cdcat03 | No | ||
| lvcat01 | No | ||
| lvcat02 | No | ||
| lvcat03 | No | ||
| lvcat04 | No | ||
| lvcat05 | No | ||
| lvcat06 | No | ||
| lvcat07 | No | ||
| lvcat08 | No | ||
| lvcat09 | No | ||
| lvcat10 | No | ||
| lvcat11 | No | ||
| lvcat12 | No | ||
| lvcat13 | No | ||
| lvcat14 | No | ||
| lvcat15 | No | ||
| cnt_get_flg | No | ||
| stats_data_id | Yes | ||
| start_position | No | ||
| section_header_flg | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral details beyond the annotated readOnlyHint. It does not disclose pagination, rate limits, response format specifics, or what happens with filtering parameters. The annotation covers the read-only nature, but the description adds no additional context, leaving the agent uninformed about important operational behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) and front-loads the core purpose. However, it lacks any structure such as examples, constraints, or parameter hints. While brevity is good, this is under-specified for a tool with many parameters, making it more under-specification than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (25 parameters), the description is grossly incomplete. It does not explain return format, pagination, filtering behavior, or how it differs from siblings. Even with an output schema present, the description provides almost no context to guide correct usage. The tool cannot be effectively invoked without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 25 parameters with 0% schema description coverage, and the description gives no explanation of any parameter. Without any guidance, the agent cannot correctly interpret the meaning or usage of parameters like cdarea, cdtime, lvcat01-15, or flags like cnt_get_flg. The description fails to compensate for the lack of schema clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (取得する - retrieve) and resource (統計データ - statistical data) with the format (CSV), making the core purpose clear. However, it does not differentiate from sibling tools like get_stats_data or get_stats_data_bulk, which could share similar functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention any prerequisites, conditions, or cases where this tool is preferred over siblings such as get_stats_data (possibly JSON format) or get_stats_data_bulk.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stats_fieldsARead-only
統計分野コード一覧を返す.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description consistently states it returns a list, aligning with the read-only nature. However, no additional behavioral context is provided—such as whether the list is static, cached, or filtered—beyond the annotation. The description does not contradict the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence in Japanese, front-loaded with the action and resource. There is no redundant information, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with no parameters and an output schema, the description is adequately complete. It does not explain the purpose or when to use the codes, but given the tool's simplicity and existing output schema, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema requires no explanation. The description adds no parameter details, but it is unnecessary; the baseline of 4 applies for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a list of statistics field codes (統計分野コード一覧を返す), specifying a concrete verb and resource. It does not explicitly differentiate from sibling tools like get_stats_list, but the reference to field codes is distinct enough to infer its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_stats_list or get_meta_info. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stats_listCRead-only
統計表情報を検索する.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 取得件数(デフォルト10件、最大100件) | |
| gov_code | No | 政府機関コード | |
| open_years | No | 公開年(YYYY形式、範囲指定はYYYY-YYYY) | |
| stats_code | No | 政府統計コード(5桁または8桁) | |
| search_word | No | 検索キーワード(統計表名、調査名など) | |
| stats_field | No | 統計分野コード(2桁) | |
| survey_years | No | 調査年(YYYY形式、範囲指定はYYYY-YYYY) | |
| updated_date | No | 更新日(YYYY-MM-DD) | |
| start_position | No | データ取得開始位置 | |
| stats_name_list | No | 調査・集計の種類 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation covers safety, but the description adds no behavioral context such as pagination, result limits, or what happens with no filters. For a tool with 10 parameters, this is minimal disclosure beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence, which is concise and front-loaded. However, it is so sparse that it lacks substantive utility, though conciseness itself is not penalized heavily.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters) and the large sibling set, the description is far from complete. It provides no examples, no output description (though output schema exists), and no guidance on which parameters are commonly used together, making it inadequate for an agent to call this correctly without further discovery.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional meaning about parameter usage or relationships, but does not need to compensate since the schema is complete. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('検索する' / search) and resource ('統計表情報' / statistical table information), making its basic purpose clear. However, it does not differentiate from siblings like search_stats_by_keyword or get_stats_list_csv, leaving ambiguity about which search tool to select.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. With 12 siblings including get_stats_list_csv, get_stats_data, and search_stats_by_keyword, the description provides no selection criteria or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stats_list_csvCRead-only
統計表情報をCSVで取得する.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| gov_code | No | ||
| open_years | No | ||
| stats_code | No | ||
| search_word | No | ||
| stats_field | No | ||
| survey_years | No | ||
| updated_date | No | ||
| start_position | No | ||
| stats_name_list | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds minimal context beyond stating the CSV format, with no mention of pagination, limits, rate limits, or any side effects. It does not contradict the annotations, but provides no additional behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no excess wording or filler. It is front-loaded with the core action and format, making it easy to parse. However, its brevity borders on underspecification, though that is penalized in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 optional parameters, no schema descriptions), this one-line description is severely incomplete. It fails to convey what the function does in detail, when to use it, or how to interpret parameters. The presence of an output schema mitigates return-value explanation, but the description still lacks essential context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema has no descriptions for any of the 10 parameters. The description must compensate by explaining parameters or typical usage, but it says nothing about limit, gov_code, open_years, stats_code, or any other parameter. This is a critical gap that leaves the agent unable to understand parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb (取得する 'retrieve'), resource (統計表情報 'statistics list information'), and format (CSV). It distinguishes from the sibling get_stats_list by explicitly noting the CSV output, though it doesn't elaborate on the nature of the statistics list or provide any parameter context. This is clear enough for basic identification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no indication of when to use this tool versus alternatives such as get_stats_list or other CSV variants. There is no mention of conditions, exclusions, or recommendations, leaving the agent without guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_datasetC
データセットを登録する.
| Name | Required | Description | Default |
|---|---|---|---|
| conditions | No | 取得条件(cdCatXX, cdTime, cdArea などを辞書で指定) | |
| data_set_id | No | 更新・削除対象のデータセットID(削除時に必須) | |
| dataset_name | No | データセット名 | |
| process_mode | No | 処理モード(E: 登録・更新、D: 削除) | E |
| stats_data_id | No | 統計表ID(登録・更新時に必須) | |
| open_specified | No | 公開可否(e-Stat APIのopenSpecified) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies mutation ('登録' register) but fails to mention that the tool can also update or delete, and does not disclose requirements like stats_data_id being mandatory for registration/update or data_set_id for deletion. The agent is left with minimal warning of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but severely under-specified. It conveys only a vague purpose without operational details, so it is closer to under-specification than efficient conciseness. No effort is made to front-load key constraints or mode info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, multiple modes (E/D), and likely side effects, the description is drastically incomplete. It does not explain the process_mode semantics, required fields per mode, or any output (despite output schema existing). The agent lacks essential context to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 6 parameters with descriptions. The tool description adds nothing beyond what the schema provides. Per calibration, baseline is 3 when coverage exceeds 80%, so this score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('データセットを登録する', register a dataset), which is clear enough to identify the tool as a write operation. However, it omits that the tool also handles update and delete based on process_mode, and it does not differentiate from the sibling get_* tools beyond the obvious write intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention conditions for registration vs update vs deletion, and does not refer to any sibling tools. An agent would have no idea what triggers this tool over get_dataset or others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stats_by_keywordBRead-only
キーワードで統計情報を検索する.
より簡単に統計表を検索するためのヘルパーツール。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 取得件数(デフォルト20件) | |
| keyword | Yes | 検索キーワード(例: "人口", "GDP", "雇用") |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description does not need to restate that. Beyond that, the description adds minimal behavioral context – 'helper tool for searching statistical tables more easily' hints at simplification but does not disclose return format, sorting, pagination, or any side effects. Since annotations cover the safety profile, the bar is lower, but the description still lacks substantive behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no redundancy, and the core purpose is front-loaded. Every word contributes; it is appropriately concise without being under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (2 params, no nested objects, output schema present), the description covers the basic 'what' but lacks usage guidance. An agent could call it correctly, but might not know when to prefer it over get_stats_list_csv or get_dataset. With output schema present, return-value details are not required, so a 3 is fair.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – both 'keyword' and 'limit' have descriptions in the schema. The description itself does not mention any parameter details, so it adds no value beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('search') and resource ('statistical information by keyword'), making the primary function unambiguous. However, it does not explicitly distinguish itself from sibling tools like get_stats_list, which could also return statistical data, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., get_stats_list, get_dataset). It only calls itself a 'helper tool' without explaining the specific scenario or exclusions, leaving the agent to infer usage.
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.
13 tool updates
v0.4.0- Changed
get_data_catalog11 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / gov_code / descriptionAdded value: +"政府機関コード" - added
Input schema / properties / limit / descriptionAdded value: +"取得件数" - added
Input schema / properties / open_years / descriptionAdded value: +"公開年" - added
Input schema / properties / search_word / descriptionAdded value: +"検索キーワード" - added
Input schema / properties / start_position / descriptionAdded value: +"データ取得開始位置" - added
Input schema / properties / stats_code / descriptionAdded value: +"政府統計コード" - added
Input schema / properties / stats_field / descriptionAdded value: +"統計分野コード" - added
Input schema / properties / stats_name_list / descriptionAdded value: +"調査・集計の種類" - added
Input schema / properties / survey_years / descriptionAdded value: +"調査年" - added
Input schema / properties / updated_date / descriptionAdded value: +"更新日"
- Changed
get_data_catalog_csv3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / result / anyOfAdded value: +[ + { + "type": "string" + }, + { + "additionalProperties": true, + "type": "object" + } +] - removed
Output schema / properties / result / typeRemoved value: -"string"
- Changed
get_dataset4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / dataset_id / descriptionAdded value: +"取得対象のデータセットID(省略時は利用可能一覧)" - added
Input schema / properties / limit / descriptionAdded value: +"取得件数" - added
Input schema / properties / start_position / descriptionAdded value: +"データ取得開始位置"
- Changed
get_meta_info2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / stats_data_id / descriptionAdded value: +"統計表ID"
- Changed
get_meta_info_csv1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_stats_data14 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / cdarea / descriptionAdded value: +"地域コード(絞り込み用)" - added
Input schema / properties / cdcat01 / descriptionAdded value: +"分類事項01のコード(絞り込み用)" - added
Input schema / properties / cdcat02 / descriptionAdded value: +"分類事項02のコード(絞り込み用)" - added
Input schema / properties / cdcat03 / descriptionAdded value: +"分類事項03のコード(絞り込み用)" - added
Input schema / properties / cdtime / descriptionAdded value: +"時間軸コード(絞り込み用)" - added
Input schema / properties / cnt_get_flg / descriptionAdded value: +"件数取得フラグ(Trueで有効)" - added
Input schema / properties / limit / descriptionAdded value: +"取得件数(デフォルト100件)" - added
Input schema / properties / section_header_flg / anyOfAdded value: +[ + { + "type": "boolean" + }, + { + "type": "null" + } +] - changed
Input schema / properties / section_header_flg / defaultPrevious value: -falseNew value: +null - added
Input schema / properties / section_header_flg / descriptionAdded value: +"セクションヘッダ出力フラグ(Trueで出力、Falseで非出力)" - removed
Input schema / properties / section_header_flg / typeRemoved value: -"boolean" - added
Input schema / properties / start_position / descriptionAdded value: +"データ取得開始位置" - added
Input schema / properties / stats_data_id / descriptionAdded value: +"統計表ID"
- Changed
get_stats_data_bulk6 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / dataset_ids / descriptionAdded value: +"後方互換用のデータセットIDリスト" - added
Input schema / properties / limit / descriptionAdded value: +"後方互換用の取得件数" - added
Input schema / properties / requestsAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "statsDatasSpecに入れる取得条件のリスト" +} - added
Input schema / properties / start_position / descriptionAdded value: +"後方互換用のデータ取得開始位置" - added
Input schema / properties / stats_data_ids / descriptionAdded value: +"後方互換用の統計表IDリスト"
- Changed
get_stats_data_csv4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / section_header_flg / anyOfAdded value: +[ + { + "type": "boolean" + }, + { + "type": "null" + } +] - changed
Input schema / properties / section_header_flg / defaultPrevious value: -falseNew value: +null - removed
Input schema / properties / section_header_flg / typeRemoved value: -"boolean"
- Changed
get_stats_fields1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_stats_list11 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / gov_code / descriptionAdded value: +"政府機関コード" - added
Input schema / properties / limit / descriptionAdded value: +"取得件数(デフォルト10件、最大100件)" - added
Input schema / properties / open_years / descriptionAdded value: +"公開年(YYYY形式、範囲指定はYYYY-YYYY)" - added
Input schema / properties / search_word / descriptionAdded value: +"検索キーワード(統計表名、調査名など)" - added
Input schema / properties / start_position / descriptionAdded value: +"データ取得開始位置" - added
Input schema / properties / stats_code / descriptionAdded value: +"政府統計コード(5桁または8桁)" - added
Input schema / properties / stats_field / descriptionAdded value: +"統計分野コード(2桁)" - added
Input schema / properties / stats_name_list / descriptionAdded value: +"調査・集計の種類" - added
Input schema / properties / survey_years / descriptionAdded value: +"調査年(YYYY形式、範囲指定はYYYY-YYYY)" - added
Input schema / properties / updated_date / descriptionAdded value: +"更新日(YYYY-MM-DD)"
- Changed
get_stats_list_csv1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
post_dataset15 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / conditions / descriptionAdded value: +"取得条件(cdCatXX, cdTime, cdArea などを辞書で指定)" - added
Input schema / properties / data_set_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "更新・削除対象のデータセットID(削除時に必須)" +} - added
Input schema / properties / dataset_name / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / dataset_name / defaultAdded value: +null - added
Input schema / properties / dataset_name / descriptionAdded value: +"データセット名" - removed
Input schema / properties / dataset_name / typeRemoved value: -"string" - removed
Input schema / properties / descriptionRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null -} - added
Input schema / properties / open_specifiedAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "公開可否(e-Stat APIのopenSpecified)" +} - added
Input schema / properties / process_modeAdded value: +{ + "default": "E", + "description": "処理モード(E: 登録・更新、D: 削除)", + "type": "string" +} - added
Input schema / properties / stats_data_id / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / stats_data_id / defaultAdded value: +null - added
Input schema / properties / stats_data_id / descriptionAdded value: +"統計表ID(登録・更新時に必須)" - removed
Input schema / properties / stats_data_id / typeRemoved value: -"string" - removed
Input schema / requiredRemoved value: -[ - "dataset_name", - "stats_data_id" -]
- Changed
search_stats_by_keyword3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / keyword / descriptionAdded value: +"検索キーワード(例: \"人口\", \"GDP\", \"雇用\")" - added
Input schema / properties / limit / descriptionAdded value: +"取得件数(デフォルト20件)"
13 tool updates
- First observed
get_data_catalog - First observed
get_data_catalog_csv - First observed
get_dataset - First observed
get_meta_info - First observed
get_meta_info_csv - First observed
get_stats_data - First observed
get_stats_data_bulk - First observed
get_stats_data_csv - First observed
get_stats_fields - First observed
get_stats_list - First observed
get_stats_list_csv - First observed
post_dataset - First observed
search_stats_by_keyword
TDQS
Scored across 13 tools
Tools form distinct groups: search (get_stats_list, search_stats_by_keyword), metadata (get_meta_info, get_data_catalog), data retrieval (get_stats_data, get_stats_data_bulk). However, CSV variants (get_stats_list_csv, get_meta_info_csv, get_stats_data_csv, get_data_catalog_csv) overlap with their JSON counterparts, though descriptions clarify the difference. The helper tools search_stats_by_keyword and the CSV variants could confuse agents if not careful.
Most tools follow a consistent get_<resource> pattern (e.g., get_stats_list, get_meta_info, get_stats_data). The main deviation is search_stats_by_keyword, which uses 'search' instead of 'get'. The CSV variants consistently append '_csv', which is clear. Minor inconsistency but overall predictable.
13 tools is within the ideal 3-15 range, slightly on the higher side but justified by the domain (search, metadata, data retrieval, catalog). The presence of CSV variants for each endpoint adds 4 extra tools, which could be seen as moderate over-scoping, but they serve a real need for agents preferring CSV output. Overall appropriate.
The tool surface covers core e-Stat API operations: searching stats tables, retrieving metadata, fetching stats data, and bulk retrieval. It also includes a post_dataset for registration. However, there is no update or delete operation for datasets, and the search functionality is somewhat split between get_stats_list and search_stats_by_keyword, which may lead to dead ends. The data catalog endpoints are a plus, but the lack of explicit lifecycle management (update/delete) is a notable gap.
Maintenance
Related MCP Connectors
政府統計 (e-Stat) の API を通じて、統計データやメタ情報を取得するためのサービスです。
Search Japanese subsidies and public company data using J-Grants, gBizINFO, and EDINET.
Search and query 1,500+ OECD statistical datasets via SDMX. Keyless.
e-Stat (Japan) MCP — government statistics
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMCP server for Japan's e-Stat (Government Statistics Portal). Search statistical datasets, retrieve data tables, and access metadata from official Japanese government statistics.9Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables querying Japanese government statistics from e-Stat, including metadata, data observations, and catalog browsing.6MIT
- AlicenseBqualityFmaintenanceMCP server for accessing Japanese government statistics portal 'e-Stat' API, enabling language models to search and retrieve statistical data.520MIT
- AlicenseNot gradedqualityFmaintenanceEnables LLMs to search and retrieve Japanese real estate data through unified access to the MLIT Real Estate Information Library API, supporting over 25 geospatial datasets for interactive queries.186MIT