StackData

Official statistics, China censuses & yearbooks, and as-of customs tariffs with legal citations.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
97%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,078Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (0.84% of 128k context)

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-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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_research
Search for information about [topic] using StackData
Expected tools: search_datasets
find_specific
Find [specific item] using StackData
Expected tools: search_datasets
retrieve_data
Get details about [item] from StackData
Expected tools: get_table
fetch_info
Fetch [information type] using StackData
Expected tools: get_table
search_then_create
Search for [item] and create a new [related item] using StackData
Expected tools: search_datasetssearch_datasets

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded4 tools
verifiedversion not recorded4 tools