OFFICIAL API

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.

5 tools <1 s cache: 1 h latest · 30 d historical PLN-based api.nbp.pl (official, keyless)

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.

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_convert

Chart USD/PLN over the last 90 published quotes and mark the extremes.

nbp_rate_series

How did the official gold price move over Q1 2026?

nbp_gold_price

What 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