Eurostat MCP Server
概览
作者提供的说明(英文原文)
Search and query the Eurostat catalogue — EU economy, demography, trade, and NUTS regional data.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i3 项中通过 3 项依据公开信息检查;尚未扫描代码
- 使用情况i正在增长↓ 714/周 · ★ –
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 电脑或云端
- 传输方式: stdio, Streamable HTTP
- 分类: 搜索与 AI 记忆
安装
选择你使用的 AI 应用,然后复制设置。
安装之前
- 基础检查:3 项中通过 3 项
- 在作者的服务器上运行:你向它提出的内容会经过他们的服务器。
- 可以做 8 件事(工具) eurostat_search_datasets, eurostat_browse_themes, eurostat_get_dataset_info, eurostat_get_dimension_values …
- 需要你自己填写:
EUROSTAT_CLAMP_LIMITS,MCP_LOG_LEVEL,EUROSTAT_BASE_URL,EUROSTAT_COMEXT_BASE_URL,EUROSTAT_REQUEST_TIMEOUT_MS,EUROSTAT_METADATA_TIMEOUT_MS,EUROSTAT_TOC_CACHE_TTL_MS,EUROSTAT_BULK_TIMEOUT_MS,EUROSTAT_BULK_MAX_BYTES,CANVAS_PROVIDER_TYPE,CANVAS_TEMP_PATH,CANVAS_TTL_MS,CANVAS_DEFAULT_ROW_LIMIT,EUROSTAT_DATAFRAME_DROP_ENABLED
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
- 打开 Settings → Connectors
- 点击 Add custom connector
- 粘贴下面的地址,然后点击 Add
- 如果要求登录,请登录作者的服务
https://eurostat.caseyjhand.com/mcp或者在你的电脑上运行
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"eurostat": {
"command": "npx",
"args": [
"-y",
"@cyanheads/eurostat-mcp-server"
],
"env": {
"EUROSTAT_CLAMP_LIMITS": "your-value",
"MCP_LOG_LEVEL": "your-value",
"EUROSTAT_BASE_URL": "your-value",
"EUROSTAT_COMEXT_BASE_URL": "your-value",
"EUROSTAT_REQUEST_TIMEOUT_MS": "your-value",
"EUROSTAT_METADATA_TIMEOUT_MS": "your-value",
"EUROSTAT_TOC_CACHE_TTL_MS": "your-value",
"EUROSTAT_BULK_TIMEOUT_MS": "your-value",
"EUROSTAT_BULK_MAX_BYTES": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"CANVAS_TEMP_PATH": "your-value",
"CANVAS_TTL_MS": "your-value",
"CANVAS_DEFAULT_ROW_LIMIT": "your-value",
"EUROSTAT_DATAFRAME_DROP_ENABLED": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add --transport http eurostat https://eurostat.caseyjhand.com/mcp或者在你的电脑上运行
claude mcp add eurostat --env EUROSTAT_CLAMP_LIMITS=your-value --env MCP_LOG_LEVEL=your-value --env EUROSTAT_BASE_URL=your-value --env EUROSTAT_COMEXT_BASE_URL=your-value --env EUROSTAT_REQUEST_TIMEOUT_MS=your-value --env EUROSTAT_METADATA_TIMEOUT_MS=your-value --env EUROSTAT_TOC_CACHE_TTL_MS=your-value --env EUROSTAT_BULK_TIMEOUT_MS=your-value --env EUROSTAT_BULK_MAX_BYTES=your-value --env CANVAS_PROVIDER_TYPE=your-value --env CANVAS_TEMP_PATH=your-value --env CANVAS_TTL_MS=your-value --env CANVAS_DEFAULT_ROW_LIMIT=your-value --env EUROSTAT_DATAFRAME_DROP_ENABLED=your-value -- npx -y @cyanheads/eurostat-mcp-server运行前请先填写空着的值。
或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"eurostat": {
"url": "https://eurostat.caseyjhand.com/mcp"
}
}
}或者在你的电脑上运行
或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"eurostat": {
"command": "npx",
"args": [
"-y",
"@cyanheads/eurostat-mcp-server"
],
"env": {
"EUROSTAT_CLAMP_LIMITS": "your-value",
"MCP_LOG_LEVEL": "your-value",
"EUROSTAT_BASE_URL": "your-value",
"EUROSTAT_COMEXT_BASE_URL": "your-value",
"EUROSTAT_REQUEST_TIMEOUT_MS": "your-value",
"EUROSTAT_METADATA_TIMEOUT_MS": "your-value",
"EUROSTAT_TOC_CACHE_TTL_MS": "your-value",
"EUROSTAT_BULK_TIMEOUT_MS": "your-value",
"EUROSTAT_BULK_MAX_BYTES": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"CANVAS_TEMP_PATH": "your-value",
"CANVAS_TTL_MS": "your-value",
"CANVAS_DEFAULT_ROW_LIMIT": "your-value",
"EUROSTAT_DATAFRAME_DROP_ENABLED": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"eurostat": {
"type": "http",
"url": "https://eurostat.caseyjhand.com/mcp"
}
}
}或者在你的电脑上运行
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"eurostat": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/eurostat-mcp-server"
],
"env": {
"EUROSTAT_CLAMP_LIMITS": "your-value",
"MCP_LOG_LEVEL": "your-value",
"EUROSTAT_BASE_URL": "your-value",
"EUROSTAT_COMEXT_BASE_URL": "your-value",
"EUROSTAT_REQUEST_TIMEOUT_MS": "your-value",
"EUROSTAT_METADATA_TIMEOUT_MS": "your-value",
"EUROSTAT_TOC_CACHE_TTL_MS": "your-value",
"EUROSTAT_BULK_TIMEOUT_MS": "your-value",
"EUROSTAT_BULK_MAX_BYTES": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"CANVAS_TEMP_PATH": "your-value",
"CANVAS_TTL_MS": "your-value",
"CANVAS_DEFAULT_ROW_LIMIT": "your-value",
"EUROSTAT_DATAFRAME_DROP_ENABLED": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
- 打开网页版 ChatGPT → Settings → Connectors (Apps)
- 点击 Create 或 Add(部分套餐需要先在 Advanced 中开启 Developer mode)
- 粘贴下面的地址,起个名字,然后保存
- 如果要求登录,请登录作者的服务
https://eurostat.caseyjhand.com/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
需要你填写的值
EUROSTAT_CLAMP_LIMITSenvClamp positive integer preview/search/dimension limits to 500/100/1000 with a notice. False restores schemas rejecting over-cap inputs.MCP_LOG_LEVELenvSets the minimum log level for output (e.g., 'debug', 'info', 'warn').EUROSTAT_BASE_URLenvEurostat API base URL. Override when using a mirror or proxy.EUROSTAT_COMEXT_BASE_URLenvBase URL of the Comext dissemination host, which serves every DS-* dataset code (detailed trade and PRODCOM). Override when using a mirror or proxy.EUROSTAT_REQUEST_TIMEOUT_MSenvTotal allowance for one Eurostat request across retries, backoff and body consumption, in milliseconds.EUROSTAT_METADATA_TIMEOUT_MSenvTotal allowance for one dataset's SDMX dataflow structure across retries, backoff and body consumption, in milliseconds. Defaults to 120000; separate from EUROSTAT_REQUEST_TIMEOUT_MS for large struct…EUROSTAT_TOC_CACHE_TTL_MSenvHow long a fetched catalogue TOC stays usable before the next catalogue call refreshes it, in milliseconds. Defaults to 12 hours.EUROSTAT_BULK_TIMEOUT_MSenvTotal allowance for one eurostat_download_dataset transfer across request retries, backoff and streaming body consumption, and for each download that builds the dimension value index, in milliseconds…EUROSTAT_BULK_MAX_BYTESenvByte 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 str…CANVAS_PROVIDER_TYPEenvDataframe canvas backend. The default, 'duckdb', lists eurostat_dataframe_describe and eurostat_dataframe_query, stages query matches with stage=true or above 5,000 observations, and retains bulk dow…CANVAS_TEMP_PATHenvParent directory for DuckDB canvas spill files: a private 'mcp-canvas-XXXXXX' directory is created inside it, so it must be writable by the server process. Defaults to the OS temp directory.CANVAS_TTL_MSenvSliding lifetime of a staged dataframe canvas in milliseconds; every call against it extends the window. Defaults to 24 hours.CANVAS_DEFAULT_ROW_LIMITenvMaximum complete rows a single eurostat_dataframe_query returns before reporting truncated.EUROSTAT_DATAFRAME_DROP_ENABLEDenvSet to 'true' to list eurostat_dataframe_drop, which removes one staged table from a dataframe canvas and leaves its other tables in place. Off by default because a drop cannot be undone; staged tabl…
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它能做什么
工具名称和描述与服务器在 2026年11月9日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。
eurostat_search_datasetsSearch the Eurostat catalogue by keyword. Returns matching datasets with codes, descriptions, period coverage, and theme breadcrumbs. Matches are ordered by where the words were found: first datasets whose label contains the query as a phrase beginning at the start of a word, the
eurostat_browse_themesNavigate 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
eurostat_get_dataset_infoFetch 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_
eurostat_get_dimension_valuesList the valid values for a dimension in a Eurostat dataset, preserving value codes and labels exactly. Use this when eurostat_get_dataset_info returns more values than its sample, or to confirm exact filter codes before querying. Dimension identifiers match exactly first, then c
eurostat_query_datasetFetch 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 confident
eurostat_download_datasetDownload a Eurostat dataset in bulk through the SDMX 2.1 TSV endpoint and stage it 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 bo
eurostat_dataframe_describeList 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_data
eurostat_dataframe_queryRun a read-only SQL SELECT against tables staged on a Eurostat dataframe canvas, reaching observations beyond an inline preview and aggregating or joining tables without re-fetching Eurostat. Call eurostat_dataframe_describe first for table and column names. Only a single SELECT
基础检查i
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 cyanheads 验证,该账户拥有此仓库
- … 尚未检查
仍在维护
我们还没有从 GitHub 读取这个仓库
- … 尚未检查
有许可证
我们还没有从 GitHub 读取这个仓库
- ✓ 通过
端点有响应
在 219 毫秒内响应(HTTP 200)
- – 不适用
使用 OAuth 登录
无需登录
- ✓ 通过
工具描述中没有隐藏指令
已读取 8 个工具描述,未发现针对 AI 的隐藏指令
与“搜索与 AI 记忆”中的其他服务器比较i
- 星标数多于此分类中其他 5760 个服务器的 0%
- 发布到注册中心的时间比此分类中其他 5760 个服务器的 98% 更新
- 基础检查结果等于或优于此分类中其他 5760 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
Eurostat MCP Server 安全吗?
它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在我的电脑上运行还是在云端?
两种方式都可以:安装在你的电脑上,或者连接云端版本。
它还在维护吗?
GitHub 仓库最后更新于–,最新版本(0.11.3)于昨天进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
有什么可以替代它?
同一分类中有:Context7, Codebase Memory, Exa
替代选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者的 README
打开 README
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
@cyanheads/eurostat-mcp-server Search and query the Eurostat catalogue — EU economy, demography, trade, health, and NUTS regional data via MCP. STDIO or Streamable HTTP. 6 Tools (up to 9 with the dataframe canvas) • 2 Resources • 1 Skill
Public Hosted Server: https://eurostat.caseyjhand.com/mcp
Overview
EU statistics from Eurostat: economy, demography, trade, health, and NUTS regional data, including detailed Comext trade and PRODCOM industrial production. Search or browse the catalogue, inspect a dataset's dimensions, then query a slice or bulk-download the whole thing.
Tools
The three eurostat_dataframe_* tools need the dataframe canvas, which is on by default and off with CANVAS_PROVIDER_TYPE=none; eurostat_dataframe_drop also needs EUROSTAT_DATAFRAME_DROP_ENABLED=true.
| Tool | Description |
|---|---|
eurostat_search_datasets | Search the Eurostat catalogue by keyword — returns codes, descriptions, period coverage, and theme breadcrumbs |
eurostat_browse_themes | Navigate the Eurostat theme hierarchy — list root themes or drill into subthemes and datasets |
eurostat_get_dataset_info | Fetch dataset metadata: dimensions with sample values, time range, observation count, and last-update date |
eurostat_get_dimension_values | List all valid codes for one dataset dimension, paged, with a code/label word filter and NUTS hierarchy filtering for geo |
eurostat_query_dataset | Fetch a bounded preview of decoded observations with dimension filters, NUTS geo-level, and time-range controls |
eurostat_download_dataset | Download a whole dataset via the SDMX bulk endpoint and stage every row on the dataframe canvas |
eurostat_dataframe_describe | List the tables staged on a dataframe canvas, with row counts and column types |
eurostat_dataframe_query | Run a read-only SQL SELECT across staged tables |
eurostat_dataframe_drop | Remove one staged table from a dataframe canvas, leaving its other tables in place (opt-in) |
Resources
| Resource | Description |
|---|---|
eurostat://dataset/{dataset_code} | Dataset metadata (dimensions, time range, observation count, last-updated) by URI |
skill://eurostat-guide/SKILL.md | Statistical comparison gates, identifier provenance, and SQL analysis workflows |
The same metadata is available through eurostat_get_dataset_info for tool-only clients.
Agent skill
eurostat-guide covers country and regional comparisons, Comext aggregation, missing-data interpretation, and SQL joins over staged observations. It ships with plugin, npm, Docker, and MCPB installs and is served over MCP at skill://eurostat-guide/SKILL.md; supporting SQL examples are included under the skill's references/ directory.
Capability reference
eurostat_search_datasets tool
querywords are ANDed case-insensitively across each dataset's label, theme breadcrumb, and code, ignoring spacing beside punctuation (Rev.2findsRev. 2);limitis a positive integer (default 20), clamped to 100 with a notice. Page by passingnextCursorback ascursor; cursor calls ignorelimit- Results carry
code,label,type(dataset/table), period coverage,obsCount,lastUpdated, andthemePath, withtotalMatchesacross every page; fails asno_match(naming the words whose removal finds matches or, when none does, the words that match no dataset),invalid_cursor, or a retryableupstream_faultwhen no catalogue is loaded and Eurostat's table of contents is unreachable - If the Comext dataflow list cannot be loaded, results carry
comextListMissingand anotice; a catalogue that could not be refreshed carriescatalogueLoadedAt
eurostat_browse_themes tool
- Omit
theme_codefor the top-level theme folders; pass a folder code for its immediate children. Codes resolve exact-first, then case-insensitively. The Comext collections sit underext_go_detail(detailed trade, inext_go) andprom(PRODCOM, inicts) - Items carry
code,label,type(folder/dataset/table), andhasChildren, with aparentPathbreadcrumb andotherPlacementsfor a folder filed in several branches; fails asnot_foundfor an unknown code,not_a_folderfor a dataset or table code, or a retryableupstream_faultwhen no catalogue is loaded and Eurostat's table of contents is unreachable - If the Comext dataflow list cannot be loaded,
ext_goandictscarrycomextListMissingand anotice; a catalogue that could not be refreshed carriescatalogueLoadedAt
eurostat_get_dataset_info tool
- One
dataset_code; returns every dimension withvaluesCountand up to 10sampleValues, plustimeRange,obsCount,lastUpdated, and the ESMSmetadataUrl - Fails as
not_foundfor an unknown dataset, orupstream_faultwhen Eurostat returns a structure the server cannot read (retryable when the endpoint is down)
eurostat_get_dimension_values tool
dataset_codeplusdimension, resolved exact-first then case-insensitively (TIME_PERIODaliasestime); returned value codes and labels stay unchanged. Forgeo,geo_levelpicks a NUTS level (aggregate,countryby default,nuts1,nuts2,nuts3).filterkeeps values whose code and label contain every word given, ignoring case and accents (palma frankfurtfindsDE_EDDF_ES_LEPA), counted inmatchCountlimitdefaults to 25 and clamps to 1,000 with a notice. Pages contain that many values, fewer at the end, withtotalCountfor the full list; a page with more after it carriestruncated,nextCursor(pass back ascursor), and anotice. Continuations retain the effective count and ignore a newlimit; older cursors above 1,000 normalize to 1,000 with disclosure. Fails asnot_found,no_results,conflicting_params,invalid_cursor,upstream_fault(retryable when the endpoint is down), orcanvas_not_foundcanvas_idstages every value on that canvas as acode/labeltable (canvasId/tableName/stagedRowCount) that labels a download's code columns through a join; it never starts a canvas of its own
eurostat_query_dataset tool
dataset_codeplusfilters({dimension_code: [values]}),geo_level, and eithersince_period/until_period(2020,2020-Q1,2020-01, down toYYYY-WnnandYYYY-Dnnn) orlast_n_periods;preview_limitis a positive integer (default 25), clamped to 500 with a notice;langisEN,FR, orDEstage: truestages the whole match on an available canvas, regardless of size; reusecanvas_idor omit it to create one. Without it, automatic staging starts above 5,000 observations.truncatedstill describes that threshold;tableNameidentifies a staged result. Canvas-disabled deployments disclose an explicit staging request as unavailablelast_n_periodscounts dataset time positions, which can include periods with no populated cells. A notice names gaps across the full match (up to the newest 24, with an omitted count); increase N or replace it withuntil_periodto reach earlier observations- Eurostat keeps only periods wholly inside
since_period–until_period, per frequency. A notice names a period a bound falls inside and the bound that includes it. A one-day range goes out astime=, because Eurostat ignores one-day bounds - Each observation carries code/label pairs per dimension, a nullable
value,status(OBS_FLAG), andconfStatus(CONF_STATUS);obsCount,missingObsCount,absentCellCount(periods a matched series lacks, which are not observations and are never staged), andtimeRangecover the whole match,truncatedis true above 5,000 observations, andunmatchedValuesnames filter values that matched nothing - Fails as
not_found,no_results(naming the unmatched values, the periods with no value, why a range selected no period, orgeo_levelas the likely cause when Eurostat's reply says nothing more),invalid_dimension,invalid_period,conflicting_params, a non-retryableasync_responsefor a query too large to serve,canvas_not_found, or a retryableupstream_faultwhen the Statistics API is down
eurostat_download_dataset tool
dataset_codeplus the samefiltersmap andsince_period/until_period(nolast_n_periods: the TSV keeps a column per period unless a range drops it);preview_limitis a positive integer (default 25), clamped to 500 with a notice- The wholly-inside rule and its notice apply here too. A one-day range requests that day and the next, and the later day's column is dropped before anything is counted or staged
- Stages one row per non-blank TSV cell. A row with null
obs_valueand no flag, status or text (an unflagged:) is not an observation: it is a period the series lacks, or a period of a frequency the series has no observation of (the padding of a mixed-frequency slice) - Returns
rowCount(echoed astotalCount),missingCount,absentCellCount(the unflagged rows at periods of a frequency the series carries),periodRange(bounded by rows carrying a value, flag, status, or text), andbytesReadfor the whole download; fails asnot_found,invalid_dimension,invalid_period,filter_arity, a non-retryableasync_queuedorextraction_too_big,no_results,upstream_fault(retryable when the SDMX endpoint is down), orcanvas_not_found - The
EUROSTAT_BULK_MAX_BYTESbudget (default 50 MiB decoded) retains complete rows within the permitted prefix and returnsbudgetExceeded: true. A budget too small for a complete header and usable row fails asbyte_budget_exceeded, with the configured limit and narrowing guidance.bytesReadcounts accepted decoded bytes, never more than the
只显示了开头部分;其余内容请在仓库中阅读