mcpbeat Sign in

Eurostat MCP Server

answering

Eurostat MCP Server is answering right now. Last checked 6 min ago. 243 installs a week from npm. It exposes 8 tools. Last commit 16 Sep 2026.

Search and query the Eurostat catalogue — EU economy, demography, trade, and NUTS regional data.

Installs per day peak 367 · avg 50 · -5% w/w
a month agotoday
Uptime history 51 days of history · worst day 0%
51 days agonow
98.9%
Uptime 24h
90 of 91 checks
8
Tools
read from the server
307 ms
Response time
average over 24h
243
Installs / week
npm and PyPI

What changed 19

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 22 August 2026. No other catalogue keeps this.

22 Sep 4 tools changed the parameters they ask for eurostat_dataframe_describe, eurostat_dataframe_query, eurostat_download_dataset and 1 more
22 Sep a tool changed version
31 Aug a tool changed version2 times that day
31 Aug 2 tool descriptions were rewritten eurostat_download_dataset, eurostat_query_dataset
31 Aug a tool changed the parameters it asks for eurostat_query_dataset
22 Aug 8 tools changed the parameters they ask for eurostat_browse_themes, eurostat_dataframe_describe, eurostat_dataframe_query and 5 more
22 Aug a tool changed version
and 1 more, back to 22 August 2026

Eurostat MCP Server does not always answer

Over the last week it answered 99.1% of our checks. We check every 15 minutes, so you hear about the next outage within the hour — not from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 6 min ago.

run in your terminal
claude mcp add eurostat-mcp-server --transport http https://eurostat.caseyjhand.com/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "eurostat-mcp-server": {
      "url": "https://eurostat.caseyjhand.com/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.eurostat-mcp-server]
url = "https://eurostat.caseyjhand.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "eurostat-mcp-server": {
      "url": "https://eurostat.caseyjhand.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "eurostat-mcp-server": {
      "url": "https://eurostat.caseyjhand.com/mcp"
    }
  }
}

This one needs environment variables set before it will start: MCP_HTTP_HOST (The hostname for the HTTP server.), MCP_HTTP_PORT (The port to run the HTTP server on.), MCP_HTTP_ENDPOINT_PATH (The endpoint path for the MCP server.), MCP_PUBLIC_URL (Public origin override for deployments behind a TLS-terminating reverse proxy (e.g. https://mcp.example.com).), MCP_AUTH_MODE (Authentication mode to use: 'none', 'jwt', or 'oauth'.), MCP_LOG_LEVEL (Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').), EUROSTAT_BASE_URL (Eurostat API base URL. Override when using a mirror or proxy.), EUROSTAT_REQUEST_TIMEOUT_MS (HTTP request timeout in milliseconds for Eurostat API calls.), EUROSTAT_TOC_CACHE_TTL_MS (How long a fetched catalogue TOC stays usable before the next catalogue call refreshes it, in milliseconds. Defaults to 12 hours.), EUROSTAT_BULK_TIMEOUT_MS (HTTP timeout for one eurostat_download_dataset transfer, in milliseconds. Held separate from EUROSTAT_REQUEST_TIMEOUT_MS because a bulk body streams for minutes where a metadata call answers in seconds. Defaults to 2 minutes.), EUROSTAT_BULK_MAX_BYTES (Byte budget for one eurostat_download_dataset transfer, counted on the decoded TSV rather than on the wire. Eurostat sends the body chunked with no Content-Length, so the budget is enforced while streaming and the transfer is aborted when it is reached. Defaults to 50 MiB.), CANVAS_PROVIDER_TYPE (Set to 'duckdb' to enable the dataframe canvas, which lists the eurostat_dataframe_describe and eurostat_dataframe_query tools, lets eurostat_query_dataset stage a match larger than its 5,000-row inline cap as a SQL table, and lets eurostat_download_dataset retain a whole bulk download instead of only its inline preview. The DuckDB binding ships with the server, so this variable is the only switch.), CANVAS_TEMP_PATH (Directory DuckDB writes canvas spill files to. Must be writable by the server process. Defaults to a 'mcp-canvas' directory under the OS temp directory.), CANVAS_TTL_MS (Sliding lifetime of a staged dataframe canvas in milliseconds; every call against it extends the window. Defaults to 24 hours.), CANVAS_DEFAULT_ROW_LIMIT (Maximum rows a single eurostat_dataframe_query returns before the result is reported as truncated.). The author declared them in the registry entry; get the values from the project itself.

Available tools 8

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

eurostat
eurostat_browse_themes
Navigate the Eurostat theme tree. Without theme_code returns the top-level theme folders (Economy, Population, Transport, etc.) — the practical starting points. With a theme_code returns its immediate children: subtheme folders and datasets in that branch. Use this for structured discovery when you know the domain but not the dataset code, or to drill down from a broad topic to a specific dataset. Pair with eurostat_search_datasets for keyword-based discovery.
eurostat_dataframe_describe
List the tables staged on a Eurostat dataframe canvas, with their row counts and column names and types. Call this before eurostat_dataframe_query to learn the table and column names to write SQL against. The canvas_id comes from a eurostat_query_dataset or eurostat_download_dataset response that reported a staged table. Every observation column is flat, but the two stagers write different dimension columns, so read the columns reported here rather than assuming: eurostat_query_dataset gives each dimension a code column named after the dimension (e.g. "geo") plus a label companion (e.g. "geo_label"); eurostat_download_dataset gives code columns only — the bulk endpoint carries no labels — plus a "time" column. Both write the same five measure columns — obs_value, obs_flag, obs_flag_label, conf_status, conf_status_label — carrying the same codes for the same observation, so tables from the two stagers join on dimension codes and time and compare like with like.
eurostat_dataframe_query
Run a read-only SQL SELECT against tables staged on a Eurostat dataframe canvas — the way to reach observations past the 5,000-row inline cap of eurostat_query_dataset and past the inline preview of a eurostat_download_dataset bulk download, and to aggregate, group, or join across staged tables without re-fetching from Eurostat. Call eurostat_dataframe_describe first for the table and column names, which differ between the two stagers. Only a single SELECT statement runs: statement chaining, non-SELECT verbs, and functions that read files or external data are rejected. Columns are flat — every dimension is a code column named after the dimension, the measure is obs_value, the observation flag is obs_flag / obs_flag_label and the confidentiality marker is conf_status / conf_status_label; a "_label" companion per dimension exists only on tables eurostat_query_dataset staged. Both stagers write the same five measure columns with the same codes, so join their tables on dimension codes and time and compare obs_flag or conf_status across them directly.
eurostat_download_dataset
Download a Eurostat dataset in bulk through the SDMX 2.1 TSV endpoint and stage every observation as a SQL table on the dataframe canvas — the route to a whole dataset, where eurostat_query_dataset is the route to a slice of one. The TSV wire format is roughly half the bytes of the JSON-stat body eurostat_query_dataset reads, so it reaches datasets that would otherwise time out, and it is expanded here into one row per observation. Filters take the same dimension-code map eurostat_query_dataset uses and are applied server-side by Eurostat; call eurostat_get_dataset_info first for the dimension codes and eurostat_get_dimension_values for their values. Narrow with since_period/until_period rather than asking for the most recent N periods — the TSV layout keeps a column for every period whichever is requested, so a period range is what actually shrinks the response. Transfers are bounded by a byte budget enforced while streaming: when it is spent the download stops and budgetExceeded is set, leaving a prefix of the dataset rather than an error. Only preview_limit rows come back inline. When a table is staged, call eurostat_dataframe_describe first to confirm its columns, then eurostat_dataframe_query; without a canvas, rows past the preview are not retained.
eurostat_get_dataset_info
Fetch metadata for a Eurostat dataset: dimensions with valid values, time range, observation count, and last-update date. Call this before eurostat_query_dataset or eurostat_download_dataset to discover what dimension codes are valid (unit, na_item, geo, etc.); eurostat_download_dataset builds its positional filter key from this dimension list, so a filter naming a dimension absent here is rejected outright. Returns up to 10 sample values per dimension for orientation; use eurostat_get_dimension_values to list the full set for large dimensions.
eurostat_get_dimension_values
List all valid values for a specific dimension in a Eurostat dataset (e.g., all unit codes for nama_10_gdp, all geo codes for a regional dataset). Use this when eurostat_get_dataset_info returns more values than the 10-item sample, or to confirm exact codes before querying. For the "geo" dimension, use geo_level to filter by NUTS hierarchy (country, nuts1, nuts2, nuts3). Invalid dimension_value codes silently return no data from eurostat_query_dataset, and are rejected by Eurostat as a fault on eurostat_download_dataset; use this tool to verify codes first.
eurostat_query_dataset
Fetch statistical data from a Eurostat dataset with dimension filters. Returns a deterministic inline prefix of decoded observations with dimension codes and labels, numeric values, an OBS_FLAG status (e.g., "p" = provisional, "e" = estimated) and a separate CONF_STATUS confidentiality marker (e.g., "C" = confidential, which is usually why a value is null). preview_limit controls only that prefix; filters and period controls reduce the matched result itself. Call eurostat_get_dataset_info first to discover valid dimension codes and values. Apply filters to keep the result set manageable — large unfiltered queries may trigger an async response error. Use filters.geo for specific country/region codes, or geo_level for NUTS hierarchy filtering (mutually exclusive). Use last_n_periods for the N most recent periods without knowing the end date. Matches above 5,000 observations are staged whole when this deployment runs a dataframe canvas: call eurostat_dataframe_describe first, then eurostat_dataframe_query. Matches at or below 5,000 are never staged. When the target is a whole dataset rather than a slice, eurostat_download_dataset reads the SDMX bulk endpoint instead and is the cheaper route.
eurostat_search_datasets
Search the Eurostat catalogue by keyword. Returns matching datasets with codes, descriptions, period coverage, and theme breadcrumbs. Use this to discover dataset codes before calling eurostat_get_dataset_info, then eurostat_query_dataset for a slice of a dataset or eurostat_download_dataset for the whole of one. Results are limited to datasets and predefined tables — folders are excluded.

Endpoints

URLTransportStateLatencyChecked
https://eurostat.caseyjhand.com/mcp streamable-http answering 205 ms 6 min ago

Alternatives to Eurostat MCP Server

same job, measured the same way
I
US Census Bureau Data
by taru0208

Query US Census Bureau data: demographics, economics, and housing statistics.

answering
The Company Atlas
by indotender

Global customs trade data and company registry. Search shipments, and look up legal entities.

answering
GridShot — AI Fashion Photography
by grid-shot

Virtual try-on and on-model AI fashion photography: catalog search, try-on grids, HD delivery.

answering
Neuronsearchlab
by neuronsearchlab

Recommendations, search, catalogue, analytics, and platform admin tools for NeuronSearchLab

72 installs/wk answering
Lyssna
by lyssna

Query and summarize research data across tests and surveys

answering
Firmenliste MCP
by tankstellen

B2B company address data for the DACH region: search 6,400+ industry lists and get price quotes.

5 tools answering
MCP Databnf
by smeet666

Search the BnF open catalogue: authors, works, editions and links to what is digitised.

163 installs/wk local only
Open Economics
by felipegambettadesouza6-jpg

Discover, resolve, and query official Brazilian economic data with semantic search and provenance.

19 tools answering

Eurostat MCP Server — questions

Answers built from our own checks of this server.

What can Eurostat MCP Server do?
It exposes 8 tools, read directly from the server on our last check. Among them: eurostat_browse_themes, eurostat_dataframe_describe, eurostat_dataframe_query, eurostat_download_dataset, eurostat_get_dataset_info, eurostat_get_dimension_values and 2 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Eurostat MCP Server working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 90 of 91 checks got a reply (98.9%), average response time 307 ms. The bar chart above shows every period we have measured.
How do I connect Eurostat MCP Server?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Eurostat MCP Server need an API key?
No. Eurostat MCP Server completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 8 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Eurostat MCP Server?
It answers our handshake in 307 ms on average, which is faster than 52% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Eurostat MCP Server?
The npm package @cyanheads/eurostat-mcp-server was installed 243 times in the last week. Week over week that is -5%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Eurostat MCP Server open source?
Yes — it is published under the Apache-2.0 licence, written in TypeScript, 6 stars on GitHub and 7 open issues. The source link is on this page, so you can read exactly what it does with your data before you connect it.