Skip to main content
Glama

Banco Central do Brasil (BCB) — SGS Time Series MCP Server

Correlacionar séries

bcb_correlacao
Read-onlyIdempotent

Calcula a correlação estatística entre 2 a 5 séries temporais do BCB no MESMO período (dataInicial e dataFinal obrigatórias), par a par. Quando usar: para medir se dois indicadores se movem juntos (ex.: dólar e Selic, IPCA e IGP-M). Quando NÃO usar: para comparar a variação de cada série lado a lado use bcb_comparar; para uma série só use bcb_variacao. Métodos: pearson (padrão) mede relação LINEAR entre os valores; spearman mede relação MONÓTONA entre os postos e é o adequado quando a relação não é reta ou quando uma série fica parada em platôs (taxa de juros entre reuniões do Copom). Base: nivel (padrão) correlaciona os valores; variacao correlaciona a mudança percentual de um ponto para o outro — prefira variacao quando as duas séries têm tendência (preço, índice, estoque), porque o nível de duas séries crescentes tem correlação alta só porque ambas crescem com o tempo. Retorna: periodo, metodo, base, series, alinhamento (datas cruzadas, completas e parciais), pares (cada um com codigoA/codigoB, coeficiente entre -1 e 1, n, descartados e interpretacao em prosa), erros e derivacao. Coeficiente que não pode ser calculado vem null com motivo — nunca 0, que significaria ausência medida de relação. Periodicidades diferentes são RECUSADAS, não avisadas: cruzar uma série diária com uma mensal por data casa só as datas coincidentes (cerca de 7 por ano) e produziria um coeficiente sobre esse punhado; informe frequencia para harmonizar todas na mesma grade antes de correlacionar. Correlação não estabelece causalidade. Comportamento: consome a API pública SGS do Banco Central do Brasil — sem autenticação, chave de API ou cadastro, e sem limite de requisições divulgado (uso é best-effort). Em falha transitória ou timeout a chamada é repetida automaticamente (até 3 tentativas, backoff exponencial); persistindo o erro, retorna isError: true com mensagem em português (HTTP 404 = série inexistente ou sem dados no período solicitado). O resultado vem como JSON tanto em texto quanto em structuredContent (conforme o outputSchema); datas no formato dd/MM/yyyy e valores numéricos (ponto decimal).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
baseNo`nivel` correlaciona os valores; `variacao` correlaciona a mudança percentual de um ponto para o seguinte. Prefira `variacao` quando as duas séries têm tendência: o nível de duas séries crescentes tem correlação alta só porque ambas crescem com o tempo.nivel
metodoNo`pearson` mede relação linear entre os valores; `spearman` mede relação monótona entre os postos (com posto médio nos empates) e é o adequado quando a relação não é reta ou quando uma das séries fica parada em platôs, como a Selic entre reuniões do Copom.pearson
codigosYesArray com 2 a 5 códigos de séries para correlacionar par a par
agregacaoNoComo agregar os valores de cada período quando `frequencia` é informada. `ultimo` (padrão) serve a nível de preço, taxa e índice; `soma` a fluxo; `acumulada` a séries que JÁ SÃO variação percentual (IPCA mensal, por exemplo), compondo geometricamente — somar 12 variações mensais NÃO dá a inflação do ano.ultimo
dataFinalYesData final (yyyy-MM-dd ou dd/MM/yyyy)
frequenciaNoOpcional: reamostra a série para esta frequência antes de responder (só agrega para períodos MAIORES; pedir frequência mais fina que a da série é recusado). Útil para comparar séries de periodicidades diferentes.
dataInicialYesData inicial (yyyy-MM-dd ou dd/MM/yyyy)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
baseYesSe o cálculo usou os valores ou as variações
errosYesSéries que não retornaram dados, com o motivo
paresYesUm item por par de séries
metodoYesMétodo aplicado
seriesYesSéries que entraram no cálculo
periodoYesJanela temporal correlacionada
derivacaoYesOrigem dos números calculados: o que é derivado, por qual motor e com quais convenções
provenanceYesBloco de proveniência (contrato v1.0): fonte, URL, competência, extração e licença
alinhamentoYesComo as grades foram cruzadas. `completas` é o que efetivamente entra num coeficiente: datas em que TODAS as séries publicam. A distância entre `datas` e `completas` é a medida de quanto as séries não se sobrepõem.
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
harmonizacaoNoPresente quando `frequencia` foi informada: descreve a reamostragem aplicada. Valor DERIVADO — calculado por este servidor, não publicado pelo Banco Central.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, and the description is fully consistent with them. Beyond the annotations, it discloses the external API contract (SGS, no auth or API key, no disclosed rate limit, best-effort), the retry policy (up to 3 attempts with exponential backoff), error semantics (isError: true, Portuguese messages, HTTP 404 meaning), the null-with-motivo convention vs 0, and the refusal of mixed periodicities. This is exactly the behavioral context annotations cannot express.

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?

The description is long (~350 words) but front-loaded: purpose first, usage guidance second, parameter decision rules third, and behavioral/error details last. The length is justified by 7 parameters, 4 enums, and an output schema, and nearly every sentence carries information. Minor deduction because the metodo/base explanations partially duplicate what the input schema already states.

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?

Even though an output schema exists, the description adds the semantic meaning of the return contract: the `pares` structure with `interpretacao` in prose, `alinhamento` types (datas cruzadas, completas e parciais), null with `motivo` never 0, and the dd/MM/yyyy date and decimal-point number formats. It also covers external dependencies, failure modes, retries, the frequency-harmonization workflow, and the causation caveat — nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents every parameter, establishing a baseline of 3. The description adds value beyond that by explaining the reasoning: why mixing daily with monthly series is refused (~7 coincident dates per year), why `variacao` base is preferred for trending series, and why `spearman` suits plateaued series like Selic between Copom meetings. It does not add syntax-level detail absent from the schema, so a 4 rather than a 5 is warranted.

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?

The opening sentence states a specific verb and resource ('Calcula a correlação estatística entre 2 a 5 séries temporais do BCB') with a hard constraint (MESMO período, dataInicial e dataFinal obrigatórias). It explicitly names the siblings it is not — bcb_comparar for side-by-side comparison and bcb_variacao for a single series — so an agent can distinguish the tool without opening either schema.

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?

The description has explicit 'Quando usar' and 'Quando NÃO usar' sections with concrete examples (dólar e Selic, IPCA e IGP-M) and named alternatives. It also provides decision rules for parameter choice: prefer `variacao` base when series trend, prefer `spearman` for non-linear or plateaued series, and use `frequencia` to harmonize different periodicities. 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.