关于 Statcan
Statcan 是面向加拿大统计局数据的 MCP 服务,适用于查询官方统计序列、表格和指标的用户。它同时提供向量与立方体查询,并为部分常用表格提供整表数据。
主要功能
- 01查询预设指标与统计序列
- 02浏览立方体目录及元数据
- 03枚举立方体向量 ID
- 04按坐标获取观测数据
- 05查询精选表格的整表或切片
- 06获取表格 CSV 下载链接
适用场景
- 01查询 CPI、失业率或 GDP 指标
- 02筛选各地区统计表格数据
- 03将表号映射到向量序列
- 04获取整表数据或 CSV 链接
MCP 相关
向 MCP 客户端开放加拿大统计局 WDS 的指标、序列、立方体及表格工具。可通过 Pipeworx 网关或本地 stdio 服务连接。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/statcan/mcpclaude mcp add --transport http pipeworx-io-statcan https://gateway.pipeworx.io/statcan/mcp{"mcpServers":{"pipeworx-io-statcan":{"type":"http","url":"https://gateway.pipeworx.io/statcan/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-statcan":{"type":"http","url":"https://gateway.pipeworx.io/statcan/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-statcan":{"type":"http","url":"https://gateway.pipeworx.io/statcan/mcp"}}}{"mcpServers":{"pipeworx-io-statcan":{"serverUrl":"https://gateway.pipeworx.io/statcan/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
StatCan — 加拿大统计局
加拿大国家统计局通过免费的、无需密钥的 Web Data Service(WDS,
www150.statcan.gc.ca/t1/wds/rest)提供服务。涵盖完整的立方体(表格)目录——
人口、CPI/通胀、失业率、GDP、贸易、农业以及其他所有加拿大官方统计序列——
还提供已解析为向量 ID 的主要指标。
这是 Pipeworx 的一部分——一个将 AI Agent 连接到 1715+ 个实时数据源的 MCP 网关。这是一个独立的非官方集成,与上游提供方无关联、未获其认可,也非其发布。
两种访问模式
- 友好型 / 基于向量 —
statcan_indicator(CPI、失业率、GDP、 按地理区域划分的人口)和statcan_series(按数字向量 ID 查询任意序列, 类似 FRED)。 - 基于立方体 —
statcan_list_cubes(目录)、statcan_cube_metadata(一个立方体的维度 + 成员)、statcan_cube_vectors(枚举一个立方体的实际 向量 ID)、statcan_cube_data(某个坐标的最新 N 条观测值)、statcan_table(整张表格 / 筛选后的切片—— 见下文)、statcan_changed_series(每日变更源)、statcan_csv_url(整张表格的 CSV 下载链接,实时上游 URL,不会抓取数据)。
statcan_table — 整表查询(fleet #2507)
statcan_cube_data 每次调用只能返回一个坐标的数据,而 statcan_csv_url 只会
返回下载 URL——两者都无法一次调用回答“整张表格”或“一次获取所有
省份”的问题,而这正是大多数重复调用者实际需要的(60d:statcan rep3 146,
目录中第 #2 个重复需求集群;no_match 证据:42100037 儿童保育困难的坐标逐一
获取,34100035 魁北克水力发电,32100113 农场销售的牛奶,98100353 2021 年人口普查
按省份划分的宗教)。
statcan_table 从精选的高需求
StatCan 表格集合中返回数据(statcan_table_rows,由
workers/data-pipeline/src/datasets/statcan.ts 每周从 StatCan 自己的
getFullTableDownloadCSV 导出内容刷新),而非来自实时 WDS API:
statcan_table({ product_id: 42100037 })
// -> every coordinate, every ref_date, member labels (e.g. { "Statistics":
// "Percentage of children", "Type of difficulty encountered...": "..." }),
// in one call. Paged (limit/page) past 1000 rows.
statcan_table({ product_id: 32100113, geo: "Quebec", ref_date_from: "2023-01" })
覆盖范围经过精选,并非全部。 如果对未缓存的 product_id 调用
statcan_table,它会拒绝请求并清楚列出当前已缓存的 ID——
绝不会静默返回空结果。对于该集合之外的内容,请改用
statcan_cube_data(按坐标查询,实时)或 statcan_csv_url(原始 CSV,
实时)。第一阶段列表(16 张表格——完整理由见 statcan.ts)
涵盖了已确认有重复需求的表格;将新表格添加到导入列表无需迁移(见下一段)。
架构有意采用通用设计。 StatCan 的每张表格 CSV 都包含一组固定的元数据列(REF_DATE、GEO、DGUID、VECTOR、COORDINATE、VALUE、STATUS、
SYMBOL、TERMINATED、DECIMALS、UOM、UOM_ID、SCALAR_FACTOR、SCALAR_ID),再加上
该表格定义的任意数量的表格专属维度标签列(例如
42100037 的“统计”和“遇到的困难类型……”)——这些因表格而异,因此会存入
members jsonb 列,而不是采用每张表格各自的关系型架构。
每个响应都包含 data_as_of(取自该表格的导入管道
pipeline_state.last_success_at)和一个 licence 字段。
许可:加拿大统计局开放许可(statcan.gc.ca/en/reference/licence)
——明确允许复制、再分发和销售信息,但须注明来源(“来源:加拿大统计局、产品名称、参考日期……”),且不得暗示 StatCan 为其背书。不会存储个人
数据——每一行都是汇总统计数据。
两次调用:从表编号到向量 ID
每个 StatCan 问题都从一个表编号开始(例如鸡蛋产量表「32-10-0121-01」,或其 8 位形式 32100121)。表编号和 statcan_cube_metadata 都不会直接提供向量 ID——元数据只提供维度及其成员列表。使用 statcan_cube_vectors 来完成转换:
statcan_cube_vectors({ product_id: "32100121", filters: { GEO: "Canada" } })
// -> rows: [{ vector_id: 61133, coordinate: "1.1.0.0.0.0.0.0.0.0",
// members: { Geography: "Canada", "Production and disposition": "Average number of layers" },
// frequency: "Monthly", terminated: false, series_title: "Canada;Average number of layers" }, ...]
statcan_series({ vector_id: "61133" })
// -> the actual observations
filters 键会与立方体的维度名称进行不区分大小写的子字符串匹配(因此 GEO 会匹配 Geography);值会与成员名称进行子字符串匹配。未筛选的维度会包含该维度的所有成员——对于维度很多的立方体,这会产生大量笛卡尔积,因此请使用 limit/page 分页(默认每页 100 条,最多 500 条),不要一次性提取所有数据。响应中的 total_combinations 和 has_more/next_page 会告诉你是否已查看全部结果。
statcan_cube_metadata 不会返回向量 ID——它只会列出维度和成员,因此才需要 statcan_cube_vectors。
product_id 接受两种形式
- 8 位 WDS 产品 ID:
32100121 - 公共表编号:
32-10-0121-01(StatCan 的NN-NN-NNNN-NN显示格式——工具会去掉连字符,并删除末尾 2 位后缀)
身份验证
无需身份验证。完全不需要密钥——StatCan WDS 没有速率限制密钥或身份验证标头。
常见问题
statcan_cube_data需要你已知的坐标。 如果你还没有坐标,请先从statcan_cube_vectors获取——不要根据statcan_cube_metadata的成员列表手动构造坐标并猜测。- 宽表包含数千种组合。 枚举尚未查看过的表之前,务必至少按一个维度(通常是
GEO)筛选——否则需要分页很久。 statcan_cube_vectors的某一行中,terminated: true表示该序列已停止发布;立方体的cube_start_date/cube_end_date描述的是整张表的时间范围,并非某个序列实际的最后一次观测。
快速入门
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"statcan": {
"url": "https://gateway.pipeworx.io/statcan/mcp"
}
}
}
此端点实际提供的内容
对 https://gateway.pipeworx.io/statcan/mcp 调用 tools/list,返回上表中的工具,以及 Pipeworx 共享元工具——ask_pipeworx、discover_tools、search_within、remember/recall 和网关范围内的其他工具。因此,你看到的工具数量会多于此表中的数量:目前,单个工具包端点除了列出自身工具外,还会列出大约 30 个共享工具。连接的 initialize 响应会说明确切范围,是判断当天实际情况的权威依据。
这是有意为之,并非意外的多路复用。借助这些元工具,限定范围的连接可以通过 ask_pipeworx(它会路由到整个目录)回答此工具包无法解答的问题,无需再添加第二个 MCP 服务。目前无法挂载不含这些元工具的工具包端点;如果额外的架构定义占用的上下文超过路由功能带来的价值,请连接一次完整网关,而不是连接多个工具包端点。
也可以连接完整的 Pipeworx 网关,直接列出所有工具包的工具,而不只是此工具包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和相同的 1715+ 个数据源。唯一的区别是直接列出哪个工具包的工具;无论使用哪个 URL,ask_pipeworx 都可以访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/statcan_indicator \
-H 'Content-Type: application/json' \
-d '{"indicator":"cpi"}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/statcan_indicator。查找工具:使用 {"query":"..."} 调用 POST https://gateway.pipeworx.io/v1/tools/search_packs。
独立运行(无需网关账户)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需与网关往返通信:
{
"mcpServers": {
"statcan": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-statcan"]
}
}
}
也可以直接运行,确认它能够启动:
npx -y @pipeworx/mcp-statcan
它通过 stdin/stdout 使用 MCP 通信,并响应 initialize/tools/list/tools/call,但仅提供此软件包的工具——不包含上文网关连接所添加的任何共享元工具。相同的源代码,相同的工具,无需 ask_pipeworx 路由。
使用 ask_pipeworx
除了直接调用工具,你也可以用通俗易懂的英语提问——此方式既适用于上述软件包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Statcan data" })
网关会选择合适的工具,并自动填写参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。