Currency conversion and exchange rates for AI. 170+ currencies, historical data back to 1999.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
A Model Context Protocol server for the UniRate API — give Claude, Cursor, Continue, and any MCP-compatible AI assistant first-class access to currency conversion and exchange rates.
@modelcontextprotocol/sdkMost "currency for AI" workflows today involve hand-rolled fetch wrappers in custom tools, or generic HTTP MCP servers that hand the model raw JSON. This server gives models a tight, typed, currency-aware tool surface — they ask "what was 100 USD in EUR on 2020-03-15?" and get back a formatted answer plus a structured payload they can chain into other tool calls.
Or run on demand with npx @unirate/mcp (no install).
Free tier covers convert, latest_rate, and list_currencies. Sign up at unirateapi.com — no credit card required.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Restart Claude Desktop. The four UniRate tools will appear in the tool picker.
Add to your MCP config (.cursor/mcp.json, ~/.continue/config.json, etc.):
By default the server uses stdio, which is what Claude Desktop and most MCP clients want. To host it as a remote endpoint instead — for shared use, multi-user deployments, or browser-based clients — start it in HTTP mode:
That exposes:
POST /mcp — Streamable HTTP endpoint (SSE-capable). Stateless: a fresh server is built per request, so the same process can serve many concurrent clients.GET /healthz — JSON liveness probe ({ "status": "ok", "server": "unirate-mcp", "version": "..." }).Point any Streamable-HTTP-capable MCP client (Claude Desktop with remote server support, Cursor remote MCP, etc.) at http://your-host:3001/mcp. Drop it behind a reverse proxy + TLS for production.
Multi-arch images (linux/amd64, linux/arm64) are published to the GitHub Container Registry:
Point an MCP client at http://your-host:3001/mcp for the Streamable HTTP transport.
The package exports buildServer(client) so you can wire it to whatever transport your runtime prefers. For Workers / Deno / Bun, use the SDK's webStandardStreamableHttp transport with an exported buildServer instance.
convertConvert an amount from one currency to another at the latest rate.
| Param | Type | Required | Notes |
|---|---|---|---|
from | string | yes | ISO 4217 code (e.g. USD) |
to | string | yes | ISO 4217 code (e.g. EUR) |
amount | number | yes | Positive amount in from |
Example call:
Response: human-readable text plus structured { from, to, amount, result }.
latest_rateGet current exchange rate(s).
| Param | Type | Required | Notes |
|---|---|---|---|
from | string | yes | Base currency |
to | string | no | Target. Omit to get rates for all currencies |
historical_rate (Pro plan)Get the exchange rate that was in effect on a specific date. Coverage back to 1999-01-04 for major fiat pairs.
| Param | Type | Required | Notes |
|---|---|---|---|
date | string | yes | YYYY-MM-DD (e.g. 2020-03-15) |
from | string | yes | Source currency |
to | string | yes | Target currency |
amount | number | no | Defaults to 1 |
Free-tier keys receive a clear error pointing to unirateapi.com for upgrade.
list_currenciesReturns the array of supported currency codes (170+) with no parameters. Useful for autocomplete or validating user-supplied codes.
All UniRate API failures are mapped to friendly tool errors:
| HTTP | Error class | What the model sees |
|---|---|---|
| 400 | InvalidRequestError | "Invalid request parameters" |
| 401 | AuthenticationError | "Missing or invalid API key" |
| 403 | ProPlanRequiredError | "…requires Pro… upgrade at https://unirateapi.com" |
| 404 | InvalidCurrencyError | "Currency not found or no data available" |
| 429 | RateLimitError | "Rate limit exceeded" |
| 503 | APIError | "Service unavailable" |
Network/timeout errors are wrapped in UnirateError. Tool calls always return a response object with isError: true rather than throwing protocol-level errors, so the model can recover gracefully.
UniRate ships official integrations for 40+ ecosystems, all maintained under the UniRate-API org.
Core clients (9 languages) Python · Node.js / TypeScript · Go · Rust · Java · Ruby · PHP · .NET · Swift
JavaScript / TypeScript React · Next.js · Remix · SvelteKit · Vue · Angular · Nuxt · NestJS · tRPC
Static-site generators Astro · Eleventy · Hugo · Jekyll
CMS & e-commerce Wagtail · WordPress · WooCommerce · Drupal · Strapi · Medusa · Symfony · Laravel · Directus
Data, AI & backend LangChain (Python) · LangChain.js · FastAPI · Flask · Django REST Framework · Apache Airflow · dbt
Platform & tools MCP server · CLI · Cloudflare Workers · Home Assistant · n8n · Google Sheets · VS Code · Obsidian
Money library bridges money gem (Ruby) · NodaMoney (.NET)
Get a free API key at unirateapi.com.
MIT — see LICENSE.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mcp-210)<a href="https://allmcps.com/mcp/mcp-210"><img src="https://allmcps.com/api/badge/mcp-210?style=directory" alt="Mcp on AllMCPs" /></a>