Boe Mcp

io.github.moureaufPublished by GitHub account moureaufv0.2.0Updated Oct 24, 2026

Bank of England base rate, rate history, historical lookup, and next MPC meeting date over stdio.

VerifiedSTDIODesktop onlyFinanceData & Analytics

Overview

AI-generated overview

Read-only MCP server that gives an assistant live Bank of England base rate data, IADB statistical series and MPC meeting dates.

What you can do
  • Look up the current UK base rate, its effective date and how long it has been held
  • Review recent rate changes with basis-point moves, or the rate in force on a past date
  • Compute summary statistics (min, max, time-weighted average, net move) over a date range
  • Browse a curated catalog of BoE IADB series and fetch observations for any IADB code, with date range and limit
  • List upcoming Monetary Policy Committee announcement dates and days until each
When to use it
Useful when an assistant needs current or historical UK interest rate figures, SONIA, exchange rates or other Bank of England statistical series, or the next MPC announcement date, without manual lookups.
Requirements
Runs locally over stdio via npx with Node.js; no API key, account or configuration required. Optional HTTP mode is enabled with a flag or the BOE_MCP_HTTP_PORT variable, with BOE_MCP_HTTP_HOST and BOE_CACHE_TTL_MINUTES as further settings. Needs internet access to the Bank of England's public data endpoints.
Before you install
Read-only: it fetches public BoE data and does not change anything. If BoE is unreachable it may serve cached values marked stale. Setting BOE_MCP_HTTP_HOST to 0.0.0.0 exposes the server with no authentication to every attached network, so keep the default loopback bind or put it behind a proxy or firewall. The underlying IADB endpoint is not an officially documented API and could change.

Installation

In SourceWeft

  1. Open Boe Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

boe-mcp

[npm] [CI] [node] [license] [MCP Registry]

An MCP (Model Context Protocol) server that gives Claude Code — or any MCP client — live Bank of England data: the base rate (current level, change history, statistics over any period, and the rate in force on any past date), any series from the BoE's IADB statistical database (SONIA, exchange rates, quoted mortgage rates, and thousands more, with a curated catalog to start from), and the Monetary Policy Committee meeting schedule. It runs over stdio by default (with an opt-in Streamable HTTP mode for remote hosting), needs no API key or configuration, and caches responses in memory so repeated questions don't re-hit the BoE.

[boe-mcp demo: calling get_current_rate and get_next_mpc_meeting, returning live Bank of England data]

Published on npm as boe-mcp with build provenance — install and run it with npx -y boe-mcp.

Tools

ToolDescriptionExample output
get_current_rateCurrent base rate, effective date, months held at this level{ "rate": 3.75, "effectiveDate": "2025-12-18", "monthsHeld": 6, "source": "https://www.bankofengland.co.uk/boeapps/iadb/...", "cachedAt": "2026-07-07T04:11:28Z" }
get_rate_historyLast N rate changes (default 10) — date, rate, move in basis points vs previous (null for the earliest known entry){ "entries": [{ "date": "2025-12-18", "rate": 3.75, "changeBps": -25 }, ...], "source": "...", "cachedAt": "..." }
get_rate_atThe base rate in force on a specific historical date{ "date": "2020-03-15", "rate": 0.25, "effectiveDate": "2020-03-11", "source": "...", "cachedAt": "..." }
get_rate_statsSummary statistics of the base rate over a date range (optional from/to, default full history): min/max with the date each level first applied, time-weighted average, start/end rates and net move in basis points{ "from": "2025-01-01", "to": "2025-12-31", "min": { "rate": 3.75, "date": "2025-12-18" }, "max": { "rate": 4.75, "date": "2025-01-01" }, "average": 4.2514, "startRate": 4.75, "endRate": 3.75, "changeBps": -100, "source": "...", "cachedAt": "..." }
get_next_mpc_meetingDate of the next scheduled MPC announcement and days until it{ "date": "2026-07-30", "daysUntil": 23, "source": "https://www.bankofengland.co.uk/monetary-policy/upcoming-mpc-dates", "cachedAt": "..." }
get_mpc_datesAll upcoming MPC announcement dates on the published schedule, each with days until it{ "dates": [{ "date": "2026-07-30", "daysUntil": 23 }, { "date": "2026-09-17", "daysUntil": 72 }, ...], "source": "https://www.bankofengland.co.uk/monetary-policy/upcoming-mpc-dates", "cachedAt": "..." }
list_seriesCurated catalog of well-known IADB series (policy rates, market rates, FX, household rates) with code, name, description, unit and frequency — a starting point for get_series{ "series": [{ "code": "IUDSOIA", "name": "SONIA (Sterling Overnight Index Average)", "description": "...", "unit": "percent per annum", "frequency": "daily (business days)" }, ...], "note": "get_series also accepts any other IADB code..." }
get_seriesFetch observations for any BoE IADB series by code, with optional from/to ISO dates and a limit (1–500, default 50) on the most recent points{ "seriesCode": "IUDSOIA", "name": "SONIA (Sterling Overnight Index Average)", "unit": "percent per annum", "frequency": "daily (business days)", "points": [{ "date": "2025-12-19", "value": 3.69 }, ...], "source": "...", "cachedAt": "..." }

get_series accepts any valid IADB code (not only the catalogued ones); an unknown or empty code returns a clean Unknown or empty IADB series "XXXX" — use list_series for known codes message. Use list_series to discover codes.

If the BoE is unreachable and a previously cached value exists, tools serve the cached data with "stale": true so the caller can flag the caveat. With no cache at all they return a clean error message.

Installation

Add to your Claude Code settings.json:

json
{  "mcpServers": {    "boe": {      "command": "npx",      "args": ["-y", "boe-mcp"]    }  }}

Or use the CLI:

bash
claude mcp add boe -- npx -y boe-mcp
Claude Desktop

Add to claude_desktop_config.json:

json
{  "mcpServers": {    "boe": {      "command": "npx",      "args": ["-y", "boe-mcp"]    }  }}
Cursor

Add to ~/.cursor/mcp.json:

json
{  "mcpServers": {    "boe": {      "command": "npx",      "args": ["-y", "boe-mcp"]    }  }}
VS Code

Add to .vscode/mcp.json:

json
{  "servers": {    "boe": {      "command": "npx",      "args": ["-y", "boe-mcp"]    }  }}

HTTP mode (remote hosting)

By default the server speaks MCP over stdio as a child process of the client. To host it remotely instead, start it in Streamable HTTP mode:

bash
npx -y boe-mcp --http                  # listen on http://127.0.0.1:3000/mcpnpx -y boe-mcp --http 8080             # explicit portBOE_MCP_HTTP_PORT=8080 npx -y boe-mcp  # env var instead of the flag
SettingHowDefault
Enable HTTP mode--http flag or BOE_MCP_HTTP_PORT env varoff (stdio)
Port--http <port>, else BOE_MCP_HTTP_PORT, else 30003000
Bind hostBOE_MCP_HTTP_HOST127.0.0.1

Endpoints: POST /mcp (JSON-RPC), GET /healthz (returns ok, for hosting platform health checks). The transport is stateless — every POST is served by a fresh server instance, so there are no sessions to resume and no SSE stream; GET/DELETE /mcp return 405. That makes instances safe to scale horizontally behind a load balancer.

Try it with curl:

bash
curl -X POST http://127.0.0.1:3000/mcp \  -H 'content-type: application/json' \  -H 'accept: application/json, text/event-stream' \  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'

Security: the default bind of 127.0.0.1 only accepts connections from the local machine, and DNS-rebinding protection (Host-header validation) is enabled automatically for loopback binds. Setting BOE_MCP_HTTP_HOST=0.0.0.0 exposes the server, with no authentication, to every network the machine is attached to — only do that behind a reverse proxy or firewall that controls who can reach it (DNS-rebinding protection is disabled for non-loopback binds, since the server can't know the legitimate public hostname).

Configuration

Env varDefaultDescription
BOE_CACHE_TTL_MINUTES60How long to cache BoE responses in memory (0 disables caching)
BOE_MCP_HTTP_PORTunsetEnable HTTP mode on this port (see HTTP mode)
BOE_MCP_HTTP_HOST127.0.0.1Bind host for HTTP mode — 0.0.0.0 exposes the server to the network; see the security note above

Data sources

  • Base rate: the Bank of England Statistical Interactive Database (IADB), series IUDBEDR, via its public CSV endpoint. No auth, no key. Honest caveat: the IADB is not officially documented as a public API — it has been stable for many years and is widely used, but the Bank makes no compatibility promises, so a breaking change is possible in principle.
  • MPC dates: parsed from the BoE's public upcoming MPC dates page. The parser deliberately avoids depending on the page's markup (it scans the visible text for dates), so cosmetic redesigns won't break it.

Running from source

bash
git clone https://github.com/moureauf/boe-mcp.gitcd boe-mcpnpm installnpm run buildnpm start            # runs the stdio server

Contributing & releasing

See CONTRIBUTING.md for the development workflow (making changes, testing, adding tools, versioning) and how the release pipeline connects GitHub, npm, and the MCP registry. Publishing is automated: pushing a v* tag runs .github/workflows/publish.yml, which builds, tests, and publishes to npm via trusted publishing (OIDC — no token secret, with a provenance attestation) and to the official MCP registry. Exact commands and one-time setup are in RELEASING.md.

License

MIT

Source: README.md at commit 57442fa

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts