
Statcan Mcp
io.github.arose26Published by GitHub account arose26v0.1.1Updated Oct 26, 2026
Statistics Canada's 8,200+ data tables: CPI, GDP, labour force, housing. No API key.
Overview
Local MCP server that gives an assistant live access to Statistics Canada's 8,200+ data tables, such as CPI, GDP, labour force and housing starts.
- What you can do
- Search all Statistics Canada data tables by keyword
- Inspect a table's dimensions and members, capped and keyword-filterable
- Fetch time series by vector ID with a date range or latest-N periods
- Fetch time series by table plus one member choice per dimension
- Decode an unknown vector ID into its title and source table
- Codes are decoded at runtime, so responses show readable labels instead of numeric enums
- When to use it
- Useful when you want an assistant to answer questions about Canadian economic and social statistics, such as unemployment trends, inflation comparisons between provinces, or housing starts, without hand-writing StatCan API calls.
- Requirements
- Runs locally over stdio, typically launched with npx from the npm package statcan-mcp, so Node.js and network access to the Statistics Canada Web Data Service are needed. No API key or environment variables are required.
Installation
In SourceWeft
- Open Statcan Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
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", notscalarFactorCode: 3, statusCode: 5. Nothing hardcoded to go stale. - Forgiving inputs — vector IDs accepted as
v41690973or41690973; coordinates padded automatically.
Quick start
Claude Code
Claude Desktop — add to claude_desktop_config.json:
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
Architecture: 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 (
*Frfields are already in the API responses) - Full-table CSV download for bulk analysis
- Streamable HTTP transport for remote deployment
License
MIT
Source: README.md at commit b24fa4d
Tools
0Version history
1- v0.1.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts