Is IBGE Brasil MCP safe?
Yes, with the usual care.
Passed every safety check we run. Maintained, authenticated, reachable, clean scan.
No critical or high findings in the latest scan.
Public scan report
scanner v0.1.3 · 2026-09-19 · same rubric, same numbers if you re-run it
1 low
- Code scan89 source files scanned25/25
- Live reliabilityremote reachable in 1200ms20/20
- Tool poisoning23 tool descriptions checked13/15
- Auth qualityopen endpoint, read-only tools10/15
- Maintenancelast push 2 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Findings (1)
- lowUnusually long tool description (over 2,000 characters)
poison.long-descriptiontool ibge_sidra: …Queries SIDRA tables (IBGE's Automatic Recovery System). SIDRA contains data from IBGE surveys like Census, PNAD, GDP, etc. Common tables: - 6579: Population estimates (annual) - 9514: Census 2022 population - 200: Census population (1970-2010) - 4714: Population, territorial area and density (Census 2022) - 4099: Unemployment rate (PNAD Contínua, quarterly) - 5436: Average real income (PNAD Contínua, quarterly) - 6706: GDP at current prices - 5938: GDP per capita Territorial levels: - 1: Brazil - 2: Region (North, Northeast, etc.) - 3: State (UF) - 6: Municipality - 7: Metropolitan Region Examples: - Brazil population 2023: tabela="6579", periodos="2023" - Population by state: tabela="6579", nivel_territorial="3" - Census 2022 by municipality: tabela="9514", nivel_territorial="6", localidades="3550308" Statistics mode: for **largest/smallest/mean/median/distribution/ranking** questions ("which municipality has the largest population?", "median GDP by state") use estatisticas=true — it computes min/max/mean/median/std-dev/labeled percentiles over ALL data rows BEFORE pagination and returns top/bottom rankings (default 10, cap 100 via topN), so one call answers what would otherwise require paging thousands of records. With agruparPor="<column label>" (e.g. "Unidade da Federação", "Ano") it ranks groups by descending sum, each with its own mini-distribution. Queries mixing several variables auto-group by "Variável" (units differ). SIDRA absence markers ("-", "..", "...", "X") are excluded from n. In this mode pagina/campos/formato are ignored and registros comes empty. Very large queries are refused by the source (since 2026-09-16 SIDRA tables are read through the Aggregates API, whose ceiling is lower than SIDRA's old 100,000-value cap: all municipalities × 12 yearly periods fails, × 8 works) — narrow periodos (e.g. "last 4") or raise nivel_territorial. ibge_sidra is the low-level engine. Prefer a friendlier wrapper when it fits: - Census themes (1970–2022) → ibge_censo - Economic/social time series → ibge_indicadores - Rank/compare 2–10 localities → ibge_comparar - One municipality's panel → ibge_cidades Use ibge_sidra_tabelas and ibge_sidra_metadados to find a table code and its structure before querying. Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns Markdown plus a typed structuredContent payload.…
Overall 91/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON