In Cursor the exchange rate server is a coding aid. Ask for a week of real rates to use as a test fixture, check one rate while you write a conversion function, or have the assistant search the docs before it writes the request. Setup is on the Cursor setup page.
Add the server
{ "mcpServers": { "exchangerate-dev": { "url": "https://api.exchangerate.dev/v1/mcp/" } } }Keep the trailing slash. The replies below come straight from the server. The sentences a model writes around them change from model to model, so they are left out.
Task 1: a test fixture from real rates
Prompt: "Get USD to IDR for 26 to 30 October and write a Vitest fixture from it." Cursor calls get_range.
{"name":"get_range","arguments":{"base":"USD","symbols":"IDR","start_date":"2026-10-26","end_date":"2026-10-30"}}[{"date":"2026-10-26","IDR":18162.6},{"date":"2026-10-27","IDR":18138.6},{"date":"2026-10-28","IDR":18176.4},{"date":"2026-10-29","IDR":18143.0},{"date":"2026-10-30","IDR":18148.2}]Cursor writes the fixture from five real daily rates, so the test data has the shape and noise of the real thing. The reply also carries is_forward_filled for each day, which is false here. A range that spans a weekend returns business days only.
Task 2: check a rate while you code
Prompt: "What is USD/IDR now? I need the order of magnitude for a currency formatter test." Cursor calls get_rate.
{"name":"get_rate","arguments":{"base":"USD","quote":"IDR"}}{"base":"USD","quote":"IDR","rate":18140.11,"stale":false,"market_session":"open","data_updated_at":"2026-11-02T11:18:59+00:00","derived":false}The rate is five digits before the decimal point, which matters for field widths and number formatting. Currencies also differ in minor units: list_currencies returns minor_units for each code, so the formatter test can cover yen at 0, dollars at 2 and dinars at 3.
Task 3: read the docs before writing the call
Prompt: "How often do rates update? I want to size a cache." Cursor calls search_docs.
{"name":"search_docs","arguments":{"query":"how often do rates update","limit":1}}{"results":[{"question":"How often do rates update?","answer":"All 144 currencies update live, roughly every 60 seconds on trading days. The ECB daily fix provides fallback for about 30 currencies. Read source and market_session on each response to identify its data class and trading session."}]}A cache of 60 seconds on a paid key matches the update rate. Without a key or on Free, rates arrive 15 minutes late, so a cache of that length costs nothing in freshness.
Quota while you code
| Access | Requests | Rates |
|---|---|---|
| No key | 100 an hour per IP | 15 minutes late |
| Free key | 5,000 a month, 10 a minute | 15 minutes late |
| Paid key | By plan | Live |
Each tool call counts as one request against the same limits as the matching REST call.