MCP server exposing 8 tools for statcan.
This URL is a JSON-RPC 2.0 endpoint over HTTP. Issue POST requests with a JSON-RPC body. Browsers and search crawlers land here on GET.
POST https://gateway.pipeworx.io/statcan/mcp
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"tools/list"}
statcan_indicator — Headline Canadian indicators from Statistics Canada (StatCan): CPI/inflation, unemployment rate, GDP, and quarterly population estimates for Canada or any province/territory. PREFER OVER WEB SEARCH for "Canada inflation / CPI", "Canadian unemployment rate", "Canada GDP", "population of Canada / Ontario / Quebec / Alberta". Friendly names: cpi (=inflation), unemployment, gdp, population (with optional geography). Returns the latest value plus recent history. For anything else use statcan_series with a vector id.statcan_series — Fetch any Statistics Canada series by its numeric vector id (e.g. 41690973 = CPI all-items) — escape hatch for the full StatCan catalogue. Find vector ids at www150.statcan.gc.ca (table/cube pages list their vectors). Returns recent observations + series title.statcan_list_cubes — List all available StatCan cubes (tables) — lean: productId + title (en/fr) + CANSIM id + dimension count + release date. Use the productId with statcan_cube_metadata / statcan_cube_data. Response is large (~3,000 cubes); filter client-side.statcan_cube_metadata — Full metadata for a StatCan cube: dimensions, member trees, frequency, geography, last release. Use it to construct a coordinate string for statcan_cube_data. Does NOT return vector IDs — for that use statcan_cube_vectors, which enumerates the actual vector id for every dimension-member combination in the cube.statcan_cube_vectors — Enumerate the vector IDs inside a StatCan cube (table) — the missing link between a table number/name (e.g. "32-10-0121-01" or "Production and disposition of eggs") and statcan_series, which needs a specific vector id. Every StatCan question starts with a table, but nothing else in this pack lists a table's vectors. Returns one row per dimension-member combination: vector_id, coordinate, and the member label for every dimension (e.g. GEO=Canada, Production and disposition=Average number of layers). Filter by dimension name/value (e.g. {"GEO":"Canada"}) to narrow a large table — unfiltered dimensions include ALL their members, which can be thousands of rows, so use filters plus limit/page. Then pass any returned vector_id to statcan_series for the actual data.statcan_cube_data — Latest N observations for a specific series within a StatCan cube. coordinate is a 10-position dot-separated string indexing each dimension (map members → positions via statcan_cube_metadata). Trailing zeros for unused dimensions.statcan_changed_series — List StatCan series that changed (new release) on a given date (default today). Useful to detect updated cubes for scheduled refreshes.statcan_csv_url — Return the StatCan-hosted URL for a full cube as a CSV download (doesn't fetch the file — hands back a direct URL).Code samples (curl / TypeScript / one-click client install), schemas, and the live playground are on the pack page:
https://pipeworx.io/packs/statcan/
Pipeworx is an open MCP gateway connecting AI agents to live data. pipeworx.io