MCP server exposing 10 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 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. StatCan has ~8,000 cubes and its endpoint has no paging of its own, so this tool pages for you: pass `title` to search by name (recommended — it is the fast way to the handful you want), or walk `page`. Default 200 per page; `has_more` tells you whether more exist.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_table — Whole StatCan table (or a filtered slice) in ONE call, from a local Pipeworx copy of the table — full history, every coordinate, member labels included, instead of one coordinate per call. Use this instead of statcan_cube_data when the question spans more than one coordinate ("compare all provinces", "the whole eggs/milk/hydro table", "full history for this table"), or instead of statcan_csv_url when you need the DATA rather than a download URL. Covers a curated set of high-demand StatCan product ids only — call with just product_id to check coverage; an uncached product_id REFUSES with a clear message naming what is cached, it does not return an empty result. Data refreshes weekly from StatCan's official getFullTableDownloadCSV export; every response carries data_as_of. Statistics Canada Open Licence permits redistribution.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).statcan_codeset — StatCan's reference code sets (WDS getCodeSets) — the lookup tables every cube's metadata refers to by numeric/short code: frequency (monthly/annual/…), scalar factor (units/thousands/millions), status (footnote codes like 'not available for a specific period'), unit of measure (uom, ~465 units), subject (StatCan's ~622-entry subject-matter classification), survey (the ~900 StatCan surveys that produce the data), classification type, security level, symbol, and terminated-series flags. Use this to decode a frequencyCode/scalarFactorCode/statusCode/uomCode/subjectCode seen elsewhere in this pack's output, or to browse the subject/survey taxonomy. Returns the full set (English by default); pass codeset to fetch just one.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