fx-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fx-mcp-serverConvert 100 USD to EUR"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
fx-mcp-server
A small MCP (Model Context Protocol) server that gives an MCP client — Claude Desktop, Claude Code, the FastMCP inspector, etc. — two finance-related tools:
Tool | What it does |
| Converts an amount from one currency to another using live daily reference rates published by the European Central Bank (ECB). |
| Validates the structure and checksum of an IBAN (International Bank Account Number) and returns |
Built with FastMCP, the server speaks MCP over stdio, so any MCP-compatible client can spawn it as a subprocess and call its tools directly from a chat conversation.
How it works
src/
├── server.py # MCP entrypoint — registers the `convert` and `validate_iban` tools
├── fx_rate_converter.py # Currency math: looks up rates and does the conversion
├── fx_rate_fetcher.py # Fetches the ECB daily reference-rate XML feed and caches it as JSON
└── iban_validator.py # Wraps the `schwifty` library to validate IBAN structure/checksum
data/
└── fx_rates.json # Local cache of the last-fetched ECB rates (auto-generated on first `convert` call, gitignored)convert(source, destination, amount)— callsfx_rate_fetcher.get_fx_rates(), which downloads the ECB'seurofxref-daily.xmlfeed, converts it to JSON, writes it todata/fx_rates.json, and returns it. Rates are EUR-based, so a conversion is computed as(amount / rate[source]) * rate[destination]. Every call re-fetches from ECB, so it requires network access and always reflects the latest published rates (ECB updates once per business day, around 16:00 CET).validate_iban(iban)— delegates to theschwiftylibrary, which checks the IBAN's country-specific format and the mod-97 checksum. It only validates structure, not whether the account actually exists at a bank.
Related MCP server: MCP-valider_iban
Prerequisites
Python 3.13
uv— used by FastMCP to install and run the server in an isolated environmentClaude Desktop (if you want to use the tools from a chat conversation)
Install uv if you don't already have it:
curl -LsSf https://astral.sh/uv/install.sh | shProject setup
Clone/open this repo and create a virtual environment however you prefer (
uv venv,python -m venv .venv, etc.), then install the dependencies:pip install -r requirements.txtrequirements.txtis a pinned snapshot of the working environment, generated with:pip freeze > requirements.txtRegenerate it the same way any time you add or upgrade a dependency, so the pinned versions stay in sync with what's actually installed.
Sanity-check the server definition before running anything — this loads
server.pyand reports the tools it exposes, or any import/registration errors:fastmcp inspect /absolute/path/to/your/fx-mcp-server/src/server.py(Optional) Run it against the interactive FastMCP dev inspector to call the tools by hand and watch requests/responses:
fastmcp dev inspector /absolute/path/to/your/fx-mcp-server/src/server.py
Installing into Claude Desktop
FastMCP can register the server with Claude Desktop directly. Replace the path below with the absolute path to server.py on your machine (pwd inside src/ will give you it):
fastmcp install claude-desktop /absolute/path/to/your/fx-mcp-server/src/server.py \
--python 3.13 \
--with-requirements requirements.txtThis writes an entry into Claude Desktop's MCP config pointing at this server, using Python 3.13 and the dependencies listed in requirements.txt.
Then, in Claude Desktop:
Restart Claude Desktop if it was already open.
Click the
+icon in the connectors panel.You should see fx-mcp-server listed — enable it.
That's it — convert and validate_iban are now available as tools Claude can call during a conversation. Try asking things like:
Convert 100 USD to INR
Is DE89370400440532013000 a valid IBAN?
Troubleshooting
print()statements break the server. MCP over stdio uses stdout as the message channel between the client and server. Any strayprint()in the server or its imports corrupts that stream and Claude Desktop will fail to talk to the tool (often silently, or with a generic connection error). Runfastmcp inspectfirst — it will surface most of these — and replace anyprint()calls with Python'sloggingmodule instead, which writes to stderr and won't interfere with the protocol.Check the Claude Desktop MCP logs when a tool fails to install, connect, or crashes at runtime:
cat ~/Library/Logs/Claude/mcp.logThis shows the stdout/stderr of the server subprocess and is usually the fastest way to see the real exception.
convertfails with a currency error — the source/destination currency code isn't in the ECB feed (it only covers the ~30 currencies the ECB publishes against EUR). Checkdata/fx_rates.jsonfor the supported list.convertrequires network access — it fetches ECB rates live on every call; if you're offline it will raise an error rather than silently falling back to the cacheddata/fx_rates.json.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Convert currencies, get FX rates, and query historical ECB exchange rate data.
Finans/kimlik doğrulama MCP sunucusu: IBAN, BIC/SWIFT, ABD ABA/ACH yönlendirme no, kart (Luhn/BIN…
Utility data for AI agents: IBAN, EU holidays, VAT rates, time zones, ECB FX. Pay per call.
Validate IBANs in 111 countries; bank directory checks for DE, AT, BE, FR, LU, NL, PT and ES.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceMCP server that provides real exchange-rate data from the European Central Bank, including latest rates, currency conversion, historical rates, and time series.-
- FlicenseNot gradedqualityBmaintenanceValidates International Bank Account Numbers (IBANs) through a Cloudflare-hosted MCP server, enabling agents to check IBAN validity via natural language.-
- AlicenseAqualityCmaintenanceAn MCP server that provides AI agents with tools to validate SWIFT MT and ISO 20022 MX payment messages, check BIC/IBAN correctness, and convert between MT and MX formats.715MIT
- AlicenseNot gradedqualityAmaintenanceConvert currencies, get FX rates, and query historical ECB exchange rate data via MCP.3981Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/harishmore05/fx-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server