AllRatesToday MCP Server
Server Quality Checklist
Latest release: v0.2.0
- Disambiguation3/5
The tools have some overlap in purpose, particularly between get_exchange_rate and get_rates_authenticated, which both retrieve current exchange rates but with different features (single vs. multi-target). However, the descriptions clarify the distinctions, and the other tools (get_historical_rates, list_currencies) are clearly distinct. This creates a moderate level of ambiguity that agents can navigate with careful reading.
Naming Consistency4/5The tool names follow a consistent verb_noun pattern (e.g., get_exchange_rate, get_historical_rates, list_currencies), with all using snake_case. The only minor deviation is get_rates_authenticated, which uses 'authenticated' as an adjective rather than a noun, but it still fits the overall style. This consistency makes the tools predictable and easy to understand.
Tool Count5/5With 4 tools, this server is well-scoped for its purpose of providing exchange rate data. Each tool serves a distinct function (current rates, historical rates, authenticated rates, currency listing), and there are no redundant or trivial additions. This count is appropriate for the domain, allowing comprehensive coverage without overwhelming complexity.
Completeness4/5The tool surface covers the core needs for exchange rate data: retrieving current rates (with both basic and authenticated options), accessing historical data, and listing supported currencies. A minor gap is the lack of tools for currency conversion calculations or advanced analytics, but agents can work around this by combining the provided rates. Overall, it supports key workflows without dead ends.
Average 3.9/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 16 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
This repository includes a glama.json configuration file.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- 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 burden of behavioral disclosure. It adds useful context: it specifies the API key requirement (ALLRATES_API_KEY) and describes the data granularity for each period (e.g., hourly for 1d, daily for 7d/30d, weekly for 1y), which goes beyond the input schema. However, it does not cover other behavioral aspects such as rate limits, error handling, response format, or whether it's a read-only operation, leaving gaps for a tool with authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences: the first states the purpose and period details, and the second specifies the API key requirement. It is front-loaded with key information and avoids unnecessary words, though it could be slightly more structured (e.g., separating period details into a list). Every sentence adds value, making it efficient but not perfectly optimized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, authentication requirement, no output schema), the description is moderately complete. It covers the purpose, period options with granularity, and authentication need, but lacks details on output format, error cases, or sibling tool differentiation. Without annotations or an output schema, more behavioral context would be beneficial, but it meets a minimum viable level for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for source, target, and period parameters. The description adds minimal value beyond the schema: it mentions 'currency pair' which aligns with source/target, and lists the period options with data granularity details, but does not provide additional syntax, format, or usage examples. Given the high schema coverage, a baseline score of 3 is appropriate as the description compensates slightly but not significantly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get historical exchange-rate data points for a currency pair over a period.' It specifies the verb ('Get'), resource ('historical exchange-rate data points'), and scope ('currency pair over a period'), which distinguishes it from siblings like get_exchange_rate (likely current rates) and list_currencies (likely currency metadata). However, it doesn't explicitly differentiate from get_rates_authenticated, which might also provide historical data, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage context by listing available periods (1d, 7d, 30d, 1y) and stating it requires an AllRatesToday API key, which suggests when to use it (for historical data with specific timeframes and authentication). However, it lacks explicit guidance on when to use this tool versus alternatives like get_rates_authenticated or get_exchange_rate, and does not mention any exclusions or prerequisites beyond the API key.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 adds useful context: authentication requirements (AllRatesToday API key), rate limit characteristics ('higher limits'), and input format for targets ('comma-separated'). However, it doesn't describe the return format, error conditions, or what 'higher limits' specifically means compared to other tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded with the most important information. Every sentence earns its place: the first states the core purpose and key differentiators, the second covers authentication requirements, and the third provides a concrete example of parameter usage. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description provides adequate but incomplete context. It covers authentication, rate limits, and multi-target format, but doesn't describe the return values, error handling, or how it differs from sibling tools beyond 'higher limits.' For a tool with 4 parameters and authentication requirements, more behavioral context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does 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 parameters thoroughly. The description adds minimal value beyond the schema: it clarifies the 'target' parameter accepts 'comma-separated targets like EUR,GBP,JPY' which is implied but not explicitly stated in the schema description. This meets the baseline of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get rates with higher limits and multi-target support.' It specifies the action ('Get rates') and key capabilities (higher limits, multi-target support). However, it doesn't explicitly differentiate from sibling tools like 'get_exchange_rate' or 'get_historical_rates' beyond mentioning higher limits and multi-target support.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: when higher limits and multi-target support are needed, and when an AllRatesToday API key is available. It mentions 'comma-separated targets' as a specific usage pattern. However, it doesn't explicitly state when NOT to use it or name alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses key behavioral traits: returns a 'single rate number' (output format), 'No API key required' (authentication needs), and 'current mid-market' (rate type). It doesn't mention rate limits, error conditions, or data freshness, but provides useful operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences that each earn their place: states purpose, specifies return format, and discloses authentication requirement. No wasted words, front-loaded with core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read operation with no output schema, the description provides good coverage: purpose, return format, and authentication context. It could mention data source or refresh frequency for completeness, but covers the essentials well given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema (both parameters are ISO 4217 codes). Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get'), resource ('current mid-market exchange rate'), and scope ('between two currencies'). It distinguishes from sibling tools by specifying it returns a 'single rate number' (vs. historical rates or authenticated rates) and 'No API key required' (vs. get_rates_authenticated).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('Get the current mid-market exchange rate') and implicitly contrasts with siblings through 'No API key required' (vs. get_rates_authenticated) and 'single rate number' (vs. historical data). However, it doesn't explicitly state when NOT to use this tool or name alternatives directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/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 effectively adds context beyond the input schema by specifying that no API key is needed (implying no authentication requirements) and that data is cached for 24 hours upstream (indicating potential rate limits or freshness considerations). However, it does not detail response format or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded, consisting of two sentences that efficiently convey the tool's purpose, key features (no API key, caching), and scope. Every sentence adds value without redundancy, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is largely complete, covering purpose, authentication, and caching. However, without an output schema, it could benefit from briefly mentioning the return format (e.g., list of objects with code, name, symbol) to fully guide usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, maintaining focus on the tool's purpose and behavior, which aligns with the baseline expectation for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List all supported currencies') and resource ('currencies'), with explicit details on what information is included ('code, name, and symbol'). It effectively distinguishes from sibling tools like get_exchange_rate or get_historical_rates, which focus on rates rather than listing currencies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating 'No API key required' and 'Cached 24h upstream', which helps determine when to use this tool (e.g., for basic currency info without authentication). However, it does not explicitly mention when not to use it or name alternatives among siblings, such as get_rates_authenticated for authenticated rate data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AllRates-Today/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server