Bank of Canada

live FinanceData

Bank of Canada Valet API MCP. Keyless. Dates are YYYY-MM-DD.

5 tools
0ms auth
free tier 50 calls/day

Tools

get_observations

Time-series observations for one or more Bank of Canada series. Pass comma-separated series names. Well-known: FXUSDCAD (USD/CAD daily avg rate), FXEURCAD (EUR/CAD), V39079 (target for the overnight r

No parameters required.

Try it
get_group_observations

Observations for every series in a named group in one call. Useful groups: FX_RATES_DAILY (daily exchange rates for all currencies vs CAD). Use recent=N or a start_date/end_date window.

No parameters required.

Try it
series_info

Metadata for a single series: label and description. e.g. "FXUSDCAD" or "V39079".

No parameters required.

Try it
list_series

Discover available series. Optionally filter by a case-insensitive substring matched against series label/description, e.g. "exchange rate" or "CPI". Omit query to list all (large).

No parameters required.

Try it
list_groups

Discover available series groups. Optionally filter by a case-insensitive substring matched against group label/description, e.g. "exchange" or "lending".

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.

List available tools
bash
curl -X POST https://gateway.pipeworx.io/bank-of-canada/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Call a tool
bash
curl -X POST https://gateway.pipeworx.io/bank-of-canada/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_observations","arguments":{}}}'

Use with the SDK

Install @pipeworx/sdk to call tools from any TypeScript/Node project.

TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("get_observations", {});
ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("bank of canada valet api mcp");