Skip to main content
Glama

currencylayer MCP by usefulapi

Server Details

Read and calculate currency exchange rates with your paid currencylayer account.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation4/5

Each tool maps to a distinct temporal/aggregation mode: live snapshot, single past date, date-range series, delta between two dates, and a conversion calculation. The only mild overlaps are convert_currency vs get_live_rates (convert is essentially live rates + arithmetic) and get_historical_rates vs get_timeframe_rates (single date vs range), but the descriptions make the boundaries clear.

Naming Consistency5/5

All tools share the currencylayer_ prefix and a predictable verb_noun pattern (get_live_rates, get_historical_rates, get_rate_changes, get_timeframe_rates). convert_currency is the sole non-'get' verb, but it is an action rather than a fetch and stays in snake_case, so the set reads uniformly.

Tool Count5/5

Five tools cleanly mirror the five meaningful endpoints of a currency-rates API (live, historical, timeframe, change, convert) with no filler. Nothing feels padded or missing at the endpoint level, and the count is well within a comfortable range.

Completeness3/5

The core rate-retrieval lifecycle is fully covered, but there is no tool to list supported currencies/plans (currencylayer's /list endpoint), which agents need to supply valid codes and to detect which plans unlock change/timeframe calls. Otherwise no obvious dead ends: every tool returns quotes without requiring a follow-up call.

Available Tools

5 tools
currencylayer_convert_currencyConvert an amountA
Destructive
Inspect

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.

NameRequiredDescriptionDefault
toYesCurrency to convert to, e.g. EUR.
dateNoUse the rates of this date (yyyy-mm-dd) instead of real-time rates.
fromYesCurrency to convert from, e.g. USD.
amountYesAmount to convert (positive, up to 1e12).

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the exact cost model ('SPENDS 1 request of your monthly quota per call'), that the charge applies even on post-auth failure, that the call is never retried, and the plan prerequisite (Basic or higher). It also notes the response contains the result and the quote used.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Quota cost is front-loaded, followed by purpose, plan requirement and endpoint. Every sentence carries signal, though the trailing 'GET /convert' adds little for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still names the return contents ('the result and the quote used'), and it covers cost, billing failure semantics, plan gating and rate-mode selection. An agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so from/to/amount limits are already documented in the schema. The description only adds the semantic of the optional date parameter (historical vs real-time) and the output meaning, which is genuine but minimal added value over structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource ('Convert an amount from one currency to another') plus the two rate modes (real-time or a past date). It is clearly distinguishable from the rate-fetching siblings by operating on an amount rather than returning a quote table, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'with real-time rates, or with the rates of a past date' tells the agent which mode the optional date parameter selects. It doesn't explicitly say when to prefer get_live_rates or get_historical_rates over converting, so routing to alternatives is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

currencylayer_get_historical_ratesGet historical exchange ratesA
Destructive
Inspect

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.

NameRequiredDescriptionDefault
dateYesThe date to look up, yyyy-mm-dd.
sourceNoSource (base) currency code, default USD. Needs the Basic plan or higher; every quote is then SOURCE+TARGET, e.g. EURGBP.
currenciesNoOnly these currency codes, e.g. ["EUR","GBP","JPY"] (default: all of them).

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing that each call spends one quota unit, that quota is consumed even on post-auth failure, that it is never retried, and that a currency with no history at that date fails the entire request. These are exactly the operational traits an agent needs before calling a billed endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the most decision-relevant fact (quota spend) and stays to a handful of sentences with no filler. It is telegraphic and slightly fragmentary ('GET /historical'), but every sentence carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by explaining that quotes are keyed by pair and how source+target compose. Failure modes and quota cost are covered; authentication requirements and error response shape are the only notable omissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds pair-keying ('USDEUR') and hints that currency start dates constrain valid date/currency combinations, but it does not explain the source/currencies interaction or retry implications beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Exchange rates for one past date'), the endpoint (GET /historical), and the data range (back to 1999), which cleanly separates it from live rates and timeframe rates among the siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It says to use 'currencies' to limit the reply and warns that late-added currencies fail the whole request, but it never names a sibling (e.g. get_timeframe_rates) or explains when a single-date lookup is preferable to a range query. Usage is implied rather than routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

currencylayer_get_live_ratesGet live exchange ratesA
Destructive
Inspect

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.

NameRequiredDescriptionDefault
sourceNoSource (base) currency code, default USD. Needs the Basic plan or higher; every quote is then SOURCE+TARGET, e.g. EURGBP.
currenciesNoOnly these currency codes, e.g. ["EUR","GBP","JPY"] (default: all of them).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing quota cost per call, that a failed call after authentication still consumes quota, and that it is never retried — exactly the operational facts an agent needs before spending a limited resource. It does not cover error responses or the response envelope, which keeps it off a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the cost warning, then purpose, then quote-format semantics, then the parameter tip, closing with the endpoint. Five short sentences, none redundant, each carrying distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by explaining the pair-keyed quote format so the agent can interpret results. It is nearly complete for a simple two-parameter read; only the response wrapper (success/timestamp fields) and failure behavior are unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents the default USD source, the Basic-plan requirement, and the SOURCE+TARGET quote pattern, so the description is largely restating structured data. The 'USDEUR = 0.918' example and the 'use currencies to limit the reply' note add mild interpretive value, consistent with the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: real-time exchange rates for 174 currencies and precious metals against a source currency, anchored to the endpoint GET /live. The word 'Real-time' implicitly but clearly separates it from currencylayer_get_historical_rates and currencylayer_get_timeframe_rates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives useful context on plan tiers (free = daily refresh, higher plans down to 60s) and hints 'Use currencies to limit the reply', which is implied narrowing guidance. However, it never says when to prefer a sibling such as convert_currency or get_historical_rates, so the agent must infer the routing from names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

currencylayer_get_rate_changesGet exchange rate changesA
Destructive
Inspect

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.

NameRequiredDescriptionDefault
sourceNoSource (base) currency code, default USD. Needs the Basic plan or higher; every quote is then SOURCE+TARGET, e.g. EURGBP.
end_dateNoEnd date, yyyy-mm-dd (give both dates or neither).
currenciesNoOnly these currency codes, e.g. ["EUR","GBP","JPY"] (default: all of them).
start_dateNoStart date, yyyy-mm-dd (give both dates or neither).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Strong additive context beyond annotations: a per-call quota cost that is charged even on post-auth failure, no automatic retry, and a plan gate. This is exactly the cost/auth behavior annotations do not express. One caveat: the annotations declare destructiveHint=true while the description depicts a plain GET /change query, so an agent may be confused about side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the cost warning, then output shape, then date pairing rules. Sentences are dense but all earn their place; the plan requirement at the end is slightly buried rather than grouped with other access constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers cost, retry behavior, plan requirement, default date semantics, market-closure edge cases, and output fields for a tool with no output schema and no required parameters. Nothing critical to calling it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning the schema lacks: the semantics of omitting both dates and the weekend zero-change caveat. It does not explain the source/currencies interaction beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource — how exchange rates changed between two dates — and enumerates the returned fields (start_rate, end_rate, absolute change, change_pct), which distinguishes it functionally from live/historical/timeframe siblings. It never names those siblings, so an agent must infer the boundary itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an actionable rule: pass both dates or neither, with 'neither' defined as yesterday's end-of-day versus the latest rate. It also warns that weekends yield zero change and that Enterprise+ is required. There is no explicit 'use this instead of get_historical_rates when…' routing, keeping it below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

currencylayer_get_timeframe_ratesGet exchange rates for a date rangeA
Destructive
Inspect

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.

NameRequiredDescriptionDefault
sourceNoSource (base) currency code, default USD. Needs the Basic plan or higher; every quote is then SOURCE+TARGET, e.g. EURGBP.
end_dateYesLast date, yyyy-mm-dd (not before start_date, at most 365 days after it).
currenciesNoOnly these currency codes, e.g. ["EUR","GBP","JPY"] (default: all of them).
start_dateYesFirst date, yyyy-mm-dd.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavior beyond the annotations: each call spends one monthly quota unit, including authenticated failures, and is never retried. It also discloses the Enterprise plan requirement and a preflight response-size constraint, which explains the non-read-only and non-idempotent hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded with the quota cost, then gives the core purpose, plan requirement, size constraint, and endpoint. Every sentence carries operational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter tool with no output schema, the description is complete enough: it explains output granularity as one entry per date, gives the critical quota and plan constraints, and specifies the preflight size limit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents the four parameters. The description adds meaningful cross-parameter semantics: the date span must be at most 365 days, and days multiplied by currencies must not exceed 2000, including the default-currency implication of 174 currencies per day.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: daily exchange rates for every date from start_date to end_date. It also defines the granularity and date range, which clearly separates it from live-rate, conversion, historical, and rate-change siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context and constraints: Enterprise plan required, maximum 365-day span, and response-size limits checked before the request. It does not explicitly name when to use a sibling instead, so it falls short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedcurrencylayer_convert_currency
    • First observedcurrencylayer_get_historical_rates
    • First observedcurrencylayer_get_live_rates
    • First observedcurrencylayer_get_rate_changes
    • First observedcurrencylayer_get_timeframe_rates

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time and historical foreign exchange rates for 31+ currencies, enabling currency conversion, historical rate lookups, and time series analysis using data from the Frankfurter API.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables real-time currency exchange rate lookup, conversion, historical rates, and currency catalog using the free Frankfurter API, no API key required.
    1 npm
    ISC
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables currency exchange rate lookups, amount conversion, historical rate retrieval, and listing of supported currencies via the Frankfurter API.
    373 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.