Add the exchangerate.dev MCP server to Cursor so the assistant can look up currency rates and convert amounts. The hosted server works without a key, with rates delayed by 15 minutes. Paid plans get live rates through the same endpoint.
Add the hosted server
Save the config below in ~/.cursor/mcp.json for all projects, or .cursor/mcp.json in a project root.
The entry goes under mcpServers and uses url to connect over Streamable HTTP to https://api.exchangerate.dev/v1/mcp/. Keep the trailing slash. This connection needs no API key. After you save the file and Cursor reloads its MCP settings or restarts, the server appears among its MCP tools.
{ "mcpServers": { "exchangerate-dev": { "url": "https://api.exchangerate.dev/v1/mcp/" } }}Use your own quota
Replace YOUR_API_KEY in the config below with your API key, then save the file and reload Cursor's MCP settings or restart Cursor.
The config adds Authorization: Bearer YOUR_API_KEY through headers. Your key gives you your plan's quota and limits. Free includes 5,000 requests a month and 10 requests a minute. Every plan includes MCP access, including Free; Free rates are 15 minutes late.
{ "mcpServers": { "exchangerate-dev": { "url": "https://api.exchangerate.dev/v1/mcp/", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } }}Run the local bridge
Install Node.js 20 or newer, then use the config below with your API key to run the local bridge instead of the hosted connection.
The local entry uses command, args and env. It starts the npm bridge through npx and sets EXCHANGERATE_API_KEY in the environment. The bridge requires an API key. Save the file and reload Cursor's MCP settings or restart Cursor.
{ "mcpServers": { "exchangerate-dev": { "command": "npx", "args": [ "-y", "@nusantara-ventures/exchangerate-mcp" ], "env": { "EXCHANGERATE_API_KEY": "YOUR_API_KEY" } } }}Check the tools and ask for a rate
Check that Cursor lists all nine tools, then ask, "How many Japanese yen is 100 euros right now?"
convert answers that question from from, to and amount. Ask "What was USD to IDR on 1 September?" for a lookup through get_range, or "Which currencies can you look up?" through list_currencies.
get_rate takes base and quote for the latest rate. get_range retrieves rates over a date range. get_usd_index returns an independently calculated USD index, and search_docs searches the documentation.
list_official_rate_tables lists government-published rate tables, while get_official_rate retrieves government-published rates. The ninth tool, start_checkout, opens a plan checkout only after the person confirms.
Read the rate and its time
Cursor can read the returned numbers and their context: source, market_session and data_updated_at. Ask the assistant to quote the time with the rate.
A conversion answer includes the rate, converted amount and a flag when the rate was derived through USD. Answers include a notice that rates are indicative, not for settlement or trading.
Fix connection errors
Check mcp.json for invalid JSON if no tools appear. A trailing comma is a common cause.
HTTP 401 means the key in the header is wrong. HTTP 429 means the minute limit or monthly quota was reached; wait for the retry time.