Skip to main content
Glama

Dados Abertos Senado BR MCP

Remuneração de servidores

senado_remuneracoes_servidores
Read-onlyIdempotent

Remunerações dos servidores do Senado em ano/mes de referência (a partir de 2013). Para perguntas de maior/menor/média/mediana/ranking ('quem ganhou mais em junho/2026', 'remuneração média') use estatisticas=true: computa min/máx/média/mediana/desvio/percentis sobre a folha INTEIRA e devolve top/bottom (padrão 10) identificados por nome (com idInternoFolha só para desambiguar homônimos, não para citar) — o modo resumo/detalhe só vê uma fatia e não acha o extremo real. Cada percentil vem com um rotulo legível e a coluna analisada tem rótulo legível em campoAnalisado. campo escolhe a verba analisada (padrão: remuneração bruta); consolidarPorServidor (padrão true) soma as linhas Normal+Suplementar da mesma pessoa antes das estatísticas; agruparPor='tipoFolha' devolve estatísticas por grupo (implica não-consolidado). Sem estatisticas: modo=resumo (padrão) retorna { ano, mes, totalRegistros, resumo[] } agregado por tipoFolha; modo=detalhe retorna { count, total, remuneracoes[] } com a composição individual, limitada por limite (padrão 50, máx 500). Filtros nome/tipoFolha aplicam antes de tudo. Para o cadastro de servidores use senado_servidores.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
anoYesAno de referência
mesYesMês de referência
modoNoresumo = totais por tipo de folha (padrão); detalhe = composição individual. Ignorado quando estatisticas=trueresumo
nomeNoNome do servidor (busca parcial)
topNNoTamanho das listas top/bottom quando estatisticas=true (padrão: 10, máx: 100)
campoNoVerba analisada quando estatisticas=true (padrão: remuneração bruta). O resultado traz o rótulo legível em campoAnalisado.bruto
limiteNoMáximo de linhas no modo detalhe (padrão: 50)
tipoFolhaNoFiltrar por tipo de folha (busca parcial)
agruparPorNoQuando estatisticas=true, devolve estatísticas por grupo (só `tipoFolha`); implica dados por linha (não consolidados)
estatisticasNoComputa estatísticas (min/máx/média/mediana/percentis) + ranking top/bottom sobre a folha inteira. Use para 'quem ganhou mais/menos', 'média', 'ranking'
consolidarPorServidorNoSoma as linhas (Normal+Suplementar) do mesmo servidor antes das estatísticas (padrão: true). Ignorado — forçado a false — quando agruparPor está definido

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  2. Changed2 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  3. Changed1 schema field changed
    • changedInput schema / properties / campo / description
      Previous value: -"Coluna sob análise quando estatisticas=true (padrão: bruto). Opções: bruto, liquida, remuneracaoBasica, vantagensPessoais, funcaoComissionada, gratificacaoNatalina, horasExtras, outrasEventuais, abonoPermanencia"New value: +"Verba analisada quando estatisticas=true (padrão: remuneração bruta). O resultado traz o rótulo legível em campoAnalisado."
  4. Changed1 schema field changed
    • changedInput schema / properties / consolidarPorServidor / description
      Previous value: -"Soma as linhas (Normal+Suplementar) do mesmo servidor por `sequencial` antes das estatísticas (padrão: true). Ignorado — forçado a false — quando agruparPor está definido"New value: +"Soma as linhas (Normal+Suplementar) do mesmo servidor antes das estatísticas (padrão: true). Ignorado — forçado a false — quando agruparPor está definido"
  5. Changed6 schema fields changed
    • addedInput schema / properties / agruparPor
      Added value: +{
      +  "description": "Quando estatisticas=true, devolve estatísticas por grupo (só `tipoFolha`); implica dados por linha (não consolidados)",
      +  "enum": [
      +    "tipoFolha"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / campo
      Added value: +{
      +  "default": "bruto",
      +  "description": "Coluna sob análise quando estatisticas=true (padrão: bruto). Opções: bruto, liquida, remuneracaoBasica, vantagensPessoais, funcaoComissionada, gratificacaoNatalina, horasExtras, outrasEventuais, abonoPermanencia",
      +  "enum": [
      +    "bruto",
      +    "liquida",
      +    "remuneracaoBasica",
      +    "vantagensPessoais",
      +    "funcaoComissionada",
      +    "gratificacaoNatalina",
      +    "horasExtras",
      +    "outrasEventuais",
      +    "abonoPermanencia"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / consolidarPorServidor
      Added value: +{
      +  "default": true,
      +  "description": "Soma as linhas (Normal+Suplementar) do mesmo servidor por `sequencial` antes das estatísticas (padrão: true). Ignorado — forçado a false — quando agruparPor está definido",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / estatisticas
      Added value: +{
      +  "default": false,
      +  "description": "Computa estatísticas (min/máx/média/mediana/percentis) + ranking top/bottom sobre a folha inteira. Use para 'quem ganhou mais/menos', 'média', 'ranking'",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / modo / description
      Previous value: -"resumo = totais por tipo de folha (padrão); detalhe = composição individual"New value: +"resumo = totais por tipo de folha (padrão); detalhe = composição individual. Ignorado quando estatisticas=true"
    • addedInput schema / properties / topN
      Added value: +{
      +  "default": 10,
      +  "description": "Tamanho das listas top/bottom quando estatisticas=true (padrão: 10, máx: 100)",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  6. Changed2 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / additionalProperties
      Previous value: -trueNew value: +{}
  7. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {},
      +  "type": "object"
      +}
  8. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: statistics scan the entire folha, top/bottom are identified by `nome`, `idInternoFolha` is only for disambiguating homônimos, and `agruparPor` forces non-consolidated data. It does not cover performance/rate considerations, but the disclosure is substantial.

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

Conciseness4/5

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

Front-loaded with purpose and mode definitions, and nearly every clause carries new information (examples, defaults, interactions). The single dense paragraph with heavy backtick/parenthetical nesting makes it harder to scan than it could be, costing it the top score.

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?

Given 11 parameters, three modes, and an output schema that handles return shapes, the description covers the remaining gaps: which mode to pick, why statistics differ, defaults, and filter ordering ('Filtros nome/tipoFolha aplicam antes de tudo'). Nothing an agent needs to call 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 coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: defaults (top=10, limite=50, consolidarPorServidor=true), the interaction where `agruparPor` forces `consolidarPorServidor=false`, and that `campo` selects the analyzed verba. This goes beyond restating the schema fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (remunerações dos servidores do Senado) with a reference year/month and explicitly separates the aggregation modes (estatisticas vs resumo/detalhe). It also names the sibling `senado_servidores` as the tool for the cadastro, so an agent can distinguish it from related tools without opening the 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?

Explicitly prescribes when to set `estatisticas=true` (maior/menor/média/mediana/ranking) with concrete example questions, and warns that resumo/detalhe 'só vê uma fatia e não acha o extremo real'. It also routes the agent to `senado_servidores` for the registry case, giving clear when-to-use and alternative guidance.

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.