Cambio Uruguay
Server Details
Live buy/sell rates from 40+ Uruguayan exchange houses: best rates, conversion, history and news.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- eduair94/cambio-uruguay
- GitHub Stars
- 7
- Server Listing
- Cambio Uruguay MCP
Available Tools
7 toolsbest_houseBest exchange houseAInspect
The single best casa de cambio right now to buy or sell a currency. side='buy' means you buy the currency (best = lowest sell price); side='sell' means you sell it (best = highest buy price).
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | 'buy' = you buy the currency; 'sell' = you sell it | |
| currency | Yes | ISO currency code, e.g. USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It clearly defines what 'best' means for each side ('lowest sell price' vs 'highest buy price') and signals real-time data with 'right now.' It does not describe the return shape or edge cases, but the central behavioral ambiguity is resolved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The core result is front-loaded, and the side nuance is packed into the second sentence efficiently. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter query with full schema coverage, the description is mostly complete: it defines the result, the side semantics, and the schema covers currency format. It could benefit from a brief note on return format or when to prefer sibling tools like list_houses or get_rates, so it is not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful nuance to the 'side' parameter by explaining the price direction ('buy' = lowest sell price, 'sell' = highest buy price), which goes beyond the schema's generic phrasing. Currency is adequately documented in the schema as an ISO code.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the tool returns 'the single best casa de cambio right now to buy or sell a currency,' a specific outcome that distinguishes it from siblings like list_houses (all houses) and get_rates (rates). The side semantics are defined up front, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when you need the current best exchange house for a given currency and side. However, it does not explicitly name alternatives or exclusions, such as using list_houses to see all exchange houses or get_rates for historical rates, so an agent must infer when this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convertConvert an amountAInspect
Convert an amount between currencies using the best available Uruguayan market rates. Foreign↔foreign routes through UYU (Uruguayan peso). Codes: USD, EUR, ARS, BRL, UYU, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target ISO code, e.g. UYU | |
| from | Yes | Source ISO code, e.g. USD | |
| amount | Yes | Amount to convert |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses a key non-obvious behavior: foreign-to-foreign conversions route through UYU. It also reveals that rates come from the Uruguayan market, which is important context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The primary purpose is front-loaded, the important routing caveat is stated second, and the supported-codes list is compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter conversion tool with no output schema, this description covers purpose, rate source, routing behavior, and supported codes. It does not describe the response shape, but the operation is straightforward enough that the missing output details are a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents amount, from, and to at 100% coverage, so the baseline is 3. The description adds value by listing supported currency codes and the routing-through-UYU behavior, which clarifies what from/to values mean in practice.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: convert an amount between currencies. It also adds a distinctive scope—best available Uruguayan market rates—and clarifies routing behavior, which makes it easy to tell apart from siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this is the tool for currency conversion, but it does not explicitly say when to prefer it over related siblings such as get_rates. There is useful context about rate sourcing, but no direct alternative guidance or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
daily_summaryAI market summaryAInspect
AI-generated analysis of the Uruguayan exchange market. Without a currency, a whole-market summary; with one, a per-currency analysis. lang is es | en | pt.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language (default es) | |
| currency | No | Optional ISO code for a per-currency analysis, e.g. USD |
TDQS
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 discloses that the output is AI-generated and changes meaning based on currency presence. However, it does not mention data freshness, response format, rate limits, or whether the analysis may be non-deterministic, which are relevant for an AI-generated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is remarkably concise: two sentences with no filler. The core purpose is front-loaded, the conditional currency behavior is clearly stated, and the language parameter is enumerated compactly. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with two optional parameters and no output schema, the description provides enough context to invoke it correctly: what it does, how currency changes behavior, and which languages are supported. A more explicit statement of output type or freshness would be helpful, but the AI-generated analysis wording makes the expected output reasonably clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantic value by explaining that omitting currency produces a whole-market summary, which the schema does not state. It also reiterates the lang enum values. This goes beyond a simple restatement of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: an AI-generated analysis of the Uruguayan exchange market, with a whole-market summary by default and per-currency analysis when a currency is supplied. It is specific about the domain and the conditional behavior. However, it does not explicitly distinguish itself from sibling tools such as get_rates or get_evolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear conditional usage: use without currency for a whole-market summary, with currency for per-currency analysis. It also specifies supported language values. However, it gives no direct guidance on when to choose daily_summary over sibling tools like get_rates, get_news, or get_evolution, leaving the selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_evolutionGet rate historyAInspect
Historical rate series and statistics (min/max/avg/current/change) for a given exchange house (origin) and currency over the last N months. Use list_houses for valid origin ids.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | Exchange house id, e.g. brou, itau, prex | |
| period | No | Months of history (default 6) | |
| currency | Yes | ISO currency code, e.g. USD |
TDQS
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 mentions the output categories (series and statistics, including min/max/avg/current/change) and the time range, which is useful. However, it does not specify the output structure, data granularity (e.g., daily vs monthly points), or any other behavioral details like pagination or error conditions, leaving some uncertainty about what the caller receives.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste. It front-loads the core purpose and follows with a single, relevant usage pointer. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters and no output schema, the description explains the essential request semantics and points to a prerequisite tool. However, because there is no output schema, the description should more thoroughly describe the shape of the returned series or statistics. The current text is sufficient for making the call but not fully adequate for interpreting the result without additional assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds value by mapping 'origin' to an exchange house and 'period' to months, which reinforces the schema. It also directs users to list_houses for valid origin IDs, going beyond the schema and genuinely helping the agent supply correct parameter values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving historical rate series and statistics (min/max/avg/current/change) for an exchange house and currency over a configurable number of months. It specifies the verb, resource, and key parameters, making its intent evident. However, it does not explicitly differentiate itself from sibling tools like get_rates or daily_summary, so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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 series and statistics are needed over the last N months. It also gives a concrete prerequisite instruction, 'Use list_houses for valid origin ids,' which aids correct invocation. It does not mention exclusions or alternatives such as 'for current rates, use get_rates instead,' but the context is nonetheless clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_newsGet market newsAInspect
Latest Uruguayan dollar/economy headlines (Google News), de-duplicated and newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max headlines (default 12) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It discloses the data source (Google News), the deduplication behavior, and the sort order (newest first), which are the notable traits for a news fetcher. It omits minor operational details like caching or network behavior, but the core behaviors are visible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence packs the source, scope, deduplication, and ordering without filler. The most important qualifier ('Latest') is front-loaded, and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only headline fetcher, this is nearly complete: scope, source, and result properties (deduplicated, sorted) are all present. The only minor gap is that no output schema exists and the description does not explicitly describe the headline item structure, though 'headlines' implies the expected content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the only parameter (limit) is 100%, including default and maximum, so the description does not need to add parameter details. The description adds context about result ordering but nothing about the limit parameter, which is acceptable at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('get' news) and narrows the scope to 'Uruguayan dollar/economy headlines' from Google News, making the purpose unmistakable. It also mentions deduplication and newest-first ordering, which clearly distinguishes it from sibling tools like get_rates or daily_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving current Uruguayan dollar/economy headlines, so an agent can infer when to use it. However, it does not explicitly state when not to use it or mention any sibling alternative, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ratesGet exchange ratesAInspect
Current buy/sell rates for a currency across Uruguayan exchange houses (casas de cambio): market average, best buy/sell house, lowest spread, and the full per-house list. Excludes BCU and interbank quotes. Currency is an ISO code like USD, EUR, ARS, BRL.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | ISO currency code, e.g. USD, EUR, ARS, BRL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It reveals the data source (Uruguayan exchange houses), the temporal scope (current), and an important exclusion (BCU/interbank), which is beyond what the schema provides. It does not mention freshness, rate limits, or response ordering, but for a simple read operation the key behavioral boundaries are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences that front-load the core purpose and then add output details, exclusions, and parameter format. Every sentence earns its place with no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description explains the main return contents sufficiently: averages, best house, spread, and full list. It does not specify exact response shape or error behavior, but those are minor for a simple rates lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the only parameter, currency, with an ISO-code description and examples. The description reinforces that currency is an ISO code like USD, EUR, ARS, or BRL, but adds no new semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: retrieving current buy/sell rates for a given currency across Uruguayan exchange houses. It enumerates concrete outputs (market average, best buy/sell house, lowest spread, per-house list) and explicitly excludes BCU/interbank quotes, making it easy to distinguish from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Current buy/sell rates' provides clear context that this is the point-in-time snapshot tool, while the explicit exclusion of BCU and interbank quotes narrows when it applies. It does not name sibling alternatives such as get_evolution or best_house, so it stops short of explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_housesList exchange housesAInspect
All Uruguayan exchange houses (casas de cambio) tracked, with display name, website, and departments served.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral disclosure burden. It conveys the scope ('all ... tracked') and the output fields, which is useful, but it does not explicitly mention that the operation is read-only, whether it is paginated, or any other behavioral constraints. For a simple list operation this is adequate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the resource, scope, and return fields without any wasted words. Every part adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless listing tool with no output schema, the description is complete: it identifies the exact set of entities returned and the key attributes included. An agent can invoke it correctly without further clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 of 4 applies here; there is nothing missing in terms of parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('list'), the resource ('all Uruguayan exchange houses / casas de cambio'), and the return fields (display name, website, departments served). This distinguishes it from siblings like get_rates or best_house, which deal with rates and rankings rather than the full registry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as best_house or get_rates. It implies a generic listing use case but does not explicitly state when it is the right choice or when a sibling should be preferred.
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. Dates show when Glama detected each change.
7 tool updates
- First observed
best_house - First observed
convert - First observed
daily_summary - First observed
get_evolution - First observed
get_news - First observed
get_rates - First observed
list_houses
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Live Argentina data: dolar rates, quiniela and lotteries, holidays, river levels, inflation, news.
Live USD/PEN rate ranking of Peru's SBS-supervised online exchange houses, from comparadolar.pe
Real-time Argentine open data: dollar rates, BCRA, INDEC, AFIP, INFOLEG, SEPA prices. 24+ tools.
Real-time + historical Bolivia parallel-market USD/BOB rate. P2P-aggregated. Free, CC-BY 4.0.
Related MCP Servers
- AlicenseAqualityCmaintenanceReal-time Argentine exchange rates for AI agents. Dollar blue, oficial, MEP, CCL, crypto rates plus currency conversion and spread calculator.6195MIT
- AlicenseNot gradedqualityDmaintenanceProvides real-time Argentine dollar exchange rates to Claude, including blue, official, MEP, CCL, crypto, and other rates. Enables automatic currency conversions for budgets, price comparisons, and financial analysis in pesos and dollars.15MIT
- FlicenseBqualityNot gradedmaintenanceEnables interaction with Uruguayan financial products including loans, credit cards, and insurance. Supports searching products, calculating payments, comparing options, and accessing financial guidance through Claude Desktop.91-

Arzbin MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceLive Iran exchange rates, gold, crypto, and Toman/Rial market data for AI agents.2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Most tools cover clearly distinct tasks: conversion, historical data, news, summaries, and house listings. However, best_house overlaps with get_rates since get_rates already identifies the best buy/sell house, though best_house's narrower focus helps reduce ambiguity.
The tool names generally follow a readable snake_case style, with many using a get_* prefix for data retrieval. A few names like best_house, convert, and daily_summary deviate from that pattern, but the naming remains predictable and easy to understand.
Seven tools is a well-scoped size for a specialized Uruguayan exchange-rate server. Each tool contributes a distinct capability without unnecessary redundancy or bloat.
The surface covers the core domain well: current rates, best house selection, currency conversion, historical evolution, house listings, news, and AI-generated summaries. There are no obvious dead ends or missing operations for the server's stated purpose.