NBP
The National Bank of Poland publishes official exchange rates every Polish business day — and this server wraps the whole api.nbp.pl surface in five tools. Full A/B/C tables (mid rates for ~35 major and ~115 exotic currencies, plus bid/ask), single rates, historical series back to 2002, gold prices back to 2013, and a converter that cross-rates any two quoted currencies through PLN using official mid rates. Weekend or holiday? Requests fall back to the most recent publication, and effectiveDate always shows the date actually used.
Thirty seconds, any client.
claude mcp add --transport http nbp https://mcp.wondel.ai/nbp/mcp One command in your terminal — the server is available in every Claude Code session.
https://mcp.wondel.ai/nbp/mcp Works on every Claude plan that supports custom connectors.
{
"mcpServers": {
"nbp": {
"url": "https://mcp.wondel.ai/nbp/mcp"
}
}
} Add to .cursor/mcp.json, VS Code's mcp.json, or any client that takes an mcpServers map.
npx mcp-remote https://mcp.wondel.ai/nbp/mcp For stdio-only clients: mcp-remote bridges the remote endpoint to a local process. Streamable HTTP-capable clients can hit the URL directly — a legacy /sse endpoint exists too.
This server works with Claude, Claude Code, Claude Desktop, Claude Cowork, Cursor, VS Code, Windsurf — and any other MCP client. Stdio-only clients connect through npx mcp-remote.
5 tools, fully typed.
Parameters below are transcribed from the server’s own zod schemas — what you see is what the tool validates.
nbp_exchange_rates A full NBP exchange-rate table against PLN — the latest by default, or the table in force on a historical date. Data starts 2002-01-02.
| Param | Type | Description |
|---|---|---|
| table | enum = a | a = mid rates of ~35 major currencies (daily) · b = ~115 less-traded currencies (Wednesdays) · c = bid/ask of majors (daily). abc |
| date | date | Historical date, YYYY-MM-DD. Omit for the latest table. |
| no_cache | boolean = false | Force a fresh NBP fetch, bypassing this server’s result cache. |
nbp_exchange_rate One currency’s official rate vs PLN — latest or historical. Tables a/b return the mid rate; table c returns bid/ask.
| Param | Type | Description |
|---|---|---|
| code * | string | Three-letter ISO 4217 code (USD, EUR, CHF, …). Case-insensitive. |
| table | enum = a | Which NBP table to read. abc |
| date | date | Historical date, YYYY-MM-DD. Omit for the latest rate. |
| no_cache | boolean = false | Force a fresh NBP fetch, bypassing this server’s result cache. |
nbp_rate_series A historical series for one currency: the last N published quotes, or an explicit date window (≤93 days per query — chain calls for longer spans).
| Param | Type | Description |
|---|---|---|
| code * | string | Three-letter ISO 4217 code. Case-insensitive. |
| table | enum = a | Which NBP table to read. abc |
| last_n | integer = 30 | Last N published quotes (1–255). Mutually exclusive with the date window. |
| start_date | date | Window start (inclusive). Requires end_date. |
| end_date | date | Window end (inclusive). Requires start_date; span ≤ 93 days. |
| no_cache | boolean = false | Force a fresh NBP fetch, bypassing this server’s result cache. |
nbp_convert Convert between any two NBP-quoted currencies (PLN included), cross-rated through PLN at official mid rates. Table B is consulted automatically for exotic codes.
| Param | Type | Description |
|---|---|---|
| from * | string | Source currency code, e.g. USD or PLN. Case-insensitive. |
| to * | string | Target currency code, e.g. EUR or PLN. |
| amount * | number | Amount in the source currency (> 0). |
| date | date | Historical date, YYYY-MM-DD. Omit for the latest rates. |
| no_cache | boolean = false | Force a fresh NBP fetch, bypassing this server’s result cache. |
nbp_gold_price The official NBP gold price — PLN per gram of 1000-fineness gold. Latest, one date, last N quotes, or a ≤93-day range. Data starts 2013-01-02.
| Param | Type | Description |
|---|---|---|
| date | date | One historical date. Mutually exclusive with last_n and the range. |
| last_n | integer | Last N published prices (1–255). Mutually exclusive with date and the range. |
| start_date | date | Range start (inclusive). Requires end_date. |
| end_date | date | Range end (inclusive). Requires start_date; span ≤ 93 days. |
| no_cache | boolean = false | Force a fresh NBP fetch, bypassing this server’s result cache. |
Prompts that just work.
Convert 2,500 EUR to PLN at today’s official NBP rate.
nbp_convertChart USD/PLN over the last 90 published quotes and mark the extremes.
nbp_rate_seriesHow did the official gold price move over Q1 2026?
nbp_gold_priceWhat comes back
{
"source": "nbp",
"fetchedAt": "2026-07-02T14:02:11.312Z",
"query": { "from": "EUR", "to": "PLN", "amount": 2500 },
"amount": 2500,
"result": 10682.75,
"from": { "code": "EUR", "rate": 4.2731, "table": "a", "effectiveDate": "2026-07-02" },
"to": { "code": "PLN", "rate": 1 },
"rateBasis": "NBP mid rates cross-rated through PLN (table A, table B fallback); PLN = 1"
}
Abridged real response. Every payload carries the same envelope — source says
where the data came from, fetchedAt says when, query echoes what you asked.
Compact JSON in one text block, exactly how agents like it.
Add NBP
to your agent.
mcp.wondel.ai/nbp/mcp Authless · Read-only public data · Streamable HTTP at /mcp, legacy SSE at /nbp/sse