Skip to main content
Glama

Mestre Prático • Brazil Retail & Commodities MCP

brazil_compare_regions

Read-onlyIdempotent

Calculates cross-state price differentials (percentage delta % and BRL spread) for inter-state freight routing and corporate procurement between an origin state and a destination state. When to use: Use ONLY when a user specifically needs a side-by-side comparative delta % or arbitrage spread between two different Brazilian states (e.g., SP vs RJ, MG vs PR). When NOT to use: Do NOT use to query prices of a single state (use brazil_fuel_prices, brazil_grocery_basket, or brazil_lpg_gas_prices). Read-only operation; no authentication required up to 60 req/min.

Input Schema

NameRequiredDescriptionDefault
categoriaNoEconomic indicator category to compare: 'todos', 'combustiveis', 'gas_cozinha', 'cesta_basica'. Defaults to 'todos'.todos
uf_origemYesOrigin two-letter Brazilian state code for comparison (e.g., 'sp', 'rj', 'ba'). Defaults to 'sp'.sp
uf_destinoYesDestination two-letter Brazilian state code for comparison (e.g., 'mg', 'pr', 'sc', 'rj'). Defaults to 'rj'.rj

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / properties / uf_destino / enum
      Removed value: -[
      -  "ac",
      -  "al",
      -  "am",
      -  "ap",
      -  "ba",
      -  "ce",
      -  "df",
      -  "es",
      -  "go",
      -  "ma",
      -  "mg",
      -  "ms",
      -  "mt",
      -  "pa",
      -  "pb",
      -  "pe",
      -  "pi",
      -  "pr",
      -  "rj",
      -  "rn",
      -  "ro",
      -  "rr",
      -  "rs",
      -  "sc",
      -  "se",
      -  "sp",
      -  "to"
      -]
    • removedInput schema / properties / uf_origem / enum
      Removed value: -[
      -  "ac",
      -  "al",
      -  "am",
      -  "ap",
      -  "ba",
      -  "ce",
      -  "df",
      -  "es",
      -  "go",
      -  "ma",
      -  "mg",
      -  "ms",
      -  "mt",
      -  "pa",
      -  "pb",
      -  "pe",
      -  "pi",
      -  "pr",
      -  "rj",
      -  "rn",
      -  "ro",
      -  "rr",
      -  "rs",
      -  "sc",
      -  "se",
      -  "sp",
      -  "to"
      -]
  2. Changed2 schema fields changed
    • addedInput schema / properties / uf_destino / enum
      Added value: +[
      +  "ac",
      +  "al",
      +  "am",
      +  "ap",
      +  "ba",
      +  "ce",
      +  "df",
      +  "es",
      +  "go",
      +  "ma",
      +  "mg",
      +  "ms",
      +  "mt",
      +  "pa",
      +  "pb",
      +  "pe",
      +  "pi",
      +  "pr",
      +  "rj",
      +  "rn",
      +  "ro",
      +  "rr",
      +  "rs",
      +  "sc",
      +  "se",
      +  "sp",
      +  "to"
      +]
    • addedInput schema / properties / uf_origem / enum
      Added value: +[
      +  "ac",
      +  "al",
      +  "am",
      +  "ap",
      +  "ba",
      +  "ce",
      +  "df",
      +  "es",
      +  "go",
      +  "ma",
      +  "mg",
      +  "ms",
      +  "mt",
      +  "pa",
      +  "pb",
      +  "pe",
      +  "pi",
      +  "pr",
      +  "rj",
      +  "rn",
      +  "ro",
      +  "rr",
      +  "rs",
      +  "sc",
      +  "se",
      +  "sp",
      +  "to"
      +]
  3. Changed7 schema fields changed
    • addedInput schema / properties / categoria
      Added value: +{
      +  "default": "todos",
      +  "description": "Economic indicator category to compare: 'todos', 'combustiveis', 'gas_cozinha', 'cesta_basica'. Defaults to 'todos'.",
      +  "enum": [
      +    "todos",
      +    "combustiveis",
      +    "gas_cozinha",
      +    "cesta_basica"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / destino_uf
      Removed value: -{
      -  "description": "Destination two-letter Brazilian state code for comparison (e.g., 'mg', 'pr', 'sc').",
      -  "type": "string"
      -}
    • removedInput schema / properties / indicador
      Removed value: -{
      -  "description": "Economic indicator category to compare (default: 'todos').",
      -  "enum": [
      -    "combustiveis",
      -    "gas",
      -    "todos"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / origem_uf
      Removed value: -{
      -  "description": "Origin two-letter Brazilian state code for comparison (e.g., 'sp', 'rj', 'ba').",
      -  "type": "string"
      -}
    • addedInput schema / properties / uf_destino
      Added value: +{
      +  "default": "rj",
      +  "description": "Destination two-letter Brazilian state code for comparison (e.g., 'mg', 'pr', 'sc', 'rj'). Defaults to 'rj'.",
      +  "type": "string"
      +}
    • addedInput schema / properties / uf_origem
      Added value: +{
      +  "default": "sp",
      +  "description": "Origin two-letter Brazilian state code for comparison (e.g., 'sp', 'rj', 'ba'). Defaults to 'sp'.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "origem_uf",
      -  "destino_uf"
      -]New value: +[
      +  "uf_origem",
      +  "uf_destino"
      +]
  4. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, openWorld and non-destructive. The description adds genuinely new operational context: no authentication required and a 60 req/min ceiling, which the agent cannot see elsewhere. It stops short of describing the shape of the returned comparison, which is the only remaining gap.

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

Conciseness4/5

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

Front-loaded with the core computation, then cleanly split into use / do-not-use blocks. Slightly dense in the first sentence, but each sentence carries weight and the example pairs aid selection.

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

Completeness5/5

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

With no output schema, the description still tells the agent what comes back (percentage delta % and BRL spread). Combined with the routing guidance, rate limit, and auth note, an agent has everything needed to select and call this correctly.

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

Parameters3/5

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

Schema coverage is 100%, so all three parameters including the category enum are already documented. The description reinforces the origin/destination semantics and mentions example state pairs, but adds no syntax or behavioral detail beyond the schema. Baseline 3 applies.

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 and resource — 'Calculates cross-state price differentials (percentage delta % and BRL spread)' — and scopes it to origin/destination state pairs. This is immediately distinguishable from siblings like brazil_cost_of_living or brazil_freight_logistics, which do not produce pairwise deltas.

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

Usage Guidelines5/5

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

Explicit 'When to use' names the precise condition (side-by-side delta % or arbitrage spread between two different states) and 'When NOT to use' routes single-state queries to three named alternatives. Nothing is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.