StackData
Official statistics, China censuses & yearbooks, and as-of customs tariffs with legal citations.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"stackdata": {
"url": "https://api.stackdata.io/mcp"
}
}
}Remote endpoints
https://api.stackdata.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢search_datasets(q, limit)
Search StackData's catalog of 50k+ official statistical datasets (SDMX/World Bank dataflows, China censuses and yearbooks, tariff schedules). Multilingual: an English query finds Chinese-titled tables. Returns dataset ids usable with the other tools.
Input Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "search query"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
}
},
"required": [
"q"
]
}🟢get_table(dataset_id)
Fetch a STORED table whole, by dataset id (families cn-nbs-census and cn-nbs-yearbook): labelled rows × columns with original-language labels, English overlay, units, and provenance down to the source file. Ids look like 'cn-nbs-census:2010_a0101a'.
Input Schema
{
"type": "object",
"properties": {
"dataset_id": {
"type": "string",
"description": "catalog dataset id"
}
},
"required": [
"dataset_id"
]
}🟢tariff_lookup(code, jurisdiction, origin, date, direction)
As-of customs-tariff lookup: which measures/duty rates apply to a goods code in a jurisdiction (eu, us, uk, jp), optionally from an origin, on a date. Duty expressions are verbatim; every measure carries its legal citation. Not legal advice.
Input Schema
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "goods code, 2-10 digits (HS/TARIC/HTS)"
},
"jurisdiction": {
"type": "string",
"enum": [
"eu",
"us",
"uk",
"jp"
],
"default": "eu"
},
"origin": {
"type": "string",
"description": "ISO2 origin country (eu/uk only)"
},
"date": {
"type": "string",
"description": "as-of date YYYY-MM-DD, default today"
},
"direction": {
"type": "string",
"enum": [
"import",
"export"
],
"default": "import"
}
},
"required": [
"code"
]
}⚪resolve_data(q, start, end)
Ask a data question in English ('unemployment rate in Japan', 'compare GDP in Japan and Germany') — resolves to the best covering dataset and returns the observations, with coverage honesty (missing countries are reported, never papered over).
Input Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "the question"
},
"start": {
"type": "integer",
"description": "start year"
},
"end": {
"type": "integer",
"description": "end year"
}
},
"required": [
"q"
]
}🟢get_structure(dataset)
The published structure of one dataset, free: its dimensions with every member code and label, frequencies, period coverage, the ISO3 countries it serves, and whether it is servable. Call this before get_series to learn the codes to send. Dataset ids come from search_datasets.
Input Schema
{
"type": "object",
"properties": {
"dataset": {
"type": "string",
"description": "catalog dataset id, e.g. 'ilo-sdmx:DF_X'"
}
},
"required": [
"dataset"
]
}🟢get_series(dataset, countries, period, select)
Fetch ONE series with every dimension named by you (no guessing or relaxing): dataset, ISO3 countries, an ISO period range and a member code for every dimension from get_structure. Returns status ok/empty/refused with each value's provenance, and the missing country-periods listed. A bad request is a named 400 error saying which field and what is allowed.
Input Schema
{
"type": "object",
"properties": {
"dataset": {
"type": "string",
"description": "A dataset id from the catalog, as returned by search (/v1/search, or the search_datasets MCP tool), e.g. \"ilo-sdmx:DF_X\"."
},
"countries": {
"type": "array",
"minItems": 1,
"maxItems": 25,
"items": {
"type": "string"
},
"description": "ISO 3166-1 alpha-3 codes (e.g. \"JPN\") or an aggregate code listed in the dataset's /structure. 1 to 25 entries."
},
"period": {
"type": "object",
"additionalProperties": false,
"required": [
"start",
"end"
],
"description": "Inclusive ISO period range. \"latest\" is not accepted: name the periods you want. Annual 2020, quarterly 2020-Q1, monthly 2020-01.",
"properties": {
"start": {
"type": "string",
"pattern": "^\\d{4}(-Q[1-4]|-(0[1-9]|1[0-2]))?$",
"description": "First period, ISO form: YYYY, YYYY-Qn or YYYY-MM. Must match a frequency the dataset serves."
},
"end": {
"type": "string",
"pattern": "^\\d{4}(-Q[1-4]|-(0[1-9]|1[0-2]))?$",
"description": "Last period, same form and frequency as start."
}
}
},
"select": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A member code for every dimension of the dataset (other than geography and time) as listed in /structure, including frequency. Every dimension must be named; a missing or unknown dimension or code is a 400, never defaulted."
}
},
"required": [
"dataset",
"countries",
"period",
"select"
],
"additionalProperties": false
}Recommended Prompts
search_datasetssearch_datasetsget_tableget_tablesearch_datasetssearch_datasetsCommunity
Evidence