Statcan MCP server
Statistics Canada's 8,200+ data tables: CPI, GDP, labour force, housing. No API key.
0 stars38 downloads/wk
Reviews
Write oneNobody has reviewed Statcan yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Statcan tools (5)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
get_data_by_coordinateFetch observations by choosing one member ID per dimension of a table (get them from get_table_metadata). Example: table 18100004 with member_ids [2, 2] = CPI, Canada, all-items.
get_data_by_vectorsFetch observations for up to 10 Statistics Canada vector IDs (a vector uniquely identifies one time series, e.g. v41690973 = CPI all-items Canada). Give a date range, or latest_n most recent periods (default 12).
get_series_infoWhat is this vector? Returns the series title, source table, and coordinate for a vector ID.
get_table_metadataStructure of a Statistics Canada table: its dimensions and their members with member IDs. Large dimensions are truncated — pass member_filter (e.g. 'gasoline') to find specific members. Use the member IDs with get_data_by_coordinate.
search_tablesKeyword search across all ~8,200 Statistics Canada data tables (CPI, GDP, labour force, housing, population...). Returns product IDs to explore with get_table_metadata.
Public scan report
scanner v0.1.9 · 2026-09-23 · same rubric, same numbers if you re-run it
- Code scan5 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 40 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
What the publisher says
From the Statcan repository's README, as published. We do not edit it. Read it on GitHub
statcan-mcp
An MCP server that gives Claude and other LLMs live access to Statistics Canada — all 8,200+ data tables from the Web Data Service: CPI, GDP, labour force, housing starts, population, trade, and more.
No API key required.
Sibling project: bank-of-canada-mcp for Bank of Canada rates and FX.
Why this exists
StatCan's API is powerful but hostile: POST-only lookups, opaque numeric vector IDs, 10-position "coordinate" addressing, and numeric code enums everywhere (scalarFactorCode: 3). This server translates it into something an LLM can actually drive:
- Discovery flow built into the tools — search tables → inspect dimensions → fetch data, with each tool description pointing to the next step.
- Context-friendly by default — a CPI dimension has 359 members and a series can span a century; members are capped and keyword-filterable, data defaults to the last 12 periods.
- Codes decoded at runtime via StatCan's own code-set endpoint — responses say "scale": "thousands" and "note": "use with caution", not scalarFactorCode: 3, statusCode: 5. Nothing hardcoded to go stale.
- Forgiving inputs — vector IDs accepted as v41690973 or 41690973; coordinates padded automatically.
Quick start
Claude Code
claude mcp add statcan -- npx -y statcan-mcpClaude Desktop — add to claudedesktopconfig.json:
{
"mcpServers": {
"statcan": {
"command": "npx",
"args": ["-y", "statcan-mcp"]
}
}
}The same npx invocation works in Cursor, Windsurf, and any other MCP client.
Tools
Example prompts
- "What's Canada's current unemployment rate, and how has it trended over 12 months?"
- "Compare gasoline price inflation in Ontario vs Quebec since 2024."
- "How many housing starts were there in Canada last quarter?"
- "What is vector v41690973?"
Development
npm install
npm test # offline unit tests (vitest)
npm run build # tsc → dist/
node scripts/smoke.mjs # live smoke test against the real APIArchitecture: src/wds.ts is a plain WDS client with pure, unit-tested logic (catalogue search, coordinate padding, code decoding); src/index.ts is the MCP wiring. API failures (unknown vector, bad coordinate) come back as MCP tool errors carrying StatCan's own message so the model can self-correct.
Notes
- Data is © Statistics Canada, used under the Statistics Canada Open Licence. This project is not affiliated with or endorsed by Statistics Canada.
- English output only for now (the API also carries French — see roadmap).
Roadmap
- French-language output (*Fr fields are already in the API responses)
- Full-table CSV download for bulk analysis
- Streamable HTTP transport for remote deployment
License
MIT
Nothing above is checked by us. What we check is on the safety report.
Install directly
Runs npx -y statcan-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add statcan-mcp -- npx -y statcan-mcp
Statcan: common questions
- Is Statcan MCP server safe?
- Yes, by our scan: it is graded A (88/100). Read the Statcan safety report
- How do I install Statcan?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Statcan need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Statcan maintained?
- The last commit was 41 days ago (2026-08-14). The latest release is v0.1.1.