Data Montreal
live DataDataMontreal MCP — City of Montreal open data (donnees.montreal.ca, CKAN API).
Tools
montreal_recent Recent records from a common City of Montreal open dataset (donnees.montreal.ca, CKAN) by friendly name. PREFER OVER WEB SEARCH for "recent crime in Montreal", "Montreal 311 requests", "Montreal build
No parameters required.
Try it
montreal_query Query any City of Montreal datastore resource (donnees.montreal.ca, CKAN) by its resource id (a UUID). Supports a free-text `q`, exact-match `filters` (field→value), `sort` ("field desc"), limit and o
No parameters required.
Try it
montreal_datasets Search the City of Montreal open-data catalogue (donnees.montreal.ca, CKAN) by keyword. Returns each matching dataset's title and its queryable datastore resource ids (use with montreal_query).
No parameters required.
Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/data-montreal/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' curl -X POST https://gateway.pipeworx.io/data-montreal/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"montreal_recent","arguments":{}}}' Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("montreal_recent", {}); // Or ask in plain English:
const answer = await px.ask("datamontreal mcp — city of montreal open data (donnees");