About bank-of-canada-mcp
bank-of-canada-mcp is an MCP server for Claude and other LLMs to access Canadian economic data from the Bank of Canada's Valet API. Its tools cover series search, exchange rates, and currency conversion without an API key.
Key features
- 01Search the economic time-series catalogue
- 02Retrieve observations by date range
- 03Get official daily exchange rates against CAD
- 04Convert currencies using today's rates
- 05Data includes rates, CPI, and bond yields
Use cases
- 01Review changes in the Bank of Canada's policy rate
- 02Plot historical USD/CAD rates
- 03Convert currency at the official daily rate
- 04Compare core and headline CPI
MCP support
As an MCP server, it exposes tools for searching series, retrieving observations, checking exchange rates, and converting currencies, using the Bank of Canada Valet API.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
4Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | No | Max results to return |
| query | string | Yes | Keywords, e.g. 'overnight rate target' or 'USD exchange' |
Details
From the project READMEbank-of-canada-mcp
An MCP server that gives Claude and other LLMs live access to Canadian economic data via the Bank of Canada's free Valet API — ~16,000 time series covering exchange rates, the policy interest rate, CPI, bond yields, commodity prices, and more.
FRED, the World Bank, and the IMF all have MCP servers. Canada didn't — now it does.
No API key required.
Quick start
Claude Code
claude mcp add bank-of-canada -- npx -y bank-of-canada-mcp
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"bank-of-canada": {
"command": "npx",
"args": ["-y", "bank-of-canada-mcp"]
}
}
}
The same npx invocation works in Cursor, Windsurf, and any other MCP client.
Tools
| Tool | What it does |
|---|---|
search_series | Keyword search across the full series catalogue — find the series name for anything ("overnight rate target", "CPI", "5-year bond") |
get_observations | Time-series data for up to 5 series, by date range or N most recent |
latest_fx_rates | Today's official daily exchange rates vs CAD |
convert_currency | Convert between any two supported currencies using today's rates |
Example prompts
- "What's the Bank of Canada's current policy rate, and how has it moved this year?"
- "Plot USD/CAD for the last 90 days."
- "Convert 2,500 EUR to CAD at today's official rate."
- "How does core CPI compare to headline CPI over the past two years?"
Development
npm install
npm test # offline unit tests (vitest)
npm run build # tsc → dist/
Architecture: src/valet.ts is a plain API client with pure, unit-tested logic (search, conversion math); src/index.ts is the MCP wiring. Errors from the Valet API (e.g. an unknown series name) are returned as MCP tool errors with the API's own message, so the model can self-correct by re-searching.
Notes
- Rates are the Bank of Canada's indicative daily averages, published once per business day — not transactional quotes.
- Data is © Bank of Canada, used under their terms. This project is not affiliated with or endorsed by the Bank of Canada.
Roadmap
- Statistics Canada Web Data Service tools
- Group browsing (
lists/groups) - Streamable HTTP transport for remote deployment
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.