MCP server
The BC Data MCP server at api.bcmcp.ca/mcp: transport, authentication, and how it relates to the REST API.
Address: https://api.bcmcp.ca/mcp. Transport: Streamable HTTP, stateless, JSON responses. Every request needs your key in Authorization: Bearer <key>, including initialize and tools/list.
The tools are the same registry that the REST API serves. Same names, same arguments, same answers, same citations. Reference lists them all.
Without a key
The server answers HTTP 401 with WWW-Authenticate: Bearer realm="bc-data" and this body:
{
"jsonrpc": "2.0",
"id": null,
"error": {
"code": -32001,
"message": "API key required. Sign up free at https://bcmcp.ca/signup and send it as Authorization: Bearer <key>.",
"data": { "code": "unauthorized" }
}
}Try it without a client
curl -X POST https://api.bcmcp.ca/mcp \
-H "Authorization: Bearer $BCDATA_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Add it to a client
See Connect an MCP client for Claude Code, Cursor, VS Code and Windsurf, and for why claude.ai and ChatGPT cannot use a key yet.
The old address
https://mcp.bcmcp.ca/mcp is kept for now and needs a key too.