statcan_list_cubes
Pack: statcan · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)
No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/statcan_list_cubes for the schema, then POST the same URL with its arguments for the data.
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.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
title | string | no | Case-insensitive substring match against the English and French cube titles, e.g. “egg” or “population”. Applied to the cubes scanned on this page. |
limit | number | no | Cubes per page (1-500, default 200). |
page | number | no | Page number, 1-based (default 1). |
Example call
Arguments
{}
curl
curl -X POST https://gateway.pipeworx.io/statcan/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"statcan_list_cubes","arguments":{}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('statcan_list_cubes', {});
Response shape
Always returns: count, page, limit, has_more, cubes
| Field | Type | Description |
|---|---|---|
count | number | Cubes returned on THIS page (not the catalogue total — StatCan’s endpoint has no paging, so this tool streams and pages; use has_more/next_page) |
cubes | array | List of available cubes |
page | number | 1-based page number returned |
limit | number | Cubes per page (1-500, default 200) |
has_more | boolean | True when more cubes exist beyond this page |
next_page | number | null | Next page number, or null at the end |
title_filter | string | null | The lower-cased title substring applied, or null |
scanned | number | Cubes read off the upstream stream before stopping — the bound that keeps this call from holding StatCan’s whole 8 MB array in memory |
scan_truncated | boolean | True when the read stopped at the cap rather than the end of the upstream array, so a short page is OUR ceiling and not proof the list ended |
upstream_bytes_read | number | Bytes actually pulled from StatCan WDS for this call |
note | string | null | Present when the scan was truncated: says what was scanned and how to narrow |
licence | string | Statistics Canada Open Licence |
Full JSON Schema
{
"type": "object",
"properties": {
"count": {
"type": "number",
"description": "Cubes returned on THIS page (not the catalogue total -- StatCan's endpoint has no paging, so this tool streams and pages; use has_more/next_page)"
},
"cubes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"product_id": {
"type": [
"number",
"null"
],
"description": "Cube product ID"
},
"cansim_id": {
"type": [
"string",
"null"
],
"description": "CANSIM identifier"
},
"title_en": {
"type": [
"string",
"null"
],
"description": "English cube title"
},
"title_fr": {
"type": [
"string",
"null"
],
"description": "French cube title"
},
"start_date": {
"type": [
"string",
"null"
],
"description": "Cube start date"
},
"end_date": {
"type": [
"string",
"null"
],
"description": "Cube end date"
},
"release_time": {
"type": [
"string",
"null"
],
"description": "Release timestamp"
},
"archived": {
"type": [
"string",
"null"
],
"description": "Archive status"
},
"subject_codes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Subject classification codes"
},
"dimension_count": {
"type": [
"number",
"null"
],
"description": "Number of dimensions"
}
},
"required": [
"product_id",
"cansim_id",
"title_en",
"title_fr",
"start_date",
"end_date",
"release_time",
"archived",
"subject_codes",
"dimension_count"
]
},
"description": "List of available cubes"
},
"page": {
"type": "number",
"description": "1-based page number returned"
},
"limit": {
"type": "number",
"description": "Cubes per page (1-500, default 200)"
},
"has_more": {
"type": "boolean",
"description": "True when more cubes exist beyond this page"
},
"next_page": {
"type": [
"number",
"null"
],
"description": "Next page number, or null at the end"
},
"title_filter": {
"type": [
"string",
"null"
],
"description": "The lower-cased title substring applied, or null"
},
"scanned": {
"type": "number",
"description": "Cubes read off the upstream stream before stopping -- the bound that keeps this call from holding StatCan's whole 8 MB array in memory"
},
"scan_truncated": {
"type": "boolean",
"description": "True when the read stopped at the cap rather than the end of the upstream array, so a short page is OUR ceiling and not proof the list ended"
},
"upstream_bytes_read": {
"type": "number",
"description": "Bytes actually pulled from StatCan WDS for this call"
},
"note": {
"type": [
"string",
"null"
],
"description": "Present when the scan was truncated: says what was scanned and how to narrow"
},
"licence": {
"type": "string",
"description": "Statistics Canada Open Licence"
}
},
"required": [
"count",
"page",
"limit",
"has_more",
"cubes"
]
}
Connect
Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:
{
"mcpServers": {
"pipeworx": {
"url": "https://pipeworx.io/mcp"
}
}
}
Connect to just the statcan pack
{
"mcpServers": {
"statcan": {
"url": "https://gateway.pipeworx.io/statcan/mcp"
}
}
}
See Getting Started for client-specific install steps.