Cambio Uruguay MCP
Server Quality Checklist
Latest release: v0.1.1
- Disambiguation3/5
get_rates and best_house overlap because get_rates already provides the best buy/sell house and the full per-house list, making best_house a subset rather than a clearly distinct tool. The other tools are well separated by current rates, historical data, conversion, news, and summary.
Naming Consistency4/5Most tool names follow a get_/list_ + noun snake_case pattern, but best_house, convert, and daily_summary deviate from that verb-prefix convention. The naming is still readable, consistent in casing, and easy to infer.
Tool Count5/5Seven tools is well-scoped for a Uruguayan exchange-rate domain, covering rates, best house, conversion, house list, history, news, and summary. Each tool earns its place without excessive fragmentation.
Completeness4/5Core workflows are covered: current rates, best house, conversion, exchange house reference data, historical series, news, and daily analysis. Minor gaps such as market-level historical averages or multi-currency batch rates would need workarounds, but they do not block the main use cases.
Average 3.9/5 across 7 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
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.
Add a glama.json file to provide metadata about your server.
This server has been verified by its author.
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?
With no annotations, the description carries the behavioral burden and does disclose the non-obvious UYU routing and 'best available market rates'. However, it does not mention the return shape, whether the conversion is indicative or executable, or any error/edge-case 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, front-loaded with the core purpose, and every sentence adds useful information. There is no redundant or filler content.
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 three-parameter conversion tool, the core invocation details are covered by the schema and description. The main gap is the absence of an output schema or stated return format, but the tool's purpose and routing behavior are sufficiently clear for an agent to call it correctly.
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 already describes all three parameters, so the baseline is 3. The description adds value by listing example accepted currency codes (USD, EUR, ARS, BRL, UYU), helping the agent construct valid from/to arguments.
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 states a clear action and resource: 'Convert an amount between currencies' using Uruguayan market rates. It also gives a distinguishing behavioral detail (foreign↔foreign routes through UYU), though it does not explicitly contrast any sibling tool.
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 implies when to use the tool (currency conversion with Uruguayan rates) but does not explicitly state when to prefer it over siblings like get_rates, nor any exclusions or prerequisites. Usage context is present but not fully articulated.
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, the description carries the full disclosure burden. It states the output is 'AI-generated analysis,' implying synthesized narrative rather than raw data, and it exposes language options. It does not mention read-only semantics, data freshness, output format, or behavior when a requested currency has no data, so some behavioral gaps remain.
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 two concise sentences with the core scope front-loaded. The conditional usage is compressed into one clear clause, and the language note is minimal. There is no filler or redundant phrasing.
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 tool with two optional parameters and no output schema, the description captures the essential invocation modes and market scope. It does not specify the return format beyond 'analysis,' and 'daily' is implied by the name rather than described, so it is not fully exhaustive. Still, an agent can call it correctly without requiring additional information.
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 baseline is 3. The description adds the conditional semantics of the currency parameter ('without... with...') and restates the lang values, but the schema already conveys the optional per-currency behavior and language choices. The added value beyond the schema is minimal.
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 opens with 'AI-generated analysis of the Uruguayan exchange market,' clearly identifying the deliverable and market scope. It further differentiates the tool through its conditional behavior: whole-market without currency, per-currency with one. The verb is implicit rather than explicit, but the purpose is not likely to be confused with sibling rate or news tools.
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 explicitly explains how to switch between whole-market and per-currency modes: omit currency for a market summary, provide one for per-currency analysis. It also enumerates the allowed language values. However, it does not contrast this tool with siblings such as get_rates or get_evolution, leaving when to prefer raw rates or historical data to inference.
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, the description carries the full behavioral burden, and it delivers non-obvious disclosure: the meaning of 'best' flips with side — lowest sell price when buying, highest buy price when selling. This prevents an agent from incorrectly assuming 'best' always means the lowest price. It also scopes the result temporally ('right now'), though it doesn't explicitly confirm read-only behavior or describe the result shape.
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?
Two sentences with zero redundancy. The purpose is front-loaded in the first sentence, and the clarifying side semantics follow immediately in the second. Every clause earns its place, and the key disambiguation is packed into minimal space.
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 2-parameter lookup tool with fully documented schema parameters, the description covers the essential decision rule and temporal scope. The main gap is the absence of an output schema and no hint about what the result contains (house name, rate, timestamp). Given the tool's simplicity, this is close to complete but not fully so.
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?
Schema coverage is 100%, so both parameters are already documented, earning the baseline 3. The description adds genuine value beyond the schema by coupling each side value to its ranking rule (buy → lowest sell price; sell → highest buy price), which is the tool's core logic. Currency adds nothing beyond the schema's ISO note, but the side explanation justifies a 4.
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 states a specific purpose: return the single best exchange house for buying or selling a currency, with 'right now' scoping it to current market conditions. 'The single best' implicitly separates it from siblings like list_houses and get_rates, though it doesn't name them explicitly. It stops short of a 5 because differentiation from siblings is implied rather than stated.
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 usage context is implied: use this when you want the one best casa de cambio for a given currency and side, rather than all houses or plain rates. The description gives no explicit when-to-use vs. when-not-to-use guidance and names no alternatives such as list_houses or get_rates. This meets the 'implied usage' level but nothing more.
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 does disclose what the tool returns (series plus min/max/avg/current/change) and the time-window scope. It does not mention response ordering, error behavior, or whether any side effects exist, though the tool appears to be a read-only query.
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 exactly two sentences with no filler. The main function is front-loaded, and the list_houses pointer is a useful, concise addition. Every sentence earns its place.
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?
The description covers the core purpose, the key inputs, and the content of the returned result well enough for a simple history query. With no output schema, it would benefit from specifying the exact response structure or result ordering, but the omission of the period default is acceptable because the schema already documents it.
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 already provides 100% coverage with descriptions for all three parameters. The description adds value by clarifying that origin refers to an exchange house and by pointing to list_houses for valid origin IDs. It also reinforces that period maps to 'last N months', supplementing rather than repeating the schema.
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 identifies the tool's purpose: returning historical rate series and statistics for a given exchange house and currency over a time period. The phrase 'historical rate series and statistics (min/max/avg/current/change)' distinguishes it from a simple current-rate lookup, though it does not explicitly name sibling alternatives like get_rates.
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 the tool: when historical rate data and summary statistics for a specific origin and currency are needed. It also gives a practical prerequisite by recommending list_houses for valid origin IDs. It does not, however, explicitly state when not to use this tool or compare it with siblings.
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 does well by stating exactly what the tool returns and explicitly what it excludes (BCU and interbank quotes), giving a clear model of the tool's behavior. It does not mention error handling, side effects, or data freshness, but the query-like nature and detailed output list provide solid transparency.
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 compact and front-loaded, opening with the core deliverable and then adding currency format and exclusions in the second sentence. Every clause adds value, with no redundancy or filler.
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 one-parameter tool with no output schema and no annotations, the description is quite complete: it enumerates the included data items (average, best house, spread, full list) and states exclusions. Minor gaps like output format or behavior on unsupported currencies are acceptable given the low complexity and the level of detail already present.
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%: the schema already documents the currency parameter as an ISO code with examples. The description repeats the same examples (USD, EUR, ARS, BRL) and adds no parameter-level meaning beyond what the schema provides, which meets the high-coverage baseline of 3.
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 identifies the operation: retrieving current buy/sell rates for a currency across Uruguayan exchange houses, and enumerates the specific outputs (market average, best buy/sell house, lowest spread, full per-house list). It also distinguishes itself by explicitly excluding BCU and interbank quotes, making it easy to differentiate from sibling tools like best_house or convert.
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 implies when to use the tool by stating it provides current rates for a currency and lists what data is returned, but it does not explicitly mention sibling alternatives or provide when-to-use versus when-not-to-use guidance. The exclusion of BCU and interbank quotes gives some scope context, but not enough to route an agent away from potentially overlapping tools like best_house or daily_summary.
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 goes beyond a simple verb+object by revealing two useful behaviors: results are de-duplicated and sorted newest-first, and the source is Google News. It does not mention pagination, rate limits, or output format, but for a simple read-only news tool this is reasonably transparent.
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 a single, compact sentence that immediately communicates the source, scope, and ordering behavior. Every phrase carries meaning and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity—one optional parameter, no nested objects, no output schema—the description gives an agent enough context to call it correctly. It names the resource, the source, and the processing guarantees, which is complete for this use case.
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 for the only parameter, 'limit', including its default and maximum. The description adds no parameter-specific details, but none are needed because the schema already fully explains the parameter.
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 names a specific resource ('Uruguayan dollar/economy headlines'), a clear source ('Google News'), and key processing behavior ('de-duplicated and newest first'). This clearly distinguishes it from the sibling tools like get_rates or list_houses, which address different domains.
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 phrase 'Latest ... headlines' implies the tool should be used when current market news is needed, and the scope is clearly Uruguayan. However, there is no explicit guidance about when not to use it or which sibling tool to choose instead, leaving the agent to infer selection from context.
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, the description carries the behavioral burden. It clearly signals a read-only listing operation and discloses the scope ('all ... tracked') and included fields. It does not mention ordering, pagination, or output format, but for a simple zero-parameter list this is acceptable.
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 entire description is one efficient, front-loaded sentence. It packs the geographic scope, the Spanish-language alias, and the returned fields into minimal space with no filler.
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 zero-parameter listing tool with no annotations or output schema, this description is nearly complete: it names the resource, scope, and return attributes. A minor gap is that 'departments served' is slightly ambiguous without clarifying that these are Uruguayan departments.
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 tool has zero parameters, so the description does not need to explain parameter meaning. The baseline for zero parameters is 4, and the description adds useful context about what the returned data contains.
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 uses a specific verb ('list') and a precise resource ('all Uruguayan exchange houses'), and enumerates the returned attributes: display name, website, and departments served. This makes the tool's role clear and distinguishes it from sibling tools focused on rates, conversion, evolution, news, and summaries.
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 intended use is implied: call this to get a directory of exchange houses and their basic contact/coverage information. However, there is no explicit guidance about when not to use it or how it relates to siblings such as get_rates or best_house.
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/eduair94/cambio-uruguay'
If you have feedback or need assistance with the MCP directory API, please join our Discord server