Brazil Retail & Fuel Price Intelligence MCP Server
Summary: A read-only, zero-auth (60 req/min) Brazilian price-intelligence MCP server exposing 12 brazil_* tools over fuel, grocery, LPG, pharma, energy, freight, tax, and cost-of-living data across 27 states and 417+ cities.
Fuel prices — audited ANP spot prices for gasoline, ethanol, diesel S10, CNG by state/city, with rankings.
Grocery basket — 13-item basic food basket (SEFAZ NFC-e/DIEESE) prices and supermarket offers across 59 hubs.
LPG cooking gas — 13kg cylinder prices from 13,145+ ANP resellers, with city filtering.
Pharma prices — CMED/ANVISA PMC and factory prices for 26,635+ medicines, generic/reference filters, Farmácia Popular eligibility, state ICMS.
Purchasing power oracle — labor-hours needed (CLT 220h) to buy basket, LPG, 50L fuel, and 150 kWh electricity; BCB inflation/interest correlation.
Energy tariffs — ANEEL residential B1 rates by state, bill estimates for custom kWh, LPG-vs-induction thermal parity.
Freight logistics — ANTT minimum freight floors by axle class/cargo type/distance, plus diesel cost ratio and cost per kg of food.
Tax anatomy — CONFAZ/EC 132 decomposition of ICMS, PIS/COFINS, and net product value for fuels, LPG, basket, medicines.
Cost of living — consolidated regional index with optional live USD/BRL conversion.
Cross-state comparison — side-by-side fuel, LPG, and basket deltas between any two UFs, incl. ethanol/gasoline parity.
Discovery —
brazil_list_statesreturns all 27 UF codes, coverage counts, ICMS rates, and audit timestamps.A2A/protocol extras — 5 reasoning prompts, 8 canonical
mcp://resources, NLWeb/askand/whoendpoints, and optional x402 micropayment/enterprise tier for historical series and bulk data.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Brazil Retail & Fuel Price Intelligence MCP Servercompare gasoline and ethanol prices in São Paulo and Rio de Janeiro"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Mestre Prático & NutriPreço — Brazil Retail, Fuel & Healthcare Price Intelligence MCP Server
🌐 NLWeb Protocol (Natural Language Web)
In addition to JSON-RPC 2.0 MCP, this server natively implements the NLWeb Protocol (Standardized by Microsoft / Schema.org consortium):
Direct QA Endpoint: GET/POST https://mestrepratico.com.br/ask?q={query} (Modes: generate, summarize, list)
Agent Identity Endpoint: GET https://mestrepratico.com.br/who
Factual Attribution: Indissociable canonical attribution to https://mestrepratico.com.br with Schema.org JSON-LD grounding.
Official sovereign Model Context Protocol (MCP) server providing real-time audited Fuel Prices (ANP), Basic Grocery Basket Indices (SEFAZ NFC-e / Decree 11.936/2024), Residential LPG Cooking Gas 13kg (ANP), Regulated Pharmaceuticals & Farmácia Popular (CMED / ANVISA), and Macroeconomic Cost-of-Living Synthesis across all 27 Brazilian states and 417+ cities.
Built and maintained by Holding Arthur Luis Vieira dos Santos — Tecnologia e Inteligência de Varejo Inova Simples (I.S.) (CNPJ 69.423.752/0001-61 — Mestre Prático & NutriPreço).
Related MCP server: mcp-brasil
🤝 Open Governance & Continuous Calibration (The Kaizen Principle)
"Our First Sovereign MCP: Engineered to Evolve with the Community"
This is the first Model Context Protocol server developed and published by Holding Arthur Luis Vieira dos Santos. Brazil's continental economy — spanning 27 federal units and 5,570 municipalities — is a living, dynamic ecosystem. We do not operate under the illusion of perfection; instead, we operate under the Kaizen Principle: transparent engineering, continuous active calibration, and absolute honesty with developers and autonomous AI agents.
🛡️ Active Maintenance Guarantee & Legal Grounding
Every macroeconomic indicator, tax rate, and regulatory ceiling returned by our 12 sovereign tools is strictly calibrated against official primary authorities:
National Minimum Wage: Calibrated to R$ 1,621.00 / month (R$ 7.37 / hour) in accordance with Federal Decree No. 12,797/2025 (Decreto nº 12.797/2025).
Freight & Logistics Floor: Anchored to ANTT Resolution No. 5,867/2020 & Decree No. 11.936/2024 (Basic Grocery Basket composition).
Fuels & Cooking Gas (LPG): Sourced from official ANP (Agência Nacional do Petróleo, Gás Natural e Biocombustíveis) regulatory surveys.
Pharmaceutical Ceilings: Calibrated to CMED (Câmara de Regulação do Mercado de Medicamentos) / ANVISA maximum consumer price lists (PMC) and SUS Farmácia Popular coverage.
💡 Building in Public — How You Can Help Us Improve
If you are building AI agents, testing connectors, or auditing data accuracy across Brazilian retail and logistics:
Found an edge-case, tax nuance, or regional variance? Open an Issue or Pull Request on our GitHub repository.
Need a specialized metric, webhook trigger, or schema enhancement? Our engineering team reviews and calibrates data feeds daily.
Direct Technical Desk:
contato@mestrepratico.com.br|holding@mestrepratico.com.brGitHub Issues: nutripreco-oficial/mestre-pratico-mcp-server/issues
📊 Architectural Note on Historical Time-Series, Multi-Lab Pharmaceutical Comparisons & Full-Horizon Datasets
By deliberate commercial governance and intellectual property protection under Brazilian Copyright Law No. 9.610/98 (Art. 7, XIII), the unauthenticated Community / Discovery Tier exposes real-time spot prices (T+0) with curated horizon sampling (max 3 stations / 2 LPG resellers / 3 medicines per query).
Full Historical Price Time-Series (12-to-36 month ANP/SEFAZ/CMED inflation curves), Multi-Laboratory Pharmaceutical Therapeutic Equivalence & Cross-State Price Comparisons, and Uncapped 417+ City Bulk Datasets are fully indexed in our sovereign vault and exclusively unlocked for Enterprise & Commercial API Licensees (Authorization: Bearer <ENTERPRISE_API_KEY>).
👉 Corporate Partnerships & Dedicated Enterprise Keys: contato@mestrepratico.com.br | https://mestrepratico.com.br/developers
🌐 Live Remote MCP Endpoint (Zero-Install HTTP / Edge)
Endpoint URL:
https://mestrepratico.com.br/mcp/v1Transport: Streamable HTTP (
POST /mcp/v1JSON-RPC 2.0 &GET /mcp/v1discovery manifest) + LocalstdioBridge (index.js/ Docker).Developers & Corporate Portal:
https://mestrepratico.com.br/developers
🤖 Agent-to-Agent (A2A) Layer — Full Tri-Pillar MCP Compliance
Our server is a certified Full Tri-Pillar Model Context Protocol (MCP) implementation providing complete cognitive agency across 3 protocol primitives:
tools(12 Sovereign Tools): Instant sub-100ms RPC function calling across fuel, grocery, medicines, labor-hours, electricity tariffs, freight, and taxes.prompts(5 Cognitive A2A Workflows): Structured multi-step reasoning templates (analisar_orcamento_familiar,auditar_viabilidade_logistica_antt,raio_x_tributario_reforma,auditar_preco_farmacia,analise_combustivel_frota) that guide autonomous agents to audit, compute, and synthesize executive memos.resources(8 Canonical URIs): Direct live data hydration for AI agents without prompt injection risk (mcp://brazil/macro/bcb-series,mcp://brazil/energy/aneel-tariffs,mcp://brazil/logistics/antt-freight-table,mcp://brazil/tax/confaz-icms-monofasico, etc.).
🛠️ The 12 Sovereign brazil_* Tools (Glama Grade A — TDQS 4.4/5.0)
All 12 tools enforce strict brazil_* naming consistency, JSON Schema input constraints, and official MCP annotations (readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true):
Tool Name | Primary Authority | Public Spot Sample ( | Enterprise Unlock ( |
| ANP / SEFAZ NFC-e | Top 3 audited stations + state averages (Gasoline, Ethanol, Diesel S10, CNG) | Full 4,750+ stations across 417+ cities + Weekly Historical Time-Series |
| SEFAZ NFC-e / Supermarkets | Spot regional basket total & top supermarket chains (13 essential items) | Store-by-store SKU breakdown + Daily Historical Inflation Time-Series |
| Macroeconomic / Dieese | Single-state combined monthly food + fuel + transport index in BRL/USD | Multi-city longitudinal purchasing-power parity (PPP) & Historical Trends |
| ANP Open Data | Top 2 authorized 13kg LPG cooking gas resellers + state average/min/max | All 13,145+ resellers with neighborhood delivery spread + Historical Series |
| CMED / ANVISA / SUS | Up to 3 matching presentations with Factory Price (PF), PMC, and Farmácia Popular | Full 26,635+ ANVISA catalog + Multi-Lab Generic vs. Reference Comparison & History |
| Discovery Metadata | All 27 Brazilian UF codes, station coverage counts, ICMS tax rates, timestamps | Full municipality slug directory & real-time webhook sync metadata |
| DIEESE / BACEN / IBGE / ANEEL | Minimum wage labor-hours required to purchase monthly 13-item grocery basket, 13kg LPG, fuel & 150 kWh electricity | Real purchasing power parity (PPP) by state & Historical Labor-Hours Trend |
| ANEEL / ANP | Homologated residential B1 electricity rates across all 27 UFs + Thermal cooking parity (GLP vs induction) | Distribution network cost-breakdown & Seasonal Tariff Flags (Bandeiras Tarifárias) |
| ANTT / ANP | Road freight cost floor per distance/axle + Diesel S10 consumption and transport cost per kg of food | Fleet dispatch optimization & Bulk Grain Highway Corridor Freight Curves |
| CONFAZ / EC 132 | Constitutional tax decomposition (ICMS Monofásico vs. Net Product) across all 27 UFs | State-by-state fiscal anatomy & Tax Reform IBS/CBS Dual-Rate Transition Analysis |
| Cross-State Synthesis | Side-by-side fuel & grocery differential + 70% ethanol/gasoline parity ratio | Multi-Sector Cross-State Comparison (including Pharma ICMS 18% vs 20% & LPG) |
| Linux Foundation A2A Protocol | M2M Economic Intent Protocol with SHA-256 seal & 24h price lock | Multi-Agent Machine Liquidation & Regulatory Escrow Settlement |
💰 Pricing & Autonomous Micropayments Architecture (x402 Protocol)
In strict accordance with the Founding Charter of Holding Arthur Luis Vieira dos Santos, legacy monthly subscription contracts have been decommissioned in favor of a frictionless, autonomous AI-native pricing architecture:
Tier | Rate Limit & Access | Pricing | Settlement Protocol | Features & Scope |
🌱 Community & Open Grounding | 60 req/min (Zero-Auth / Anonymous) | Free (R$ 0,00) | None required | All 12 canonical |
⚡ Sovereign High-Throughput RAG | 2,400 req/min (Dedicated Edge Capacity) | R$ 5,00 / 1.000 reqs (or ~0.001 USDC / call) | HTTP 402 / x402 Micropayments or Pix | High-frequency agent swarms, sub-15ms Anycast SLA, municipality-level pump telemetry, raw bulk feeds & cryptographic audit receipts. |
🤖 Machine-to-Machine (x402) Header Specification
Autonomous agents exceeding community rate limits or requesting batch feeds can pay per query natively via RFC HTTP 402 without manual human invoicing:
GET /mcp/v1 HTTP/1.1
Host: mestrepratico.com.br
X-Payment: mp_x402_<session_token>Discovery Endpoint:
https://mestrepratico.com.br/.well-known/x402Supported Rails: Pix (instant BRL), Base, Solana, Polygon, Lightning (USDC/SATS).
Corporate Partnerships & Dedicated SLAs: contato@mestrepratico.com.br | Developer Portal
⚡ 1-Click Install via Smithery (Claude Desktop, Cursor, Cline)
Install automatically with a single terminal command:
npx -y @smithery/cli install @mestrepratico/brazil-prices-mcpOr connect directly via remote HTTP:
⚡ Quick Connect (Claude Desktop, Cursor, Windsurf, Glama)
{
"mcpServers": {
"mestrepratico-brazil": {
"type": "http",
"url": "https://mestrepratico.com.br/mcp/v1",
"headers": {
"Authorization": "Bearer YOUR_ENTERPRISE_API_KEY_OPTIONAL"
}
}
}
}🛡️ Security & Intellectual Property Governance
Protected by forensic Canary Tokens (NC-CANARY-BRL-*) under Brazilian Copyright Law No. 9.610/98 (Art. 7, XIII), Berne Convention, and 17 U.S.C. § 1202. Unauthorized proxy rotation, systematic scraping, or removal of source attribution ("Fonte: Mestre Prático — mestrepratico.com.br") triggers automatic Edge ASN blocking (HTTP 402/403) and statutory liquidated damages of US$ 100,000.00 (R$ 500.000,00) per infringement.
Available Tools
11 toolsbrazil_compare_regionsARead-onlyIdempotentInspect
Comparative synthesis tool: Compares weighted average prices and percentage deltas for fuels (gasoline, ethanol, diesel), 13kg LPG cooking gas, and basic food basket costs side-by-side between any two Brazilian states (origin UF vs. destination UF). Read-only operation; no authentication required up to 60 req/min. Use brazil_list_states to discover valid UF codes, or brazil_fuel_prices and brazil_grocery_basket for single-state station/store drilldowns.
| Name | Required | Description | Default |
|---|---|---|---|
| indicador | No | Economic indicator category to compare (default: 'todos'). | |
| origem_uf | Yes | Origin two-letter Brazilian state code for comparison (e.g., 'sp', 'rj', 'ba'). | |
| destino_uf | Yes | Destination two-letter Brazilian state code for comparison (e.g., 'mg', 'pr', 'sc'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, and the description adds useful operational context: no authentication and a 60 requests/minute limit. It also indicates the comparative output nature, though it does not detail response structure or failure behavior.
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 three tight sentences. It front-loads the core comparison purpose, then adds rate-limit context and sibling-tool routing without unnecessary repetition.
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?
Given rich annotations and a fully described schema, the description is largely complete for selecting and invoking the tool. A minor gap remains around how the indicador values correspond to the advertised fuels, LPG, and food-basket comparisons.
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 parameter meanings are already documented. The description adds that origem_uf and destino_uf are Brazilian state codes and points to brazil_list_states, but it does not map the indicador enum values or clarify how the food basket fits with the available enum options.
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 and resource: it compares weighted average prices and percentage deltas for fuels, LPG, and food baskets between two Brazilian states. It clearly distinguishes itself from sibling tools by naming drilldown alternatives for single-state analysis.
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?
It explicitly routes the agent to brazil_list_states for valid UF codes and to brazil_fuel_prices and brazil_grocery_basket for single-state drilldowns. This makes the comparison use case and alternatives clear without requiring inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brazil_cost_of_livingARead-onlyIdempotentInspect
Computes a consolidated regional cost-of-living index and purchasing power parity (PPP) in Brazil, combining average fuel expenditure, basic food basket cost, and live USD/BRL exchange rate conversion. Updated daily. Read-only operation; no authentication required up to 60 req/min. Use brazil_fuel_prices or brazil_grocery_basket for granular item-level breakdowns, or brazil_compare_regions to compare two states side-by-side.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Two-letter Brazilian state code (e.g., 'sp', 'rj', 'df'). Defaults to national average if omitted. | |
| comparar_com_dolar | No | When true, converts all BRL cost metrics into USD using live exchange rates. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds genuinely new operational context: daily refresh cadence and an unauthenticated rate limit of 60 req/min, which an agent must know for batching decisions. It stops short of describing the returned index composition or rounding/units, keeping it at a 4.
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?
Three sentences, all front-loaded: what it computes, freshness/auth/limits, then the routing alternatives. No sentence is redundant and nothing is buried; every clause carries distinct 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?
With no output schema and only two optional parameters, the description covers everything an agent needs: what the index aggregates, freshness, auth and rate limits, the default-to-national-average behavior (also in schema), and clear sibling routing. Nothing material is missing for correct invocation.
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% — both 'uf' (two-letter state code, defaults to national average) and 'comparar_com_dolar' (BRL→USD conversion) are fully documented in the schema. The description reinforces the aggregation inputs but adds no parameter syntax or format detail beyond what the schema already supplies, so the baseline 3 applies.
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+resource: 'Computes a consolidated regional cost-of-living index and purchasing power parity (PPP) in Brazil', then names the exact inputs it aggregates (fuel expenditure, food basket, USD/BRL). It explicitly distinguishes itself from siblings brazil_fuel_prices, brazil_grocery_basket, and brazil_compare_regions, so an agent can route without opening any schema.
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?
Gives explicit when-not guidance: use brazil_fuel_prices or brazil_grocery_basket for item-level breakdowns, and brazil_compare_regions for two-state side-by-side comparisons. The condition selecting this tool (a consolidated index/PPP view) versus each alternative is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brazil_energy_tariffsARead-onlyIdempotentInspect
Provides official ANEEL (Agência Nacional de Energia Elétrica) residential electricity tariffs (B1) across all 27 Brazilian states (UFs), covering state concessionaires (e.g. Light, Enel, Cemig, Copel, Equatorial, Celesc). Computes estimated monthly electric bills for a given consumption baseline (default 150 kWh), and calculates thermal cooking parity: comparing the cost of residential cooking with an ANP 13kg LPG cylinder against 99 kWh of electric induction cooking. Read-only operation; zero authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Two-letter Brazilian state acronym (e.g. 'RJ', 'SP', 'MG', 'BA', 'DF'). Defaults to 'RJ' if omitted. | |
| consumo_mensal_kwh | No | Monthly electricity consumption in kWh for residential bill calculation. Defaults to standard baseline 150 kWh if omitted. | |
| incluir_paridade_termica_gas | No | Whether to calculate thermal cooking parity comparing 13kg LPG cylinder vs 99 kWh induction cooking. Defaults to true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered; the description adds the non-authentication requirement and the data provenance (official ANEEL) plus default behaviors. It does repeat the read-only claim, but the auth and source context are genuine additions. It stops short of describing output shape or cost/rate-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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph that front-loads the data source and coverage before the computations. Every clause is relevant, though the concessionaire enumeration (Light, Enel, Cemig, Copel, Equatorial, Celesc) is slightly verbose for an agent that only needs the scope.
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?
With no output schema, the description must convey what is returned, and it does explain the three outputs (tariffs, estimated bill, thermal parity) along with defaults and the read-only/no-auth profile. It does not describe the response structure or units, which is the main remaining 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?
Schema description coverage is 100% and all three parameters (uf, consumo_mensal_kwh, incluir_paridade_termica_gas) are fully documented with defaults, so the schema does the heavy lifting and baseline is 3. The description largely restates the 150 kWh default and parity definition already present in the schema, adding little beyond that.
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 specific verbs and resource: provides official ANEEL residential tariffs (B1) across 27 UFs, computes estimated monthly bills, and calculates LPG-vs-induction thermal parity. The scope (residential B1, state concessionaires like Light/Enel/Cemig) clearly distinguishes it from siblings such as brazil_lpg_gas_prices or brazil_fuel_prices.
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?
Usage is implied by the described computations but there is no explicit when-to-use, when-not-to-use, or named alternative among the many Brazil siblings. An agent can infer it is for electricity-tariff/bill questions, but nothing routes it against brazil_lpg_gas_prices even though both touch cooking-fuel cost.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brazil_freight_logisticsARead-onlyIdempotentInspect
Calculates official Brazilian minimum road freight rates regulated by ANTT (Agência Nacional de Transportes Terrestres - Resolution No. 5,867/2020) across all vehicle classes (2 to 9 axles) and cargo types (solid bulk, general cargo, refrigerated). Correlates freight costs with ANP Diesel S10 pump prices, computing diesel fuel expense ratio and the logistical cost impact per kilogram of food transported. Read-only operation; zero authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| uf_origem | No | Two-letter state acronym of cargo origin (e.g. 'MT', 'PR', 'SP'). Defaults to 'SP'. | |
| tipo_carga | No | Cargo classification per ANTT: 'granel_solido' (grains/staples), 'carga_geral' (packaged groceries), 'frigorificada' (meats/dairy). Defaults to 'granel_solido'. | |
| uf_destino | No | Two-letter state acronym of cargo destination (e.g. 'RJ', 'SP', 'BA'). Defaults to 'RJ'. | |
| distancia_km | No | Highway route distance in kilometers. Defaults to 450 km (e.g. SP-RJ axis or regional agricultural corridor) if omitted. | |
| tipo_veiculo | No | Truck axle configuration: 'carreta_5_eixos' (standard 27t), 'truck_3_eixos' (14t), 'bitrem_7_eixos' (38t), or 'rodotrem_9_eixos' (50t grain hauler). Defaults to 'carreta_5_eixos'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description usefully adds that no authentication is required and that outputs include a diesel expense ratio and per-kg logistical cost impact, which is behavior beyond the annotations.
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?
Three dense sentences, front-loaded with the core purpose and regulation, then scope, then derived outputs. Little waste, though the regulatory citation is verbose.
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?
With no output schema, the description compensates by naming derived outputs (diesel fuel expense ratio, cost impact per kg). Combined with full schema coverage and annotations, this is largely complete, though exact return fields remain unspecified.
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% with two enums, so the schema already documents all five parameters including defaults. The description adds domain framing (axle classes, cargo types) but omits the 'perigosa' cargo enum value, so it adds only marginal value.
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 (calculates) and resource (official ANTT minimum road freight rates) with regulatory citation, and the scope (vehicle classes 2-9 axles, cargo types). Distinct from siblings like brazil_fuel_prices and brazil_compare_regions without needing their schemas.
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?
Implies usage context (freight rate computation correlated with diesel prices), but gives no explicit when-to-use or when-not-to-use guidance relative to siblings such as brazil_fuel_prices or brazil_cost_of_living. The agent must infer the scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brazil_fuel_pricesARead-onlyIdempotentInspect
Queries real-time audited retail fuel prices in Brazil (Regular Gasoline, Additive Gasoline, Hydrous Ethanol, Diesel S10, and CNG) sourced from Brazil's National Petroleum Agency (ANP) across 4,750+ stations in all 27 states and 417+ cities. Updated weekly with daily SEFAZ NFC-e cross-validation. Read-only operation; no authentication required for standard rate limits (60 req/min, max 50 stations returned per call). Use brazil_list_states first to discover valid state codes (uf), or brazil_compare_regions to compare averages between two states.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | Yes | Two-letter Brazilian state code in lowercase (e.g., 'sp', 'rj', 'mg', 'ba', 'pr', 'ce', 'df'). Call brazil_list_states for all 27 valid UF codes. | |
| cidade | No | Optional city name or URL slug (e.g., 'sao-paulo', 'rio-de-janeiro', 'cabo-frio', 'curitiba'). Omit to retrieve statewide summary. | |
| combustivel | No | Fuel type filter for price ranking (default: 'todos'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing operational constraints an agent cannot infer: 60 req/min rate limit, a hard cap of 50 stations returned per call, weekly refresh cadence, SEFAZ NFC-e cross-validation, and that no authentication is needed at standard limits. The readOnlyHint/idempotentHint annotations only cover the safety profile, so this added context is genuinely valuable.
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?
Strongly front-loaded: the core action and resource come first, then coverage scope, then constraints, then routing guidance. It is dense—three long sentences packed with stats—but essentially every clause carries decision-relevant information, with only minor density cost.
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 read-only, three-parameter tool with no output schema, this covers everything needed to invoke it correctly: prerequisites, valid code discovery path, rate limits, result cap, refresh cadence, and when to prefer a sibling. Nothing an agent needs before calling is missing.
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, but the description adds a useful mapping from human-readable fuel names (Regular Gasoline, Additive Gasoline, Hydrous Ethanol, Diesel S10, CNG) to the Portuguese enum values an agent must actually pass. It also reinforces the 'omit cidade for statewide summary' behavior from the schema, though it adds no syntax detail for uf beyond what the schema already states.
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 (queries), resource (real-time audited retail fuel prices in Brazil), the exact fuel categories covered, the data source (ANP), and the geographic scope (4,750+ stations, 27 states). An agent can immediately distinguish this from brazil_lpg_gas_prices and brazil_grocery_basket without opening a schema.
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?
Explicitly routes the agent: 'Use brazil_list_states first to discover valid state codes (uf), or brazil_compare_regions to compare averages between two states.' Both the prerequisite step and the alternative tool for a different intent are named, so there is nothing left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brazil_grocery_basketARead-onlyIdempotentInspect
Queries and compares real-time audited prices of Brazil's 13 Basic Food Basket items (rice, beans, coffee, soy oil, milk, sugar, beef, bread, butter, etc.) sourced from electronic consumer invoices (NFC-e SEFAZ) and DIEESE methodology across 59 regional hubs. Updated daily. Read-only operation; no authentication required up to 60 req/min. Use brazil_list_states to check regional coverage, brazil_cost_of_living for full household budget synthesis, or brazil_compare_regions for cross-state comparisons.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | Yes | Two-letter Brazilian state code (e.g., 'sp', 'rj', 'mg', 'ba'). | |
| cidade | No | Optional Brazilian city name or slug to filter local supermarket offers. | |
| produto | No | Optional product search term (e.g., 'arroz', 'feijao', 'cafe', 'leite', 'cesta basica'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description still adds meaningful context beyond that: the data provenance (NFC-e SEFAZ invoices, DIEESE methodology), daily refresh cadence, and a concrete rate limit (60 req/min) with no auth needed. It does not describe return shape or pagination, but with no output schema and rich annotations, this is close to fully transparent.
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?
Three dense sentences, front-loaded with what the tool returns and where the data comes from, followed by operational constraints, then sibling routing. No filler or repetition of the title.
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 read-only lookup with no output schema, the description supplies everything an agent needs: data source, item coverage, geographic scope (59 hubs), update frequency, rate limit, auth requirement, and alternative tools. Nothing material is missing.
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% and each of the three parameters carries its own description with examples ('sp', 'arroz', 'cesta basica'). The description's mention of the 13 basket items loosely contextualizes the 'produto' parameter but adds no syntax, format, or defaulting detail beyond the schema, so the baseline 3 applies.
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 pair ('Queries and compares') plus a precise resource ('real-time audited prices of Brazil's 13 Basic Food Basket items') with source attribution (NFC-e SEFAZ, DIEESE) and scope (59 regional hubs). This clearly separates it from siblings covering fuel, LPG, pharma, cost of living, or cross-region comparison.
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?
Explicitly routes the agent: 'Use brazil_list_states to check regional coverage, brazil_cost_of_living for full household budget synthesis, or brazil_compare_regions for cross-state comparisons.' Names three concrete alternatives and the condition that selects each, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brazil_list_statesARead-onlyIdempotentInspect
Discovery and metadata support tool: Returns the complete list of all 27 Brazilian Federative Units (UFs) covered by the server, including state code, full name, monitored gas station count, regional ICMS tax bracket, and dataset audit timestamp. Read-only and idempotent; requires no parameters and no authentication. Call this tool first to validate UF codes before invoking brazil_fuel_prices, brazil_grocery_basket, brazil_lpg_gas_prices, or brazil_compare_regions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description earns credit for what it adds: no parameters, no authentication required, and the specific payload fields (state code, full name, station count, ICMS bracket, audit timestamp). It stops short of stating pagination or response size/format, but there is little else that could go wrong on a zero-argument read.
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, purpose front-loaded ahead of the routing instruction, with no filler or restatement of the title. The field enumeration is dense but each item conveys distinct metadata an agent would otherwise have to discover by calling the tool.
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?
With no output schema, the description carries the burden of describing the return payload, and it does so field-by-field. Combined with the zero-parameter schema and full annotation coverage, nothing needed to invoke or interpret this tool is missing.
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 takes zero parameters, so the baseline is 4; there is no parameter semantics to document. The description correctly confirms 'requires no parameters,' which is consistent with the empty 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?
States a specific verb and resource ('Returns the complete list of all 27 Brazilian Federative Units') with an explicit count and scope ('covered by the server'). It is immediately distinguishable from the six sibling tools, which are all price/data lookups rather than enumerations of the UF dimension.
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?
Gives an explicit sequencing rule: 'Call this tool first to validate UF codes before invoking brazil_fuel_prices, brazil_grocery_basket, brazil_lpg_gas_prices, or brazil_compare_regions.' It names the concrete alternatives and the condition that selects this tool over them, so the agent needs no inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brazil_lpg_gas_pricesARead-onlyIdempotentInspect
Queries official audited prices of residential cooking gas (13kg LPG cylinder / Botijao GLP P13) sourced from Brazil's National Petroleum Agency (ANP) across 13,145+ authorized resellers in all 27 Brazilian states. Updated weekly. Read-only operation; no authentication required up to 60 req/min. Use brazil_list_states to list valid UF codes or brazil_compare_regions to compare LPG costs between states.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | Yes | Two-letter Brazilian state code (e.g., 'sp', 'rj', 'mg', 'ba', 'pr', 'ce', 'df'). | |
| cidade | No | Optional Brazilian city name to filter local LPG resellers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds the operational details that matter: weekly refresh cadence, no authentication required, and a concrete rate limit of 60 req/min. That is exactly the value-add beyond structured fields.
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?
Three dense sentences, all of which earn their place, with the core purpose front-loaded. It is slightly packed into a single run-on paragraph rather than cleanly separated concerns, but there is no filler.
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?
With no output schema, the description carries the burden of explaining what comes back; it conveys that results are audited ANP prices per state/city but never states the response shape (aggregate vs per-reseller, currency, units). Otherwise complete for a two-parameter read-only query.
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%, with both 'uf' and 'cidade' documented in the schema, so the baseline is 3. The description references UF codes and state coverage but adds no format, casing, or filtering semantics beyond what the schema already states.
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 ('Queries official audited prices of residential cooking gas (13kg LPG cylinder)'), names the authoritative source (ANP), and quantifies scope (13,145+ resellers, 27 states). This is unmistakably distinct from siblings like brazil_fuel_prices and brazil_grocery_basket.
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?
Explicitly routes the agent to alternatives with the condition that selects each: brazil_list_states for valid UF codes and brazil_compare_regions for cross-state LPG comparison. Nothing about tool selection 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.
brazil_pharma_medicinesARead-onlyIdempotentInspect
Queries official Maximum Consumer Prices (PMC) and Factory Prices (PF) for 26,635+ regulated medicines in Brazil from CMED/ANVISA, including state-specific ICMS tax brackets (18% to 20%), active ingredients, laboratory, presentation, and free eligibility under the federal Farmacia Popular program. Updated monthly per CMED resolution. Read-only operation; no authentication required up to 60 req/min (returns up to 15 matching presentations per call).
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Two-letter Brazilian state code (e.g., 'sp', 'rj', 'mg') to apply accurate regional ICMS tax rate (default: 'sp'). | |
| tipo | No | Regulatory category filter (default: 'todos'). | |
| termo | Yes | Commercial brand name or active ingredient in Portuguese (e.g., 'dipirona', 'losartana', 'ozempic', 'amoxicilina', 'paracetamol'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld behavior. The description adds meaningful operational context beyond annotations: no authentication required, a 60 req/min limit, monthly CMED updates, and a cap of 15 matching presentations per call. It does not explain pagination or no-result behavior, so it is not fully complete.
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 front-loaded with the core resource and scope, followed by operational limits. It is fairly dense in the first sentence but contains no obvious filler, and 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 read-only lookup with fully documented parameters and rich annotations, the description covers the data source, update cadence, rate limit, return cap, and included fields. It leaves pagination and exact no-match behavior unspecified, but overall it is sufficiently complete for correct invocation.
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%, with all three parameters documented, including defaults, examples, and an enum. The description adds domain context but no parameter-specific meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
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 ('Queries') and resource ('official Maximum Consumer Prices (PMC) and Factory Prices (PF) for ... regulated medicines in Brazil from CMED/ANVISA'), plus scope and included fields. This clearly distinguishes it from sibling fuel, grocery, LPG, cost-of-living, and regional comparison tools by domain.
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?
Usage is implied by the medicine-price domain, but the description does not explicitly say when to use this tool versus sibling tools or when not to use it. It lacks named alternatives or exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brazil_purchasing_power_oracleBRead-onlyIdempotentInspect
Calculates real purchasing power parity (PPP) and labor-hour requirements across all 27 Brazilian states (UFs). Computes the exact working hours required to afford essential household survival goods: the 13 essential grocery items (SEFAZ NFC-e / DIEESE), residential 13kg cooking gas (ANP), fuel (50L gasoline tank), and electricity (150 kWh ANEEL). Correlates with Banco Central do Brasil (BCB SGS) interest and inflation rates, thermal parity (LPG vs. electric induction cooking), and CONFAZ tax anatomy. Read-only operation; zero authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Two-letter Brazilian state acronym (e.g. 'RJ', 'SP', 'MG', 'BA', 'DF'). Defaults to 'RJ' if omitted. | |
| salario_mensal_brl | No | Monthly income in BRL to calculate labor hours against standard 220h CLT workload. Defaults to federal minimum wage (1518.00 BRL) if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds value beyond that by confirming 'zero authentication required' — an auth fact annotations do not carry — and by disclosing the data sources and correlation behaviors (BCB SGS, thermal parity, CONFAZ tax anatomy). It does not mention rate limits or output shape.
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 core purpose is front-loaded in the first sentence, followed by scope, data sources, and safety. It is dense with parenthetical acronyms (SEFAZ NFC-e / DIEESE, ANP, ANEEL) but each sentence contributes scope rather than repeating the title, so the length is largely earned.
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?
There is no output schema, so the description carries the burden of explaining returns. It lists what gets computed (labor hours, correlations) but not the shape or structure of the response — how per-state results are organized or what fields come back. Adequate but leaves the agent guessing about the return format for a fairly complex oracle.
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% with only two parameters, so the schema already documents uf and salario_mensal_brl, including defaults. The description adds no syntax or format detail beyond that, though its mention of the 220h CLT workload and 50L/150 kWh constants gives useful computation context. Baseline 3 applies when the schema does the heavy lifting.
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 — calculating real PPP and labor-hour requirements across the 27 Brazilian states — and enumerates the inputs it aggregates (grocery basket, LPG, fuel, electricity). The derived metric (working hours to afford survival goods) distinguishes it from raw-price siblings like brazil_fuel_prices, but it never names an alternative, so the agent must infer differentiation.
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?
There is no explicit when-to-use or when-not-to-use guidance. Given ten siblings including brazil_cost_of_living, brazil_grocery_basket, and brazil_tax_anatomy that heavily overlap this tool's stated scope, the absence of routing guidance is a real gap. Usage is only implied by the aggregation framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brazil_tax_anatomyARead-onlyIdempotentInspect
Performs constitutional and fiscal tax decomposition across all 27 Brazilian states (UFs) based on CONFAZ (Conselho Nacional de Política Fazendária) Agreements (ICMS Monofásico No. 15/2023 & No. 199/2022), Federal Decree No. 11,936/2024, and Tax Reform Constitutional Amendment EC 132/2023. Decomposes exact state ICMS, federal PIS/COFINS, and net physical product values for retail fuels, 13kg cooking gas, the basic food basket, and CMED pharmaceuticals. Read-only operation; zero authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Two-letter Brazilian state acronym (e.g. 'RJ', 'SP', 'MG', 'BA', 'DF'). Defaults to 'RJ' if omitted. | |
| categoria | No | Category to analyze tax anatomy: 'todos', 'combustiveis', 'gas_cozinha', 'cesta_basica', 'medicamentos'. Defaults to 'todos'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description reinforces this while adding genuine context: zero authentication required and the specific outputs decomposed (ICMS, PIS/COFINS, net physical values). It stops short of describing response format or edge cases, but against existing annotations it adds real value.
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?
Front-loads the core action and scope, then the legal basis and decomposition targets. The dense citation strings are heavy but earn their place by grounding the computation's authority; no filler sentences.
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?
With no output schema, the description carries the burden of explaining what comes back, and it does name the decomposed outputs (state ICMS, federal PIS/COFINS, net physical product values). Combined with annotations covering safety and 100% schema coverage for inputs, it is nearly complete; only return formatting/pagination is unaddressed.
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 both parameters (uf, categoria) and the enum values are already documented. The description maps the categories to real-world meaning (retail fuels, 13kg cooking gas, basic food basket, CMED pharmaceuticals), which adds modest interpretation beyond the enum labels, but no syntax or default behavior 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?
States a specific verb (decomposes/performs tax decomposition) and resource (state ICMS, federal PIS/COFINS, net product values) with explicit scope across all 27 UFs. The legal framing (CONFAZ, EC 132/2023) distinguishes it from siblings like brazil_fuel_prices, which report prices rather than tax anatomy.
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?
No explicit when-to-use guidance, prerequisites, or routing to alternatives. An agent must infer from the topical scope whether this or brazil_fuel_prices / brazil_grocery_basket is the right call; nothing states exclusions or preferred contexts.
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.
4 tool updates
v1.5.0- Added
brazil_energy_tariffs - Added
brazil_freight_logistics - Added
brazil_purchasing_power_oracle - Added
brazil_tax_anatomy
8 tool updates
v1.2.0- Added
brazil_compare_regions - Added
brazil_cost_of_living - Changed
brazil_fuel_prices4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / cidade / descriptionPrevious value: -"City name or slug (e.g., 'sao-paulo', 'cabo-frio')"New value: +"Optional city name or URL slug (e.g., 'sao-paulo', 'rio-de-janeiro', 'cabo-frio', 'curitiba'). Omit to retrieve statewide summary." - added
Input schema / properties / combustivelAdded value: +{ + "description": "Fuel type filter for price ranking (default: 'todos').", + "enum": [ + "gasolina", + "etanol", + "diesel", + "gnv", + "todos" + ], + "type": "string" +} - changed
Input schema / properties / uf / descriptionPrevious value: -"Brazilian state code (e.g., 'sp', 'rj', 'mg', 'ba', 'pr', 'rs', 'df')"New value: +"Two-letter Brazilian state code in lowercase (e.g., 'sp', 'rj', 'mg', 'ba', 'pr', 'ce', 'df'). Call brazil_list_states for all 27 valid UF codes."
- Changed
brazil_grocery_basket4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / cidade / descriptionPrevious value: -"City name"New value: +"Optional Brazilian city name or slug to filter local supermarket offers." - added
Input schema / properties / produtoAdded value: +{ + "description": "Optional product search term (e.g., 'arroz', 'feijao', 'cafe', 'leite', 'cesta basica').", + "type": "string" +} - changed
Input schema / properties / uf / descriptionPrevious value: -"Brazilian state code (e.g., 'sp', 'rj')"New value: +"Two-letter Brazilian state code (e.g., 'sp', 'rj', 'mg', 'ba')."
- Added
brazil_list_states - Added
brazil_lpg_gas_prices - Added
brazil_pharma_medicines - Removed
cost_of_living_brazil
3 tool updates
v1.0.0- First observed
brazil_fuel_prices - First observed
brazil_grocery_basket - First observed
cost_of_living_brazil
TDQS
Scored across 11 tools
Most tools map to distinct datasets (fuel, LPG, grocery, pharma, freight, tariffs, taxes, states), but the highest-level analytical tools blur badly: brazil_purchasing_power_oracle and brazil_cost_of_living both claim PPP/cost-of-living synthesis, and both duplicate thermal-parity math already owned by brazil_energy_tariffs. brazil_compare_regions also overlaps with the per-dataset price tools since they already return per-state averages. The long cross-referencing descriptions mitigate but do not eliminate the ambiguity.
All 11 names share a predictable brazil_ namespace and use snake_case, which makes the set feel like one coherent product. The deviation is stylistic: brazil_list_states and brazil_compare_regions are verb-first actions while the rest are noun-phrase resources, and 'oracle' is a vague outlier term. Minor, readable inconsistency rather than chaos.
Eleven tools is squarely in the well-scoped range for a multi-domain national price-intelligence server, and each maps to a real data source (ANP, ANEEL, CONFAZ, CMED, SEFAZ, ANTT). No filler tools and no obvious need to split or merge beyond the oracle/cost-of-living overlap.
Coverage spans fuels, LPG, grocery basket, electricity tariffs, freight, tax decomposition, pharma, state metadata, and cross-state comparison, plus higher-level cost-of-living synthesis — strong for the stated domain. The notable gap is temporal: all datasets are advertised as daily/weekly/monthly updated but no tool exposes historical series or trend deltas, and there is no station/city-level drilldown outside fuel prices.
Maintenance
Related MCP Connectors
Brazilian public data API for AI agents. BCB, IBGE, CVM, B3, compliance. x402 payments on Base.
Brazil CNPJ, CEP, Selic/IPCA/PTAX, holidays, banks/ISPB for agents. Pay per call in USDC (x402).
Argentina/Brazil data for agents: ARS dollar rates, INDEC CPI, holidays, CUIT/CPF/CNPJ, CEP, PTAX.
Discover, resolve, and query official Brazilian economic data with semantic search and provenance.
Related MCP Servers
- FlicenseBqualityDmaintenanceQuery a variety of data from Brasil resources seamlessly. Access information on postal codes, area codes, banks, holidays, taxes, and more through a unified interface. Enhance your AI agents and applications with rich and updated data from BrasilAPI effortlessly.67-
- AlicenseNot gradedqualityNot gradedmaintenanceConnects AI agents to 28 Brazilian public APIs, providing over 200 tools to access data on economy, legislation, transparency, and the judiciary. It enables complex queries and cross-referencing of government datasets like IBGE, the Central Bank, and the National Congress through natural language.MIT
- FlicenseNot gradedqualityCmaintenanceProvides business intelligence, compliance tools, and economic data for Latin America, including Brazilian company lookups, tax ID validation for multiple countries, and economic indicators from official government sources.-
- AlicenseNot gradedqualityBmaintenanceEnables agents to query 153 live Brazilian government data tools across federal and state sources, including economy, legislature, judiciary, elections, health, education, and more, reading directly from original APIs.MIT