Skip to main content
Glama
Vilgar

Rate-API MCP Server

by Vilgar

Rate-API MCP Server

npm License: MIT

The official Model Context Protocol server for Rate-API.com. It gives Claude and other MCP clients exchange rates for 160+ currencies (updated hourly), currency conversion, historical rates, daily time series and fluctuation, crypto, precious-metal and end-of-day stock prices, usage and quota checks, and rate alerts.

Once connected, you can just ask: "What's 250 EUR in Japanese yen?" or "How has USD/TRY moved over the last 30 days?" and the assistant calls the API for you.

Tools

Tool

Description

Plan

get_latest_rates

Latest rates for a base currency (optionally filtered)

Free

get_pair_rate

Single currency-pair rate with optional precision (converted amount on Pro+)

Free

list_currencies

All supported currency codes and names

Free

get_usage

This key's plan and current-month usage against its quota

Free

get_quota

Plan quota and remaining requests for this key

Free

get_key_status

Confirm the key works (API status and version)

Free

get_api_status

Service status and data freshness

No key needed

convert_currency

Convert an amount between two currencies

Pro+

get_historical_rates

Rates for a specific past date

Pro+

get_crypto_rates

Cryptocurrency prices in USD

Pro+

get_metal_prices

Gold, silver, platinum and palladium per troy ounce in USD

Pro+

get_stock_prices

End-of-day closing prices for tracked equities in USD (indicative, not for trading)

Pro+

get_timeseries_rates

Daily rates for every day between two dates (up to 366 days)

Business+

get_rate_fluctuation

Start rate, end rate, change and % change between two dates (up to 366 days)

Business+

list_rate_alerts

List the rate alerts on this key

Business+

create_rate_alert

Alert (email and optional signed webhook) when a pair crosses a threshold

Business+

delete_rate_alert

Delete a rate alert by id

Business+

"Pro+" means Pro, Business and Enterprise; "Business+" means Business and Enterprise. Calling a tool your plan doesn't include returns the API's feature_not_available error, so the assistant can tell you which plan it needs. See pricing.

Related MCP server: Frankfurter Forex MCP

Setup

You need an API key. The free plan (2,500 requests/month, no card) is at https://rate-api.com/register; your keys are listed at https://rate-api.com/api-keys.

Claude Code

claude mcp add rate-api -e RATE_API_KEY=YOUR_KEY -- npx -y @rate-api/mcp

Claude Desktop / other MCP clients

Add to your MCP config (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "rate-api": {
      "command": "npx",
      "args": ["-y", "@rate-api/mcp"],
      "env": { "RATE_API_KEY": "YOUR_KEY" }
    }
  }
}

Run directly

RATE_API_KEY=YOUR_KEY npx -y @rate-api/mcp

Docker

docker build -t rate-api-mcp .
docker run -i --rm -e RATE_API_KEY=YOUR_KEY rate-api-mcp

Configuration

Env var

Required

Default

Description

RATE_API_KEY

for keyed tools

Your Rate-API key

RATE_API_BASE_URL

no

https://rate-api.com

Override the API base URL

RATE_API_TIMEOUT_MS

no

15000

Per-request timeout (ms)

The server starts without a key; every tool except get_api_status then asks you to set RATE_API_KEY.

Resources & prompts

Besides the tools, the server exposes:

  • Resource rate-api://currencies: the supported currency list (code, name, symbol, decimals).

  • Prompts convert_amount and currency_movement: ready-made FX workflow templates.

Local development

git clone https://github.com/Vilgar/rate-api-mcp.git
cd rate-api-mcp
npm install
RATE_API_KEY=YOUR_KEY npm start
# or inspect interactively:
RATE_API_KEY=YOUR_KEY npm run inspect

Transport is stdio; requires Node.js 18+. The only dependency is the official @modelcontextprotocol/sdk.

License

MIT, see LICENSE.

Available Tools

17 tools
convert_currencyA

Convert an amount from one currency to another at the latest rate. Requires Pro plan or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget currency ISO code (e.g. EUR).
fromYesSource currency ISO code (e.g. USD).
amountYesAmount to convert (positive number).

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the real-time nature ('latest rate') and the Pro plan requirement. However, it does not mention whether the operation is safe/read-only, any potential side effects, error behavior, or what the result looks like. Some behavior is implied by 'convert', so this is adequate but not thorough.

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 a single concise sentence with no redundancy. It front-loads the core purpose and appends the requirement as a separate clause near the end, earning its place without extraneous detail.

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?

For a simple 3-parameter conversion tool with 100% schema coverage proportional to its complexity, the description covers the essential behavioral aspects: what it does, when it does it (latest rate), and an access constraint (Pro plan). The lack of an output schema means return format is not an obligation, and no major contextual gaps are evident.

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?

The input schema provides 100% parameter coverage with clear descriptions and examples for from, to, and amount. The description adds no additional parameter meaning beyond the schema, so the baseline score of 3 is appropriate.

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 uses a specific verb ('Convert'), a clear resource ('amount from one currency to another'), and a timing qualifier ('at the latest rate'). This distinguishes it from rate-only siblings like get_pair_rate and get_latest_rates by making clear that it performs a conversion rather than just returning a rate.

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

Usage Guidelines2/5

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

The only usage-related information is the prerequisite 'Requires Pro plan or higher.' There is no guidance on when to use this tool instead of siblings such as get_pair_rate, get_historical_rates, or get_latest_rates, so an agent must infer which tool is appropriate.

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

create_rate_alertA

Create a rate alert that fires (by email and optional webhook) when a pair crosses a threshold. Requires Business plan or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget currency ISO code (e.g. EUR).
fromYesSource currency ISO code (e.g. USD).
directionYesFire when the rate goes above or below the threshold.
thresholdYesRate threshold (positive number).
notify_urlNoOptional public https URL to receive a signed webhook when the alert fires.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of disclosing behavior. It does disclose the plan requirement and the alert delivery mechanism, but omits other relevant traits such as the response shape, whether repeated calls create duplicate alerts, or whether it consumes API quota. It is adequate but incomplete.

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 two sentences with no filler. The core purpose ('Create a rate alert') is front-loaded, followed by the condition and plan requirement. Every phrase earns its place.

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

Completeness3/5

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

For a mutation tool with no output schema and no annotations, the description should ideally mention what the call returns (e.g., alert ID) or how to verify creation. It covers the plan prerequisite and basic alert behavior, but the missing return-value information leaves an agent without full guidance. The schema handles parameter documentation, so this is mostly a functional-completeness gap.

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?

The input schema already describes all five parameters with 100% coverage, so the baseline is 3. The description adds no extra parameter-level meaning; it references 'pair' and 'threshold' but does not elaborate on syntax, units, or formats beyond what the schema provides.

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 clearly states the tool creates a rate alert, including the notification mechanism (email and optional webhook) and the trigger condition (when a pair crosses a threshold). This distinguishes it from sibling tools like list_rate_alerts and delete_rate_alert, which are read/delete operations, and from rate querying tools like get_pair_rate.

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?

The description provides useful context: it fires on threshold crossing and requires a Business plan or higher. However, it does not explicitly name alternatives or situations where one would prefer another tool, and does not offer when-not-to-use guidance. The usage is implied rather than direct.

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

delete_rate_alertA

Delete a rate alert by its id. Requires Business plan or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe alert id to delete.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It clearly identifies the destructive action and the affected resource, and even adds an auth/plan requirement. However, it does not mention whether deletion is permanent, how errors for non-existent ids are handled, or what the response looks like.

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 a single, focused sentence that front-loads the operation and packs the plan requirement into a second clause. There is no redundancy or filler.

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?

For a simple one-parameter destructive tool with no nested objects or output schema, the description provides enough information to invoke it correctly: the resource, the required identifier, and the plan prerequisite. A brief note on return behavior would have made it fully complete, but it is not essential here.

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 description coverage is 100%: the schema already documents 'id' as 'The alert id to delete.' The description repeats this concept with 'by its id' and adds no meaningful new parameter semantics, so the baseline score of 3 is appropriate.

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 the exact operation (Delete), the resource (rate alert), and the input key (id). It is unambiguous and clearly distinct from sibling tools like create_rate_alert and list_rate_alerts.

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?

The description includes an eligibility prerequisite: 'Requires Business plan or higher.' While it does not explicitly discuss alternatives, there is no alternative deletion tool for rate alerts, so the usage context is clear enough.

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

get_api_statusA

Get Rate-API service status and rate-data freshness (currency count, last update, age). No API key required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations present, the description carries the full disclosure burden and adequately does so: it tells the agent that this is an unauthenticated read-style status operation and specifies exactly what freshness data it exposes. It omits details about error or caching behavior, but that is a minor gap for a zero-parameter status endpoint.

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?

A single sentence conveys purpose, scope, and auth requirement without wasted words. The parenthetical list of freshness fields is compact and front-loaded.

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?

For a zero-parameter, no-output-schema tool, the description is nearly complete: it states what the tool returns, the service scope, and the lack of an auth requirement. It would be slightly stronger if it explicitly distinguished itself from get_key_status, but that ambiguity is minor.

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?

There are no parameters, so the schema already trivially covers all inputs. The description adds the relevant auth-related input condition, 'No API key required', which is the only meaningful invocation consideration.

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 opens with the active verb 'Get' and names a specific resource: Rate-API service status and rate-data freshness. It further lists concrete outputs (currency count, last update, age) and distinguishes itself from key-specific siblings by noting no API key is required.

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?

The description implies use as a public health/freshness check and states that no API key is required, which signals ubiquity. However, it never names sibling tools such as get_key_status or states when not to use this tool, leaving the routing decision partially to inference.

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

get_crypto_ratesB

Get cryptocurrency prices in USD (top coins). Requires Pro plan or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsNoComma-separated crypto symbols (e.g. 'BTC,ETH,SOL'). Omit for all tracked coins.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose all behavioral traits. It only mentions the Pro plan requirement, which is a significant access constraint, but it omits other important details: no mention of read-only nature, rate limits, response format, error behavior, or what 'top coins' implies for omitted symbols. The description is thin on behavior beyond the plan gate.

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 a single, front-loaded sentence with zero waste. It states the core action, the unit (USD), and the plan requirement compactly. It is appropriately sized for a simple tool with one optional parameter.

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

Completeness3/5

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

Given the tool's simplicity and full schema coverage, the description is mostly adequate, but it lacks usage guidance and broader behavioral disclosure (e.g., return format, read-only nature). With many siblings, it should at least hint at when to use it. The plan requirement is a plus, but the overall context is incomplete for an agent deciding between similar rate tools.

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 parameter is already well-documented in the schema. The description adds the 'top coins' qualifier, but doesn't explain how symbols interact with that limitation or what happens when symbols are omitted (beyond 'all tracked coins' in schema). It doesn't add meaningful semantic detail beyond the schema, so a baseline of 3 is appropriate.

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 states a specific verb ('Get') and resource ('cryptocurrency prices in USD'), with the qualifier 'top coins' clarifying scope. It clearly distinguishes from stock and metal price tools, though it doesn't explicitly differentiate from get_latest_rates, which might also cover crypto. Purpose is clear and specific.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the many siblings (e.g., get_latest_rates, get_historical_rates). It only mentions the Pro plan requirement, which is a constraint, not usage context. There is no mention of alternatives or exclusions, so an agent must infer when to choose this over other rate tools.

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

get_historical_ratesA

Get exchange rates for a specific past date (YYYY-MM-DD). Requires Pro plan or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoBase currency ISO code (default USD).
dateYesDate in YYYY-MM-DD format.
symbolsNoComma-separated target codes to filter.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of disclosing behavioral context. It adds the 'Requires Pro plan or higher' prerequisite and enforces the YYYY-MM-DD date format, but it does not mention error behavior for invalid dates, response shape, or any side-effect/read-only reassurance.

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?

Two short sentences with no filler, and the core purpose is front-loaded. The date format and plan requirement are relevant extras that earn their place.

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

Completeness3/5

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

For a low-complexity tool with three well-documented parameters, the core purpose and access prerequisite are covered. However, with no output schema and no annotations, the description omits details about what is returned, how errors are signaled, and which sibling tools cover other time ranges.

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 description coverage is 100%, so the schema already documents base, date, and symbols. The description only restates the date format and adds no additional meaning about filtering behavior, defaults, or edge cases, which matches the baseline of 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?

The description uses a specific verb ('Get'), a clear resource ('exchange rates'), and a precise scope ('specific past date'). This distinguishes it from sibling tools like get_latest_rates and get_timeseries_rates, which target different time ranges.

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?

The phrase 'specific past date' implies this is for one historical date rather than a range or the latest rates, but no alternatives are named and no when-not-to-use guidance is given. The Pro plan requirement is a constraint, not a usage heuristic.

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

get_key_statusA

Confirm the API key works and report the API status and version. Use get_usage to see the key's plan.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, so the description carries the behavioral burden. It discloses that the tool validates a key and reports status/version, but doesn't explicitly say it is read-only, describe failure behavior, or note any side effects. The read-only nature of a status check is fairly evident, so this is a mid-range score.

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?

Two concise sentences with no filler. The first states the core purpose and the second usefully points to a relevant sibling for plan details.

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?

For a no-parameter status tool with no output schema, it provides the essential outcome (key validity, API status, version) and routes plan-related needs to get_usage. The main gap is the unaddressed overlap with get_api_status, which could cause an agent to pick the wrong tool.

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?

The input schema has zero parameters and schema coverage is 100%, so there is nothing for the description to add. The baseline for a zero-parameter tool is 4.

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 states a concrete action ('Confirm the API key works') and the resource it applies to, plus what it reports (API status and version). It doesn't explicitly differentiate itself from the sibling get_api_status, so it stops short of a 5.

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 gives one alternative ('Use get_usage to see the key's plan'), but doesn't explain when to call get_key_status instead of get_api_status or the other status-related tools. The intended use is mostly implied rather than explicit.

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

get_latest_ratesA

Get the latest exchange rates for a base currency. Returns rates for all currencies (or a filtered subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoBase currency ISO code (e.g. USD, EUR). Defaults to USD.
symbolsNoComma-separated target codes to limit the result (e.g. 'EUR,GBP,JPY').

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses that the tool returns all currencies or a filtered subset and implies a read-only operation, but it does not mention response shape, rate timing, defaults beyond the schema, or error/limit behavior.

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?

Two short sentences with the core purpose front-loaded. The first sentence explains what the tool does, and the second clarifies output scope. No filler or redundant phrases.

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?

For a simple tool with two optional, fully documented parameters, the description provides enough to invoke it correctly. It could be more complete by explicitly contrasting itself against historical or timeseries siblings, but nothing essential to basic invocation is missing.

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 description coverage is 100%, so both parameters are already documented. The description only repeats 'base currency' and 'filtered subset' without adding new semantic details, so it stays at the baseline.

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 is specific: it names the verb 'get', the resource 'latest exchange rates', and the operating scope 'for a base currency'. This clearly distinguishes it from siblings like get_historical_rates, get_timeseries_rates, and get_pair_rate.

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?

There is no explicit when-to-use guidance or mention of alternatives. The word 'latest' implies this is for current rates rather than historical or timeseries data, but the guidance is implicit rather than stated.

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

get_metal_pricesA

Get precious-metal prices per troy ounce in USD: gold (XAU), silver (XAG), platinum (XPT), palladium (XPD). Requires Pro plan or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsNoComma-separated metal codes (e.g. 'XAU,XAG'). Omit for all four.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. It adds the useful constraint that a Pro plan is required, and clarifies the unit of measurement (per troy ounce in USD). However, it does not disclose potential error behavior (e.g., invalid symbols), rate limits, or the exact response structure. Given the tool's simplicity, this is acceptable but not rich.

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 a single, front-loaded sentence that delivers the core purpose and the critical plan requirement immediately. There is zero wasted wording; every element earns its place.

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?

For a simple read operation with one optional parameter and no output schema, the description covers the essential aspects: what the tool does, the unit of measurement, the metals included, and the plan constraint. It does not mention error handling or return format, but given the low complexity and lack of an output schema, those are minor omissions. The description is sufficiently complete for an agent to call the tool 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?

The schema already describes the 'symbols' parameter fully (comma-separated codes, omit for all four), and schema coverage is 100%. The tool description does not add any parameter-specific information beyond what the schema provides, so it meets the baseline for high coverage without adding extra semantic detail.

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 ('Get') and resource ('precious-metal prices per troy ounce in USD'), and enumerates the exact metals and codes. This clearly distinguishes it from the sibling currency, stock, and crypto tools, so an agent can immediately recognize its domain.

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?

The description makes the domain obvious and mentions the Pro plan requirement, which sets an explicit condition for use. However, it does not explicitly name alternatives or say 'use this for metals, use get_crypto_rates for crypto', but given the clear resource scope, the usage context is effectively unambiguous. The main gap is no guidance on when to omit the symbols parameter vs. specifying it, though that is covered by the schema.

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

get_pair_rateB

Get the exchange rate for a single currency pair, with optional precision. Available on all plans; the converted amount (amount/result) is included on Pro plan or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget currency ISO code.
fromYesSource currency ISO code.
amountNoAmount to convert (default 1).
precisionNoDecimal places (2–6, default 4).

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It does add a useful trait: the response depends on plan, with the converted amount only included on Pro or higher. However, it does not describe the return shape, rate basis, or edge-case behavior, leaving significant gaps.

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?

Two sentences, front-loaded with the purpose and no filler. The plan-level detail is relevant and earns its place.

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

Completeness2/5

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

With no output schema and no annotations, the description is incomplete: it does not define the returned rate/result structure, behavior when amount is omitted, or how to select this over sibling tools. It covers availability but not enough for a fully informed call.

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 description coverage is 100%, so the schema already documents all four parameters. The description adds only 'optional precision' and 'amount/result', which do not materially extend the parameter meaning. Baseline credit is appropriate here.

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 ('Get'), resource ('exchange rate'), and scope ('single currency pair'), making the core function unambiguous. It also distinguishes itself from multi-pair or latest-rate tools by emphasizing 'single', though it does not explicitly differentiate itself from convert_currency.

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

Usage Guidelines2/5

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

No guidance is given about when to prefer this tool over convert_currency, get_latest_rates, or get_historical_rates. The only additional context is plan availability, which is not a use-case selector. The agent must infer usage from the schema and sibling names.

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

get_quotaB

Get a lean view of the plan quota and remaining requests for this API key.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It only says 'lean view' without specifying response format, pagination, rate limits, or whether any side effects exist. The read-only nature is implied but not explicit, and the term 'lean' is vague.

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?

A single, clear sentence that front-loads the core purpose. There is no wasted text, and the description is appropriately sized for a parameterless tool.

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

Completeness3/5

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

Given no output schema, the description provides some context by mentioning 'plan quota and remaining requests,' which gives the agent an idea of the response content. However, it does not clarify the exact structure, units, or whether the response is a simple count or includes other details. The lack of differentiation from get_usage also leaves the description incomplete for an agent deciding between tools.

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?

The tool has zero parameters, so the baseline is 4. The description adds nothing about parameters, which is appropriate since there are none.

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 states a specific action ('get') on a specific resource ('plan quota and remaining requests for this API key'). It is clear and unambiguous. However, it does not differentiate from siblings like get_usage or get_key_status, relying on the word 'lean' to imply a lighter version without naming the alternative.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus siblings such as get_usage or get_key_status. An agent would have to infer that 'lean' means a minimal subset, but there is no explicit when-to-use or when-not-to-use instruction.

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

get_rate_fluctuationA

Get how exchange rates moved between two dates (YYYY-MM-DD, range of at most 366 days): start rate, end rate, absolute change and percent change per currency. Requires Business plan or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoBase currency ISO code (default USD).
symbolsNoComma-separated target codes to filter (e.g. 'EUR,GBP'). Omit for all currencies.
end_dateYesEnd date in YYYY-MM-DD format (not before start_date).
start_dateYesStart date in YYYY-MM-DD format.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the Business plan requirement and the 366-day range constraint, which add transparency. Still, it does not explicitly state read-only semantics, rate limits, or error behavior; the verb 'Get' only implies a safe operation, so coverage is moderate.

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 two short sentences with no filler. The core action and output details are front-loaded, and the plan requirement is isolated as a separate, clear sentence. Every sentence contributes value, making it optimally concise.

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?

Despite having no output schema and no annotations, the description explains the return values (start rate, end rate, absolute and percent change per currency) and the critical constraints (date format, max range, plan level). It does not detail response structure or error handling, but the tool's simplicity and the schema's completeness make the description sufficient for an agent to invoke it correctly.

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 description coverage is 100%, so the baseline is 3. The description goes beyond the schema by adding the crucial constraint that the date range must be at most 366 days, and it confirms the YYYY-MM-DD format, which is already in the schema. This enrichment of the start_date/end_date semantics justifies a 4.

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 identifies a specific action ('Get how exchange rates moved') on a clear resource (exchange rates) and enumerates the exact output fields (start rate, end rate, absolute change, percent change). It differentiates from sibling tools by scoping to 'between two dates' and imposing a 366-day limit, but it does not explicitly name alternatives, so it falls just short of a 5.

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?

The description gives useful context (date range, maximum span) and a plan requirement, which imply when the tool is appropriate. However, it does not explicitly mention when to use this tool versus get_historical_rates, get_timeseries_rates, or get_latest_rates, nor any exclusions. Guidance is implicit rather than explicit.

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

get_stock_pricesA

Get the latest closing prices for tracked equities, in USD. End-of-day and indicative, not exchange-licensed and not for trading. Requires Pro plan or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsNoComma-separated tickers (e.g. 'AAPL,MSFT,NVDA'). Omit for all tracked companies.

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It discloses data quality and licensing limitations ('not exchange-licensed and not for trading') and access requirements ('Requires Pro plan or higher'), which is meaningful beyond the name and schema.

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?

Three short sentences, each earning its place: what the tool returns, its data caveats, and access requirements. Key information is front-loaded and there is no wasted text.

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?

The tool has a single optional parameter and no output schema; the description covers the data scope, currency, licensing caveats, and access level. A slight gap is the lack of any detail on the response format, but the simple read-oriented nature makes this non-critical.

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 description coverage is 100%, so the schema already documents the sole optional parameter, including the comma-separated format, examples, and omit-for-all behavior. The description adds no parameter-level detail, matching the baseline.

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 clearly states a specific action and resource: getting the latest closing prices for tracked equities in USD. It distinguishes itself from the currency, crypto, and metal rate siblings through the equity focus, though it does not explicitly name an alternative.

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?

The description gives useful context: prices are end-of-day, indicative, not exchange-licensed, and not for trading, plus the Pro plan requirement. This implies appropriate use cases and explicitly rules out trading, though it does not name a sibling alternative.

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

get_timeseries_ratesA

Get daily exchange rates for every day between two dates (YYYY-MM-DD, range of at most 366 days), keyed by date. Days without published data are omitted. Pass symbols to keep the response small. Requires Business plan or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoBase currency ISO code (default USD).
symbolsNoComma-separated target codes to filter (e.g. 'EUR,GBP'). Omit for all currencies.
end_dateYesLast date in YYYY-MM-DD format (not before start_date).
start_dateYesFirst date in YYYY-MM-DD format.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states that days without published data are omitted, that a Business plan or higher is required, and that symbols can be used to reduce response size. These are concrete behavioral traits that go beyond the schema. It does not mention error handling, rate limits, or the exact response structure, but the disclosed behaviors are sufficient for basic selection and invocation.

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 four concise sentences with zero filler. It front-loads the primary purpose, then adds behavioral notes (omission of days, symbol filtering, plan requirement) in a logical order. Every sentence contributes new information without redundancy.

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?

For a tool with four parameters, two required, and no output schema, the description covers the essential context: what it returns (daily rates keyed by date), the date range limit (366 days), the handling of missing data (omitted), and the plan requirement. It could be more explicit about the response format (e.g., whether each date maps to a rate object) and error behavior on exceeding the range, but the provided details are adequate for an agent to understand the tool's core behavior.

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?

The schema already describes all four parameters, so the baseline is 3. The description adds meaningful semantics: the 'range of at most 366 days' imposes a constraint on start_date and end_date not present in the schema, and 'Pass symbols to keep the response small' explains the purpose of the symbols parameter beyond its schema description. This adds value beyond the schema.

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 clearly states the action ('Get daily exchange rates'), the resource ('exchange rates'), and the scope ('between two dates ... keyed by date'), making it distinct from siblings like get_latest_rates (single date) or get_pair_rate (single pair). The inclusion of the date-range specification and the note about omitting days without data further clarifies the tool's unique behavior.

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?

The description does not explicitly reference alternative tools or state when to use this one instead of others. The note 'Requires Business plan or higher' is a prerequisite, not usage guidance, and 'Pass symbols to keep the response small' is a usage tip rather than a selection criterion. Usage is implied by the tool's name and purpose, but no exclusions or alternatives are provided.

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

get_usageA

Get this API key's plan and current-month usage against its quota (used, limit, remaining, reset date).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the returned data (used, limit, remaining, reset date) but does not explicitly mention that the operation is read-only, nor does it address potential side effects, error conditions, or authentication requirements. The behavior is adequately implied for a simple get, but not fully elaborated.

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 a single, well-structured sentence that leads with the action and resource, then immediately lists the returned fields. There is no wasted wording, and the most important information is front-loaded. It is exemplary in conciseness.

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?

For a simple no-parameter read operation, the description is fairly complete: it specifies the plan, usage, quota, and reset date. However, it does not differentiate from the similar sibling get_quota, and since there is no output schema, the agent relies entirely on the description for return structure. The listed fields are helpful, but a brief note on when to prefer this over get_quota would enhance completeness.

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?

The tool has zero parameters, so the schema is trivially covered. Since there are no parameters to document, the description does not need to add parameter-specific details. Per the baseline for zero-parameter tools, a score of 4 is appropriate because the description adequately conveys the tool's purpose without needing to explain parameter semantics.

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 clearly states a specific action ('Get') on a specific resource ('this API key's plan and current-month usage') and enumerates the exact fields returned (used, limit, remaining, reset date). This is unambiguous and distinct enough to convey the tool's core function, even though it does not explicitly contrast with siblings like get_quota.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus its siblings, particularly get_quota or get_key_status. It simply states what it does without any context about scenarios, prerequisites, or exclusions. An agent would have to infer when this is the appropriate choice from the name and description alone.

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

list_currenciesA

List all supported currencies (codes and names).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It states a read-only action implicitly, but does not explicitly say it has no side effects, or mention any quirks like pagination or data freshness. For a simple list, this is adequate but not rich; a 3 reflects the lack of explicit behavioral guarantees.

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?

A single, front-loaded sentence with zero filler. Every word earns its place—'List', 'all supported currencies', and the parenthetical output detail. This is model-concise.

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?

Given the tool's simplicity—no parameters, no output schema, no complex behaviors—the description is complete. An agent knows exactly what to expect and can call it without further clarification. Nothing critical 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?

The tool has zero parameters, so the baseline is 4. The description adds no parameter details, but none are needed since the input schema is empty. The description's mention of 'codes and names' clarifies the output, which indirectly defines the return semantics.

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 clearly states the verb 'List' and the resource 'all supported currencies' with output specifics (codes and names). It is unambiguous and distinct from siblings like convert_currency or get_latest_rates, which focus on operations rather than enumeration.

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?

The purpose implies when to use it—when an agent needs the set of available currency codes/names before performing conversions or rate lookups. It does not explicitly mention alternatives or exclusions, but the simplicity and distinctness of the action make the usage context clear enough.

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

list_rate_alertsA

List the rate alerts configured on this API key. Requires Business plan or higher.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the operation is a listing and notes the plan requirement, but does not disclose the response format, whether pagination applies, ordering, or any side-effect behavior beyond being read-only.

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 entire description is one concise sentence with the main action front-loaded ('List the rate alerts') followed by an important prerequisite. There is no wasted text.

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

Completeness3/5

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

Given the low complexity (zero parameters, simple list operation), the description is adequate but incomplete. It does not describe what a rate alert contains or the return shape, and there is no output schema to compensate; it also lacks sibling-based guidance.

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?

The tool has zero parameters, and the description correctly does not invent any. Per the rubric, a zero-parameter tool receives a baseline of 4, and the description adds no unnecessary parameter semantics.

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 action ('List') and resource ('rate alerts'), scoped to 'this API key'. It clearly distinguishes itself from sibling tools like create_rate_alert and delete_rate_alert by describing a read/list operation.

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?

The description implies usage (call this when you need to see existing rate alerts) and mentions a plan requirement, but it does not explicitly say when to prefer this over alternatives or provide exclusionary guidance. The usage context is inferable but not fully spelled out.

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. 17 tool updatesv1.1.1
    • First observedconvert_currency
    • First observedcreate_rate_alert
    • First observeddelete_rate_alert
    • First observedget_api_status
    • First observedget_crypto_rates
    • First observedget_historical_rates
    • First observedget_key_status
    • First observedget_latest_rates
    • First observedget_metal_prices
    • First observedget_pair_rate
    • First observedget_quota
    • First observedget_rate_fluctuation
    • First observedget_stock_prices
    • First observedget_timeseries_rates
    • First observedget_usage
    • First observedlist_currencies
    • First observedlist_rate_alerts

TDQS

A3.5/5.0

Scored across 17 tools

Disambiguation2/5

Several tools have overlapping boundaries: get_usage and get_quota both report quota/usage for the API key, and get_pair_rate/convert_currency can be confused for conversion tasks. While descriptions clarify some differences, the redundancy makes tool selection ambiguous.

Naming Consistency5/5

All tools use snake_case with a leading verb (get/list/create/delete/convert) and a noun object. The pattern is consistent and predictable across rates, account, and alert operations.

Tool Count3/5

At 17 tools, the server is slightly beyond the ideal 3-15 range, though most tools address a distinct rate or account feature. The count is manageable but borders on heavy for a single-purpose API server.

Completeness4/5

The server covers latest/historical/timeseries rates, conversion, account usage, and alert lifecycle (create/list/delete), but lacks an update operation for alerts and no dedicated single-alert getter. Minor gaps exist but core workflows are supported.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Real-time currency exchange rates and crypto prices via MCP. Convert between 60+ fiat currencies and 30+ cryptocurrencies with multi-source failover. No API keys needed for upstream data.
    6 npm
    ISC
  • F
    license
    B
    quality
    D
    maintenance
    An MCP server that provides currency rates, conversions, and historical exchange-rate data using the Frankfurter API. It enables users to retrieve latest rates, convert amounts between currencies, and access time-series data for currency pairs.
    3
    -
  • A
    license
    A
    quality
    B
    maintenance
    Provides real-time foreign-exchange rates, historical data, and multi-currency lookups to MCP-compatible AI coding assistants like Claude Code and Cursor.
    4
    130 npm
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    MCP server that provides real exchange-rate data from the European Central Bank, including latest rates, currency conversion, historical rates, and time series.
    -