@cyanheads/eurostat-mcp-server

中文文档
0.11.3发布于 2026/11/09Apache-2.0TypeScriptES Module近 30 天下载 2297

通过MCP搜索和查询欧统局的目录——欧盟经济、人口、贸易、卫生和NUTS区域数据。 (原始内容存档于2012-10-12). STIO or Streamable HTTP.

中文使用文档
文档目录25 节
  1. 概览
  2. 工具
  3. 资源
  4. 代理技能
  5. 能力参考
  6. eurostat_search_datasets 工具
  7. eurostat_browse_themes 工具
  8. eurostat_get_dataset_info 工具
  9. eurostat_get_dimension_values 工具
  10. eurostat_query_dataset 工具
  11. eurostat_download_dataset 工具
  12. eurostat_dataframe_describe 工具
  13. eurostat_dataframe_query 工具
  14. eurostat_dataframe_drop 工具
  15. eurostat://dataset/{dataset_code} 资源
  16. 特征
  17. 开始
  18. 配置
  19. 运行服务器
  20. 地方发展
  21. 夹克
  22. 项目结构
  23. 发展指南
  24. 捐款
  25. 许可证

@ cyanheads/ eurostat- mcp- 服务器

通过MCP搜索和查询欧统局的目录——欧盟经济、人口、贸易、卫生和NUTS区域数据。 (原始内容存档于2012-10-12). STIO or Streamable HTTP.

6个工具(最多9个有数据框)

Version License Docker MCP SDK npm TypeScript Bun

Install in Claude Desktop Install in Cursor Install in VS Code

Framework


概览

欧统局提供的欧盟统计数据:经济、人口、贸易、卫生和NUTS区域数据,包括详细的Comext贸易和PRODCOM工业生产。 搜索或浏览目录,检查一个数据集的维度,然后查询一个切片或批量下载整件事.

工具

三个 eurostat_dataframe_* 工具需要数据框架画布,数据框架是默认的,然后关闭 CANVAS_PROVIDER_TYPE=none· ; eurostat_dataframe_drop 需求 EUROSTAT_DATAFRAME_DROP_ENABLED=true。 。 。 .

工具说明
eurostat_search_datasets按关键词搜索欧统局目录——返回代码、说明、期间覆盖范围和主题面包屑
eurostat_browse_themes导航欧统局主题等级结构——列出根主题或钻入分主题和数据集
eurostat_get_dataset_info获取数据集元数据: 有样本值、 时间范围、 观察计数和最后更新日期的维度
eurostat_get_dimension_values列出一个数据集维度的所有有效代码,页码,包括代码/标签单词过滤器、代码前缀过滤器和NUTS结构过滤器 geo
eurostat_query_dataset获取带有维度过滤器、 NUTS 地理级别和时程控制的解码观测的边框预览
eurostat_download_dataset通过SDMX散装端点下载一个完整的数据集,并在数据框上分出一行
eurostat_dataframe_describe列出数据框帆布上排列的表格,包括行数和列类型
eurostat_dataframe_query运行一个仅读取的 SQL SELECT 跨级表格
eurostat_dataframe_drop从一个数据框架帆布中删除一个已分级的表格,将其其他表格留在原地(可选入)

资源

资源说明
eurostat://dataset/{dataset_code}由URI提供的数据集元数据(dimensions,时间范围,观测计数,最后更新)
skill://eurostat-guide/SKILL.md统计比较门、标识出处和SQL分析工作流程

同一元数据可通过 eurostat_get_dataset_info 仅供工具客户端使用.

代理技能

欧洲统计指南 涵盖国家和区域的比较、汇总、数据缺失解释以及SQL在分阶段观测之后加入。 它装有插件、npm、Docker和MCPB安装,并在MCP上安装 skill://eurostat-guide/SKILL.md; 支持 SQL 的例子包含在技能下 references/ 目录.

能力参考

eurostat_search_datasets 工具

  • query 各个数据集的标签、主题面包屑和代码的字词均按不敏感大小写排列,而忽略了相距(Rev.2 发现 Rev. 2) (中文(简体) ). 匹配按单词的出处排序:包含查询的标签为从一个单词开头的短语,然后是包含每个单词的标签或代码,然后是仅包含主题面包屑,每组按内容表顺序排列. 当没有数据集持有每个单词时,会再次搜索一个最多有10个不同单词的查询,每个缺失单词也匹配它开始一个词的英语标签中其中一个数据集的维度值(pharmacist 发现 Pharmacists, (中文(简体) ), med_spec=PHARM) (中文(简体) ). limit 是一个正整数(默认为 20),用通知夹住到 100。 路过一页 nextCursor 恢复为 cursor; 光标调用忽略 limit
  • 成果 code, (中文(简体) ), label, (中文(简体) ), type (单位:千美元)dataset 编号 : table),覆盖期, obsCount, (中文(简体) ), lastUpdated,以及 themePath,与 totalMatches 每个页面。 通过维度值标签找到一行 matchedValues (单位:千美元)dimension, (中文(简体) ), code, (中文(简体) ), label; 代码是过滤器 eurostat_query_dataset 答复中包含: notice失败 no_match (将删除后发现匹配的单词命名,或者在无数据的情况下,将匹配无数据集的单词命名,检查前32个不同的单词;它还注明了尺寸值标签没有被搜索的时候,因为其索引没有加载,或者查询有10个以上的单词), invalid_cursor,或可重试 upstream_fault 当没有装入目录,欧统局的目录无法到达时
  • 如果无法装入 Comext 数据流列表,则结果随附 comextListMissing (单位:千美元) notice; 无法刷新的目录 catalogueLoadedAt

eurostat_browse_themes 工具

  • 奥米 theme_code 用于顶级主题文件夹; 为其近代子通过文件夹代码。 代码首先解决,然后对案件不敏感。 Comext的藏书放在下面 ext_go_detail (详细贸易情况 ext_go和 prom (PRODCOM, 于 icts(中文(简体) )
  • 项目携带 code, (中文(简体) ), label, (中文(简体) ), type (单位:千美元)folder 编号 : dataset 编号 : table),以及 hasChildren,带有 parentPath 面包屑和 otherPlacements 对于在多个分支中存档的文件夹; 失败 not_found 对于一个未知代码, not_a_folder 用于数据集或表格代码,或可重试 upstream_fault 当没有装入目录,欧统局的目录无法到达时
  • 如果无法装入Comext数据流列表, ext_go 财务报告和审定财务报表 icts 携带 comextListMissing (单位:千美元) notice; 无法刷新的目录 catalogueLoadedAt

eurostat_get_dataset_info 工具

  • 一个 dataset_code; 以 valuesCount 不超过10个 sampleValues附加时 timeRange, (中文(简体) ), obsCount, (中文(简体) ), lastUpdated和无害环境管理 metadataUrl
  • 失败作为 not_found 用于未知数据集,或 upstream_fault 当欧统局返回一个结构时,服务器无法读取( 当端点倒下时可重试)

eurostat_get_dimension_values 工具

  • dataset_code 加号 dimension,准确先解决,然后对案件不敏感(TIME_PERIOD 别名 time; 返回的值代码和标签保持不变。 对于 geo, (中文(简体) ), geo_level 选择 NUTS 级别(aggregate, (中文(简体) ), country 默认, nuts1, (中文(简体) ), nuts2, (中文(简体) ), nuts3) (中文(简体) ). filter 保留其代码和标签包含每个给定单词的值,忽略大小写和重音(palma frankfurt 发现 DE_EDDF_ES_LEPA(三); code_prefix 保留其代码始于文字的值,忽略大小写( q)geo_level nuts2 与 DE 列出德国NUTS 2区域。 两者在呼叫前适用,并计入 matchCount
  • limit 默认为25个,并带有通知夹到1000个。 页面包含许多值, 结尾更少, 有 totalCount 完整列表; 包含更多的页面 truncated, (中文(简体) ), nextCursor (通过回作为 cursor页:1 notice继续保留有效计数,忽略新的 limit; 较旧的光标大于 1 000 , 并随披露而正常化为 1 000 。 失败作为 not_found, (中文(简体) ), no_results, (中文(简体) ), conflicting_params, (中文(简体) ), invalid_cursor, (中文(简体) ), upstream_fault (在终点倒下时可重复),或 canvas_not_found
  • canvas_id 将维度的完整列表作为 code 编号 : label 表格 (单位:千美元)canvasId 编号 : tableName 编号 : stagedRowCount随便 filter, (中文(简体) ), code_prefix 或者说 limit 说,它通过一个加入来标记下载的代码列;它从不启动自己的画布. A 类 geo 表格添加一个 level 列(无 NUTS 级别代码的 NULL),并且,不 geo_level,将每个级别、总量和区域与所包含国家重叠:过滤器 level 加入或聚合之前

eurostat_query_dataset 工具

  • dataset_code 加号 filters (单位:千美元){dimension_code: [values]}, (中文(简体) ), geo_level,则 since_period 编号 : until_period (单位:千美元)2020, (中文(简体) ), 2020-Q1, (中文(简体) ), 2020-01下至 YYYY-Wnn 财务报告和审定财务报表 YYYY-Dnnn)或(或) last_n_periods· ; preview_limit 是一个正整数(默认为25),在通知后被夹到500; lang 实值 EN, (中文(简体) ), FR,或 DE
  • 欧统局代码中没有 + 或者说 .: 过滤值持有 + 被拆分为单独的值,读作 OR(["DE+FR"] 实值 ["DE", "FR"](掌声) . 保留一个与无匹配的值。 在选定期间无单元格的有效值不贡献行,以及 emptyValues 说吧
  • stage: true 在可用帆布上分阶段进行整个匹配,无论大小; 重复使用 canvas_id 或者省略它来创建一个。 没有它,自动启动开始 超过5 000个观测. truncated 仍然说明这一门槛值; tableName 确定一个分阶段的结果。 Canvas 故障部署显示,没有明确的集结请求是不存在的
  • last_n_periods 计数数据集时间位置,其中可以包括没有人间单元格的期间。 整个比赛(截至最新24次,略去一个计数)的通知名称缺口,并通知一个更大的N(一个频率的准确名称),或 a since_period– 说吧 –until_period 区域以单元格结束于切片的最近周期,只有在每段时间与该周期相接时
  • 欧统局只保留全部内期 since_period– 说吧 –until_period每个频率。 通知中列出了约束期和包含该期限的约束期。 一天的范围外出为 time=<date>,因为欧统局忽略了一天的界限
  • 每个观测每个维度都带有代码/标签对,一个无效 value, (中文(简体) ), status (OBS FLAG),以及 confStatus (CONF STATUS) (中文(简体) ); obsCount, (中文(简体) ), missingObsCount, (中文(简体) ), absentCellCount (在每一频段内,从第一个频段到最近一个频段都缺少对应的序列;这些序列不是观测,从不进行) timeRange 覆盖整个比赛。 通知名称的周期超过这个期限. truncated 超过5 000项观察, unmatchedValues 名称过滤值不匹配,以及 emptyValues 名称值数据集有,但此匹配没有单元格( under geo_level,该级别的所有代码均无)
  • 失败作为 not_found, (中文(简体) ), no_results (将未匹配的值命名为其维度的有效代码,或当值超过 25 时进行值搜索,无值的时段,为什么选定范围没有时段,或 geo_level 欧统局的答复只字不提, invalid_dimension (将每个不是维度的过滤键命名,数据集的维度按密钥顺序排列), invalid_period, (中文(简体) ), conflicting_params,不可重试 async_response 对于一个太大的查询 服务, retry_deadline_exceeded 当统计API未在请求期限内完成查询时, canvas_not_found,或可重试 upstream_fault 当统计 API 下降时

eurostat_download_dataset 工具

  • dataset_code 加上同样的 filters 地图和 since_period 编号 : until_period (无) last_n_periods: TSV 保持一列每段时间, 除非一个范围缩小它); preview_limit 是一个正整数( 默认 25), 并附加通知后夹入到 500
  • 完全内在的规则及其通知也在这里适用。 当天和下一天的一天范围请求,之后一天的栏被删除,然后再计算或放映
  • 每个非空白的 TSV 单元格为一行。 无效行 obs_value 没有旗帜、状态或文字(未标记) :)不是一个观察:这是系列缺少的时期,是系列没有观测到的(混合频率片段的粘贴)频率的时期,或者是任何被下载行有观察的周期之前或之后的一段时间,其中通知名称
  • filters 遵循查询工具的规则:一个值持有 + 被拆分为单独的值(OR),和一个持有 . 以 invalid_dimension 由于欧统局的代码中没有包含任何代码, 在选定期间没有观测值的有效值不添加行,以及 emptyValues 名称( 当 budgetExceeded 事实)
  • 回返 rowCount (以 totalCount, (中文(简体) ), missingCount, (中文(简体) ), absentCellCount (未加标记的行在序列所带频率的期间,在该频率从第一个周期到最近一个周期内,并在任何下载的行中进行观察), periodRange (由有数值、旗帜、状态或文字的行所组成),和 bytesRead 整个下载; 失败 not_found, (中文(简体) ), invalid_dimension, (中文(简体) ), invalid_period, (中文(简体) ), filter_arity,不可重试 async_queued 或者说 extraction_too_big, (中文(简体) ), no_results, (中文(简体) ), upstream_fault (在SDMX终点下降时可重复), retry_deadline_exceeded 当转移超过时 EUROSTAT_BULK_TIMEOUT_MS 或过滤后下载结构读取超过请求最后期限,或 canvas_not_found
  • 这个 EUROSTAT_BULK_MAX_BYTES 预算( 默认 50 MiB 解码) 在允许的前缀中保留完整的行并返回 budgetExceeded: true。对于一个完整的标题和可用的行,预算太小,因为 byte_budget_exceeded,并设置了限制和缩小指导. bytesRead 已接受的已解码字节数, 不超过预算数; 已丢弃不完整的后行数 .

eurostat_dataframe_describe 工具

  • canvas_id ; 列出每个表格的 name, (中文(简体) ), rowCount键入的列,以及 expiresAt (滑动) CANVAS_TTL_MS,默认为 24h;失败为 canvas_not_found 或者说 canvas_disabled
  • 列取决于中转工具 : eurostat_query_dataset 写代码和代码 _label 每个维, eurostat_download_dataset 仅加码 time (双方共享 obs_* 财务报告和审定财务报表 conf_status* 措施),以及 eurostat_get_dimension_values 写入 code 财务报告和审定财务报表 label (单位:千美元) level 页:1 geo(中文(简体) )

eurostat_dataframe_query 工具

  • 一个只读 SELECT 每个调用; 链式语句、 其他动词和读取文件或外部数据的函数被拒绝
  • 回返 columns, (中文(简体) ), rows, (中文(简体) ), rowCount布尔 truncated。帆布提供的每行都完好无损地返回,最多不超过 CANVAS_DEFAULT_ROW_LIMIT (违约10,000)。 单元格渲染为无损失的JSON,包括嵌入和引出字符串;64位整数以字符串形式来. 失败作为 missing_table, (中文(简体) ), canvas_not_found,或 canvas_disabled
  • 一个剪接集 truncated: true 并增加一个通知。 页: 1 ORDER BY (需要解开口), LIMIT 财务报告和审定财务报表 OFFSET; 按实际 rowCount。重新启动一个最初未排序的结果,排序为相抵零。 波动 SQL 和变化或过期的表格不能提供稳定的呼号

eurostat_dataframe_drop 工具

  • canvas_id 加号 table_name,与 eurostat_dataframe_describe 列表; 删除一个表格,并保留画布和其他表格。 仅在 EUROSTAT_DATAFRAME_DROP_ENABLED=true 设置在画布旁边
  • 回返 canvasId, (中文(简体) ), tableName, (中文(简体) ), dropped,以及 expiresAt· ; dropped 实值 false,带有 notice所以重复一滴就安全了 失败作为 canvas_not_found, (中文(简体) ), identifier_reserved,或 canvas_disabled

eurostat://dataset/{dataset_code} 资源

  • 有效载荷与 eurostat_get_dataset_info,返回为 application/json; 失败的读取方式相同 reason 和复原提示 retryable 在停产时
  • dataset_code 来自 eurostat_search_datasets 或者说 eurostat_browse_themes

特征

建造在 @cyanheads/mcp-ts-core: stdio和可流式的 HTTP 传输器,可插接式(none 编号 : jwt 编号 : oauth),可互换存储(in-memory, (中文(简体) ), filesystem, (中文(简体) ), Supabase, (中文(简体) ), Cloudflare KV/R2/D1),结构化记录,可选择的OpenTeleometry tracking.

欧统局:

  • 切片的统计API(JSON-stat 2.0),整个数据集的SDMX 2.1 TSV批量端点,大约为字节的一半,目录TOC被缓存了12个小时
  • Comext 主机的游戏 DS-* 通过同样的工具收集资料(由CN8、HS、SITC、BEC和CPA以及PRODCOM进行的详细贸易)。 过滤每个请求, freq 由于贸易流动是年度系列和月系列的混合 TOTAL, (中文(简体) ), EU27_2020,以及 EXT_EU27_2020 与其成员进行合并时的双重计算。 PRODCOM 文本值到达 valueText 编号 : obs_value_text
  • NUTS的地平层过滤(aggregate 编号 : country 编号 : nuts1 编号 : nuts2 编号 : nuts3),并将 OBS FLAG和CONF STATUS解码为单独的字段
  • 太大的到服务器的回复作为不可重审的回复回来 async_response, (中文(简体) ), extraction_too_big,或 async_queued 指定要过滤的维度的错误
  • 查询方式 stage: true,超过5000个观测结果的匹配,或任何批量下载都作为SQL表进行(canvasId 编号 : tableName 编号 : stagedRowCount)在 DuckDB 数据帧画布上,默认为上. 这个 .mcpb 将本地 DuckDB 绑定并运行 CANVAS_PROVIDER_TYPE=none,所以SQL分析器需要npm,Docker,或者从源安装

方便代理输出 :

  • 已打入错误合同:每一次宣布的失败都带有 reason (单位:千美元) recovery.hint 命名下一个要调用的工具
  • 下一步提示 : eurostat_search_datasets 财务报告和审定财务报表 eurostat_browse_themes 返回 a nextStep 指着后续电话
  • 未知保留未知:计算和时限 欧统局不报告(obsCount, (中文(简体) ), timeRange.start 编号 : end, (中文(简体) ), lastUpdated) 被省略而不是去除零
  • 有效克瑞回声: appliedFilters 打开 eurostat_query_dataset 财务报告和审定财务报表 appliedQuery (用SDMX表示) url继续 eurostat_download_dataset外加一个 notice 当预览省略行

开始

连接到主机实例 :

claude mcp add --transport http eurostat-mcp-server https://eurostat.caseyjhand.com/mcp

或者在当地运行它:

claude mcp add eurostat-mcp-server -- npx -y @cyanheads/eurostat-mcp-server

对于其他客户端,请将此添加到 MCP 配置文件中 :

{
  "mcpServers": {
    "eurostat-mcp-server": {
      "command": "npx",
      "args": ["-y", "@cyanheads/eurostat-mcp-server"]
    }
  }
}

不需要 API 密钥 。 对于 Docker 或源构建,请参见 运行服务器。 。 。 .

配置

变量说明默认
EUROSTAT_BASE_URL欧统局API基础URL.https://ec.europa.eu/eurostat/api/dissemination
EUROSTAT_COMEXT_BASE_URL通信传播主机,服务于 DS-* 数据集代码(详细贸易和PRODCOM).https://ec.europa.eu/eurostat/api/comext/dissemination
EUROSTAT_REQUEST_TIMEOUT_MS一项请求的备抵总额,包括复试、退后和身体读取,以毫秒计.30000
EUROSTAT_METADATA_TIMEOUT_MS用于一个数据集的SDMX数据流结构的总允许量,包括复刻、倒接和正文读取,以毫秒计.120000 (2分钟)
EUROSTAT_TOC_CACHE_TTL_MS目录 TOC 缓存寿命,以ms为单位.43200000 (12小时)
EUROSTAT_BULK_TIMEOUT_MS一次批量转移的总允许量,包括请求重试、回放和流出,以及每一次建立尺寸值指数的下载,以毫秒计.120000 (2分钟)
EUROSTAT_BULK_MAX_BYTES一个批量下载的字节预算.52428800 (50个米B)
CANVAS_PROVIDER_TYPE数据框架画布后端; none 禁用画布及其工具。 这个 .mcpb 捆绑集 none。 。 。 .duckdb
CANVAS_TTL_MS滑动的一生 舞台画布,以ms为单位.86400000 (24小时)
CANVAS_DEFAULT_ROW_LIMIT最大完成一行 eurostat_dataframe_query 报告前返回 truncated。 。 。 .10000
EUROSTAT_CLAMP_LIMITS粘接正整数预览/搜索/分解限制为500/100/1000,并附有通知. false 恢复拒绝超额输入的策略;零,负数,分数和非数字输入总是被拒绝. 每个夹口日志一次并递增 eurostat.limit_clamps,用工具标出标签.true
EUROSTAT_DATAFRAME_DROP_ENABLEDtrue 列表 eurostat_dataframe_drop; 无效果 CANVAS_PROVIDER_TYPE=none。 。 。 .false
MCP_TRANSPORT_TYPE运输: stdio 或者说 http。 。 。 .stdio
MCP_HTTP_PORTHTTP 服务器端口.3010
MCP_SESSION_MODEHTTP 会话模式 : stateless, (中文(简体) ), stateful,或 auto。服务器宣布 stateless; 一组值将覆盖它.stateless
MCP_AUTH_MODE认证 : none, (中文(简体) ), jwt,或 oauth。 。 。 .none
MCP_LOG_LEVEL日志级别 (debug, (中文(简体) ), info, (中文(简体) ), warning, (中文(简体) ), error(见A/C.5/49/70,附件)。 Docker 图像集 info。 。 。 .debug
LOGS_DIR日志文件目录(只有Node.js).<project-root>/logs
LOG_TOOL_FAILURE_PAYLOADS记录每个工具调用失败的参数和结果,按密钥名称编辑并封顶 LOG_TOOL_FAILURE_PAYLOAD_MAX_BYTES (默认) 16384) (中文(简体) ). 自由形式值内部的秘密不编辑 .false
STORAGE_PROVIDER_TYPE存储后端 : in-memory, (中文(简体) ), filesystem, (中文(简体) ), supabase, (中文(简体) ), cloudflare-kv/r2/d1。 。 。 .in-memory
OTEL_ENABLED启用 打开几何。 。 。 .false

见 .env.example 用于完整可选覆盖列表.

运行服务器

地方发展

要求数 Bun v 1.4.4 (单位:千美元) 或更高(或Node.js v24+).

git clone https://github.com/cyanheads/eurostat-mcp-server.git
cd eurostat-mcp-server && bun install
cp .env.example .env # optional; every setting has a default
  • 构建和运行制作版本数字 :

    # One-time build
    bun run rebuild
    
    # Run the built server
    bun run start:http
    # or
    bun run start:stdio
    
  • 运行检查和测试数字 :

    bun run devcheck  # Lints, formats, type-checks, and more
    bun run test      # Runs the test suite
    bun run lint:mcp  # Validates MCP definitions against spec
    

夹克

docker run --rm -p 3010:3010 ghcr.io/cyanheads/eurostat-mcp-server:latest

图像默认为 HTTP 传输、 无国籍会话模式和日志到 /var/log/eurostat-mcp-server。用于 stdio, 使用 docker run -i --rm -e MCP_TRANSPORT_TYPE=stdio ghcr.io/cyanheads/eurostat-mcp-server:latest。通过 docker build -t eurostat-mcp-server .; OpenTeleometry 端点依赖性默认安装——用 --build-arg OTEL_ENABLED=false 以略去它们.

项目结构

目录目的
src/index.tscreateApp() 入站点——注册工具与资源,inits服务,打开画布上的数据框工具和自旗上放出的工具.
src/mcp-server/tools工具定义*.tool.ts) (中文(简体) ). 6个发现和数据工具,外加3个被画布标出的数据框工具,其中1个是选入.
src/mcp-server/resources资源定义。 数据集元数据资源.
src/services/eurostat-catalogue目录服务——获取并解析了欧统局TOC,将Comext数据流列表合并入其中,并构建维度值指数搜索回落到(元数据库代码,代码列表标签),并带有TTL所绑入的内嵌缓存.
src/services/eurostat-dataAPI统计服务——SDMX元数据解析每集缓存,JSON-stat 2.0解码,ASync-Resign检测,画布行源.
src/services/eurostat-bulkSDMX 2.1 TSV批量服务——流出下载,字节预算,SOAP断层映射,画布行源.
src/services/eurostat-codelists.tsOBS FLAG和CONF STATUS代码列表,测量栏名均由艺人编写,并有文本值解码器.
src/services/eurostat-hosts.ts哪个主机服务于数据集代码 : DS-* 给Comext主机, 其他一切给主机.
src/services/canvas-accessor.ts可选 DataCanvas 的访问器和获得的帮助画布-触摸工具共享 .
src/services/shared-load.ts让我们同时呼叫者等待一个共享下载,所以一个呼叫者的取消只释放那个呼叫者.
src/config服务器特定环境变量与Zod解析并验证.
skills/已出版Eurotat-guide和SQL参考文献,服务于MCP之上并包含在安装包中.
tests/单位和综合测试,反映 src/ 结构.

发展指南

见 CLAUDE.md 发展准则和建筑规则。 简本:

  • 搬运工投掷,框架渔获量——否 try/catch 在工具逻辑中
  • 使用 ctx.log 用于伐木, ctx.state 用于存储
  • 登记册中的新工具和资源 createApp() 数组在 src/index.ts
  • 环绕外部 API 调用: 验证 生 → 规范到域类型 → 返回输出计划; 永远不要编织缺失的字段

捐款

问题值得欢迎。 提交前进行检查和测试:

bun run devcheck
bun run test

许可证

这个项目根据Apache 2.0许可证获得许可. 见 自由主义 详细文件.

版本与发布记录

@cyanheads/eurostat-mcp-server 共发布 36 个版本,首次发布于 2026/05/24;过去 12 个月发布了 36 个版本。

版本发布日期距今
0.11.3latest2026/11/092 天前
0.11.22026/11/038 天前
0.11.12026/11/0110 天前
0.11.02026/10/2715 天前
0.10.12026/10/2319 天前
0.10.02026/10/1527 天前

关于 @cyanheads/eurostat-mcp-server 的常见问题

@cyanheads/eurostat-mcp-server 是什么?

通过MCP搜索和查询欧统局的目录——欧盟经济、人口、贸易、卫生和NUTS区域数据。 (原始内容存档于2012-10-12). STIO or Streamable HTTP.

如何安装 @cyanheads/eurostat-mcp-server?

在项目目录运行 npm install @cyanheads/eurostat-mcp-server,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 eurostat-mcp-server,可以用 npx eurostat-mcp-server 直接运行。

@cyanheads/eurostat-mcp-server 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cyanheads/eurostat-mcp-server 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cyanheads/eurostat-mcp-server 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cyanheads/eurostat-mcp-server 可以商用吗?

@cyanheads/eurostat-mcp-server 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cyanheads/eurostat-mcp-server 的下载量有多少?

根据 npm 官方下载统计,@cyanheads/eurostat-mcp-server 在 2026/10/11 – 2026/11/09 这 30 天内被下载 2,297 次,日均约 77 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cyanheads/eurostat-mcp-server 还在维护吗?

最新版本 0.11.3 发布于 2026/11/09(2 天前);至今共发布 36 个版本,其中过去 12 个月发布了 36 个;首次发布于 2026/05/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。