currencylayer MCP by usefulapi
Read and calculate currency exchange rates with your paid currencylayer account.
Should I use this
Quality & Safety
Findings (2)
- LOWin currencylayer_get_historical_rates
- LOWin currencylayer_get_timeframe_rates
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"currencylayer": {
"url": "https://currencylayer.usefulapi.io/mcp"
}
}
}Remote endpoints
https://currencylayer.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🔴currencylayer_get_live_rates(currencies, source)
SPENDS 1 request of your currencylayer monthly quota per call (also when it fails after authentication; it is never retried). Real-time exchange rates for up to 174 world currencies and precious metals relative to a source currency (default USD). Quotes are keyed by pair, e.g. USDEUR = 0.918 means 1 USD = 0.918 EUR. The free plan refreshes daily, higher plans hourly down to every 60 seconds. Use 'currencies' to limit the reply. GET /live.
Input Schema
{
"type": "object",
"properties": {
"currencies": {
"description": "Only these currency codes, e.g. [\"EUR\",\"GBP\",\"JPY\"] (default: all of them).",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9]{2,10}$"
}
},
"source": {
"description": "Source (base) currency code, default USD. Needs the Basic plan or higher; every quote is then SOURCE+TARGET, e.g. EURGBP.",
"type": "string",
"pattern": "^[A-Za-z0-9]{2,10}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴currencylayer_get_historical_rates(date, currencies, source)
SPENDS 1 request of your currencylayer monthly quota per call (also when it fails after authentication; it is never retried). Exchange rates for one past date (data back to 1999 for most currencies; a currency added later has no data before its start date and the whole request then fails). Quotes are keyed by pair, e.g. USDEUR. Use 'currencies' to limit the reply. GET /historical.
Input Schema
{
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "The date to look up, yyyy-mm-dd."
},
"currencies": {
"description": "Only these currency codes, e.g. [\"EUR\",\"GBP\",\"JPY\"] (default: all of them).",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9]{2,10}$"
}
},
"source": {
"description": "Source (base) currency code, default USD. Needs the Basic plan or higher; every quote is then SOURCE+TARGET, e.g. EURGBP.",
"type": "string",
"pattern": "^[A-Za-z0-9]{2,10}$"
}
},
"required": [
"date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴currencylayer_convert_currency(from, to, amount, date)
SPENDS 1 request of your currencylayer monthly quota per call (also when it fails after authentication; it is never retried). Convert an amount from one currency to another with real-time rates, or with the rates of a past date. Returns the result and the quote used. Needs the Basic plan or higher. GET /convert.
Input Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"pattern": "^[A-Za-z0-9]{2,10}$",
"description": "Currency to convert from, e.g. USD."
},
"to": {
"type": "string",
"pattern": "^[A-Za-z0-9]{2,10}$",
"description": "Currency to convert to, e.g. EUR."
},
"amount": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000000000000,
"description": "Amount to convert (positive, up to 1e12)."
},
"date": {
"description": "Use the rates of this date (yyyy-mm-dd) instead of real-time rates.",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
}
},
"required": [
"from",
"to",
"amount"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴currencylayer_get_timeframe_rates(start_date, end_date, currencies, source)
SPENDS 1 request of your currencylayer monthly quota per call (also when it fails after authentication; it is never retried). Daily exchange rates for every date from start_date to end_date (at most 365 days apart), one entry per date. Needs the Enterprise plan or higher. The reply must stay small: days x currencies may not exceed 2000 (without 'currencies' that is 174 per day), checked before the request is sent. GET /timeframe.
Input Schema
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "First date, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "Last date, yyyy-mm-dd (not before start_date, at most 365 days after it)."
},
"currencies": {
"description": "Only these currency codes, e.g. [\"EUR\",\"GBP\",\"JPY\"] (default: all of them).",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9]{2,10}$"
}
},
"source": {
"description": "Source (base) currency code, default USD. Needs the Basic plan or higher; every quote is then SOURCE+TARGET, e.g. EURGBP.",
"type": "string",
"pattern": "^[A-Za-z0-9]{2,10}$"
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴currencylayer_get_rate_changes(start_date, end_date, currencies, source)
SPENDS 1 request of your currencylayer monthly quota per call (also when it fails after authentication; it is never retried). How exchange rates changed between two dates: per currency pair the start_rate, end_rate, absolute change and change_pct. Pass both dates or none (none = yesterday's end-of-day rate against the latest rate). Forex markets are closed on weekends, so a weekend change can be zero. Needs the Enterprise+ plan or higher. GET /change.
Input Schema
{
"type": "object",
"properties": {
"start_date": {
"description": "Start date, yyyy-mm-dd (give both dates or neither).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"end_date": {
"description": "End date, yyyy-mm-dd (give both dates or neither).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"currencies": {
"description": "Only these currency codes, e.g. [\"EUR\",\"GBP\",\"JPY\"] (default: all of them).",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9]{2,10}$"
}
},
"source": {
"description": "Source (base) currency code, default USD. Needs the Basic plan or higher; every quote is then SOURCE+TARGET, e.g. EURGBP.",
"type": "string",
"pattern": "^[A-Za-z0-9]{2,10}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence