home / mcp / frankfurter mcp server
A MCP server for the Frankfurter API for currency exchange rates.
Configuration
View docs{
"mcpServers": {
"anirbanbasu-frankfurtermcp": {
"command": "uv",
"args": [
"run",
"frankfurtermcp"
],
"env": {
"LOG_LEVEL": "INFO",
"FASTMCP_HOST": "localhost",
"FASTMCP_PORT": "8000",
"FAST_MCP_HOST": "localhost",
"FAST_MCP_PORT": "8000",
"HTTPX_TIMEOUT": "5.0",
"HTTPX_VERIFY_SSL": "True",
"LRU_CACHE_MAX_SIZE": "1024",
"TTL_CACHE_MAX_SIZE": "256",
"FRANKFURTER_API_URL": "https://api.frankfurter.dev/v1",
"DOCKER_TMPFS_SIZE_MB": "100",
"MCP_SERVER_TRANSPORT": "stdio",
"TTL_CACHE_TTL_SECONDS": "900",
"REQUEST_SIZE_LIMIT_BYTES": "102400",
"RATE_LIMIT_BURST_CAPACITY": "20",
"UVICORN_LIMIT_CONCURRENCY": "100",
"UVICORN_TIMEOUT_KEEP_ALIVE": "60",
"CORS_MIDDLEWARE_ALLOW_ORIGINS": "[\"localhost\", \"127.0.0.1\"]",
"UVICORN_TIMEOUT_GRACEFUL_SHUTDOWN": "5",
"RATE_LIMIT_MAX_REQUESTS_PER_SECOND": "10.0"
}
}
}
}Frankfurter MCP exposes currency data tools through the Model Context Protocol, letting you query latest rates, historical data, and conversions via an MCP client. This server implementation brings the Frankfurter API into an MCP-friendly interface so you can incorporate currency data into your agents, workflows, or automation with ease.
You connect to the Frankfurter MCP server from an MCP client using either the standard input/output (stdio) transport or an HTTP transport option such as Server-Sent Events (SSE) or the newer streamable HTTP. When you run the server with the stdio transport, you launch it locally and interact through the process I/O. When you run with an HTTP transport, you reach endpoints over HTTP, for example at http://localhost:8000/sse for SSE or http://localhost:8000/mcp for streamable HTTP. Use the HTTP transport if you want to test with an MCP inspector or integrate with HTTP-based clients.
Prerequisites: you need Python for the Python-based server option and the uv tooling for the UV runtime. You may also run the server with Docker if you prefer containerized deployment.
1) Install the UV runtime to manage the project tasks and run the MCP server.
uv run frankfurtermcp
"""Start the Frankfurter MCP server using UV with the stdio transport."""2) Or install the server from PyPI and run the Python module for stdio transport.
pip install frankfurtermcp
python -m frankfurtermcp.server
"""Start the Python-based stdio server for Frankfurter MCP."""3) If you prefer to run in a Docker container, prepare a .env file from the template and start the container with Docker Compose.
# Build and run in detached mode
docker compose up -d --build
# Stop the container
docker compose down
"""Use Docker Compose to build and run the MCP server in a container."""The server supports multiple environment variables to tailor its behavior, including host/port bindings, logging, timeouts, caches, and security-related settings. You can configure these by creating a .env file in your working directory or by exporting environment variables before running the server. The default transport is stdio, but you can switch to HTTP transports (SSE or streamable HTTP) by setting MCP_SERVER_TRANSPORT accordingly.
Common environment variables include FAST_MCP_HOST, FAST_MCP_PORT, MCP_SERVER_TRANSPORT, FRANKFURTER_API_URL, and several cache and rate-limit settings. For example, you can adjust the HTTP client timeout with HTTPX_TIMEOUT and enable or disable SSL verification with HTTPX_VERIFY_SSL. These values default to safe production-like defaults but can be tuned for local testing or performance.
When running in Docker, ensure you regenerate or copy the environment template to an actual .env file and adapt the host, port, and CORS origins as needed. The container image is configured with security hardening and resource limits to prevent overuse.
Return a list of currencies supported by the Frankfurter API.
Fetch the latest exchange rates for specified currencies given a base currency.
Convert an amount between two currencies using the latest rates.
Retrieve historical exchange rates for a date or date range for specified currencies and a base.
Convert an amount using exchange rates for a specific date.
Provide a simple greeting from the Frankfurter MCP server for internal testing.