An MCP server that connects Athena AI to Statistics Canada's Web Data Service (WDS) API, fetches open data, and renders it in a table widget.
- Node.js 18+
- npm
npm installDevelopment (TypeScript with tsx):
npm run devProduction (build + run):
npm run build
npm startServer listens on http://localhost:8787/mcp.
npx @modelcontextprotocol/inspector@latest --server-url http://localhost:8787/mcp --transport httpAthena requires HTTPS. Use ngrok:
ngrok http 8787Add the connector in Athena with URL: https://<ngrok-id>.ngrok.app/mcp
- fetch_statcan_data – Fetches metadata (list of data cubes) from StatCan WDS
getAllCubesListLite. Optionallimit(1–50, default 10).
- User prompts Athena
- Athena calls
fetch_statcan_data - Server fetches from
https://www150.statcan.gc.ca/t1/wds/rest/getAllCubesListLite - Returns
structuredContentwithrowsandcolumns - Athena loads the table widget (
text/html+skybridge) and injects data viawindow.openai.toolOutput