Observatório BR
br.com.observatoriobr/observatorio-brobservatoriobr.com.brstreamable-httpv1.0.0Scanned
Indicadores econômicos oficiais do Brasil (IBGE, Banco Central, Tesouro) com fonte e período.
21 tools: 3 change things and 18 only read.
- Reads private data · 1
- Reads text others write · 2
- Can send data out · 2
- 3 findings
Anlyon alternative
3 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
21 tools
Changes things 3Claude Code: ask
get_indicator_detailsDevolve o payload rico do painel de um indicador (KPIs, aberturas, resultados de modelo), o mesmo de /api/v2/indicators/{code}/full, em payload.Can send data out1 finding
Why it is in this group
- The name "get_indicator_details" says "get": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- outboundThe input takes a destination (input.to): what the tool writes goes there.
Findings
- Warn
The server marks "get_indicator_details" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_indicator_details" says "get": a word for reading.
Description, as the server wrote it Devolve o payload rico do painel de um indicador (KPIs, aberturas, resultados de modelo), o mesmo de /api/v2/indicators/{code}/full, em payload. Só para indicadores com hasDetails=true. Acima de 40 mil caracteres, payload vem nulo e payloadPreview traz o início do JSON.
Annotations the server declares
- title: Detalhes completos de um indicador
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_indicator_latestDevolve o último valor disponível de um indicador, o valor anterior e a diferença entre eles, com período, unidade e fonte.1 finding
Why it is in this group
- The name "get_indicator_latest" says "get": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "get_indicator_latest" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_indicator_latest" says "get": a word for reading.
Description, as the server wrote it Devolve o último valor disponível de um indicador, o valor anterior e a diferença entre eles, com período, unidade e fonte. A janela de busca se ajusta à periodicidade, para tolerar a defasagem de divulgação das séries anuais. dataStatus "defasado" indica que o último valor é mais velho que o esperado: avise o usuário.
Annotations the server declares
- title: Último valor de um indicador
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_indicator_seriesDevolve a série temporal de um indicador (pontos period/value).Can send data out1 finding
Why it is in this group
- The name "get_indicator_series" says "get": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- outboundThe input takes a destination (input.to): what the tool writes goes there.
Findings
- Warn
The server marks "get_indicator_series" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_indicator_series" says "get": a word for reading.
Description, as the server wrote it Devolve a série temporal de um indicador (pontos period/value). Sem from/to, traz os últimos 5 anos. Séries longas são reduzidas a maxPoints pontos espaçados, sempre preservando o mais recente. Só vêm pontos dentro da janela; se a fonte começa depois do from pedido, note avisa a partir de quando há dados. dataStatus diz se o dado serve como atual: "ok", "sem-dados" ou "defasado"; fora de ok, note explica o que dizer ao usuário.
Annotations the server declares
- title: Série temporal de um indicador
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
Only reads 18Show 18 read-only tools
compare_indicatorsAlinha de 2 a 6 séries pelo período para comparação lado a lado.No findings
Why it is in this group
- The name "compare_indicators" says "compare": a word for reading.
Description, as the server wrote it Alinha de 2 a 6 séries pelo período para comparação lado a lado. Só aceita indicadores com hasSeries=true. Valores ausentes num período vêm como null. Atenção às unidades e periodicidades diferentes, devolvidas em units e frequencies; warning avisa quando alguma série começa depois do from pedido. dataStatus traz, por code, "ok", "sem-dados" ou "defasado".
Annotations the server declares
- title: Comparar indicadores
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_bulletinDevolve o texto completo de uma edição publicada do Boletim Semanal.No findings
Why it is in this group
- The name "get_bulletin" says "get": a word for reading.
Description, as the server wrote it Devolve o texto completo de uma edição publicada do Boletim Semanal. Sem slug, devolve a edição mais recente. O texto é análise do site: cite-o como tal.
Annotations the server declares
- title: Ler um boletim semanal
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_conceptDevolve a definição de um conceito econômico do glossário, ex.No findings
Why it is in this group
- The name "get_concept" says "get": a word for reading.
Description, as the server wrote it Devolve a definição de um conceito econômico do glossário, ex. "hiato do produto", "núcleo de inflação", com os indicadores relacionados.
Annotations the server declares
- title: Ler um verbete do glossário
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_daily_postDevolve o texto completo de uma pílula publicada.Reads text others writeNo findings
Why it is in this group
- The name "get_daily_post" says "get": a word for reading.
What it can reach
- untrusted-inputThe name "get_daily_post" says "get" and "post": it reads posts, which other people can write.
Description, as the server wrote it Devolve o texto completo de uma pílula publicada. Sem slug, devolve a mais recente. conceptSlug, quando presente, é um verbete para get_concept.
Annotations the server declares
- title: Ler uma pílula
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_methodologyDevolve o texto completo de um artigo de metodologia: fórmulas, fontes, simplificações e limitações de um indicador ou modelo.No findings
Why it is in this group
- The name "get_methodology" says "get": a word for reading.
Description, as the server wrote it Devolve o texto completo de um artigo de metodologia: fórmulas, fontes, simplificações e limitações de um indicador ou modelo.
Annotations the server declares
- title: Ler um artigo de metodologia
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_panoramaSem sectionId, lista as seções do panorama (fiscal, setor externo, investimento, produtividade, social) com o último valor de cada indicador.No findings
Why it is in this group
- The name "get_panorama" says "get": a word for reading.
Description, as the server wrote it Sem sectionId, lista as seções do panorama (fiscal, setor externo, investimento, produtividade, social) com o último valor de cada indicador. Com sectionId, devolve a seção com as séries, até 240 pontos por indicador, incluindo mínimo, máximo e média do período inteiro.
Annotations the server declares
- title: Panorama por seção
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_pillarsDevolve sete perguntas sobre a economia brasileira, como crescimento, inflação, emprego e contas públicas, cada uma com os indicadores que a respondem: último valor, variação, perí…No findings
Why it is in this group
- The name "get_pillars" says "get": a word for reading.
Description, as the server wrote it Devolve sete perguntas sobre a economia brasileira, como crescimento, inflação, emprego e contas públicas, cada uma com os indicadores que a respondem: último valor, variação, período e a direção considerada favorável.
Annotations the server declares
- title: Os sete pilares da economia
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_recession_thermometerDevolve o termômetro de risco de recessão do Observatório: nível geral (favoravel, atencao ou adverso), a manchete e três dimensões, a saber estado atual, momentum e pressão à fren…No findings
Why it is in this group
- The name "get_recession_thermometer" says "get": a word for reading.
Description, as the server wrote it Devolve o termômetro de risco de recessão do Observatório: nível geral (favoravel, atencao ou adverso), a manchete e três dimensões, a saber estado atual, momentum e pressão à frente. Cada componente traz valor, período e a regra determinística aplicada. Opcionalmente inclui o histórico diário dos níveis.
Annotations the server declares
- title: Termômetro de recessão
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_release_calendarLista as divulgações oficiais agendadas, como IPCA, PIB, PNAD e decisões do Copom, com data e hora em UTC, mais o Boletim Focus de toda segunda-feira.Reads private dataNo findings
Why it is in this group
- The name "get_release_calendar" says "get": a word for reading.
What it can reach
- private-dataThe name "get_release_calendar" says "get" and "calendar": it reads calendars.
Description, as the server wrote it Lista as divulgações oficiais agendadas, como IPCA, PIB, PNAD e decisões do Copom, com data e hora em UTC, mais o Boletim Focus de toda segunda-feira. Sem datas, cobre de hoje até 30 dias à frente.
Annotations the server declares
- title: Calendário de divulgações
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
get_territory_profileDevolve os 10 indicadores-chave de um território num ano: PIB, PIB per capita, população, inflação, juros, desemprego, dívida, investimento, exportações e arrecadação.No findings
Why it is in this group
- The name "get_territory_profile" says "get": a word for reading.
Description, as the server wrote it Devolve os 10 indicadores-chave de um território num ano: PIB, PIB per capita, população, inflação, juros, desemprego, dívida, investimento, exportações e arrecadação. O campo natureza diz se o número é Observado, Estimado ou Indisponivel; card Indisponivel vem sem valor (não há fonte oficial por território) e não deve ser completado com estimativa. Inclui as próximas divulgações oficiais.
Annotations the server declares
- title: Perfil de um território
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
list_bulletinsLista as edições publicadas do Boletim Semanal, da mais recente para a mais antiga, com título, data de referência e resumo.No findings
Why it is in this group
- The name "list_bulletins" says "list": a word for reading.
Description, as the server wrote it Lista as edições publicadas do Boletim Semanal, da mais recente para a mais antiga, com título, data de referência e resumo. Use get_bulletin para o texto.
Annotations the server declares
- title: Listar boletins semanais
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
list_conceptsLista os verbetes do glossário de conceitos econômicos, com categoria e os indicadores relacionados.No findings
Why it is in this group
- The name "list_concepts" says "list": a word for reading.
Description, as the server wrote it Lista os verbetes do glossário de conceitos econômicos, com categoria e os indicadores relacionados. Use get_concept para a definição.
Annotations the server declares
- title: Listar o glossário
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
list_crisesLista o catálogo curado de crises econômicas, brasileiras e globais, com anos de início e fim, abrangência e resumo.No findings
Why it is in this group
- The name "list_crises" says "list": a word for reading.
Description, as the server wrote it Lista o catálogo curado de crises econômicas, brasileiras e globais, com anos de início e fim, abrangência e resumo. Útil para contextualizar quedas nas séries.
Annotations the server declares
- title: Crises econômicas datadas
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
list_daily_postsLista as pílulas publicadas, posts curtos e diários sobre UM indicador, da mais recente para a mais antiga.Reads text others writeNo findings
Why it is in this group
- The name "list_daily_posts" says "list": a word for reading.
What it can reach
- untrusted-inputThe name "list_daily_posts" says "list" and "post": it reads posts, which other people can write.
- untrusted-inputThe description's first sentence says "post": it reads posts, which other people can write.
Description, as the server wrote it Lista as pílulas publicadas, posts curtos e diários sobre UM indicador, da mais recente para a mais antiga. Filtre por indicatorCode para ver o que o site já escreveu sobre um indicador. Use get_daily_post para o texto.
Annotations the server declares
- title: Listar pílulas diárias
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
list_indicatorsLista os indicadores econômicos do Observatório BR com code, título, categoria, fonte, periodicidade e unidade.No findings
Why it is in this group
- The name "list_indicators" says "list": a word for reading.
Description, as the server wrote it Lista os indicadores econômicos do Observatório BR com code, título, categoria, fonte, periodicidade e unidade. hasSeries=true indica série temporal própria (usável em get_indicator_series e compare_indicators); hasDetails=true indica payload rico em get_indicator_details. Comece por aqui para descobrir os codes.
Annotations the server declares
- title: Catálogo de indicadores
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
list_methodologyLista os artigos técnicos que explicam como os indicadores e modelos do Observatório são calculados.No findings
Why it is in this group
- The name "list_methodology" says "list": a word for reading.
Description, as the server wrote it Lista os artigos técnicos que explicam como os indicadores e modelos do Observatório são calculados. Use get_methodology para o texto.
Annotations the server declares
- title: Listar artigos de metodologia
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
list_territoriesLista os 33 territórios do Observatório (Brasil, 5 regiões e 27 UFs) com id, PIB em R$ bilhões, PIB per capita, população em milhões e crescimento do último ano disponível.No findings
Why it is in this group
- The name "list_territories" says "list": a word for reading.
Description, as the server wrote it Lista os 33 territórios do Observatório (Brasil, 5 regiões e 27 UFs) com id, PIB em R$ bilhões, PIB per capita, população em milhões e crescimento do último ano disponível. Use o id em get_territory_profile.
Annotations the server declares
- title: Listar territórios
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
searchBusca em português, sem diferenciar acentos, nos boletins, pílulas, glossário de conceitos e artigos de metodologia, e casa os painéis de indicador pelo nome.No findings
Why it is in this group
- The name "search" says "search": a word for reading.
Description, as the server wrote it Busca em português, sem diferenciar acentos, nos boletins, pílulas, glossário de conceitos e artigos de metodologia, e casa os painéis de indicador pelo nome. Os painéis vêm em indicators (só na página 1); o conteúdo vem paginado em content.
Annotations the server declares
- title: Buscar no Observatório BR
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
4 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 1 private-data tool breaks every one.
- Reads private data1
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write2
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out2
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__observatorio-br__get_release_calendar"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
The server marks "get_indicator_latest" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_indicator_latest" says "get": a word for reading.
The server marks "get_indicator_series" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_indicator_series" says "get": a word for reading.
The server marks "get_indicator_details" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_indicator_details" says "get": a word for reading.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http observatorio-br https://observatoriobr.com.br/api/mcpclaude mcp add --transport http observatorio-br https://observatoriobr.com.br/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__observatorio-br__list_crises",
"mcp__observatorio-br__search",
"mcp__observatorio-br__get_concept",
"mcp__observatorio-br__list_daily_posts",
"mcp__observatorio-br__get_methodology",
"mcp__observatorio-br__get_daily_post",
"mcp__observatorio-br__get_panorama",
"mcp__observatorio-br__get_pillars",
"mcp__observatorio-br__list_concepts",
"mcp__observatorio-br__get_recession_thermometer",
"mcp__observatorio-br__get_bulletin",
"mcp__observatorio-br__list_bulletins",
"mcp__observatorio-br__get_territory_profile",
"mcp__observatorio-br__compare_indicators",
"mcp__observatorio-br__get_release_calendar",
"mcp__observatorio-br__list_indicators",
"mcp__observatorio-br__list_methodology",
"mcp__observatorio-br__list_territories"
],
"ask": [
"mcp__observatorio-br__get_indicator_latest",
"mcp__observatorio-br__get_indicator_series",
"mcp__observatorio-br__get_indicator_details"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as observatorio-br. Review it before you use it.
Capability tags behind 5 rules
- mcp__observatorio-br__list_daily_posts untrusted-input
- mcp__observatorio-br__get_daily_post untrusted-input
- mcp__observatorio-br__get_indicator_series outbound
- mcp__observatorio-br__get_indicator_details outbound
- mcp__observatorio-br__get_release_calendar private-data
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/br.com.observatoriobr/observatorio-br/verify?hash=64368aab85a1c4048e646b7f25ebeea3135161e3503bd609575c0112f72160af" | jq -e '.changed == false'Pinned hash 64368aab85a1, from Oct 23, 2026, 06:17 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/br.com.observatoriobr/observatorio-br/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/br.com.observatoriobr/observatorio-br)Source: MCP Registry. Synced Oct 23, 2026, 06:17 UTC.