About Frankfurter
Frankfurter is an MCP server that relays Frankfurter API reference exchange rates to MCP clients. Its tools convert amounts, retrieve daily or historical rates, and list supported currencies and rate providers; rates are not real-time trading quotes.
Key features
- 01Convert amounts between currencies
- 02Fetch daily or historical rates
- 03Select or compare rate providers
- 04List supported ISO 4217 currencies
- 05List provider coverage details
Use cases
- 01Convert an amount using a reference rate
- 02Look up a rate for a past date
- 03Compare rates from selected institutions
MCP support
The server exposes Frankfurter exchange-rate API operations as MCP tools over Streamable HTTP. MCP clients can connect to the hosted endpoint or a locally run instance.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.frankfurter.dev/claude mcp add --transport http lineofflight-frankfurter https://mcp.frankfurter.dev/{"mcpServers":{"lineofflight-frankfurter":{"type":"http","url":"https://mcp.frankfurter.dev/"}}}Open in Cursor{"servers":{"lineofflight-frankfurter":{"type":"http","url":"https://mcp.frankfurter.dev/"}}}Open in VS Code{"mcpServers":{"lineofflight-frankfurter":{"type":"http","url":"https://mcp.frankfurter.dev/"}}}{"mcpServers":{"lineofflight-frankfurter":{"serverUrl":"https://mcp.frankfurter.dev/"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
4| Parameter | Type | Required | Description |
|---|---|---|---|
| base | string | No | ISO 4217 base currency. Default EUR. |
| date | string | No | Single day YYYY-MM-DD. Omit for the latest rates. |
| quotes | array | No | ISO 4217 quote codes to return; omit for all. |
| provider | array | No | Provider key or keys, e.g. ECB or ['ECB', 'HMRC']. Serves published rates instead of the blend; a date inside a monthly or quarterly provider's period returns the rate in force. Keys at https://frankfurter.dev/providers/. |
| providers | array | No | Alias for `provider` accepting multiple provider keys. |
Details
From the project READMEfrankfurter-mcp
Official Model Context Protocol server for the Frankfurter exchange-rate API. A thin, stateless proxy over Frankfurter's v2 blended multi-source reference rates.
Tools
convert— the primary tool. Convert an amount between two currencies; returns a money object{ amount, currency }rounded to the target's minor units. Passdatefor a historical rate,providerfor one institution's published rate (e.g.UST, the U.S. Treasury's quarterly reporting rate).get_rates— blended reference rates for the latest day or a singledate. Optionalbase,quotesandprovider(orprovidersto compare multiple institutions). The raw-rate companion toconvert; withproviderand the provider's own base, the digits are as published, with the date they took effect.list_currencies— supported ISO 4217 codes and names as{ code: name }.list_providers— the institutions relayed, with key, rate type, frequency and coverage dates, to pick aprovider.
For time series, historical ranges, or bulk queries, use the REST API at
https://api.frankfurter.dev/v2 directly.
Rates are daily reference rates, not real-time trading rates. Not financial advice.
Run
npm install
npm run build
npm start # listens on :3000, POST /
Docker:
docker build -t frankfurter-mcp . && docker run -p 3000:3000 frankfurter-mcp
docker run -p 3000:3000 ghcr.io/lineofflight/frankfurter-mcp:latest
The prebuilt ghcr.io/lineofflight/frankfurter-mcp:latest image is published
on each release; building from source also works.
Point any MCP client at http://<host>:3000/ (Streamable HTTP). The hosted
server is at https://mcp.frankfurter.dev/.
Configuration
PORT— HTTP port (default3000).FRANKFURTER_API_URL— upstream API base (defaulthttps://api.frankfurter.dev). Set this to a self-hosted Frankfurter instance if desired. The value must be a host root: any path prefix in it is discarded (e.g.https://example.com/apiresolves tohttps://example.com/v2/rates), so a self-hosted instance must be reachable at the host root.
Development
npm test # vitest
npm run lint # biome
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.