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.

VerifiedSTDIODesktop onlyFinanceData & Analytics

Overview

AI-generated 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.
Before you install
Read-only lookups against a public statistics API; no credentials are requested. Data is published under the Statistics Canada Open Licence and the project is not affiliated with or endorsed by Statistics Canada. Output is English only for now.

Installation

In SourceWeft

  1. Open Statcan Mcp in the dashboard and add it to a workspace.
  2. 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", 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

bash
claude mcp add statcan -- npx -y statcan-mcp

Claude Desktop — add to claude_desktop_config.json:

json
{  "mcpServers": {    "statcan": {      "command": "npx",      "args": ["-y", "statcan-mcp"]    }  }}

The same npx invocation works in Cursor, Windsurf, and any other MCP client.

Tools

ToolWhat it does
search_tablesKeyword search across all ~8,200 data tables
get_table_metadataA table's dimensions and members (capped, filterable) — the map you need to pull data
get_data_by_vectorsTime series by vector ID(s), date range or latest-N
get_data_by_coordinateTime series by table + one member choice per dimension
get_series_infoDecode a mystery vector ID into its title and source table

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

bash
npm installnpm test           # offline unit tests (vitest)npm run build      # tsc → dist/node scripts/smoke.mjs   # live smoke test against the real API

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 (*Fr fields 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

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  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