Skip to main content
Glama

Dados Abertos Senado BR MCP

Server Details

MCP server for Brazilian Federal Senate open data (legislative, administrative, e-Cidadania).

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
SidneyBissoli/senado-br-mcp-cloudflare
GitHub Stars
5
Server Listing
Senado BR — Brazilian Federal Senate Open Data

Available Tools

67 tools
senado_agenda_comissoesAgenda das comissõesA
Read-onlyIdempotent
Inspect

Obtém a agenda de reuniões de todas as comissões numa data (data YYYYMMDD; padrão: hoje), com filtro opcional siglaComissao. Retorna { data, siglaComissao, count, reunioes }, cada reunião com codigo, comissao (sigla, nome), descricao, data, hora, local, tipo e situacao. Para o histórico de uma única comissão por período use senado_reunioes_comissao; para detalhes de uma reunião use senado_reuniao_comissao com o codigo.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoData específica (YYYYMMDD)
siglaComissaoNoFiltrar por comissão específica

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover the safe read-only, idempotent, open-world profile. The description adds behavioral details beyond that: default date is today, the scope is all committees, the siglaComissao filter is optional, and the returned envelope/meeting fields are listed. It does not discuss error cases or rate limits, but those are minor for a simple read-only query.

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

Conciseness5/5

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

The description is compact and front-loaded: purpose and default behavior first, then return shape, then sibling routing. Every sentence earns its place, and there is no redundant restating of the schema.

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 the output schema and annotations exist, the description covers all necessary calling context: what the tool does, default behavior, optional filter, return structure, and which sibling tools to use in other situations. An agent can invoke this tool correctly without further inference.

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?

The schema already documents both parameters with 100% coverage, so the baseline is 3. The description adds value by stating the default value for data (today), reinforcing the YYYYMMDD format, and clarifying that siglaComissao is an optional filter and how it shapes the result.

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 it retrieves the meeting agenda for all committees on a given date, with an optional committee filter. The verb 'Obtém' plus the resource 'agenda de reuniões de todas as comissões' and the explicit date scope distinguish it from the many sibling tools; it even names related siblings.

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 explains when to use this tool versus alternatives: use senado_reunioes_comissao for the history of a single committee over a period, and senado_reuniao_comissao for meeting details via codigo. This is direct when/when-not guidance with named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_agenda_plenarioAgenda do plenárioA
Read-onlyIdempotent
Inspect

Obtém a agenda de sessões de plenário (Senado ou Congresso Nacional), por dia ou mês, com a pauta de matérias a votar. Retorna { data, escopo, count, sessoes }, onde cada sessão traz codigo, data, hora, tipo, situacao e pauta (matéria, ementa, autor, parecer). Use escopo dia/mes/cn; sem data assume hoje. Para o resultado já apreciado use senado_resultado_plenario; detalhes de uma sessão via senado_encontro_plenario.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoData específica (YYYYMMDD; padrão: hoje)
escopoNodia = SF+CN no dia; mes = mês inteiro; cn = plenário do Congressodia
dataFimNoData fim para período do CN (YYYYMMDD; apenas escopo=cn)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

The annotations already declare this as a safe read-only, idempotent operation, and the description adds the concrete return contract (`{ data, escopo, count, sessoes }`), the per-session fields, and the default-date/scope behavior. It goes well beyond the annotations without contradicting them, though it does not discuss pagination or error behavior, which are not critical here.

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

Conciseness5/5

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

Three compact sentences cover purpose, return shape, scope usage, and sibling routing without repeating annotation or schema fields. The most important selection guidance is placed at the end but is still direct and economical.

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 the rich output schema, fully documented parameters, and read-only annotations, the description supplies everything needed to select and call the tool correctly. It covers default behavior, scope options, return structure, and the two relevant sibling alternatives.

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

Parameters3/5

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

The input schema already documents all three parameters at 100% coverage, including defaults, patterns, and enum meanings. The description only reinforces the `escopo` usage and the default `data` behavior rather than adding substantive new parameter-level semantics, so the schema-heavy baseline of 3 is appropriate.

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?

Opens with the verb 'Obtém' and identifies the exact resource: agenda de sessões de plenário, with variants for Senado and Congresso Nacional. It also names the scope dimensions (dia/mês) and the pauta contents, and the closing sentences distinguish it from the closest plenary siblings.

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 instructs which `escopo` values to use and states the default behavior when `data` is omitted. It also names concrete alternatives—`senado_resultado_plenario` for already-appreciated results and `senado_encontro_plenario` for session details—so an agent can route between siblings without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_autores_atuaisAutores em exercícioA
Read-onlyIdempotent
Inspect

Lista parlamentares autores de processos em tramitação, ordenados por produção (maior número de matérias primeiro). Atenção à semântica: 'atual' significa 'com processo AINDA EM TRAMITAÇÃO', não 'mandato vigente' — a lista mistura senadores, deputados e ex-parlamentares, e a mesma pessoa pode aparecer 2× com códigos distintos (ex.: como 'Senador' e como 'Deputado', pelo tratamento); não use como lista de senadores em exercício (para isso, senado_listar_senadores). Retorna { count, total, autores }, cada autor com codigo, nome, tratamento, uf e quantidadeMaterias. Filtros opcionais uf e nome (busca parcial sem acento); limite padrão 50 (máx. 1000). Use o codigo em senado_obter_senador ou senado_search_processos (codigoParlamentarAutor).

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoFiltrar por UF (ex: SP)
nomeNoFiltrar por nome (busca parcial)
limiteNoMáximo de resultados (padrão: 50)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/idempotent/non-destructive, and the description adds valuable behavioral facts: the list mixes senators, deputies, and former parliamentarians; a person may appear twice with distinct codes; results are ordered by `quantidadeMaterias`; and the default/max limits are stated. No contradiction with annotations.

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

Conciseness5/5

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

The description is dense but every clause earns its place: purpose, semantic warning, sibling disambiguation, return shape, filters, limits, and next-step usage. The most critical caveat is front-loaded immediately after the verb phrase.

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?

For a read-only list tool, the description is complete: it covers what is returned, what filters are available, ordering behavior, the semantic trap, and how to chain the returned code into related tools. Nothing essential 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?

The input schema already documents all three parameters with 100% coverage, so the baseline is 3. The description adds a useful nuance beyond the schema: `nome` is a partial search 'sem acento', and it restates optionality and limits in a way that reinforces correct usage.

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 description clearly states the verb and resource: 'Lista parlamentares autores de processos em tramitação' and adds ordering by production. It also distinguishes itself from the sibling senado_listar_senadores by explicitly warning not to use it as a list of current senators.

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?

It gives explicit when-to-use guidance and an explicit alternative: 'não use como lista de senadores em exercício (para isso, senado_listar_senadores)'. It also explains the semantic trap ('atual' means 'with process still in progress', not 'current mandate') and suggests downstream uses for the returned `codigo`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_buscar_legislacaoBuscar legislação federalA
Read-onlyIdempotent
Inspect

Busca normas jurídicas federais já promulgadas (leis, decretos, leis complementares, emendas constitucionais etc.) combinando os filtros tipo, numero, ano e data em modo AND; informe ao menos um: uma chamada sem nenhum filtro retorna erro determinístico, não uma lista vazia. Somente leitura, sem efeitos colaterais; consulta ao vivo à base oficial de dados abertos, cujos resultados podem variar entre chamadas. Retorna { count, normas } sem paginação: count é o total de normas que casam (0, sem erro, quando nenhuma casa) e cada item traz codigo, tipo, descricaoTipo, numero, ano, data (ISO AAAA-MM-DD), norma, ementa e apelido, com null nos campos ausentes. Passe o codigo a senado_obter_legislacao para obter a indexação temática e a URL do texto integral. Para proposições ainda em tramitação (PEC, PL, PLP, MPV) use senado_buscar_materias; esta ferramenta cobre apenas normas já promulgadas.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno de assinatura/promulgação da norma, entre 1900 e 2100; ex.: 2021.
dataNoData exata de assinatura no formato compacto AAAAMMDD (8 dígitos, sem separadores), ex.: 20210401. Atenção: difere do campo `data` retornado, que vem em ISO AAAA-MM-DD.
tipoNoSigla oficial da espécie normativa: LEI, DEC (decreto), LCP (lei complementar), EMC (emenda constitucional), entre outras; catálogo completo em senado_tabelas_referencia (tabela=tipos-norma). Omitir alarga a busca a todas as espécies.
numeroNoNúmero sequencial da norma (inteiro > 0), ex.: 14133 para a Lei n. 14.133/2021. Combina com `tipo` e `ano` em modo AND.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

The annotations already declare readOnlyHint, idempotentHint, and openWorldHint, but the description adds meaningful behavioral context: it is a live query against the official open-data base whose results may vary between calls, a no-filter call errors deterministically, there is no pagination, and absent fields are returned as null. This goes well beyond the structured hints without contradicting them.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: core purpose, filtering semantics, error behavior, read-only/live nature, return shape, null handling, and routing to the related sibling tool. It is front-loaded with the primary purpose and avoids redundant restatement of the tool name or title.

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?

For a search tool with no required parameters but a non-obvious precondition, the description fully covers the agent's needs: valid input combinations, error behavior, output structure without pagination, null-field semantics, and how to continue using the returned codigo with senado_obter_legislacao. The routing guidance for senado_buscar_materias closes the main ambiguity with sibling tools.

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?

The schema already documents each parameter at 100% coverage, so the description does not need to repeat individual parameter meanings. It adds value by specifying the AND combination semantics across tipo, numero, ano, and data, and by imposing the at-least-one-filter rule that the schema itself does not enforce. This is a strong supplement, though the individual parameter details remain schema-driven.

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 description clearly identifies the tool as searching already-enacted federal legal norms, naming concrete types (leis, decretos, leis complementares, emendas constitucionais) and the filtering mechanism. It distinguishes itself from the sibling senado_buscar_materias by explicitly limiting scope to promulgated norms, so an agent can select it correctly.

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 gives explicit when-to-use guidance: enacted federal norms only. It also names the alternative for pending proposals (senado_buscar_materias) and specifies the critical precondition that at least one filter must be provided, warning that a filterless call returns a deterministic error rather than an empty list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_buscar_materiasBuscar matérias legislativasA
Read-onlyIdempotent
Inspect

Busca matérias legislativas por tipo (PEC, PL, PLP, MPV), número, ano, palavras-chave, autor, período de apresentação ou situação de tramitação; informe ao menos um critério. Para pedidos como 'matérias recentes sobre X', use palavraChave, ano ou dataInicioApresentacao/dataFimApresentacao, ordenarPor: 'dataApresentacao', ordem: 'desc' e limite baixo (ex: 10); não é necessário chamar detalhes para listar resultados. Retorna { count, total, materias[] }, cada item com codigo (codigoMateria), sigla, numero, ano, ementa, autor, situacao, dataApresentacao, url e tramitando. Use codigo em senado_obter_materia apenas quando o usuário pedir detalhe/tramitação/textos. limite padrão 100 (máx. 500); ao truncar inclui aviso. Ex.: { palavraChave: 'inteligência artificial', ano: 2025, limite: 10 } ou { sigla: 'PEC', numero: 45, ano: 2019 } (datas em YYYYMMDD ou ISO).

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno da matéria
ordemNoDireção da ordenação quando ordenarPor=dataApresentacaodesc
siglaNoTipo: PEC, PL, PLP, MPV, PDL, PRS, etc.
limiteNoMáximo de resultados (padrão: 100)
numeroNoNúmero da matéria
autorNomeNoNome do autor
ordenarPorNoOrdenação local; padrão dataApresentacao para favorecer pedidos recentesdataApresentacao
tramitandoNoApenas em tramitação
palavraChaveNoTermo livre buscado nas palavras-chave do processo
dataFimApresentacaoNoData final de apresentação (YYYYMMDD ou YYYY-MM-DD)
dataInicioApresentacaoNoData inicial de apresentação (YYYYMMDD ou YYYY-MM-DD)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is known. The description adds meaningful behavioral context beyond that: the hard constraint 'informe ao menos um critério', the default/max limit (100/500) with aviso when truncated, accepted date formats (YYYYMMDD or ISO), and the ordering/limit formula for recency queries. No contradiction with annotations.

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

Conciseness5/5

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

Although the description is long, every sentence earns its place: purpose, minimum criteria, recency recipe, return shape, sibling routing, limit behavior, and examples. The main verb and resource are front-loaded, and the structure flows from what the tool does to how to invoke it to what to expect.

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, an output schema, and annotations, this description is remarkably complete. It covers required criteria despite zero required params, explains ordering and limits, describes the return structure, disambiguates from senado_obter_materia, and gives both a keyword-style and an exact-lookup example. 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.

Parameters5/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 significant value: it maps natural-language request types to parameter combinations (palavraChave+ano+limite for recent matters; sigla+numero+ano for precise lookup), explains when to use ordenarPor/ordem with dataApresentacao, and provides two concrete JSON examples. This goes well beyond the schema field descriptions.

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 description opens with a clear verb-resource pair, 'Busca matérias legislativas', and enumerates the filter dimensions (tipo, número, ano, palavras-chave, autor, período, situação). It also explicitly distinguishes itself from senado_obter_materia by saying the latter is only for detail/tramitação/textos, so an agent can tell them apart 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?

It gives explicit when-to-use patterns ('Para pedidos como matérias recentes sobre X, use...' with concrete parameter combinations) and an explicit when-not-to-use statement: 'não é necessário chamar detalhes para listar resultados' and 'Use codigo em senado_obter_materia apenas quando o usuário pedir detalhe/tramitação/textos'. This routes the agent to the correct sibling and prevents unnecessary follow-up calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_ceapsGastos CEAPS (cota parlamentar)A
Read-onlyIdempotent
Inspect

Despesas da Cota para Exercício da Atividade Parlamentar (CEAPS) dos senadores em um ano. Para perguntas de maior/menor/média/mediana/distribuição/ranking ('quem gastou mais CEAPS', 'gasto mediano', 'distribuição das despesas') use estatisticas=true: computa min/máx/média/mediana/desvio/percentis sobre TODAS as despesas filtradas e devolve top/bottom (padrão 10) com identificadores — os modos agregados só somam por grupo e não revelam a distribuição nem o extremo individual. Sem agruparPordistribuicao das despesas individuais + top/bottom; com agruparPor (senador/tipo/mes/fornecedor) → grupos[] ranqueados por soma decrescente (grupos[0] = maior gastador), cada um com sua mini-distribuição. Sem estatisticas: nos modos agregados (por-senador/por-tipo/por-mes/por-fornecedor, padrão por-senador) traz agregado[] ordenado por total desc com chave, total e despesas (contagem); em modo='detalhe' traz despesas[] (mês, data, senador, tipoDespesa, fornecedor, cnpjCpf, valor). Filtre por mes, codSenador, nomeSenador, tipoDespesa ou fornecedor (busca parcial); limite cap 100 com aviso ao truncar. Obtenha codSenador via senado_listar_senadores.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoYesAno das despesas
mesNoFiltrar por mês
modoNoAgregação ou detalhe (padrão: por-senador). Ignorado quando estatisticas=truepor-senador
topNNoTamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)
limiteNoMáximo de linhas no resultado (padrão: 100)
agruparPorNoQuando estatisticas=true, ranqueia os grupos por soma decrescente (grupos[0] = maior gastador), cada grupo com sua mini-distribuição
codSenadorNoFiltrar por código do senador
fornecedorNoFiltrar por fornecedor (busca parcial)
nomeSenadorNoFiltrar por nome do senador (busca parcial)
tipoDespesaNoFiltrar por tipo de despesa (busca parcial)
estatisticasNoComputa estatísticas (min/máx/média/mediana/percentis) + ranking top/bottom sobre todas as despesas filtradas. Use para 'quem gastou mais/menos', 'gasto médio/mediano', 'distribuição', 'ranking'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

The annotations already establish readOnly, idempotent, and non-destructive behavior, so the description adds genuine behavioral context: `modo` is ignored when `estatisticas=true`, grouped results are ordered by descending sum with `grupos[0]` as the top spender, `limite` truncates with an `aviso`, and filters use partial search. There is no contradiction with 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.

Conciseness5/5

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

The description is dense but every clause earns its place: mode selection, output structures, ordering, filtering, caps, and warnings. The core purpose and the statistics-vs-aggregate decision are front-loaded, and the semicolon-driven structure keeps the long text scannable for an agent.

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 the complexity of 11 parameters and multiple interacting modes, the description is complete: it covers all output forms (`estatisticas`, `grupos[]`, `agregado[]`, `despesas[]`), sorting, truncation, partial filters, and how to resolve `codSenador` via a sibling. The output schema exists, so return-value documentation is not required, but the prose still supplies enough structure for correct invocation.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds substantial cross-parameter meaning: how `estatisticas` interacts with `agruparPor`, how `topN` sizes the top/bottom lists, when `modo` is ignored, and what each output shape contains. This goes far beyond the individual field descriptions in the schema.

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 description opens with a specific object and scope: CEAPS expenses of senators in a given year. It clearly identifies the resource and what operations are available, distinguishing it from the many senate sibling tools about agendas, legislation, payroll, or procurement.

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?

It gives explicit decision rules: use `estatisticas=true` for distribution/ranking/median questions, use aggregate modes for totals, and use `modo='detalhe'` for itemized expenses. It even warns that aggregate modes only sum by group and thus cannot reveal distribution or extremes, and it directs the agent to `senado_listar_senadores` for obtaining `codSenador`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_contratacao_detalheDetalhar contrataçãoA
Read-onlyIdempotent
Inspect

Detalha uma seção específica de uma contratação já identificada pelo id. tipo indica a natureza do registro: contratos (contrato firmado; padrão), atas_registro_preco (compromisso de preços para compras futuras) ou notas_empenho (reserva orçamentária do gasto). secao escolhe o aspecto: itens, pagamentos, garantias (qualquer tipo), aditivos (só contratos) ou acionamentos (só atas_registro_preco). Retorna { id, tipo, secao, count, total, itens } com os registros brutos da seção (campos conforme a API administrativa), limitados a limite (padrão 100, máx 500) — count < total indica truncagem; seção sem registros retorna count 0 e itens vazio; combinações secao×tipo inválidas (ex.: aditivos fora de contratos) retornam erro. Atenção: a fonte NÃO publica o valor do contrato em nenhuma seção; apenas aditivos traz valor, referente ao termo aditivo (às vezes nulo) — não procure valor monetário em itens/pagamentos/garantias. Obtenha o id via senado_contratos ou senado_contratacoes_lista — para localizar a contratação (não detalhá-la) use aquelas ferramentas.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID da contratação (campo 'id' das listas de contratos/atas/empenhos)
tipoNocontratos = contrato firmado (padrão); atas_registro_preco = compromisso de preços p/ compras futuras; notas_empenho = reserva orçamentária do gastocontratos
secaoYesAspecto a detalhar: itens/pagamentos/garantias (qualquer tipo); aditivos (só contratos); acionamentos (só atas_registro_preco)
limiteNoMáximo de itens (padrão 100, máx 500); count < total sinaliza corte

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

The annotations already declare readOnly, idempotent, and non-destructive, and the description adds valuable behavioral detail: truncation semantics (count < total), empty-section behavior, invalid-combination errors, raw administrative fields, and the important caveat that the source does not publish contract value except in aditivos. No contradiction with annotations.

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

Conciseness5/5

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

The description is dense but every sentence serves a purpose: purpose, parameter semantics, return shape, caveats, and sibling routing. It is front-loaded with the core action and clearly structured so an agent can extract the needed behavior quickly.

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?

For a tool with two enums, one long id parameter, and numerous behavioral edge cases, the description covers everything an agent needs: valid combinations, defaults, limits, error cases, empty responses, return shape, data caveats, and how to obtain the required id. It is complete even without relying on the output schema.

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

Parameters5/5

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

Schema coverage is 100%, but the description goes beyond it by explaining how tipo and secao interact, which combinations are valid, and what limite means in terms of count < total. It also tells the agent where to obtain id, adding operational meaning not present in the schema.

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 description opens with a specific verb and resource: 'Detalha uma seção específica de uma contratação já identificada pelo id'. It clearly distinguishes this tool from the sibling lookup tools by stating that senado_contratos and senado_contratacoes_lista are for locating the contracting record, not detailing it.

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 explicitly tells the agent when to use this tool versus alternatives: use senado_contratos or senado_contratacoes_lista to locate the contracting id, and use this tool to detail a specific section. It also states invalid secao×tipo combinations produce errors, so the agent knows which calls to avoid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_contratacoes_listaListar contrataçõesA
Read-onlyIdempotent
Inspect

Lista, conforme tipo, atas de registro de preço, notas de empenho ou menores aprendizes do Senado, com filtro textual opcional aplicado no Worker sobre todos os campos. Retorna { tipo, count, total, registros }; para atas_registro_preco/notas_empenho cada registro segue o formato de contrato (id, numero, objeto, empresa, subEspecie, vigencia...), enquanto menores_aprendizes vêm como registros brutos da API (campos não normalizados). Ordenação por ordem sobre a sequência de id do upstream: desc (padrão) = mais recentes primeiro, asc = mais antigos primeiro; offset pula registros para paginar a cauda. Limitado a limite (padrão 50, máx 500), com aviso ao truncar; tipo sem registros retorna lista vazia. Para aprofundar uma ata/empenho, use o id em senado_contratacao_detalhe.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoYesQual lista consultar
ordemNodesc = mais recentes primeiro (padrão); asc = mais antigos primeiro (ordem de id do upstream)desc
filtroNoFiltro textual (empresa, objeto, etc.)
limiteNoMáximo de resultados (padrão: 50)
offsetNoRegistros a pular após a ordenação (paginação; padrão: 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds meaningful details beyond those annotations: filtering happens on the Worker across all fields, menores_aprendizes are returned as raw unnormalized API records, ordering follows upstream id sequence, truncation produces an aviso, and empty tipos return an empty list.

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

Conciseness5/5

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

Two dense sentences carry all core information with no filler. The description front-loads the resource scope and then efficiently covers return shape, type-dependent differences, ordering, pagination, limits, edge cases, and the sibling tool for detail.

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 the output schema, annotations, and the tool's moderate complexity, the description is complete. It covers all behavioral subtleties an agent needs—type variations, normalization differences, ordering semantics, truncation behavior, empty results, and a pointer to the detail tool—without requiring the agent to infer anything.

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?

Although schema coverage is 100%, the description enriches parameter meaning: 'ordem' is tied to the upstream id sequence, 'offset' is described as paginating the tail, 'limite' is linked to truncation warnings, and 'filtro' is clarified as applying across all fields. This goes beyond the schema but not every parameter needs additional commentary.

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 description names a specific verb ('Lista') and resource, then enumerates the three concrete listing types: atas de registro de preço, notas de empenho, and menores aprendizes. It also distinguishes itself from the detail sibling by explicitly pointing to senado_contratacao_detalhe for deeper inspection.

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?

It clearly states what the tool covers and gives an explicit alternative: 'Para aprofundar uma ata/empenho, use o id em senado_contratacao_detalhe.' It also explains when filters, ordering, offset, and truncation apply, giving the agent enough context to decide when to call this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_contratosContratos do SenadoA
Read-onlyIdempotent
Inspect

Busca contratos administrativos do Senado por fornecedor, CNPJ, ano, número, objeto ou mão de obra (base completa baixada e filtrada no Worker; busca parcial sem acento em objeto/fornecedor/número). Retorna { count, total, contratos }, onde cada item traz id, numero, objeto, empresa {nome, cnpj}, subEspecie, dataAssinatura, vigencia e unidadeGestora. Atenção: a fonte NÃO publica o valor do contrato (nenhum campo monetário aqui nem nas seções de detalhe; apenas a seção aditivos de senado_contratacao_detalhe traz valor, referente ao termo aditivo) — não gaste chamadas procurando valor. A lista mistura subespécies (CT = contratos, AC = acordos de cooperação, TD = termos de doação etc.); distinga pelo campo subEspecie retornado. Limitado a limite itens (padrão 50, máx 500), com aviso quando há truncamento. Use o id retornado em senado_contratacao_detalhe para itens, pagamentos, garantias ou aditivos.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno do contrato
cnpjNoCNPJ/CPF exato do fornecedor
limiteNoMáximo de resultados (padrão: 50)
numeroNoNúmero do contrato (busca parcial)
objetoNoTexto no objeto do contrato
maoDeObraNoApenas contratos com mão de obra residente
fornecedorNoNome do fornecedor (busca parcial)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses important behavioral details beyond the annotations: search is partial and accent-insensitive for particular fields, the source does not publish contract monetary values, results mix subespécies, and results are truncated with a warning when over the limit. These caveats are exactly the kind of non-obvious behavior an agent needs before calling the tool.

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

Conciseness5/5

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

The description is dense but well structured, front-loading the core search capability, then return shape, then caveats, and finally the routing to the detail tool. Every sentence adds necessary operational information, with no filler or repetition.

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?

For a complex search tool with 7 optional filters, mixed record types, truncation, and a follow-up detail tool, the description covers all relevant context: search semantics, output fields, missing monetary values, subespécie distinction, limite behavior, and how to proceed for more detail. Nothing essential is left to inference.

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, and the description adds real value by clarifying that fornecedor, objeto, and numero use partial, accent-insensitive search. It also reinforces the limite default/max behavior and the mão de obra filter. It does not add per-parameter detail for every field, but the added semantics are meaningful.

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

Purpose4/5

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

The description clearly states a specific action and resource: 'Busca contratos administrativos do Senado por fornecedor, CNPJ, ano, número, objeto ou mão de obra', and specifies the return shape. It is highly understandable, but it does not explicitly distinguish itself from close siblings like senado_contratacoes_lista or senado_empresas_contratadas, so it stops short of full sibling differentiation.

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 gives explicit when-not guidance ('não gaste chamadas procurando valor') and routes to the correct follow-up tool ('Use o id retornado em senado_contratacao_detalhe para itens, pagamentos, garantias ou aditivos'). This is practical, actionable context that tells an agent where this tool fits and where to go next.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_discursos_plenarioDiscursos no plenárioA
Read-onlyIdempotent
Inspect

Lista todos os discursos realizados em plenário num período de datas (dataInicio/dataFim obrigatórias, formato YYYYMMDD). Retorna { periodo, count, discursos }, cada item com codigo, data, casa, tipoUsoPalavra, resumo, indexacao, url, nomeParlamentar, codigoParlamentar, partido e uf. Para discursos de um parlamentar específico use senado_discursos_senador; obtenha o texto integral com senado_discurso_texto.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataFimYesData fim (YYYYMMDD)
dataInicioYesData início (YYYYMMDD)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful behavior beyond that: both date parameters are required, the format is YYYYMMDD, and the response structure is `{ periodo, count, discursos }` with a detailed field list. It does not mention pagination or maximum date ranges, but the annotated read-only/idempotent hints lower the burden.

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 two sentences and front-loads the core purpose and required constraints before mentioning alternatives. The long enumeration of response fields is slightly redundant with the output schema, but it still helps the agent quickly understand the result without opening the schema, so it is acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only date-range listing tool with full parameter schema coverage and an output schema, the description is largely complete: it specifies required params, date format, response shape, and sibling routing. Minor gaps like date inclusiveness or pagination behavior exist, but they are not likely to prevent correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters already documented as 'Data início/fim (YYYYMMDD)' and validated by a `^\d{8}$` pattern. The description repeats these constraints but adds little semantic meaning beyond the schema, such as inclusiveness of dates or any special date-range behavior.

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 description uses a specific verb ('Lista') and a specific resource ('discursos realizados em plenário num período de datas'), clearly defining the tool's scope. It also distinguishes itself from siblings by explicitly naming senado_discursos_senador and senado_discurso_texto as alternatives for other needs.

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?

It states exactly when to use this tool (list all plenary speeches in a date range) and provides explicit routing guidance: use senado_discursos_senador for a specific parliamentarian and senado_discurso_texto for full text. This gives an agent clear decision criteria without needing to inspect sibling schemas.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_discursos_senadorDiscursos de um senadorA
Read-onlyIdempotent
Inspect

Lista pronunciamentos de um senador, filtráveis por período e casa. tipo (padrão discursos) alterna entre discursos (falas próprias) e apartes (intervenções em falas de outros) — muda a fonte upstream e o conteúdo, mantendo a mesma estrutura. Retorna { codigoSenador, tipo, count, discursos } sem paginação (count 0 e lista vazia quando não há pronunciamentos no período), cada item com codigo, data, casa, tipoUsoPalavra, resumo, indexacao, url e nomeParlamentar — sem o texto integral. ATENÇÃO: para tipo=discursos, omitir dataInicio/dataFim faz a fonte retornar SOMENTE os últimos 30 dias (frequentemente vazio) — para o histórico, informe o período explícito (ex.: desde o início do mandato); apenas apartes traz o histórico completo sem período. Obtenha o codigoSenador via senado_listar_senadores e o texto completo em senado_discurso_texto (campo codigo). Para discursos de todos os senadores num período use senado_discursos_plenario, não esta.

ParametersJSON Schema
NameRequiredDescriptionDefault
casaNoRestringe à casa: SF (Senado Federal) ou CN (Congresso Nacional); vazio traz ambas
tipoNodiscursos = pronunciamentos próprios (padrão); apartes = intervenções em discursos de outros — altera a fonte e o conteúdo retornadodiscursos
dataFimNoFim do período (YYYYMMDD); para tipo=discursos, omitir o período limita a resposta aos últimos 30 dias
dataInicioNoInício do período (YYYYMMDD); use junto com dataFim. Para tipo=discursos, sem período a fonte retorna só os últimos 30 dias
codigoSenadorYesCódigo único do senador

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark this as read-only and idempotent, and the description adds substantial behavioral detail beyond that: no pagination, count=0 with empty list semantics, items lacking full text, and the upstream source's 30-day restriction when date range is omitted. No contradiction with annotations.

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 dense but well-structured: purpose, return shape, a prominent ATTENTION caveat, and cross-references to sibling tools. It is longer than minimal, but each sentence carries operational value and the key warning is front-loaded with caps.

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 the complexity of the period/tipo interaction, the description is remarkably complete: it covers return fields, empty-result behavior, no-pagination rule, missing full text, how to obtain required identifier, and where to go for alternatives. An agent has everything needed to invoke the tool correctly.

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% and each parameter already has a description, so baseline is 3. The tool description adds meaningful interplay semantics: how tipo changes the upstream source and content, and how omitting dataInicio/dataFim affects discursos vs apartes. This goes beyond the schema's individual parameter descriptions.

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 description opens with a specific verb and resource ('Lista pronunciamentos de um senador'), then explicitly disambiguates from sibling tools: it says to use senado_discursos_plenario for all senators and senado_discurso_texto for full text. This makes the tool's scope unmistakable.

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?

Provides explicit routing guidance: get codigoSenador via senado_listar_senadores, get full text via senado_discurso_texto, and use senado_discursos_plenario for all senators. It also warns about the 30-day default for discursos and specifies when apartes gives full history without a period.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_discurso_textoTexto de um discursoA
Read-onlyIdempotent
Inspect

Obtém o texto integral de um único pronunciamento pelo codigoPronunciamento. Retorna { codigoPronunciamento, texto }, onde texto é a transcrição completa (string, podendo ter dezenas de KB — não é truncada nem paginada); codigo inexistente ou discurso sem texto retorna erro. Obtenha o codigoPronunciamento antes via senado_discursos_senador ou senado_discursos_plenario (campo codigo). Para apenas listar/filtrar discursos (resumo, data, autor) use aquelas ferramentas; esta traz o texto de um discurso já identificado.

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoPronunciamentoYesCódigo do pronunciamento (campo `codigo` de senado_discursos_senador ou senado_discursos_plenario); um por discurso

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive behavior, and the description adds meaningful context beyond that: the text is not truncated or paginated, can be tens of KB, and an invalid or textless speech returns an error. There is no contradiction with 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.

Conciseness5/5

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

The description is compact and front-loaded: it states the core purpose first, then the return format and error behavior, then the required workflow and alternatives. Every sentence earns its place without filler.

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?

For a single-parameter read tool, the description covers the return object, payload size and truncation behavior, error conditions, and how to obtain the prerequisite code. Nothing an agent needs to call this correctly is missing, especially with an output schema available.

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

Parameters3/5

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

The schema already fully describes the only parameter, including its source tools and one-per-speech nature, so the description adds little new parameter-level meaning. The extra detail about error behavior is behavioral transparency rather than parameter semantics, so the high schema coverage baseline of 3 is appropriate.

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 description states a specific verb and resource: it obtains the full text ('texto integral') of a single pronunciamento using `codigoPronunciamento`. It also distinguishes itself from sibling list/filter tools by explaining that the others return summaries, dates, and authors, while this one returns the full transcript.

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 gives explicit when-to-use guidance: obtain the `codigoPronunciamento` first via `senado_discursos_senador` or `senado_discursos_plenario`, then use this tool for the full text. It also states when not to use it—for listing or filtering—and names the alternative tools for that purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_distribuicao_materiasRanking de autoria/relatoria por comissãoA
Read-onlyIdempotent
Inspect

Ranqueia parlamentares pela quantidade de matérias numa comissão (siglaComissao), medindo carga de trabalho legislativo. tipo escolhe o eixo: autoria (matérias de autoria; padrão) ou relatoria (matérias relatadas). Retorna { siglaComissao, tipo, count, parlamentares } ordenado por quantidade desc, sem paginação (count 0 quando a comissão não tem registros), cada item com codigo, nome, partido, uf e quantidade. codigoParlamentar restringe a um parlamentar e só tem efeito em tipo=autoria (ignorado em relatoria). Descubra a sigla via senado_listar_comissoes; use o codigo do parlamentar em senado_obter_senador. Para a lista das matérias em si (não a contagem) use senado_buscar_materias.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoNoautoria = matérias de autoria por parlamentar (padrão); relatoria = matérias relatadasautoria
siglaComissaoYesSigla da comissão (ex: CCJ, CAE)
codigoParlamentarNoRestringe a um parlamentar — efetivo apenas em tipo=autoria (ignorado em relatoria)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description layers substantial behavior on top: no pagination, ordering by quantidade desc, count=0 for empty committees, the return envelope { siglaComissao, tipo, count, parlamentares }, and the non-obvious quirk that codigoParlamentar is ignored when tipo=relatoria. These disclosures go beyond both the schema and the annotations and would cause mis-calls if omitted.

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

Conciseness5/5

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

Five dense sentences, each carrying distinct information: purpose, axis choice, return envelope, ordering/pagination/zero-case, parameter quirk, and sibling routing. It is front-loaded with the ranking purpose and contains no filler or restatement of the title.

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 an existing output schema and read-only annotations, the description covers everything needed to call it correctly: valid signature, the tipo default and quirk, the empty-committee edge case, absence of pagination, and cross-tool resolution of both main parameters. Nothing material is left implicit.

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; the description adds value by pointing to where parameter values come from ('Descubra a sigla via senado_listar_comissoes; use o codigo do parlamentar em senado_obter_senador') and by reiterating the codigoParlamentar/tipo interaction. This provenance guidance is genuine added meaning, though the schema already documents the core parameter semantics.

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 verb ('Ranqueia') and resource (parlamentares por quantidade de matérias numa comissão), and explicitly differentiates from siblings by naming senado_buscar_materias as the alternative for the matters list itself. The description also points to senado_listar_comissoes and senado_obter_senador for parameter discovery, so an agent can distinguish it within the crowded senado_* family.

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?

Provides explicit cross-tool routing: 'Para a lista das matérias em si (não a contagem) use senado_buscar_materias' sets a clear when-not condition, and the guidance to resolve siglaComissao via senado_listar_comissoes and codigoParlamentar via senado_obter_senador tells the agent exactly how to prepare valid inputs. This exceeds the 4-bar of clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_ecidadania_consultas_analiseAnálise de consultas públicasA
Read-onlyIdempotent
Inspect

Analisa o conjunto completo de consultas públicas abertas (matérias em tramitação) do e-Cidadania por grau de concordância cidadã, conforme modo: consenso → consultas com alta concentração de votos numa direção, ordenadas da maior para a menor concentração; usa percentualMinimo (padrão 85%). polarizada → consultas com votação equilibrada (~50/50), ordenadas da menor para a maior diferença sim/não; usa margemPolarizacao (padrão 15 pontos). Analisa por padrão consultas aberta (opinião pública atual). Quando a matéria sai de tramitação a consulta passa a encerrada, então status: "encerrada"/"todas" cobrem o conjunto que foi encerrado desde a ingestão (cresce com o tempo); fechadas antes da 1ª carga não são capturadas. Todos os modos aceitam minimoVotos (padrão 1000) e limite (padrão 10). Retorna { modo, criterio, count, consultas }. É esta a ferramenta para 'consultas mais votadas', ranking ou panorama ATUAL da votação das consultas em tramitação — não confundir com senado_ecidadania_consultas_votos, que é o acervo HISTÓRICO (matérias já arquivadas) com quebra por UF. Para o detalhe de uma consulta use senado_ecidadania_obter_consulta.

ParametersJSON Schema
NameRequiredDescriptionDefault
modoNoconsenso (alta concordância) ou polarizada (~50/50)consenso
limiteNoNúmero máximo de resultados
statusNoRecorte do conjunto (padrão: aberta = opinião atual). encerrada cobre consultas que saíram de tramitação desde a ingestão (cresce com o tempo); fechadas antes da 1ª carga não são capturadas.aberta
minimoVotosNoMínimo de votos para considerar
percentualMinimoNoModo consenso: percentual mínimo numa direção
margemPolarizacaoNoModo polarizada: considera polarizado se diferença ≤ este percentual

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Annotations already signal readOnly/idempotent/non-destructive, so the description carries a lower safety burden and instead adds rich behavioral context: per-mode ordering rules, status semantics, the ingest-boundary limitation for 'encerrada', defaults, and the return shape. This goes well beyond what the annotations alone provide.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: purpose, mode behavior, status caveat, defaults, return shape, and sibling routing. Formatting with bold, inline code, and arrows keeps it scannable, and the primary purpose is front-loaded before the details.

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?

For a six-parameter read-only analytics tool with an output schema, this description is fully sufficient. It covers input semantics, defaults, temporal edge cases, return structure, and correct sibling routing. Nothing necessary for correct invocation is missing.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds substantial meaning beyond field descriptions: it explains what consenso vs. polarizada actually compute, how each mode orders results, which threshold parameter applies to which mode, and that minimoVotos and limite apply across all modes. This is considerably more than the baseline for schema-covered parameters.

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 description opens with a specific verb and resource: it 'Analisa o conjunto completo de consultas públicas abertas... do e-Cidadania por grau de concordância cidadã'. It precisely names the two operating modes and explicitly distinguishes itself from sibling tools senado_ecidadania_consultas_votos (historical) and senado_ecidadania_obter_consulta (detail), making selection unambiguous.

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 states exactly when to use this tool: 'É esta a ferramenta para consultas mais votadas, ranking ou panorama ATUAL...'. It also gives an explicit exclusion: 'não confundir com senado_ecidadania_consultas_votos', and routes detail lookups to a sibling. The status lifecycle caveat ('fechadas antes da 1ª carga não são capturadas') further clarifies appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_ecidadania_consultas_votosVotos em consultas por UFA
Read-onlyIdempotent
Inspect

Acervo histórico de votos das consultas públicas do e-Cidadania, com quebra por UF (fonte: CSV Arquimedes; ~15 mil matérias, atualizado semanalmente). Use apenas quando o pedido for pelo acervo/arquivo histórico ou por votos por estado (UF); para 'consultas mais votadas', ranking ou opinião ATUAL das consultas em tramitação use senado_ecidadania_consultas_analise. Diferente de senado_ecidadania_listar_consultas (consultas em tramitação): aqui o conjunto é o arquivo de matérias já consultadas — status vem como Descontinuado no arquivo de origem, por isso é tratado como acervo, não como opinião atual. Retorna { count, referencePeriod, consultas }, cada item com id, materia, ementa, autoria, votosSim/votosNao/totalVotos, votosPorUf ({ UF: { sim, nao } }) e url. Use ordenarPor (total/sim/nao, padrão total) e ordem para ranking; uf para recortar e ranquear por aquele estado (só matérias com votos na UF, e cada item ganha recorteUf); materia para filtrar por código (numérico) ou trecho do nome/ementa; limite (padrão 20).

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoSigla da UF (ex.: SP) — filtra e ranqueia por votos daquele estado
ordemNoOrdem (padrão desc)desc
limiteNoNúmero máximo de resultados
materiaNoFiltro por código da matéria (numérico) ou trecho do nome/ementa
ordenarPorNoMétrica do ranking (padrão: total de votos)total

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already signal read-only, idempotent, non-destructive behavior, and the description adds valuable context: source data is a CSV, updated weekly, treated as an archive with 'Descontinuado' status, not as current opinion. This helps the agent set correct expectations beyond the structured annotations.

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

Conciseness5/5

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

The description is dense but each sentence serves a purpose: scope, sibling differentiation, semantic status, return shape, and parameter usage. It is front-loaded with the core purpose and not padded with filler.

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?

For a read-only, optionally-parameterized tool with an output schema and rich annotations, the description covers all relevant aspects: when to use, what differentiates it, the return contract, parameter semantics, and data provenance. Nothing critical is missing for correct invocation.

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 baseline is 3. The description adds extra meaning beyond the schema, such as how 'uf' filters and re-ranks only materials with votes in that state and that each item gains 'recorteUf', which is not in the schema. It also clarifies the combined filter behavior of 'materia'.

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 description states a specific verb and resource: a historical archive of e-Cidadania public consultation votes, broken down by UF. It explicitly distinguishes itself from sibling tools 'senado_ecidadania_consultas_analise' and 'senado_ecidadania_listar_consultas', so an agent can identify the intended use without guessing.

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?

It gives clear when-to-use guidance ('Use apenas quando o pedido for pelo acervo/arquivo histórico ou por votos por estado') and names the exact alternative for current rankings/opinions. It also contrasts the archive with the in-progress consultations tool, removing ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_ecidadania_listar_consultasListar consultas públicasA
Read-onlyIdempotent
Inspect

Lista consultas públicas do e-Cidadania (conjunto completo das abertas — toda matéria em tramitação, ~7,7 mil), em que cidadãos votam sim/não. Retorna { count, consultas }, cada consulta com id, materia, ementa, votosSim/votosNao/totalVotos, percentualSim/percentualNao, status e url. Toda consulta entra como aberta; quando a matéria sai de tramitação ela passa a encerrada (o conjunto encerrada/todas cresce com o tempo). Consultas encerradas antes da 1ª ingestão não são capturadas. Aceita limite (padrão 20). Para o detalhe de uma consulta chame senado_ecidadania_obter_consulta com o id; para recortes analíticos (consenso/polarização) use senado_ecidadania_consultas_analise.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNoNúmero máximo de resultados
paginaNoPágina de resultados
statusNoFiltrar por status (padrão: aberta). encerrada lista consultas cuja matéria saiu de tramitação desde a ingestão (cresce com o tempo); fechadas antes da 1ª carga não são capturadas.aberta

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark it read-only, open-world, and idempotent. The description adds valuable runtime semantics: every consulta starts as `aberta`, transitions to `encerrada` when the matter leaves tramitação, and consultations closed before the first ingestion are never captured. This is exactly the kind of data-cutoff/state-evolution 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.

Conciseness5/5

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

At roughly six sentences, the description front-loads the purpose and scope, then return shape, dynamic status behavior, and sibling routing in logical order. Each sentence adds distinct information and none repeats annotations or schema fields unnecessarily.

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?

For a list tool with an output schema and read-only/idempotent annotations, the description is complete: it covers what is returned, the key open-world caveat, and how to route to siblings for detail or analysis. Even the unmentioned `pagina` parameter is fully described in the schema, so an agent has everything needed to invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100%: all three parameters have descriptions, defaults, and enum constraints. The description only reinforces `limite` (padrão 20) and the status transition behavior already present in the schema, so it adds no independent parameter semantics. Baseline 3 applies because the schema carries the burden.

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 action and resource: 'Lista consultas públicas do e-Cidadania' with scope delimited to the complete set of abertas (~7,7 mil). It also distinguishes itself by naming sibling tools for detail and analytical views, so an agent can tell it apart from senado_ecidadania_obter_consulta and senado_ecidadania_consultas_analise.

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?

Gives explicit routing guidance: 'Para o detalhe de uma consulta chame ... obter_consulta com o id; para recortes analíticos ... use consultas_analise.' It also implies this tool is for the full list and defines status-scoped alternatives in the schema. No ambiguity remains about when to choose this sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_ecidadania_listar_eventosListar eventos interativosA
Read-onlyIdempotent
Inspect

Lista eventos interativos do e-Cidadania (audiências públicas, sabatinas, lives) — conjunto completo (corpus persistido em D1, atualizado semanalmente; ~milhares de eventos, incluindo encerrados). Retorna { count, eventos }, cada evento com id, titulo, data, hora, comissao (sigla), comentarios, status (agendado/encerrado/cancelado) e url; aceita filtro por status, por comissao (sigla) e limite (padrão 20). Para um ranking dos mais comentados, ordene por comentários (ordenarPor: "comentarios", ordem: "desc"). Para o detalhe completo de um evento use senado_ecidadania_obter_evento.

ParametersJSON Schema
NameRequiredDescriptionDefault
ordemNoOrdem (padrão desc)desc
limiteNoNúmero máximo de resultados
statusNoFiltrar por status
comissaoNoSigla da comissão
ordenarPorNoOrdenar por data ou número de comentários

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Even with readOnlyHint and idempotentHint annotations already present, the description adds meaningful context about data scope and freshness: a complete persisted corpus in D1 updated weekly, thousands of events, and inclusion of closed events. It also exposes the expected status vocabulary and return shape, going beyond what the annotations alone disclose.

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

Conciseness5/5

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

The description is a single dense paragraph that front-loads the action and scope, then covers return shape, filters, sorting, and the sibling alternative in logical order. Every sentence contributes operational information with no filler.

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 that no parameters are required and an output schema exists, the description covers everything an agent needs to call this tool correctly: data scope, return fields, valid filters, defaults, sorting recipe, and routing to the detail tool. No important behavioral gaps remain for this list operation.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents all parameter enums, defaults, and meanings. The description mostly restates the filters (status, comissao, limite) and adds only a modest goal-oriented tip about ranking by comments, which is not enough to move substantially beyond the baseline.

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 description opens with a specific verb and resource ('Lista eventos interativos do e-Cidadania') and adds concrete examples (audiências públicas, sabatinas, lives). It also distinguishes itself from the sibling senado_ecidadania_obter_evento by noting this endpoint returns the complete list while the other returns full event detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states the canonical use case for this tool and gives an explicit alternative for detailed event info ('Para o detalhe completo de um evento use senado_ecidadania_obter_evento'). It also explains the sorting strategy for the most-commented ranking, though it does not explicitly say when to prefer the other e-Cidadania list tools (consultas, ideias).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_ecidadania_listar_ideiasListar ideias legislativasA
Read-onlyIdempotent
Inspect

Lista ideias legislativas propostas por cidadãos no e-Cidadania — conjunto completo (corpus persistido em D1, atualizado semanalmente; ~114 mil ideias, incluindo encerradas e convertidas em proposição). Retorna { count, ideias }, cada ideia com id, titulo, apoios, status (aberta/encerrada/convertida) e url (autor e dataPublicacao só aparecem no detalhe, vêm null aqui). Aceita filtro por status e limite (padrão 20). Para um ranking das mais apoiadas, ordene por apoios (ordenarPor: "apoios", ordem: "desc"). Para o detalhe completo de uma ideia (texto, autor, se virou projeto de lei) chame senado_ecidadania_obter_ideia com o id.

ParametersJSON Schema
NameRequiredDescriptionDefault
ordemNoOrdem de ordenação
limiteNoNúmero máximo de resultados
paginaNoPágina de resultados
statusNoFiltrar por status
ordenarPorNoCampo para ordenação (apoios é o disponível no corpus; data/comentarios só no detalhe)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses the dataset is persisted in D1, updated weekly, has ~114k ideas, and includes closed/converted ones. It also transparently warns that autor and dataPublicacao are null in list responses, which prevents false expectations.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: scope, data freshness, return shape, null field caveats, filter/sort usage, and pointer to the sibling detail tool. The most decision-relevant facts are front-loaded.

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?

For a list tool with all parameters documented in the schema, the description covers the essential operational context: what the corpus represents, how results are returned, how to filter/sort, and when to switch to the detail tool. Nothing critical for correct invocation 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. The description adds useful operation-level guidance by explaining how to combine ordenarPor with ordem=desc for ranking and which parameters are relevant for filtering, going slightly beyond the schema's enum descriptions.

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 description states a specific verb and resource: it lists legislative ideas proposed by citizens on e-Cidadania, and clarifies it returns the complete corpus. It also explicitly distinguishes itself from senado_ecidadania_obter_ideia, which is the complementary detail tool.

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?

It tells the agent exactly when to use the detail tool instead ('Para o detalhe completo... chame senado_ecidadania_obter_ideia com o id') and gives concrete instructions for ranking use cases ('ordene por apoios... ordem: desc'). This routes the agent correctly compared with the most relevant sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_ecidadania_obter_consultaDetalhar consulta públicaA
Read-onlyIdempotent
Inspect

Obtém o detalhe de uma consulta pública específica do e-Cidadania. Retorna um objeto com id, materia, ementa, votosSim/votosNao/totalVotos, percentualSim/percentualNao, status, autor, relator, url. O portal não publica o período da consulta: dataAbertura/dataEncerramento (e comissao/linkMateria) vêm sempre null — a consulta abre quando a matéria entra em tramitação e encerra quando sai, refletido em status. O campo comentarios vem null: a página de consulta não possui recurso de comentários. Obtenha o id antes via senado_ecidadania_listar_consultas ou senado_ecidadania_consultas_analise.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID da consulta pública

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Even though annotations already declare readOnlyHint=true and idempotentHint=true, the description adds valuable behavioral caveats: several fields are always null, why they are null, and how status reflects the consultation lifecycle. It also explains that comentarios is always null because the page lacks that feature.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, followed by essential return details, then important null-field caveats, and finally sourcing instructions. Every sentence earns its place and none of it is redundant with the schema or annotations.

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?

The description is complete for a single-parameter read-only tool: it covers prerequisites, return shape, known null behavior, and points to the right sibling tools. With an output schema and safety annotations also present, nothing necessary for correct invocation 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?

The schema already thoroughly documents the single id parameter, so the baseline is 3. The description adds value by telling the agent exactly where to get the id from, which is meaningful practical guidance beyond the schema's type and description.

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 description opens with a specific action and resource: 'Obtém o detalhe de uma consulta pública específica do e-Cidadania.' It clearly differentiates from the listing/analysis siblings by requiring an id obtained from them, so the agent knows this is the detail-by-id tool.

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?

It explicitly tells the agent to obtain the id beforehand via 'senado_ecidadania_listar_consultas' or 'senado_ecidadania_consultas_analise', establishing a clear when-to-use workflow. This is more concrete than most tool descriptions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_ecidadania_obter_eventoDetalhar evento interativoA
Read-onlyIdempotent
Inspect

Obtém o detalhe completo de um evento interativo do e-Cidadania (audiência, sabatina, live). Retorna um objeto com id, titulo, descricao, data, hora, comissao e comissaoNomeCompleto, local, status (agendado/encerrado/cancelado), comentarios, url, mais pauta (até 15 itens), convidados e videoUrl (embed do YouTube quando houver, senão null) — campos não preenchidos vêm null e id inexistente retorna erro. Obtenha o id antes via senado_ecidadania_listar_eventos. Para apenas listar/rankear eventos (sem descrição/pauta/convidados) use senado_ecidadania_listar_eventos, não esta.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIdentificador do evento (campo `id` de senado_ecidadania_listar_eventos)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already establish read-only/idempotent/non-destructive behavior; the description adds value by disclosing return semantics: unfilled fields come as `null`, nonexistent id returns an error, and `videoUrl` is `null` when no YouTube embed exists. It also enumerates the status enum values.

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 front-loaded with the core verb and resource, and its long return-field list is dense and purposeful. It is slightly long for a single-parameter read operation, partially overlapping what an output schema would already carry, but it contains no filler.

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?

For a single-parameter read tool with rich annotations and an output schema, the description covers the source of the id, error and null behavior, statuses, return fields, and the alternative listing tool. Nothing needed 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?

The lone `id` parameter is fully documented in the schema as an integer sourced from senado_ecidadania_listar_eventos. The description reinforces where to obtain the id before calling, adding complementary guidance beyond the schema's 100% coverage.

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 precise verb and resource: 'Obtém o detalhe completo de um evento interativo do e-Cidadania.' It also separates itself from the listing sibling by naming the richer payload (pauta, convidados, videoUrl), so an agent can pick it without opening schemas.

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 tells the agent to first obtain `id` via senado_ecidadania_listar_eventos and explicitly says not to use this tool for simple listing/ranking. This is fully actionable routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_ecidadania_obter_ideiaDetalhar ideia legislativaA
Read-onlyIdempotent
Inspect

Obtém o detalhe de uma ideia legislativa do e-Cidadania. Retorna um objeto com id, titulo, descricao (texto completo, truncado em ~2000 caracteres), apoios, dataPublicacao, status, autor, url e plConvertido (sigla/número quando virou projeto de lei). O campo comentarios vem null: a página de ideia não possui recurso de comentários. Obtenha o id antes via senado_ecidadania_listar_ideias.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID da ideia legislativa

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnlyHint, idempotentHint, and destructiveHint annotations, the description discloses meaningful behavioral quirks: the 'descricao' field is truncated at ~2000 characters, 'comentarios' is always null because the page lacks comments, and 'plConvertido' indicates conversion into a bill. This level of detail is excellent for a simple read tool.

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

Conciseness5/5

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

The description is compact and front-loaded: purpose first, return fields second, then the usage prerequisite. Every sentence adds unique value, and the field list is dense but scannable.

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?

For a one-parameter read-only tool, the description is complete: it identifies the required input, the key returned fields, important edge-case behavior (truncation and null comments), and how to obtain the id. The annotations and output schema handle the remaining context.

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

Parameters3/5

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

The input schema already documents the only parameter 'id' with 100% coverage, so the baseline is 3. The description reinforces that the id comes from the list endpoint but does not add new semantic information about the parameter's format or constraints beyond the schema.

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 description begins with a specific verb and resource: 'Obtém o detalhe de uma ideia legislativa do e-Cidadania.' It clearly differentiates this tool from sibling tools like senado_ecidadania_listar_ideias and senado_ecidadania_obter_consulta by naming the exact resource type and level of detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit prerequisite: 'Obtenha o id antes via senado_ecidadania_listar_ideias,' which tells the agent how to acquire the required parameter and when this tool is appropriate. It lacks explicit exclusions or comparisons to related 'obter' tools, so it does not fully reach a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_ecidadania_sugerir_tema_enqueteSugerir tema de enqueteA
Read-onlyIdempotent
Inspect

Sugere temas para uma enquete pública mensal (seleção de pauta): analisa o conjunto completo de consultas (abertas) e as ideias do e-Cidadania e elege as de maior engajamento cidadão, filtrando por polarização/consenso e participação mínima. Retorna { criteriosAplicados, totalAnalisados, count, totalQualificados, sugestoes } (até 10), cada sugestão com tipo (consulta/ideia), id, titulo, motivo, metricas (participação/polarização) e url, ordenadas por participação. count é o número de sugestões retornadas (≤10) e totalQualificados é quantas passaram nos critérios. Critérios opcionais em criterios: evitarPolarizacao/evitarConsenso (padrão true), minimoParticipacao (padrão 500), apenasEmTramitacao (padrão true → considera só consultas abertas, com base no status real). Para investigar uma sugestão, use senado_ecidadania_obter_consulta ou senado_ecidadania_obter_ideia conforme o tipo.

ParametersJSON Schema
NameRequiredDescriptionDefault
criteriosNoCritérios de seleção do tema (polarização, consenso, participação mínima, tramitação)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds substantial behavioral detail beyond annotations: it analyzes the complete set of open consultations and ideas, filters by polarization/consensus and minimum participation, returns at most 10 suggestions sorted by participation, and clarifies that count differs from totalQualificados. It also reveals that apenasEmTramitacao considers real status of consultations. No contradiction exists.

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

Conciseness5/5

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

The description is dense but front-loaded: it opens with the tool's core purpose, then details the output contract, criteria defaults, and follow-up actions. Every sentence contributes useful information for selecting and invoking the tool correctly, with 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity—nested optional criteria, rich output, and many siblings—the description is complete. It explains input semantics, output fields and limits, ordering, the difference between count and totalQualificados, and how to investigate returned suggestions. Annotations cover safety and idempotence, and an output schema exists, so no critical context 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 baseline is 3. The description adds value by explaining the optional criteria object's defaults and behavior, especially clarifying that apenasEmTramitacao 'considera só consultas abertas, com base no status real' and that minimoParticipacao defaults to 500. This goes beyond the schema's short field descriptions, though the schema already carries most parameter meaning.

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 description states a specific verb and resource: 'Sugere temas para uma enquete pública mensal' by analyzing e-Cidadania consultations and ideas and electing the most engaging ones. It clearly explains the tool's selection role and distinguishes it from list/obtain siblings by framing this as an analytical suggestion tool with a ranked output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: it is for selecting public poll themes and returns suggestions for further investigation. It explicitly routes follow-up behavior with 'Para investigar uma sugestão, use senado_ecidadania_obter_consulta ou senado_ecidadania_obter_ideia conforme o tipo.' However, it does not explicitly state when not to use this tool versus sibling analysis/list tools, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_empresas_contratadasEmpresas contratadasA
Read-onlyIdempotent
Inspect

Busca empresas que contratam com o Senado por nome (mín. 3 caracteres) ou CNPJ/CPF (busca parcial). Retorna { count, total, empresas }, cada item com id, nome, cnpj, contratos (até 30 números) e totalContratos. Exige nome ou cnpj (a base completa é grande); limitado a limite (padrão 20, máx 100). Use o id/número de contrato em senado_contratos ou senado_contratacao_detalhe para o detalhamento.

ParametersJSON Schema
NameRequiredDescriptionDefault
cnpjNoCNPJ/CPF (busca parcial)
nomeNoNome da empresa (busca parcial, mín. 3 caracteres)
limiteNoMáximo de empresas (padrão: 20)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral detail beyond the annotations: the exact response envelope `{ count, total, empresas }`, the item fields, the 'até 30 números' contract limit, and the partial-search behavior. This is useful context without contradicting 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.

Conciseness5/5

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

The description is compact: one sentence covers purpose and search modes, the second covers response shape and usage constraints, and the final clause routes to related tools. There is no filler, repetition of the title, or unnecessary fluff. Every sentence earns its place.

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 the tool's moderate complexity, the description covers all essential aspects: search criteria, minimum length, required-term behavior, result limits, response shape, and follow-up tooling. The output schema and read-only annotations handle the remaining concerns, so nothing important is missing for an agent to invoke this correctly.

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. The description adds meaning beyond the schema by clarifying that `nome` or `cnpj` is required, that searches are partial, and how `limite` constrains the result list. It also explains the practical intent of the parameters in the context of a large base, which the schema alone does not convey.

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 description opens with a specific verb and resource: 'Busca empresas que contratam com o Senado por nome (mín. 3 caracteres) ou CNPJ/CPF (busca parcial).' It clearly identifies the subject (companies contracting with the Senate) and the two search modes. It also distinguishes itself from related sibling tools by pointing to senado_contratos and senado_contratacao_detalhe for follow-up detail.

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 explicitly states the precondition: 'Exige nome ou cnpj (a base completa é grande)', explaining why at least one search term is necessary. It also names the downstream tools to use with the returned id/contract number, giving concrete guidance on when this tool is the entry point versus when to switch to another tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_encontro_plenarioSessões do plenárioA
Read-onlyIdempotent
Inspect

Detalhes de um encontro legislativo (sessão de plenário). Retorna { codigo, secao, encontro }, onde encontro é o objeto bruto da API (ou array, quando o upstream traz vários) cujos campos variam conforme a secao escolhida: detalhes (padrão) traz dados gerais da sessão (tipo, data, situação, presença); pauta traz as matérias previstas; resultado traz os itens apreciados e seus resultados; resumo traz uma síntese. encontro pode vir vazio se a seção não tiver dados, e a chamada retorna erro se o codigo não existir. Obtenha o codigo via senado_agenda_plenario ou senado_resultado_plenario.

ParametersJSON Schema
NameRequiredDescriptionDefault
secaoNoQual seção do encontro consultardetalhes
codigoYesCódigo do encontro/sessão

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint), the description adds key behavioral details: the shape of the response (`{ codigo, secao, encontro }`), that `encontro` may be an array when upstream returns multiple, that it may be empty if no data for that section, and that it errors on invalid `codigo`. These are useful operational facts not expressed in annotations. No contradictions with annotations.

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

Conciseness5/5

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

The description is concise yet information-dense. It front-loads the primary purpose, then logically presents the return structure, the section options, caveats (empty possible, error case), and finally the prerequisite step. Every sentence adds value; there is no fluff or repetition. The structure aids quick comprehension and correct usage.

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?

For a two-parameter read-only tool with an output schema (mentioned in context), the description is remarkably complete. It covers the response structure, the meaning of the enum parameter, edge cases (empty result, invalid code), and the recommended way to obtain the required `codigo`. An agent has all necessary information to invoke this tool correctly without further clarification.

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

Parameters5/5

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

While the schema already provides descriptions for both parameters (100% coverage), the description enriches the meaning significantly. For `secao`, it explains each enum value in detail (e.g., 'detalhes' returns general session data; 'pauta' returns agenda items; 'resultado' returns voted items and outcomes; 'resumo' returns a summary). For `codigo`, it clarifies the source (obtained from other tools) and error behavior. This substantially goes beyond the schema's generic descriptions.

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 description opens with a specific verb and resource: 'Detalhes de um encontro legislativo (sessão de plenário)' – clearly stating it returns details of a specific plenary session. It further distinguishes itself from sibling tools by explaining the return structure and that the `codigo` must come from `senado_agenda_plenario` or `senado_resultado_plenario`, which are list/request tools. This unambiguously separates it from the many other `senado_*` tools.

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 provides explicit guidance on when to use this tool: after obtaining a `codigo` from `senado_agenda_plenario` or `senado_resultado_plenario`. It also explains the `secao` parameter's valid values and what each returns, enabling the agent to choose the appropriate section. The note about erroring on a non-existent `codigo` further clarifies proper usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_estrutura_organizacionalEstrutura organizacionalA
Read-onlyIdempotent
Inspect

Estrutura organizacional (organograma) do Senado Federal até o nível de serviço. Dada uma unidade (sigla como 'DGER' ou nome como 'Diretoria-Geral'), retorna { unidade, caminho[], totalSubordinadas, subordinadas[] }: caminho são os órgãos superiores (da cúpula até o superior imediato) e subordinadas são TODAS as unidades da subárvore (secretarias, coordenações, serviços e núcleos), cada uma com sigla, nome e nivel (profundidade relativa). Use para responder 'o que está sob a DGER', 'quais secretarias/serviços pertencem a X' ou para entender a hierarquia administrativa. Para CONTAR ou LISTAR servidores sob uma unidade, use senado_servidores com subordinadasA. Fonte: portal institucional (a API de dados abertos não publica a árvore completa).

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNoMáximo de subordinadas listadas (padrão: 200)
unidadeYesSigla (ex.: 'DGER', 'SEGRAF') ou nome (ex.: 'Diretoria-Geral') da unidade

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover readOnly, openWorld, idempotent, and non-destructive behavior, so the description only needs to add context. It adds useful behavior: the return object shape, the meaning of `caminho` and `nivel`, and the data source limitation (portal institucional, since the open-data API does not publish the full tree). It does not contradict annotations, though the prose 'TODAS as unidades' is slightly at odds with the schema's `limite` cap without an explicit truncation note.

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

Conciseness5/5

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

The description is dense but every segment earns its place: definition, input/output behavior, example use cases, the explicit alternative, and the source caveat. It front-loads the core purpose so an agent scanning the first sentence already knows what the tool does. There is no filler or unnecessary repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, read-only lookup with a present output schema, the description is nearly complete: it explains input format, output fields, depth semantics, typical use cases, and the alternative tool. It does not clarify behavior for unknown units or what happens when the subtree exceeds `limite` (whether `totalSubordinadas` reflects the true total), which an agent might need for correct interpretation. Overall it is sufficient for selection and basic invocation.

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

Parameters3/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. The schema already documents that `unidade` accepts a sigla or name and that `limite` is an integer from 1 to 1000 defaulting to 200. The description mostly mirrors this and adds only the relationship between `unidade` and the resulting subárvore, without extra formats, constraints, or edge-case guidance.

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 description opens with a specific definition—organizational structure/organograma of the Senado Federal down to service level—and states exactly what is returned for a given `unidade`: `caminho`, `totalSubordinadas`, and all `subordinadas`. It also distinguishes itself from `senado_servidores` by clarifying that this tool is for hierarchy, not for counting/listando servidores.

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?

It gives concrete query intents ('o que está sob a DGER', 'quais secretarias/serviços pertencem a X') and explicitly says when not to use it: 'Para CONTAR ou LISTAR servidores sob uma unidade, use `senado_servidores` com `subordinadasA`.' This explicit when-to-use/when-not-to-use guidance is stronger than most sibling comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_execucao_orcamentariaExecução orçamentária do SenadoA
Read-onlyIdempotent
Inspect

Execução orçamentária do Senado: despesas (dotação, empenhado, liquidado, pago; desde 2013) ou receitas próprias (previstas e arrecadadas; desde 2012). Para maior/menor/média/mediana/distribuição/ranking ('quanto o Senado pagou/arrecadou com X', 'maior grupo de despesa') use estatisticas=true: SEM agruparPor = distribuição das linhas (min/máx/média/mediana/percentis) + top/bottom; COM agruparPor = grupos ranqueados por soma decrescente (grupos[0]=maior). A coluna de valor analisada é escolhida automaticamente conforme o tipo; o resultado já traz o rótulo legível dela em campoAnalisado. Retorna { tipo, modo, ano, totalLinhas, ... }: nos modos agregados, agregado[] com { chave, ...valores } ordenado por valor; em detalhe, despesas[]/receitas[] limitado por limite (padrão 100, com aviso ao truncar). Use tipo=despesas com modo por-ano/por-acao/por-grupo/por-fonte e tipo=receitas com por-origem; filtre por ano para reduzir o volume antes de pedir detalhe. Única ferramenta de orçamento interno do Senado; não confundir com senado_orcamento_parlamentar (emendas/ofícios parlamentares ao orçamento da União).

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoFiltrar por exercício financeiro
modoNoAgregação (por-acao/por-grupo/por-fonte: despesas; por-origem: receitas) ou detalhe. Ignorado quando estatisticas=truepor-ano
tipoNodespesas = dotação e execução; receitas = receitas própriasdespesas
topNNoTamanho do top/bottom nas estatísticas (padrão: 10)
campoNoOpcional: força a coluna de valor analisada; por padrão ela é escolhida conforme o tipo. Se a opção não se aplicar ao tipo, o padrão é usado automaticamente.
limiteNoMáximo de linhas (padrão: 100)
agruparPorNoOpcional: agrupa e ranqueia os resultados por esta dimensão (as opções válidas dependem do tipo).
estatisticasNoDistribuição/ranking sobre as linhas: min/máx/média/mediana/percentis + top/bottom, ou grupos ranqueados por soma via agruparPor

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds extensive behavioral context beyond these: automatic selection of the value column based on tipo, the result envelope { tipo, modo, ano, totalLinhas, ... }, ordering of agregado[], the default limite of 100 with truncation aviso, and how estatisticas changes behavior. No contradictions with annotations.

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 but information-dense, with no filler. It is front-loaded with the core purpose, followed by statistics mode, return structure, and sibling distinction. While slightly dense and could be broken into clearer sections, every sentence earns its place in explaining a complex 8-parameter tool.

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 the tool's complexity (8 parameters, multiple modes, statistics behavior, output structure) and the presence of a rich output schema, the description covers essentially everything needed: parameter interplay, return shapes, ordering, defaults, truncation behavior, filtering advice, and sibling differentiation. No critical gaps.

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

Parameters5/5

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

Schema coverage is 100%, so baseline is 3, but the description significantly enriches parameter meaning: it clarifies that campo is optional and defaults based on tipo, that modo is ignored when estatisticas=true, how agruparPor ranks groups by descending sum, and the effect of limite truncation. This goes well beyond the schema definitions.

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 description clearly states the tool's function: querying the Senate's internal budget execution, covering despesas (expenditures with dotação, empenhado, liquidado, pago since 2013) and receitas próprias (revenues since 2012). It uses a specific verb with resource and explicitly distinguishes itself from the sibling senado_orcamento_parlamentar, making the purpose unambiguous.

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 provides explicit guidance on when to use this tool versus the alternative senado_orcamento_parlamentar ('não confundir...'), and details when to set estatisticas=true with and without agruparPor. It also advises filtering by ano before requesting detalhe to reduce data volume, giving clear context on usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_horas_extrasHoras extras de servidoresA
Read-onlyIdempotent
Inspect

Horas extras pagas a servidores do Senado em ano/mes de referência (a partir de 2013). Para perguntas de maior/menor/média/mediana/distribuição/ranking ('quem recebeu mais horas extras', 'valor mediano de hora extra', 'distribuição dos pagamentos') use estatisticas=true: computa min/máx/média/mediana/desvio/percentis sobre TODAS as linhas filtradas (valorTotal) e devolve top/bottom (padrão 10) com identificadores. Sem agruparPordistribuicao das linhas individuais + top/bottom; com agruparPor (nome/competencia) → grupos[] ranqueados por soma decrescente (grupos[0] = quem mais recebeu; por nome soma as linhas do mesmo servidor no mês), cada um com sua mini-distribuição. Sem estatisticas: retorna { ano, mes, count, total, valorTotal, horasExtras[] }, onde valorTotal soma o gasto do mês e cada item traz nome, valorTotal, horasExtras, competencia e pagamento. Filtro opcional por nome (busca parcial) e limite (padrão 100, máx 500; ignorado quando estatisticas=true). Para a remuneração completa do servidor use senado_remuneracoes_servidores.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoYesAno de referência
mesYesMês de referência
nomeNoNome do servidor (busca parcial)
topNNoTamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)
limiteNoMáximo de resultados (padrão: 100; ignorado quando estatisticas=true)
agruparPorNoQuando estatisticas=true, ranqueia os grupos por soma decrescente (grupos[0] = quem mais recebeu): `nome` soma as linhas do mesmo servidor no mês, `competencia` agrupa por mês de prestação. Cada grupo traz sua mini-distribuição
estatisticasNoComputa estatísticas (min/máx/média/mediana/percentis) + ranking top/bottom sobre todas as linhas filtradas. Use para 'quem recebeu mais/menos', 'média', 'mediana', 'ranking'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/destructive annotations, the description discloses detailed runtime behavior: statistics computation, top/bottom defaults, grouping semantics, output structure, and the fact that `limite` is ignored when `estatisticas=true`. This significantly enriches the agent's mental model and does not contradict any annotation.

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

Conciseness5/5

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

The description is dense but well-structured, with bolded mode labels, conditional branches, and clear separators. Every sentence adds operational value, and the alternative tool reference is placed at the end without bloating the core guidance.

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?

Despite having 7 parameters and two distinct behavioral modes, the description covers all major decision points: when to use statistics, what grouping achieves, output shape in both modes, optional filters, and the relationship to a sibling tool. With annotated safety hints and an output schema present, nothing essential is missing.

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

Parameters5/5

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

With 100% schema description coverage, the baseline is already 3, and the description adds substantial cross-parameter semantics: how `estatisticas` changes the whole response shape, how `agruparPor` works only within statistics mode, and how `limite` behaves differently in each mode. This goes well beyond repeating the schema.

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 description starts with a specific verb+resource: 'Horas extras pagas a servidores do Senado em ano/mes de referência' and clearly scopes the tool to overtime payments. It also distinguishes itself from the directly related sibling `senado_remuneracoes_servidores` by stating 'Para a remuneração completa do servidor use senado_remuneracoes_servidores', making its purpose unmistakable.

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 explicitly tells when to call with `estatisticas=true` versus without it, including concrete example queries like 'quem recebeu mais horas extras'. It also names the alternative tool for full remuneration, and explains the interaction of `agruparPor` with statistics mode, so an agent can route correctly without extra inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_licitacoesLicitações do SenadoA
Read-onlyIdempotent
Inspect

Busca licitações do Senado por número exato (ex: 19/2018) ou texto do objeto. Retorna { count, total, licitacoes } com os registros brutos da API administrativa, limitados a limite (padrão 50, máx 500). Exige ao menos numero ou objeto (sem filtro retorna erro). Para o contrato resultante de uma licitação, use senado_contratos.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNoMáximo de resultados (padrão: 50)
numeroNoNúmero exato da licitação (ex: 19/2018)
objetoNoTexto no objeto da licitação

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already convey that the tool is read-only, idempotent, and non-destructive. The description adds useful runtime context beyond that: raw administrative API records, the default and maximum 'limite' values, the no-filter error, and the next-step tool. It does not clarify how 'numero' and 'objeto' interact when both are supplied, but the main behavior is well disclosed.

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

Conciseness5/5

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

The description is three compact sentences that front-load the purpose and then cover return shape, limits, error behavior, and a routing hint. Every sentence adds distinct value with no redundant or filler content.

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?

For a read-only search tool with three optional-looking schema parameters, the description covers all invocation-critical details: accepted filters, mandatory-filter rule, result limits, return structure, and the related contract tool. The output schema and annotations supply the remaining detail, so an agent has everything needed to call it correctly.

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. The description adds the important cross-parameter constraint that at least one filter is mandatory despite the schema listing zero required fields, plus an example for 'numero' and the default/maximum for 'limite', which goes beyond the schema.

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 description clearly states the action ('Busca'), the resource ('licitações do Senado'), and the two search modes: exact 'numero' or 'objeto' text. It also distinguishes itself from the contract-lookup sibling by pointing to senado_contratos, so an agent can tell what this tool is for 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?

Explicit usage conditions are provided: at least 'numero' or 'objeto' is required, and omitting both causes an error. It also tells the agent to use senado_contratos for the contract resulting from a licitação, which is a clear when-not-to-use rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_liderancasLideranças partidáriasA
Read-onlyIdempotent
Inspect

Lista as lideranças do Senado, da Câmara e do Congresso Nacional (líderes, vice-líderes etc.). Retorna { count, liderancas }, cada item com tipo, descricao, unidadeLideranca, casa, dataDesignacao, dataTermino, numeroOrdemViceLider, bloco (codigo/nome/sigla — preenchido quando a liderança é de bloco; o codigo serve em senado_obter_bloco), partido (codigo/sigla/nome — a unidade liderada, quando liderança de partido) e parlamentar (codigo, nome, partido de filiação, uf). A fonte NÃO publica a UF do parlamentar (vem sempre null) — obtenha-a via senado_obter_senador pelo codigo. Filtre por casa (SF/CN/CD), codigoParlamentar, vigente (S/N) ou siglaTipoLideranca; sem filtros retorna todas as casas. Para a composição de blocos use senado_listar_blocos.

ParametersJSON Schema
NameRequiredDescriptionDefault
casaNoCasa legislativa (SF=Senado, CN=Congresso, CD=Câmara dos Deputados)
vigenteNoApenas vigentes (S/N)
codigoParlamentarNoCódigo do parlamentar
siglaTipoLiderancaNoTipo de liderança (ex: LIDER, VICE-LIDER)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false), the description discloses a data-quality gotcha: the source never publishes the parliamentarian's UF and it always comes null. It also reveals conditional field population (bloco only when leadership is of a bloc; partido only when of a party) and the default no-filter behavior.

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 but information-dense, with purpose front-loaded and every segment earning its place (return semantics, conditional fields, UF gotcha, filters, sibling routing). It slightly over-duplicates the casa value mapping already present in the schema, which keeps it from a perfect 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 the output schema covers return structure and annotations cover the safety profile, the description fills all remaining gaps: field semantics, the UF null workaround, default behavior, and sibling tool routing. Nothing an agent needs to invoke this tool correctly is missing.

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

Parameters3/5

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; the schema already documents casa, vigente, codigoParlamentar, and siglaTipoLideranca. The description adds only marginal parameter-level value — confirming the filter set and stating that omitting filters returns all houses.

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 description opens with a specific verb+resource+scope — 'Lista as lideranças do Senado, da Câmara e do Congresso Nacional' — making clear it covers leadership positions across all three houses. It differentiates itself from related siblings by explicitly routing bloc composition to senado_listar_blocos and senator data to senado_obter_senador.

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?

Provides explicit when-to-use and alternative routing: 'Para a composição de blocos use senado_listar_blocos' and 'obtenha-a via senado_obter_senador pelo codigo'. The filter guidance ('Filtre por casa..., sem filtros retorna todas as casas') tells the agent exactly how to scope calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_listar_blocosListar blocos parlamentaresA
Read-onlyIdempotent
Inspect

Lista todos os blocos parlamentares do Senado e seus partidos membros. Retorna { count, blocos }, onde cada bloco traz codigo, nome, nomeApelido, dataCriacao, dataExtincao e a lista partidos (cada um com sigla, nome, dataAdesao, dataDesligamento). A lista inclui a composição HISTÓRICA de cada bloco: partido com dataDesligamento preenchida já saiu (a composição atual são os com dataDesligamento null) e o mesmo partido pode repetir com períodos de adesão distintos — sem esse filtro um partido parece estar em 2 blocos ao mesmo tempo. Use para descobrir o codigo de um bloco e depois detalhá-lo via senado_obter_bloco; para lideranças use senado_liderancas.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds valuable behavioral context beyond that: the list includes HISTORICAL composition, dataDesligamento marks departed parties, current members have null dataDesligamento, and the same party may appear multiple times with distinct periods—without this filter a party could seem to belong to two blocs simultaneously. This is exactly the kind of nuance an agent needs.

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 three dense, front-loaded sentences: purpose, return shape, historical caveat, and routing to siblings. Each sentence earns its place, though the detailed enumeration of return fields may overlap with the output schema and could be slightly trimmed.

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?

For a parameterless, read-only list tool with output schema and annotations, the description is complete: it states purpose, return shape, a critical data-interpretation caveat, and how to proceed to related tools. Nothing an agent needs to call it correctly or interpret its results 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?

The tool has zero parameters, so the baseline is 4. There is no parameter semantics to document; the description appropriately focuses on output structure and usage guidance instead.

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 description uses a specific verb and resource ('Lista todos os blocos parlamentares do Senado e seus partidos membros'), making the tool's scope immediately clear. It also differentiates itself from sibling tools by explaining that it is the way to discover a bloc's codigo before calling senado_obter_bloco, and that leadership information belongs to senado_liderancas.

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 explicitly states when to use this tool ('Use para descobrir o codigo de um bloco e depois detalhá-lo via senado_obter_bloco') and names the alternative for a different need ('para lideranças use senado_liderancas'). It also warns about the historical composition pitfall, giving the agent concrete context for interpreting results correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_listar_comissoesListar comissõesA
Read-onlyIdempotent
Inspect

Lista comissões (colegiados) ativas do Senado, com filtros por tipo (permanente, temporaria, cpi, mista) e ativa. Retorna { count, comissoes }, cada item com codigo, sigla, nome, tipo, casa e ativa. O endpoint só traz comissões ativas, logo ativa=false resulta em lista vazia. Use para descobrir a sigla exigida por senado_obter_comissao e senado_reunioes_comissao.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoNoTipo: permanente, temporaria, cpi, mista
ativaNoApenas comissões ativas

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Beyond annotations (readOnly, idempotent, non-destructive), the description discloses the non-obvious behavior that the endpoint only ever returns active commissions and that `ativa=false` returns an empty result. It also specifies the response shape `{ count, comissoes }` and item fields, giving the agent a clear model of what to expect. No contradiction with annotations.

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

Conciseness5/5

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

Four short sentences deliver the action, filters, return shape, behavioral quirk, and target use case with no filler. The most decision-relevant facts (what it lists and filters) come first, and the downstream use case closes the description.

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?

The tool is a simple filtered list, and the description covers its purpose, parameter semantics, return shape, edge-case behavior, and relationship to dependent tools. Annotations cover safety/idempotency and an output schema exists for return details, leaving no significant gaps for an agent deciding whether and how to call it.

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?

Both parameters already have schema descriptions (100% coverage), so the baseline is 3. The description earns an extra point by explicitly stating the consequence of `ativa=false` (empty list) and by restating the `tipo` enum values for convenience, though it adds little beyond the schema for `tipo`.

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 description opens with the specific action 'Lista comissões (colegiados) ativas do Senado' and the available filters `tipo` and `ativa`, making the resource and operation clear. It also differentiates this tool from siblings like `senado_obter_comissao` and `senado_reunioes_comissao` by framing it as the source for the `sigla` those tools require.

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?

It explicitly tells the agent when to use the tool: 'Use para descobrir a sigla exigida por senado_obter_comissao e senado_reunioes_comissao'. It also gives a clear when-not/limitation: the endpoint only returns active commissions, so `ativa=false` yields an empty list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_listar_senadoresListar senadoresA
Read-onlyIdempotent
Inspect

Use para pedidos como 'liste os senadores em exercício', 'senadores atuais', 'lista atual de senadores' ou filtros por UF/partido. Lista senadores em exercício ou de uma legislatura específica, com filtros opcionais por nome, uf e partido. Retorna { count, senadores }, cada item com codigo, nome, nomeCompleto, partido, uf, foto e emExercicio, mais proveniência oficial do endpoint /senador/lista/atual. Use emExercicio (padrão true) ou legislatura para escolher o conjunto; nome faz correspondência parcial ignorando acentos/maiúsculas (use quando você só tem o nome e precisa do codigo); uf/partido filtram localmente. Use o codigo em senado_obter_senador ou senado_votacoes_senador. Para senadores fora de exercício veja senado_senadores_afastados.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoSigla do estado (ex: SP, RJ, MG)
nomeNoNome ou parte do nome (busca parcial, sem acento)
partidoNoSigla do partido (ex: PT, PL, MDB); tolera formas curtas como PODE→PODEMOS
emExercicioNoFiltrar apenas senadores em exercício
legislaturaNoNúmero da legislatura (ex: 57 para 2023-2027)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

As anotações já cobrem readOnlyHint=true, idempotentHint=true e destructiveHint=false, então o bar é mais baixo. A descrição acrescenta contexto útil: correspondência parcial de nome ignorando acentos/maiúsculas, filtragem local de uf/partido, e a proveniência oficial do endpoint. Não contradiz as anotações.

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?

A descrição é mais longa que o ideal, mas cada frase carrega informação não redundante: exemplos de uso, filtros, semântica de busca, retorno e roteamento para ferramentas relacionadas. Está bem organizada com a informação mais importante (o que faz) no início.

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?

Com output schema presente e anotações cobrindo segurança, a descrição fornece tudo que um agente precisa: formato de retorno ({ count, senadores } com campos listados), comportamento dos filtros, e roteamento para as ferramentas subsequentes. Nada essencial para invocar corretamente está faltando.

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

Parameters5/5

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

A cobertura do schema é 100%, mas a descrição adiciona significado além dele: explica que nome faz busca parcial sem acento e serve para obter codigo, que partido tolera formas curtas (PODE→PODEMOS), e detalha o comportamento de emExercicio como padrão. Isso é valor real que o schema não oferece.

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?

Descrição começa com exemplos concretos de uso ('liste os senadores em exercício', 'senadores atuais') e define o escopo: listar senadores em exercício ou de uma legislatura, com filtros opcionais. Distingue-se claramente dos irmãos senado_senadores_afastados e senado_senador_historico, e se posiciona como ponto de entrada ao citar senado_obter_senador e senado_votacoes_senador.

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?

Estabelece explicitamente quando usar (filtros por UF/partido, busca por nome) e quando não usar, nomeando a alternativa senado_senadores_afastados para senadores fora de exercício. Também instrui quando usar o filtro nome ('use quando você só tem o nome e precisa do codigo') e como reutilizar o código em outras ferramentas.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_mesaMesa DiretoraA
Read-onlyIdempotent
Inspect

Lista os membros da Mesa Diretora (presidente, vice-presidentes, secretários). O parâmetro casa (padrão senado) escolhe entre senado (Mesa do Senado Federal) e congresso (Mesa do Congresso Nacional). Retorna { casa, mesa, count, membros }, cada membro com cargo, codigo, nome, partido e uf. Para lideranças partidárias use senado_liderancas.

ParametersJSON Schema
NameRequiredDescriptionDefault
casaNosenado (Mesa do SF) ou congresso (Mesa do CN)senado

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

With annotations already declaring readOnlyHint, idempotentHint, and destructiveHint false, the safety profile is fully covered. The description adds useful behavioral context by stating the exact returned object shape (`{ casa, mesa, count, membros }`) and the fields per member, which goes beyond the bare annotations.

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

Conciseness5/5

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

The description is compact: it states the purpose, explains the parameter, summarizes the return shape, and routes to an alternative in only three sentences. It is front-loaded with the main action and avoids repetitive detail.

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?

For a simple, single-parameter tool with an output schema and strong annotations, the description covers everything an agent needs: purpose, parameter selection, return structure, and the relevant sibling alternative. Nothing important 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?

The schema already documents `casa` with an enum and per-value descriptions, so the baseline is 3. The description adds the default value (`padrão senado`) and clarifies the meaning of each choice, reinforcing semantic understanding even though the schema coverage is 100%.

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 description uses a specific verb ('Lista') and names the exact resource ('membros da Mesa Diretora') along with the types of members (presidente, vice-presidentes, secretários). It also distinguishes itself from the sibling tool `senado_liderancas` by explicitly pointing leadership queries there.

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 explicitly explains when to choose each value of `casa` — `senado` for the Senado Federal and `congresso` for the Congresso Nacional. It also gives a clear 'do not use this for leadership' pointer to `senado_liderancas`, making the alternative explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_notas_taquigraficasNotas taquigráficasA
Read-onlyIdempotent
Inspect

Transcrição oficial (notas taquigráficas) de uma sessão plenária ou reunião de comissão, em blocos sequenciais. Retorna { id, tipo, sessao, data, totalBlocos, aviso?, blocos }; id inexistente ou sem transcrição no acervo retorna totalBlocos 0 com aviso explicando. Cobertura: sessões plenárias do SF (deliberativas, não deliberativas, especiais) são transcritas em poucos dias; sessões CONJUNTAS do Congresso, canceladas/não realizadas e algumas solenes NÃO têm notas (a mídia pode existir em senado_videos_taquigrafia). modo governa o payload: resumo (padrão) traz por bloco sequencia, dataInicio/Fim, trecho (200 chars), caracteres e linkAudio, limitado a limite (padrão 20; pagine com sequenciaInicio, aviso sinaliza corte); texto traz o conteúdo integral de até 20 blocos por chamada (janela sequenciaIniciosequenciaFim) e inclui intervalo. sequenciaFim só atua em modo=texto. Obtenha o id via senado_agenda_plenario/senado_resultado_plenario (sessão) ou senado_reuniao_comissao (reunião); orador filtra blocos pelo nome citado. Para a mídia (vídeo/áudio) use senado_videos_taquigrafia, não esta.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCódigo da sessão plenária ou da reunião de comissão
modoNoresumo = blocos com trecho inicial; texto = transcrição integral dos blocos selecionadosresumo
tipoNosessao = plenário (padrão); reuniao = comissãosessao
limiteNomodo=resumo: máximo de blocos por chamada (padrão 20); o excedente é sinalizado em aviso
oradorNoRetorna só blocos cujo texto menciona este nome (busca parcial no conteúdo)
sequenciaFimNoÚltimo bloco no modo texto (ignorado no modo resumo); a janela é capada em 20 blocos por chamada
sequenciaInicioNoPrimeiro bloco a retornar (base 1); pagina o modo resumo e abre a janela do modo texto (padrão: 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Even with readOnlyHint, openWorldHint, and idempotentHint annotations, the description adds substantial behavioral context: coverage gaps, the empty-result contract (`totalBlocos` 0 with `aviso`), pagination truncation via `aviso`, the 20-block cap in `texto` mode, and mode-specific payload differences. There is no contradiction with the annotations; rather, the description enriches them.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: return shape, empty-result behavior, coverage, mode semantics, pagination, id provenance, and media alternative. It front-loads the most critical information and organizes the rest in a logical decision order for an agent. Nothing is redundant.

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?

The description is fully self-contained for a complex tool: it covers the return object, error/empty case, coverage exclusions, mode-specific behavior, pagination window, how to obtain IDs, and the correct alternative tool for media. With annotations and an output schema already available, nothing essential is missing.

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

Parameters5/5

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

Although schema coverage is 100%, the description goes far beyond it: it explains that `modo` governs the entire payload shape, that `sequenciaFim` only acts in `texto` mode, that `limite` defaults to 20 with truncation signaled by `aviso`, and that `orador` does partial content matching. These semantics are essential for correct invocation and are not apparent from the raw schema alone.

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 description opens with a specific verb and resource: 'Transcrição oficial (notas taquigráficas) de uma sessão plenária ou reunião de comissão, em blocos sequenciais.' It precisely defines the deliverable and distinguishes itself from siblings like senado_videos_taquigrafia (media) and senado_discursos_* (speech-level content). An agent can immediately tell what this tool does and what it does not do.

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 gives explicit when-to-use guidance: 'Obtenha o id via senado_agenda_plenario/senado_resultado_plenario (sessão) ou senado_reuniao_comissao (reunião)' and 'Para a mídia (vídeo/áudio) use senado_videos_taquigrafia, não esta.' It also tells when notes are not available, such as joint/cancelled/some solemn sessions, so the agent can predict empty results. This is exemplary routing among alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_obter_blocoDetalhar bloco parlamentarA
Read-onlyIdempotent
Inspect

Obtém detalhes de um bloco parlamentar específico pelo seu código. Retorna um objeto com codigo, nome, nomeApelido, dataCriacao, dataExtincao e partidos (array com sigla, nome, dataAdesao, dataDesligamento); dataExtincao é null para blocos vigentes. partidos é a composição HISTÓRICA: quem tem dataDesligamento preenchida já saiu do bloco (composição atual = dataDesligamento null). Obtenha o parâmetro codigo primeiro via senado_listar_blocos; código inexistente retorna erro ("Bloco parlamentar não encontrado").

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoYesCódigo do bloco parlamentar

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds genuinely useful behavioral context: dataExtincao is null for active blocs, partidos is a historical composition where dataDesligamento indicates departure, and nonexistent codes return an error. No contradiction with annotations.

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

Conciseness5/5

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

Three sentences, all substantive: purpose, return semantics, and usage prerequisite/error behavior. No filler or repetition; the most important scoping information is front-loaded.

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?

For a single-parameter detail tool with strong annotations and an output schema, this description covers everything needed to call it correctly: input source, return fields, semantic interpretation of nullable fields, and error behavior.

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?

The schema already documents codigo with 100% coverage, so the baseline is 3. The description adds value by explaining where the code comes from (senado_listar_blocos) and what happens if an invalid code is used, justifying a 4.

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 description states a specific verb and resource: 'Obtém detalhes de um bloco parlamentar específico pelo seu código.' This clearly distinguishes it from listing tools like senado_listar_blocos and from other detail tools like senado_obter_comissao.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent to obtain the codigo parameter first via senado_listar_blocos, which is strong workflow guidance. It does not explicitly state when not to use this tool or name direct alternatives beyond the prerequisite, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_obter_comissaoDetalhar comissãoA
Read-onlyIdempotent
Inspect

Obtém dados de uma comissão pela sigla, conforme secao (padrão resumo): resumo{ codigo, sigla, nome, tipo, finalidade, presidente, vicePresidente, totalMembros, titulares, suplentes } (presidente/vice com nome/codigo/bancada). finalidade só vem preenchida para colegiados temporários (CPIs, comissões temporárias e de medida provisória); para comissões permanentes (CCJ, CAE etc.) a fonte não a publica e o campo vem nulo com um aviso — as competências estão no Regimento Interno. membros{ sigla, secao, count, membros }, cada membro com codigo, nome, tipoVaga (titular/suplente), ativo e dataInicio. A sigla é resolvida internamente para código numérico; descubra-a via senado_listar_comissoes.

ParametersJSON Schema
NameRequiredDescriptionDefault
secaoNoresumo (mesa/totais) ou membros (composição completa)resumo
siglaYesSigla da comissão (ex: CCJ, CAE)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Even with readOnlyHint and idempotentHint already present, the description adds substantial behavioral context: `finalidade` is null with an `aviso` for permanent commissions, the sigla is resolved internally to a numeric code, and the exact output shape per `secao` is disclosed. This goes well beyond what the annotations provide.

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 front-loaded with the main action and then uses dense, structured inline JSON to convey output shapes and caveats. Every sentence contributes; it is a bit long, but the bulk is informative rather than redundant.

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 the tool's complexity—two modes, conditional null fields, an internal sigla resolution—the description is remarkably complete. It explains the presence or absence of `finalidade`, the member object structure, and how to discover valid input, leaving little ambiguity for the agent.

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?

The schema already covers both parameters at 100%, so baseline is 3. The description adds value by explaining the default `secao` behavior, what each section returns, and how `sigla` gets resolved—plus the explicit pointer to `senado_listar_comissoes` for valid values. That lifts it above mere schema restatement.

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 description opens with a specific verb and resource ('Obtém dados de uma comissão pela sigla') and explicitly distinguishes the two modes (`resumo` vs `membros`). It also ties the discovery of the `sigla` to the sibling `senado_listar_comissoes`, making it easy to tell this tool apart from the many other comissão-related siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly conveys when to use this tool (to fetch details of a single commission by sigla and section) and points the agent to `senado_listar_comissoes` for discovering the sigla. It does not, however, explicitly state when NOT to use it relative to siblings like `senado_reunioes_comissao` or `senado_agenda_comissoes`, so it stops short of full when/when-not coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_obter_legislacaoDetalhar norma legalA
Read-onlyIdempotent
Inspect

Obtém o detalhe de uma norma federal já promulgada pelo seu codigo interno. Somente leitura, sem efeitos colaterais; consulta ao vivo à base oficial de dados abertos. Retorna um objeto com codigo, tipo, descricaoTipo, numero, ano, data (ISO AAAA-MM-DD), norma, apelido, ementa, indexacao (termos temáticos) e url do texto integral — campos ausentes na norma vêm null, e codigo inexistente retorna erro "Norma não encontrada", não um objeto vazio. Obtenha o codigo antes via senado_buscar_legislacao (é o identificador interno da norma, não o número da lei). Para localizar normas por tipo/número/ano use senado_buscar_legislacao; esta serve só para o detalhe de uma norma já identificada.

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoYesIdentificador interno da norma no acervo do Senado (inteiro > 0) — o campo `codigo` retornado por senado_buscar_legislacao. Não confundir com o número da lei: a Lei n. 14.133/2021 tem numero=14133, mas seu codigo interno é outro valor.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, and the description reinforces this with 'Somente leitura, sem efeitos colaterais.' It adds extra value by disclosing that the data is a live query to the official open-data base, that missing fields return null, and that nonexistent codes return the exact error 'Norma não encontrada' rather than an empty object.

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 front-loaded with the core action and every sentence contributes useful information: read-only guarantee, return shape, null/error behavior, and routing to the sibling search tool. It is somewhat dense as a single paragraph, but there is no wasted material.

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?

With only one required parameter, an output schema present, and rich annotations, the description still goes further to explain the prerequisite for obtaining `codigo`, the exact not-found behavior, and how missing fields are represented. Nothing an agent needs to call this tool correctly is missing.

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

Parameters3/5

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

The input schema already covers 100% of the single parameter, including its integer type, exclusiveminimum, and the warning not to confuse `codigo` with the law number. The description repeats this guidance, notably the distinction between `codigo` and the number of the law, so it adds little semantic value beyond the schema.

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 description opens with a specific verb and resource: 'Obtém o detalhe de uma norma federal já promulgada pelo seu codigo interno.' It clearly differentiates itself from senado_buscar_legislacao by stating this tool is only for detail of an already identified norma, so an agent can distinguish the two without opening schemas.

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 explicitly says to obtain `codigo` first via `senado_buscar_legislacao`, and that norms should be located by tipo/número/ano using that sibling tool. It also states this tool is only for detail of an already identified norma, giving clear when-to-use versus when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_obter_materiaDetalhar matéria legislativaA
Read-onlyIdempotent
Inspect

Obtém dados de uma matéria pelo codigoMateria, conforme secao (padrão detalhe): detalhe → objeto com identificacao, apelido, ementa, autor, situacao, localAtual, dataApresentacao, indexacao, classificacoes[], tramitando, relator (nome/partido/uf/comissão), deliberacao e normaGerada. tramitacao → histórico de tramitação cronológico em tramitacoes[] (data, local, descricao), com count/total (mantém os mais recentes ao truncar). textos → documentos da matéria em textos[] (tipo, formato, identificacao, data, autoria, url), do mais recente ao mais antigo. limite aplica-se a tramitacao/textos (padrão 100 e 50; ao truncar inclui aviso). Obtenha o codigoMateria via senado_buscar_materias.

ParametersJSON Schema
NameRequiredDescriptionDefault
secaoNodetalhe (situação/relator), tramitacao (histórico) ou textos (documentos)detalhe
limiteNoMáximo de itens em tramitacao/textos (padrão: 100 tramitacao, 50 textos)
codigoMateriaYesCódigo único da matéria

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive behavior, and the description adds substantial behavioral detail beyond that: chronological ordering, truncation of tramitacao/textos with default limits, inclusion of an aviso when truncating, and count/total fields. This meaningfully informs the agent about response behavior. No contradiction with annotations.

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 dense but well-structured, front-loading the core operation and using clear mode-by-mode organization. It is long, but nearly every clause earns its place given the tool's tri-mode behavior; a slight trim of repeated schema-level field names would make it tighter.

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?

For a tool with three distinct output modes, the description covers all necessary invocation details: defaults, truncation behavior, ordering, the required parameter's source, and the structure returned under each secao. Combined with the output schema and annotations, an agent has everything needed to call this tool correctly.

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

Parameters5/5

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

Schema coverage is 100%, but the description goes well beyond the schema: it explains how secao changes the entire return shape, clarifies that limite only applies to tramitacao/textos with distinct defaults, and tells the agent where codigoMateria should come from. This adds real semantic value beyond field names and types.

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 description opens with a specific verb and resource: 'Obtém dados de uma matéria pelo codigoMateria'. It then enumerates the three output modes (detalhe, tramitacao, textos), making the tool's scope clear and distinguishing it from search/list tools like senado_buscar_materias.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use each section and instructs the agent to obtain codigoMateria via senado_buscar_materias. It does not explicitly state when not to use this tool versus other matter-related siblings, but the section-level guidance is strong enough to route correct usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_obter_processoDetalhar processoA
Read-onlyIdempotent
Inspect

Obtém detalhes completos de um processo legislativo específico pelo seu id. Retorna um objeto com id, codigoMateria, identificacao, sigla, numero, ano, objetivo, ementa, tipoConteudo, dataApresentacao, autoria, indexacao, urlDocumento, tramitando (boolean) e o estado atual do processo: situacaoAtual (+siglaSituacaoAtual/dataSituacaoAtual), deliberacao (data, tipo, destino) e normaGerada (quando o processo virou norma). Obtenha o idProcesso antes via senado_search_processos ou senado_buscar_materias; para emendas, relatorias ou prazos use senado_processo_detalhe (parâmetro secao).

ParametersJSON Schema
NameRequiredDescriptionDefault
idProcessoYesID do processo legislativo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description's job is lighter. It adds useful behavioral context by describing the full response shape, including the conditional normaGerada field and the current state fields, and by noting the workflow prerequisite that the id comes from another tool. There is no contradiction with 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.

Conciseness4/5

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

The description is front-loaded with the core purpose and then moves to return content and routing guidance. It is dense rather than bloated, though the long field enumeration could be trimmed if the output schema already documents the response object. Overall, every sentence serves a clear role.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only tool with annotations and an output schema available, the description covers the essential invocation context: what the tool returns, where the id comes from, and which sibling should be used for related but different details. It does not discuss error behavior for nonexistent ids, but that is not a critical gap for this simple read operation.

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; the description adds value by explaining that the parameter is obtained from senado_search_processos or senado_buscar_materias and by clarifying the practical meaning of the id. It does not fully resolve the minor mismatch between the description's 'id' and the schema's idProcesso, but it later uses the correct name.

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 description states a specific verb ('Obtém') and resource ('um processo legislativo específico pelo seu id'), and explicitly distinguishes itself from senado_processo_detalhe by saying that emendas, relatorias, and prazos are handled there. This makes the tool's identity and scope immediately clear.

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?

It gives explicit prerequisites ('Obtenha o idProcesso antes via senado_search_processos ou senado_buscar_materias') and names the alternative for overlapping concerns ('para emendas, relatorias ou prazos use senado_processo_detalhe'). The agent is told exactly when and how to route around sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_obter_senadorDetalhar senadorA
Read-onlyIdempotent
Inspect

Obtém o detalhe biográfico de um senador específico. Retorna um objeto com codigo, nome, nomeCompleto, nomeCivil, sexo, dataNascimento, naturalidade/ufNaturalidade, partido, uf, foto, email e a lista mandatos (legislatura, uf, participacao, dataInicio, dataFim). Requer codigoSenador — obtenha-o via senado_listar_senadores (filtro nome). Para filiações, profissões, licenças, comissões ou cargos use senado_senador_historico (parâmetro tipo).

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoSenadorYesCódigo único do senador no sistema do Senado

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, open-world, and non-destructive behavior. The description adds valuable context by detailing the exact shape of the returned object, including nested 'mandatos' fields, and by explaining the required input's provenance. It does not discuss error cases or data freshness, but the annotation coverage lowers the burden.

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

Conciseness5/5

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

Three sentences with no filler: purpose, return shape, required parameter, and routing to an alternative. The essential information is front-loaded, and the field list is compact and useful rather than redundant.

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?

For a single-parameter, read-only tool with a rich output schema and strong annotations, the description covers everything an agent needs: what the tool returns, what input it requires, how to obtain that input, and when to choose a different sibling. Nothing material 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?

The single parameter is fully described in the schema with a clear meaning. The description adds beyond the schema by stating that codigoSenador is required and by instructing the agent how to obtain it via senado_listar_senadores, which helps correct invocation.

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 description opens with a specific verb and resource: 'Obtém o detalhe biográfico de um senador específico.' It then enumerates the returned fields and explicitly differentiates this tool from senado_senador_historico, making its scope unmistakable among many siblings.

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 clearly states when to use this tool (for biographical details) and how to obtain the required identifier via senado_listar_senadores with the 'nome' filter. It also explicitly lists which use cases should go to senado_senador_historico instead, providing both inclusion and exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_obter_votacaoDetalhar votaçãoA
Read-onlyIdempotent
Inspect

Obtém detalhes de uma votação de plenário pelo codigoVotacao (que é o codigoSessao da sessão plenária), incluindo votos nominais. Retorna o objeto da votação (placar, resultado legível + resultadoCodigo bruto, secreta) com votos[] (codigoSenador, nomeSenador, partido, uf, voto); se a sessão tiver várias votações, retorna { codigoSessao, count, votacoes }. Obtenha o codigoSessao via senado_search_votacoes antes de chamar. Atenção: este endpoint só aceita códigos de votação de plenário — códigos de senado_votacao_comissao pertencem a outro espaço de numeração e NÃO são válidos aqui (podem coincidir numericamente, mas apontam para outra votação).

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoVotacaoYesCódigo único da votação (codigoSessao da sessão plenária)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare the operation read-only and idempotent, and the description adds substantial behavioral context beyond that: it details the returned fields (placar, `resultado`, `resultadoCodigo`, `secreta`, `votos[]`) and the alternate return shape (`{ codigoSessao, count, votacoes }`) when multiple votes exist. It also highlights the non-obvious risk of numeric code collisions with commission votes.

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

Conciseness5/5

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

Every sentence earns its place: the function, the return shape, the prerequisite, and the critical warning are all present without filler or repetition. The warning is placed at the end where it is most memorable, and the structure is easy to scan.

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?

The description covers the complete call path: how to obtain the input ID, what domain the ID must come from, what return shapes to expect, and the safety profile already reinforced by annotations. With an output schema present and the description still explaining the main variations, 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 coverage is 100% and the schema already describes `codigoVotacao` as the `codigoSessao` of the plenary session, so the baseline is 3. The description adds value by stating the provenance (obtain it from `senado_search_votacoes`) and the plenary-only boundary condition, which is meaningful beyond the raw schema.

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 description states a specific action ('Obtém detalhes') on a specific resource ('votação de plenário') keyed by `codigoVotacao` and explicitly scopes it to plenary votes, including nominal votes. It also names the sibling space `senado_votacao_comissao` to prevent confusion, clearly distinguishing it from related tools.

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?

It explicitly instructs the agent to obtain `codigoSessao` via `senado_search_votacoes` before calling, and explicitly warns that codes from `senado_votacao_comissao` are invalid because they belong to a different numbering space. This provides both a when-to-use condition and an explicit exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_orcamento_parlamentarOrçamento parlamentar (emendas)A
Read-onlyIdempotent
Inspect

Emendas parlamentares ao orçamento da União, conforme tipo (padrão emendas). tipo: emendas (proposição) → { tipo, count, emendas }, cada item (lote de emendas de um autor) com autor, codigoAutor, quantidadeEmendas, anoExecucao, materia (peça orçamentária, p.ex. LOA 29/2023), tipoPl, dataOperacao e ativo. tipo: oficios (execução — indicação de destino de emendas já aprovadas) → { tipo, ano, count, total, aviso?, oficios }, cada ofício com id, autor, protocolo, dataInclusao e quantidadeEmendas; filtre pelo ano do orçamento da emenda (recomendado — a base cobre vários anos), pagine com limite/pagina, e use incluirEmendas: true para o detalhe de cada emenda (favorecido, CNPJ, órgão, nota de empenho). Nota: no modo oficios, o ofício é o documento de execução que indica o destino do recurso de uma emenda já aprovada (posterior à proposição); a data do ofício difere do ano do orçamento. Para a execução do orçamento interno do próprio Senado (despesas/receitas) use senado_execucao_orcamentaria.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno do orçamento da emenda (filtra tipo=oficios pelo ano das emendas)
tipoNoemendas (lotes de emendas propostas) ou oficios (ofícios de indicação de destino)emendas
limiteNoMáximo de ofícios por página (tipo=oficios; padrão 50)
paginaNoPágina de ofícios (tipo=oficios; padrão 1)
incluirEmendasNotipo=oficios: incluir o detalhe das emendas (favorecido, CNPJ, nota de empenho)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds important behavioral context: the difference between proposição and execution documents, the fact that the ofício date differs from the budget year, the optional `aviso?` field, and the expansion behavior of `incluirEmendas`. No contradiction with annotations.

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 dense and free of fluff, front-loading the `tipo` duality before optional details. It loses one point because it is structured as one long paragraph with nested clauses; bullet points or short labeled sections would make it easier for an agent to scan.

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?

For a two-mode tool with five parameters, the description covers mode-specific response shapes, the `ano` caveat, pagination, optional emenda details, and the sibling alternative. With annotations covering safety and an output schema present, nothing needed for correct invocation is missing.

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

Parameters5/5

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

Schema coverage is 100%, and the description still adds meaning beyond the schema: it explains why filtering by `ano` is recommended, clarifies that `limite`/`pagina` apply to the `oficios` mode, and describes what `incluirEmendas: true` adds to the response. This is practical invocation knowledge, not just schema restatement.

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 description identifies the resource (emendas parlamentares ao orçamento da União) and clearly distinguishes the two modes: `tipo: emendas` (propositions) and `tipo: oficios` (execution). It also explicitly separates this tool from `senado_execucao_orcamentaria`, so the agent can select it correctly.

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 gives explicit usage guidance: filter by `ano` because the base covers multiple years, use `limite`/`pagina` for pagination, and use `incluirEmendas: true` for detailed emendas. It also names the sibling tool that should be used for internal Senate budget execution, providing a clear when-to-use vs. alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_orientacao_bancadaOrientação de bancadaA
Read-onlyIdempotent
Inspect

Orientação de bancada nas votações de plenário: como cada liderança partidária orientou o voto, com placar — essencial para análise de disciplina partidária. Retorna { count, votacoes }, com cada votação trazendo codigoVotacao, descricao, materia, dataInicio, dataTermino, sessao, totais (totalSim, totalNao, totalAbstencao, obstrucoes), quorumInicial/quorumFinal e orientacoes (partido, voto). Informe data (um dia) ou o período dataInicio/dataFim. Para o resultado das sessões use senado_resultado_plenario.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoData da sessão (YYYYMMDD)
dataFimNoData fim do período (YYYYMMDD)
dataInicioNoData início do período (YYYYMMDD)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description does not contradict them. The description adds meaningful behavioral context beyond annotations by specifying exactly what each returned item contains, including quorum and per-party orientations, and clarifies this is a safe read-only operation.

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

Conciseness5/5

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

The description is front-loaded with its purpose and uses three dense sentences: what it returns, how to parameterize it, and which sibling to use instead. Every sentence earns its place, with no filler or redundant restatement of the tool name.

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 an output schema and annotations that already cover safety, the description leaves no critical gap. An agent knows what data will come back, how to supply the date filters, and when to route to senado_resultado_plenario instead.

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 date format and field purpose are already documented. The description adds the key semantic rule that data is for a single day while dataInicio/dataFim define a period, which is not encoded in the schema properties themselves.

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 description states the exact resource: party leadership vote orientations in plenary votes, including the resulting scoreboard. It explicitly positions the tool as essential for party discipline analysis, and the final sentence distinguishes it from senado_resultado_plenario so an agent can tell them apart.

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?

It gives explicit input guidance: pass a single day via data or a period via dataInicio/dataFim. It also names senado_resultado_plenario as the alternative for session results, providing both a when-to-use and a when-not-to-use signal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_pessoal_tabelasTabelas de gestão de pessoasA
Read-onlyIdempotent
Inspect

Tabelas de pessoal do Senado conforme o parâmetro tabela. Quantitativos agregados: pessoal (força de trabalho por classe/escolaridade), cargos-funcoes (cargos em comissão e funções de confiança), previsao-aposentadoria, senadores. Listas nominais: estagiarios (ativos), pensionistas, lotacoes (setores), cargos (nomes de cargos). Retorna { tabela, count, total, aviso?, registros[] } — registros agregados (nos quantitativos) ou nominais (nas listas), conforme a tabela, limitados por limite (padrão 100, máx 2000); count 0 e lista vazia quando a tabela não tem registros. O filtro textual opcional casa contra qualquer campo do registro. Para o cadastro nominal de servidores efetivos/comissionados use senado_servidores.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtroNoFiltro textual (nome, curso, setor...)
limiteNoMáximo de registros (padrão: 100)
tabelaYesQual tabela de pessoal consultar (quantitativo agregado ou lista nominal)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description discloses the exact return shape `{ tabela, count, total, aviso?, registros[] }`, the empty-table behavior (count 0, empty list), the limit default/max, and how filtro matches any field. It also notes the aviso field, adding valuable runtime context.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: scope, table categorization, return format, limits, edge cases, filter semantics, and alternative tool routing. It is well-structured with clear punctuation and no fluff.

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?

Despite the tool's complexity (8 table types, mixed aggregate/nominal behavior, optional filter, output schema), the description covers all necessary information: table enumeration, return structure, empty behavior, pagination limits, filter semantics, and sibling routing. An agent has everything needed to invoke it correctly.

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%, giving a baseline of 3. The description adds meaningful semantics: it explains each tabela value as either aggregate or nominal, defines what each table contains (e.g., 'cargos-funcoes' = comissão/confiança), and clarifies that filtro matches any record field—beyond the schema's generic 'Filtro textual (nome, curso, setor...)'.

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 description clearly states a specific verb and resource ('Tabelas de pessoal do Senado conforme o parâmetro tabela') and enumerates all table types with their content. It explicitly distinguishes itself from the sibling senado_servidores, making the tool's scope unambiguous.

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 gives explicit when-to-use context by separating aggregated quantitative tables from nominal lists, and provides a direct when-not/alternative instruction: 'Para o cadastro nominal de servidores efetivos/comissionados use senado_servidores.' This is clear routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_processo_detalheDetalhes do processoA
Read-onlyIdempotent
Inspect

Detalha um aspecto de processos legislativos conforme o parâmetro secao: emendas → emendas apresentadas (id, identificacao, numero, tipo, autoria, data, colegiado, descricao, decisoes (objetos com casa/data/tipo/comissao/nomeComissao), url; aceita filtro codigoParlamentarAutor); relatorias → relatorias designadas (idProcesso, processo, relator, partido, uf, tipoRelator, comissao, dataDesignacao, dataDestituicao, motivoEncerramento; aceita codigoParlamentar/codigoColegiado/dataReferencia); prazos → prazos regimentais/constitucionais (registros brutos da API; aceita dataReferencia). Todos aceitam idProcesso e/ou codigoMateria e período dataInicio/dataFim (YYYYMMDD ou ISO) — informe pelo menos um filtro. Retorna { secao, count, total, aviso?, itens }, limitado a limite (padrão 100, máx. 500). Obtenha o idProcesso via senado_search_processos; tipos de prazo via senado_tabelas_processo. Ex.: { secao: 'emendas', codigoMateria: 137999 } ou { secao: 'relatorias', codigoParlamentar: 4994, dataReferencia: '2025-06-01' }.

ParametersJSON Schema
NameRequiredDescriptionDefault
secaoYesQual aspecto detalhar: emendas, relatorias ou prazos
limiteNoMáximo de resultados (padrão: 100)
dataFimNoAté esta data (YYYYMMDD ou YYYY-MM-DD)
dataInicioNoA partir desta data (YYYYMMDD ou YYYY-MM-DD)
idProcessoNoID do processo
codigoMateriaNoCódigo legado da matéria
dataReferenciaNosecao=relatorias/prazos: vigentes nesta data (YYYYMMDD ou YYYY-MM-DD)
codigoColegiadoNosecao=relatorias: código do colegiado
codigoParlamentarNosecao=relatorias: código do parlamentar relator
codigoParlamentarAutorNosecao=emendas: código do parlamentar autor

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/openWorldHint/idempotentHint=true and destructiveHint=false, so the safety profile is fully covered. The description adds substantial behavior beyond the annotations: pagination limit (`limite` default 100/máx 500), the return envelope with optional `aviso`, acceptance of two date formats, and the mandatory-filter constraint.

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?

Long but information-dense; the core purpose is front-loaded and each `secao` mode is structured compactly with → notation. Every sentence earns its place given the 10-parameter, 3-mode complexity, though the full field enumerations could theoretically be trimmed.

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?

For a 10-parameter, 3-mode tool this is unusually complete: it specifies per-section outputs and filter applicability, the shared filter set, pagination behavior, return envelope, prerequisite sibling tools, and examples. Even with an output schema present, the description leaves no gap for an agent to select and invoke the tool correctly.

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. The description adds value beyond the schema: cross-parameter relationships (which filters apply to which `secao`), the runtime requirement of at least one filter, and concrete valid combinations via examples like `{ secao: 'emendas', codigoMateria: 137999 }`.

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?

Uses a specific verb ('Detalha') with a precise resource ('aspecto de processos legislativos') and disambiguates three sub-modes via the `secao` enum. It is clearly distinguishable from siblings like `senado_obter_processo` (full process detail) and `senado_search_processos` (search), and even routes the agent to the correct sibling for obtaining `idProcesso`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete workflow guidance: obtain `idProcesso` via `senado_search_processos` and prazo types via `senado_tabelas_processo`, plus valid example payloads per section. It clearly states the 'informe pelo menos um filtro' requirement, but does not explicitly name when-not scenarios against alternatives like `senado_obter_processo`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_remuneracoes_servidoresRemuneração de servidoresA
Read-onlyIdempotent
Inspect

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.

ParametersJSON 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Beyond the read-only/idempotent annotations, it discloses behavior: statistics run over the entire payroll, top/bottom defaults, consolidation of Normal+Suplementar lines, agruparPor forcing non-consolidation, filters applied before anything else, and idInternoFolha only for disambiguating homonyms. This is substantive behavioral context the annotations do not provide.

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

Conciseness5/5

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

The description is long but tightly organized: main purpose first, then the estatisticas branch, then the non-estatisticas modes, then filters and the sibling pointer. Each clause maps to a parameter or behavioral trait, so there is no filler.

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?

For an 11-parameter tool with a rich output schema, the description covers all major modes, defaults, limits, grouping behavior, consolidation, and error-prone edge cases (e.g., homonyms, extremes hidden by slices). Nothing an agent needs to select and invoke it correctly is missing.

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

Parameters5/5

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

Although schema coverage is 100%, the description enriches the parameters materially: it explains what estatisticas computes and returns, why consolidarPorServidor matters before statistics, that agruparPor implies non-consolidated data, and that campo's result carries a readable label in campoAnalisado. These semantics go well beyond the schema.

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 description opens with a specific resource ('Remunerações dos servidores do Senado') and scopes it by month/year from 2013, and it names the sibling tool senado_servidores for the registry, so an agent can tell which tool answers a pay question. It also distinguishes the estatisticas mode from resumo/detalhe by what each computes.

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?

It gives explicit routing rules: use estatisticas=true for 'maior/menor/média/mediana/ranking' and explains why resumo/detalhe won't find the true extreme. It also points to senado_servidores for employee registration, so when-to-use and alternatives are explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_requerimentos_cpiRequerimentos de CPIA
Read-onlyIdempotent
Inspect

Lista requerimentos de uma CPI (Comissão Parlamentar de Inquérito) em atividade, pela siglaCpi, com paginação por pagina (índice baseado em 0, definido pelo upstream). Retorna { siglaCpi, pagina, count, requerimentos }, onde requerimentos é a lista de registros brutos da página (campos conforme a API: tipicamente número, data, ementa, autor e situação do requerimento). count é o tamanho da página; uma página além do total retorna count 0 — use isso para saber que as páginas acabaram. Descubra as siglas via senado_listar_comissoes com tipo=cpi. Limitação conhecida: o endpoint upstream costuma responder vazio mesmo para CPIs em atividade, e não há fonte alternativa limpa na API; nesses casos o retorno traz count 0 e um campo aviso explicando — não interprete lista vazia como certeza de que a CPI não possui requerimentos.

ParametersJSON Schema
NameRequiredDescriptionDefault
paginaNoPágina da lista (padrão: 0)
siglaCpiYesSigla da CPI (ex: CPIVD, CPIPED)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Annotations already mark this as read-only, idempotent, and non-destructive, but the description adds crucial behavioral detail: zero-based page indexing, the exact return shape, the `count` field being page size, the page-beyond-total behavior, and the upstream endpoint's tendency to return empty with an `aviso`. This goes well beyond the structured annotations.

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

Conciseness5/5

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

The description is dense but every sentence serves a purpose: scope, pagination semantics, output shape, input discovery, and failure behavior. It is front-loaded with the core action and resource, then provides operational details without redundancy.

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 an output schema, parameter schema, and read-only annotations, the description still covers the remaining contextual gaps: pagination semantics, end-of-list detection, data source discovery, and known upstream unreliability. An agent has everything needed to invoke this tool and interpret its results confidently.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds meaningful semantics not present in the schema: `pagina` is zero-based as defined by upstream, and `count` represents page size and can be used for pagination termination. It also clarifies the `siglaCpi` values can be discovered through a related tool, enhancing the schema's simple examples.

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 description uses a specific verb ('Lista') with a precise resource ('requerimentos de uma CPI em atividade') and identifies the key parameter (`siglaCpi`). It clearly distinguishes this from other senate tools like `senado_listar_comissoes`, which is referenced only as a way to discover siglas.

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 definition states when to use the tool (to list CPI requerimentos), how to obtain valid input (`senado_listar_comissoes` with `tipo=cpi`), and how to detect the end of pagination via `count: 0`. It also warns against misinterpreting empty responses, giving explicit guidance on handling the known limitation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_resultado_plenarioResultados do plenárioA
Read-onlyIdempotent
Inspect

Resultado das sessões plenárias numa data: itens de pauta apreciados, pareceres e resultados. Retorna { data, escopo, count, sessoes } (todas as sessões da data, sem paginação), com cada sessão trazendo codigoSessao, numeroSessao, data, hora, tipo, casa e itens (codigoMateria, identificacao, ementa, resultado, parecerresultado/parecer podem vir null em itens ainda não deliberados). Sem sessão na data, count é 0 e sessoes vem vazio. escopo: sf (Senado), cn (Congresso) ou mes (resumo do mês). Para a pauta prévia use senado_agenda_plenario; orientação de bancada via senado_orientacao_bancada.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData da sessão (YYYYMMDD); para escopo=mes, qualquer dia do mês
escopoNosf = Senado no dia; cn = Congresso no dia; mes = resumo do mêssf

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

The annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the bar is lower. The description adds valuable behavioral detail beyond the annotations: all sessions are returned without pagination, resultado/parecer may be null for undeliberated items, and count is 0 with empty sessoes when no session exists. No contradiction with annotations.

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

Conciseness5/5

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

The description is compact and well-structured: core purpose first, then return shape, edge-case behavior, escopo meanings, and sibling-tool routing. Every phrase earns its place and there is no redundant filler.

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 that an output schema exists, the description covers the remaining practical context: return shape, no pagination, nullable fields, empty-response behavior, scope semantics, and alternatives. An agent has everything needed to select and invoke this tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already explains the YYYYMMDD pattern and the escopo enum/default. The description reinforces these meanings but does not add substantial new parameter semantics beyond what the schema provides, so the baseline of 3 applies.

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 description opens with a specific verb and resource: it returns plenary session results for a date, including agenda items, opinions, and outcomes. It also explicitly names sibling tools it is not (senado_agenda_plenario, senado_orientacao_bancada), so an agent can disambiguate it without opening schemas.

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?

It states the use case (plenary results for a date), explains the escopo variants, and gives explicit routing: use senado_agenda_plenario for the prior agenda and senado_orientacao_bancada for bench orientation. This is clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_resultado_vetoResultado de vetoA
Read-onlyIdempotent
Inspect

Obtém o resultado da apreciação de um veto presidencial. Retorna { codigo, tipo, resultado }, onde resultado é o objeto bruto da API (sem wrappers), com campos variáveis — tipicamente identificação do veto, situação por dispositivo (ex.: "Rejeitado"/"Mantido") e link do PDF do resultado nominal (PdfsResultadoVotacao). A API não fornece placar numérico (sim/não) aqui — o detalhamento nominal está no PDF; vem objeto vazio quando o veto ainda não foi votado e retorna erro se o codigo não existir. tipo define o que codigo representa: veto (código do veto, padrão), materia (código do projeto vetado) ou dispositivo (dispositivo de veto parcial) — as três chaves apontam para o mesmo veto. Obtenha o código via senado_vetos. Para listar vetos (não o resultado de um) use senado_vetos.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoNoDefine a chave em codigo: veto = código do veto (padrão); materia = código do projeto vetado; dispositivo = dispositivo de veto parcialveto
codigoYesCódigo do veto, da matéria vetada ou do dispositivo — qual deles depende de `tipo`

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint, openWorldHint, non-destructive), the description adds crucial edge-case behavior: empty object when the veto hasn't been voted, error when the code doesn't exist, no numeric tally available, raw unwrapped shape, and PDF link for nominal detail. This is exactly the kind of disclosure that prevents an agent from misinterpreting an empty or unexpected response.

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 dense but well-structured: purpose, return shape, critical caveats, parameter semantics, and sibling routing each earn their place. The most important gotchas (no numeric score, empty object, error) are front-loaded. It is longer than average, but the information density justifies the length.

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?

For a 2-parameter read-only tool with an output schema and strong annotations, the description covers everything needed to call it correctly: what the result looks like, edge cases, parameter semantics, and where to obtain the code. It even preempts the assumption that a numeric tally exists. No material gap remains.

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, and the description adds genuine meaning on top: the three `tipo` keys (veto, materia, dispositivo) all point to the same veto, and the prose clarifies what `codigo` represents depending on `tipo`. It reinforces the schema without merely repeating it.

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 description opens with a specific verb and resource: 'Obtém o resultado da apreciação de um veto presidencial'. It clearly distinguishes this tool from senado_vetos, which is for listing rather than retrieving a single result. The title 'Resultado de veto' aligns perfectly with the stated function.

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 gives explicit routing: 'Obtenha o código via senado_vetos' and 'Para listar vetos (não o resultado de um) use senado_vetos'. This tells the agent when to use this tool, when not to, and names the alternative. The explanation of the three `tipo` variants also clarifies which code to supply in which situation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_reuniao_comissaoDetalhar reunião de comissãoA
Read-onlyIdempotent
Inspect

Detalha uma reunião de comissão pelo codigoReuniao. Retorna um objeto com codigo, titulo, comissao, data, hora, local, situacao, realizada, secreta, tipoPresenca (presencial/semipresencial), presidente, links urlPauta/urlResultado/urlAta e partes (cada parte com evento e itens apreciados: identificacao, ementa, autoria, relatoria, resultado, codigoMateria). A API NÃO publica lista de presença da reunião (só presidente e eventuais convidados): reconstrua a presença pelos votos nominais (senado_votacao_comissao), por quem falou na transcrição (senado_notas_taquigraficas com tipo=reuniao) ou pela ata oficial (urlAta, quando publicada). Obtenha o codigoReuniao em senado_agenda_comissoes ou senado_reunioes_comissao.

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoReuniaoYesCódigo da reunião (campo 'codigo' na agenda de comissões)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses a key limitation: the API does not publish the meeting attendance list and explains how to reconstruct presence via votação, transcrição, or ata. This is valuable behavioral context not present in annotations.

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 well organized into three purposeful sentences, but the first sentence is long and partly duplicates what the output schema already describes. It is still dense and readable, with the most important caveat front-loaded in the second sentence.

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?

With one clearly documented parameter, a strong output schema, safety annotations, and explicit guidance on predecessors and fallback tools, the description covers everything an agent needs to select and invoke this tool correctly.

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

Parameters3/5

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

The input schema already documents codigoReuniao at 100% coverage, including the hint that it comes from the agenda. The description repeats the lookup source but adds no additional parameter-level meaning, so the baseline 3 is appropriate.

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 description opens with a specific verb and resource: 'Detalha uma reunião de comissão pelo codigoReuniao'. It also enumerates the returned fields, making it easy to distinguish from list/agenda siblings like senado_reunioes_comissao and senado_agenda_comissoes.

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?

It explicitly tells the agent where to get codigoReuniao (senado_agenda_comissoes or senado_reunioes_comissao) and where to reconstruct attendance data when this API cannot provide it. This is clear when-to-use and alternative-routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_reunioes_comissaoReuniões de comissãoA
Read-onlyIdempotent
Inspect

Lista reuniões de uma comissão (pela sigla) num intervalo dataInicio/dataFim (YYYYMMDD); sem datas, usa os últimos 14 dias. Atenção: o upstream devolve a agenda de TODAS as comissões do período (o filtro por sigla é local), então janelas amplas (mensais/anuais) podem estourar o limite de tamanho da resposta (erro de payload): prefira janelas de até 2 semanas e divida períodos maiores em chamadas sucessivas. Retorna { sigla, periodo, count, reunioes }, cada reunião com codigo, descricao, data, hora, local, tipo e situacao. Intervalos entre anos são divididos por ano internamente. Descubra a sigla via senado_listar_comissoes; use o codigo retornado em senado_reuniao_comissao para os detalhes da pauta.

ParametersJSON Schema
NameRequiredDescriptionDefault
siglaYesSigla da comissão
dataFimNoData fim (YYYYMMDD)
dataInicioNoData início (YYYYMMDD)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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 high-value behavior beyond those annotations: the upstream returns ALL commissions' agendas and filtering is local, large windows can trigger payload errors, intervals across years are split internally, and the exact response envelope is stated. There is no contradiction with 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.

Conciseness5/5

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

The description is dense but every sentence earns its place: core purpose, a critical upstream limitation with a workaround, response shape, and cross-references to related tools. The most actionable information is front-loaded, and the paragraph structure makes the warning visible before the user commits to a broad query.

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?

For a read-only listing tool with an output schema and read-only annotations, this description is complete. It covers input defaults, date format, the error-prone condition, output structure, and the surrounding tool workflow. An agent has everything needed to invoke it correctly and to route follow-up calls to senado_reuniao_comissao.

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

Parameters5/5

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

The schema only documents names, types, and the YYYYMMDD format, while the description adds real semantics: both date params are optional together and default to the last 14 days, the sigla filter is applied locally rather than upstream, and the recommended window size for dataInicio/dataFim is explicitly provided. This goes well beyond the baseline for a 100% schema-covered parameter set.

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 description opens with a specific verb and resource: 'Lista reuniões de uma comissão (pela sigla)' in a date interval. It clearly differentiates itself from senado_reuniao_comissao by stating that the latter is for 'detalhes da pauta', and from senado_listar_comissoes by prescribing it for discovering the sigla. No ambiguity remains about what this tool does.

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?

It gives explicit operational guidance: default behavior without dates ('sem datas, usa os últimos 14 dias'), a strong recommendation to keep windows up to 2 weeks, and how to handle larger periods by splitting into successive calls. It also names the exact sibling tools to use before and after this one, making the call workflow explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_search_processosPesquisar processosA
Read-onlyIdempotent
Inspect

Busca processos legislativos no endpoint v3 /processo (parâmetros complementares ao senado_buscar_materias). Retorna { count, total, aviso?, processos }, cada item com id, codigoMateria, identificacao, ementa, tipoDocumento, dataApresentacao, autoria (compactada: primeiros autores + total), totalAutores, tramitando (boolean) e normaGerada. É obrigatório ao menos um filtro (sigla, número, ano, autor ou período). Limitado a limite (padrão 20, máx. 200), com aviso ao truncar. Use o id retornado em senado_obter_processo para detalhes. Ex.: { sigla: 'PL', ano: 2025, dataInicioApresentacao: '2025-03-01' } (datas em YYYYMMDD ou ISO).

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno do processo
autorNoNome do autor
siglaNoSigla do tipo de processo (ex: PL, PEC)
limiteNoMáximo de resultados (padrão: 20)
numeroNoNúmero do processo
tramitandoNoEm tramitação (S/N)
dataFimApresentacaoNoData fim da apresentação (YYYYMMDD ou YYYY-MM-DD)
codigoParlamentarAutorNoCódigo do parlamentar autor
dataInicioApresentacaoNoData início da apresentação (YYYYMMDD ou YYYY-MM-DD)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark readOnlyHint=true, idempotentHint=true, destructiveHint=false, and the description adds substantial behavioral detail beyond that: mandatory at least one filter, default/max `limite` with an `aviso` when truncated, the exact response envelope and item fields, compacted `autoria`, boolean `tramitando`, and accepted date formats. No contradiction with annotations exists.

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

Conciseness5/5

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

The description is compact and well-ordered: action, return shape, constraints, limit behavior, follow-up tool, and example—each sentence carries distinct information. There is no filler or repetition of schema details, making it efficient for an agent to parse.

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?

For a 9-parameter search tool with an output schema, the description covers everything needed to invoke it correctly: the mandatory-filter rule, pagination/truncation behavior, response structure, date formats, and how to proceed to detail retrieval. Given the output schema exists, not elaborating every returned field is acceptable, yet the description still does so prominently.

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 parameters are already documented individually; the description adds key group-level semantics by stating that at least one filter (`sigla`, `numero`, `ano`, `autor`, or period) is required, which is not evident from the schema (all params optional). It also provides a concrete example combining three parameters and reinforces the date format requirement, adding real value beyond the schema.

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 description uses a specific verb and resource ('Busca processos legislativos no endpoint v3 `/processo`') and explicitly distinguishes itself from the sibling `senado_buscar_materias` by noting it offers complementary parameters. It also points to `senado_obter_processo` as the follow-up for details, making the tool's purpose unmistakable among a large sibling group.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context: this is for filtered legislative-process searches, and it explicitly directs the agent to use the returned `id` with `senado_obter_processo` for details. It also states the mandatory-filter requirement. However, it does not explicitly say when to prefer `senado_buscar_materias` over this tool, so while guidance is strong, it is not fully exhaustive on exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_search_votacoesPesquisar votaçõesA
Read-onlyIdempotent
Inspect

Busca e lista votações do plenário combinando critérios opcionais. Janela temporal: informe dias (últimos N dias, 1-365) para atividade recente, OU dataInicio/dataFim (YYYYMMDD) para um período arbitrário — para um ano inteiro use dataInicio: "AAAA0101" e dataFim: "AAAA1231". Demais filtros: idProcesso, codigoMateria, sigla/numero/ano da matéria, codigoParlamentar e siglaVotoParlamentar. Retorna { count, votacoes } ordenadas da mais recente para a mais antiga; cada item traz codigoSessao, data, materia, codigoMateria, resultado e placar (totalSim/totalNao/totalAbstencao), sem votos nominais. Use senado_obter_votacao com o codigoSessao para os votos de cada senador.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno da matéria
diasNoJanela: votações dos últimos N dias (ignorado se dataInicio/dataFim forem informados)
siglaNoSigla do tipo de matéria
numeroNoNúmero da matéria
dataFimNoData fim (YYYYMMDD)
dataInicioNoData início (YYYYMMDD)
idProcessoNoID do processo legislativo
codigoMateriaNoCódigo da matéria
codigoParlamentarNoCódigo do parlamentar
siglaVotoParlamentarNoTipo de voto do parlamentar

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint), the description reveals the return shape ({ count, votacoes }), ordering (most recent first), the absence of nominal votes, and the precedence rule that 'dias' is ignored when date range is provided. No contradiction with annotations.

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

Conciseness5/5

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

Five dense sentences carry the purpose, time-window rules, other filters, return format, and a cross-reference. It is front-loaded with the main purpose and contains no filler.

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?

For a tool with 10 optional parameters and a rich output schema, the description covers all necessary invocation knowledge: filter combinations, date formats and precedence, ordering, returned fields, and the companion tool for detailed votes. The existence of an output schema reduces the need to spell out return values, yet it still does.

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 baseline is 3. The description adds context by grouping matter filters (sigla/numero/ano), explaining the OR relationship between time-window parameters, and giving a concrete annual date example.

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 description opens with a specific verb and resource: 'Busca e lista votações do plenário' (searches and lists plenary votes), which clearly distinguishes it from sibling committee or senator vote tools. It also names senado_obter_votacao as the detail counterpart, reinforcing the scope of this list tool.

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?

It explicitly details the mutually exclusive time-window options ('dias' vs 'dataInicio'/'dataFim') and even provides a full-year example. It routes the agent to senado_obter_votacao when per-senator votes are needed and notes that nominal votes are not returned here.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_senadores_adminSenadores (dados administrativos)A
Read-onlyIdempotent
Inspect

Dados administrativos dos senadores conforme o parâmetro tipo: auxilio-moradia{ tipo, count, senadores } (nome, uf, partido, auxilioMoradia, imovelFuncional; legislatura atual). escritorios-apoio{ tipo, count, escritorios } (senador, uf, partido, setor, endereco, telefone). aposentados{ tipo, count, aposentados } ex-senadores aposentados pelos planos de previdência do Congresso (IPC e PSSC), com nome, tipo do plano, dataInicial, remuneracao. Filtros opcionais uf e nome (busca parcial) aplicam-se a auxilio-moradia e escritorios-apoio; nome também filtra aposentados. Cada tipo retorna count 0 e lista vazia quando não há registros. Para gastos de cota parlamentar use senado_ceaps. Ex.: { tipo: 'auxilio-moradia', uf: 'SP' } ou { tipo: 'aposentados' }.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoFiltrar por estado (auxilio-moradia/escritorios-apoio)
nomeNoFiltrar por nome do senador (busca parcial)
tipoYesQual dado administrativo consultar

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Beyond the read-only/idempotent/non-destructive annotations, the description reveals behavior such as returning `count: 0` with an empty list when no records exist, partial-name matching, and the exact result fields for each `tipo`. It also notes the 'legislatura atual' scope for auxilio-moradia, which is not visible from annotations or schema alone.

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

Conciseness5/5

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

The description is dense but every clause carries necessary information: output schemas per type, filter applicability, empty-result behavior, the CEAPS caveat, and examples. Code-formatted enums and output fields keep it scannable despite being long.

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?

For a three-mode tool with one required enum parameter, the description is fully complete: it covers all modes, all optional filters and their limitations, empty-result behavior, the relevant sibling tool, and example inputs. Nothing needed for correct invocation is missing.

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

Parameters5/5

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

Although the input schema already documents all three parameters, the description adds substantial meaning by mapping each `tipo` enum value to a distinct output shape and explaining which filters apply to which variant. It also clarifies `nome` as partial search and provides concrete examples, going well beyond the schema's baseline descriptions.

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 description opens with a specific resource ('Dados administrativos dos senadores') and a controlling `tipo` parameter, then enumerates each of the three modes with concrete return shapes. It explicitly distinguishes itself from `senado_ceaps`, so an agent can tell which administrative data this tool provides versus expense data.

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?

It states exactly when each `tipo` value applies and which optional filters (`uf`, `nome`) work with which subtypes. It also gives an explicit alternative condition: 'Para gastos de cota parlamentar use `senado_ceaps`.' Examples are included, showing realistic call shapes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_senadores_afastadosSenadores afastadosA
Read-onlyIdempotent
Inspect

Lista os senadores atualmente afastados (fora de exercício). Retorna { count, senadores }, cada item com codigo, nome, nomeCompleto, partido, uf, foto e emExercicio (sempre false). Não requer parâmetros. Atenção: é a lista BRUTA do upstream, sem recorte de legislatura — pode conter registros históricos (ex.: senadores falecidos) e inconsistências pontuais com o detalhe do parlamentar; também não traz o vínculo titular↔suplente (para saber quem assumiu a vaga, consulte os mandatos em senado_obter_senador). Use codigo em senado_obter_senador para o detalhe; para os senadores em exercício (e busca por nome) use senado_listar_senadores.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive behavior, and the description adds meaningful context: the list is raw upstream data, may include historical records like deceased senators, may have inconsistencies with parliamentary details, and does not include titular↔suplente linkage. This goes beyond the annotations and does not contradict them.

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

Conciseness5/5

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

The description is dense but efficient: purpose, return shape, parameter requirement, caveats, and routing are each covered in compact sentences. Every clause adds value and nothing is redundant.

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?

For a zero-parameter, read-only list tool with an output schema, the description covers everything needed: result structure, data-quality caveats, and explicit alternatives. An agent can confidently select and invoke this tool without additional context.

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?

There are zero parameters and the description explicitly states 'Não requer parâmetros.' Since the input schema already documents this with an empty properties object, the baseline of 4 applies; there is no parameter detail left to explain.

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 description uses a specific verb ('Lista') and resource ('senadores atualmente afastados'), making the tool's purpose immediately clear. It also distinguishes itself from siblings by explicitly pointing to `senado_listar_senadores` for active senators and `senado_obter_senador` for detail.

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 gives explicit routing: use this tool for afastados, `senado_listar_senadores` for em exercício/name search, and `senado_obter_senador` for detail and mandatos to identify substitutes. It also warns about the raw upstream scope and lack of legislature filtering.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_senador_historicoHistórico do senadorA
Read-onlyIdempotent
Inspect

Histórico funcional de um senador conforme o parâmetro tipo. Valores: licencas (itens com dataInicio/dataFim/descricao), comissoes (sigla/nome/casa/participacao/datas), cargos (comissao/cargo/datas), historico-academico (cursos, registros brutos da API), filiacoes (partido/nomePartido/dataFiliacao/dataDesfiliacao) e profissoes (nome). Retorna { codigoSenador, tipo, count, itens }, com a forma de cada item dependente do tipo; tipos sem registros para o senador retornam count 0 e itens vazio. Requer codigoSenador (obtenha via senado_listar_senadores). Para dados biográficos e mandatos use senado_obter_senador. Ex.: { codigoSenador: 4994, tipo: 'filiacoes' } → histórico de partidos do senador.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoYesQual histórico consultar
codigoSenadorYesCódigo único do senador

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent, and non-destructive hints, so the safety bar is lowered. The description adds substantial behavioral context: the exact return envelope { codigoSenador, tipo, count, itens }, item shapes varying by tipo, and the empty-result behavior (count 0 and empty itens). This gives the agent a reliable mental model of edge cases.

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 longer than average, but every sentence earns its place: definition, enum semantics, return shape, empty behavior, required parameter sourcing, sibling differentiation, and an example. The purpose is front-loaded, and the structure is logical. Slightly verbose due to exhaustive enum enumeration, but justified.

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 two required parameters, an output schema, and a complex multi-type behavior, the description covers everything an agent needs: how to obtain the input, what each tipo returns, the response envelope, the empty case, and the alternative tool for other data. There is no missing piece for correct invocation.

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. The description goes further by explaining the semantic meaning of each tipo enum value with concrete item fields, and provides a complete example mapping codigoSenador and tipo to a real use case. This adds value beyond the schema's bare 'Qual histórico consultar'.

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 description states a specific verb and resource: 'Histórico funcional de um senador conforme o parâmetro tipo'. It enumerates all six possible values with their item shapes, and explicitly differentiates itself from senado_obter_senador for biographical/mandate data. An agent can immediately understand what this tool does and what it is not for.

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 gives explicit when-to-use guidance: use this for functional history (licenças, comissões, cargos, etc.), and use senado_obter_senador for biographical data and mandates. It also tells the agent how to get the required codigoSenador via senado_listar_senadores. This routes the agent correctly among the many siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_servidoresServidores do SenadoA
Read-onlyIdempotent
Inspect

Lista servidores do Senado por situacao (ativos, efetivos, comissionados ou inativos), com filtros opcionais por nome, lotacao e cargo. Retorna { situacao, count, total, servidores[] }, cada item com nome, vinculo, situacao, cargo, funcao, lotacao, anoAdmissao etc. Aplica limite (padrão 50, máx 500) e inclui aviso quando há truncamento — refine os filtros. Também conta e lista TODOS os servidores de TODA a estrutura subordinada a uma diretoria/secretaria (não só a lotação direta), cruzando a lotação de cada servidor com o organograma até o nível de serviço: informe a unidade (sigla ou nome, ex.: 'DGER') em subordinadasA — use isso para 'quantas pessoas estão sob a Diretoria-Geral', pois filtrar lotacao pela sigla-mãe retorna 0 (os servidores ficam em serviços/núcleos subordinados). Nesse modo o retorno traz a unidade resolvida, o total (um piso), os servidores, as unidades não reconhecidas no organograma (naoClassificados, com nota explicativa) e os afastados/em trânsito (afastadosOuEmTransito); ao responder, verbalize esses conceitos em português corrente — não cite nomes de parâmetros ou campos. Para o organograma em si use senado_estrutura_organizacional; para remuneração use senado_remuneracoes_servidores.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeNoNome do servidor (busca parcial)
cargoNoCargo (busca parcial)
limiteNoMáximo de resultados (padrão: 50)
lotacaoNoLotação/setor imediato (busca parcial, ex: SEGRAF). Para toda a estrutura subordinada a uma diretoria/secretaria, use `subordinadasA`.
situacaoNoQual lista consultar (padrão: ativos)ativos
subordinadasANoSigla ou nome de uma unidade (ex.: 'DGER', 'Diretoria-Geral'): conta/lista servidores de TODA a estrutura subordinada a ela (organograma até o nível de serviço), não só a lotação direta.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Annotations already mark it read-only, idempotent, and non-destructive. The description adds substantial behavioral detail beyond that: truncation triggers an aviso, subordinadasA resolves the unit and returns a floor total, unrecognized units appear in naoClassificados, and absent/transit employees are reported separately. No contradiction with annotations.

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

Conciseness5/5

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

The description is long but information-dense; every sentence adds a distinct operational fact. It is front-loaded with the core list behavior and return shape, then expands into edge cases and cross-tool references. No filler is present.

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 six parameters, two distinct query modes, and several edge cases, the description is remarkably complete. It covers return shape, limits, truncation, subordinate traversal, unrecognized units, absent employees, and alternative tools. The output schema and annotations cover the remaining safety and return details.

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

Parameters5/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 goes well beyond schema names. It explains partial-search semantics, the default/maximum limite, the distinction between lotacao and subordinadasA, and gives a concrete example ('DGER') with expected behavior.

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 description opens with a specific verb and resource: 'Lista servidores do Senado' and immediately scopes the operation by situacao, with optional filters by nome, lotacao, and cargo. It also differentiates the tool from nearby siblings by explicitly naming when to use senado_estrutura_organizacional and senado_remuneracoes_servidores instead.

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?

It gives explicit usage context, including when to use the subordinadasA mode ('quantas pessoas estão sob a Diretoria-Geral') and warns that filtering lotacao by the parent acronym returns 0. It also states clear alternatives for organizational structure and compensation lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_suprimento_fundosSuprimento de fundosA
Read-onlyIdempotent
Inspect

Suprimento de fundos do Senado (adiantamentos a supridos): relação anual de supridos, atos de concessão, empenhos, movimentações ou transações de cartão corporativo, conforme tipo. Retorna { ano, tipo, count, total, registros } (snake_case da API administrativa), filtrável por filtro textual e limitado por limite (padrão 100, máx 500); ao truncar, inclui aviso. Para maior/menor/média/mediana/distribuição/ranking ('quem mais recebeu', 'fornecedor com maior gasto', 'valor mediano') use estatisticas=true (só nos tipos transacoes, empenhos, atos-concessao — os demais não têm coluna de valor): SEM agruparPor = distribuição das linhas (min/máx/média/mediana/percentis) + top/bottom; COM agruparPor = grupos ranqueados por soma decrescente (grupos[0]=maior). A coluna de valor analisada é escolhida automaticamente conforme o tipo; o resultado já traz o rótulo legível dela em campoAnalisado. Registros sem valor são excluídos das estatísticas. Em atos de concessão, cada beneficiário é identificado pelo NOME (cruzado com o cadastro de supridos) e pode-se usar agruparPor='suprido' para ranquear por beneficiário. Informe o ano (>=2010); use os mesmos códigos administrativos vistos em senado_contratacoes_lista ou senado_execucao_orcamentaria para cruzar gastos.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoYesAno de referência
tipoNoQual relação consultar (padrão: supridos)supridos
topNNoTamanho do top/bottom nas estatísticas (padrão: 10)
campoNoOpcional: força a coluna de valor analisada; por padrão ela é escolhida conforme o tipo. Se a opção não se aplicar ao tipo, o padrão é usado automaticamente.
filtroNoFiltro textual (nome, unidade...)
limiteNoMáximo de resultados (padrão: 100)
agruparPorNoOpcional: agrupa e ranqueia os resultados por esta dimensão (as opções válidas dependem do tipo; em atos de concessão, `suprido` agrupa por beneficiário, com o nome).
estatisticasNoDistribuição/ranking sobre as linhas: min/máx/média/mediana/percentis + top/bottom, ou grupos ranqueados por soma via agruparPor. Só para tipo transacoes/empenhos/atos-concessao

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Despite annotations already marking this as read-only and idempotent, the description adds important runtime behavior: response shape, truncation `aviso`, exclusion of valueless records from stats, automatic value-column selection with `campoAnalisado`, and the semantic difference between stats with and without `agruparPor`. This far exceeds what the annotations supply.

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 dense but largely efficient; it front-loads purpose and return structure before diving into statistics behavior. The long one-paragraph, semicolon-heavy layout could be clearer with subheadings or bullets, which keeps it from a perfect 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?

For a tool with 8 parameters, 3 enums, and conditional statistics behavior, the description covers every parameter's role, defines limits/defaults, lists type-specific restrictions, and even explains beneficiary naming in concessão data. An agent has enough information to call it correctly without additional research.

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

Parameters5/5

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

Schema coverage is 100%, yet the description goes beyond simple enumeration: it explains how `estatisticas` interacts with `agruparPor`, which value column applies to which `tipo`, the `campo` fallback, and that `agruparPor='suprido'` works on beneficiary names in atos-concessao data. This is substantial added meaning beyond the JSON Schema.

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 description opens with a specific verb and resource: annual data on Senate fund supplies (adiantamentos a supridos), enumerating the exact relations available via `tipo`. It also names related spending tools for cross-referencing, so an agent can distinguish this from other financial siblings like `senado_execucao_orcamentaria` or `senado_ceaps`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: require `ano`, choose among relation types, and use `estatisticas=true` for analytical queries, with explicit type restrictions. It does not explicitly state when to prefer a sibling alternative over this tool, but it does point to `senado_contratacoes_lista` and `senado_execucao_orcamentaria` for cross-referencing codes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_tabelas_plenarioTabelas de referência do plenárioA
Read-onlyIdempotent
Inspect

Consulta tabelas de referência do plenário para resolver códigos/domínios, conforme tabela: tipos-sessao (espécies de sessão plenária), tipos-comparecimento (situações de presença) ou legislaturas (períodos legislativos com datas). Retorna { tabela, count, total, linhas }count é o nº após o corte por limite e total o disponível; count < total indica truncagem (aumente limite); count 0 quando o filtro não casa. Cada linha traz o código/sigla e a descrição do domínio (campos conforme a API). Use para interpretar campos como tipo de senado_agenda_plenario/senado_resultado_plenario. Para tabelas do processo legislativo (assuntos, classes, situações) use senado_tabelas_processo. Ex.: { tabela: 'legislaturas' } ou { tabela: 'tipos-sessao', filtro: 'deliberativa' }.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtroNoBusca textual sobre qualquer campo da linha; count 0 se nada casar
limiteNoMáximo de linhas (padrão 100, máx 500); count < total sinaliza corte
tabelaYesDomínio a consultar: tipos-sessao (espécies de sessão); tipos-comparecimento (situações de presença); legislaturas (períodos com datas)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive. The description adds meaningful behavior beyond that: the exact response shape, truncation semantics with 'count < total' meaning data was cut off, and that 'count 0' signals no match. This is useful, non-obvious behavior that an agent needs to interpret results correctly.

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

Conciseness5/5

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

The description is dense but organized: purpose first, then table enumeration, response semantics, usage guidance, alternative tool, and examples. Every sentence contributes distinct information and nothing is redundant with the schema or annotations.

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?

Complete for this tool's complexity: it covers purpose, all domain options, response shape, truncation/filter edge cases, usage context, alternative tools, and examples. Since an output schema exists, the lack of detailed field-level return documentation is acceptable.

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?

The schema already has 100% parameter description coverage, so the baseline is 3. The description goes further by tying 'limite' to truncation detection, clarifying what a zero 'count' means for 'filtro', expanding the meaning of each 'tabela' value, and providing sample invocations showing valid combinations. That is practical guidance beyond the raw schema.

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 description opens with a clear verb and resource: 'Consulta tabelas de referência do plenário para resolver códigos/domínios'. It then enumerates the exact tables allowed and explicitly differentiates this tool from senado_tabelas_processo, so an agent can distinguish it from related lookup 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?

It gives explicit usage context: use this tool to interpret fields like 'tipo' in senado_agenda_plenario/senado_resultado_plenario. It also states the exclusions and alternative: 'Para tabelas do processo legislativo ... use senado_tabelas_processo'. Concrete examples further guide selection and invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_tabelas_processoTabelas de referência de processosA
Read-onlyIdempotent
Inspect

Consulta tabelas de referência do processo legislativo para resolver códigos/siglas, conforme tabela. Domínios de entidade: siglas (siglas de proposição), assuntos, classes, destinos, entes. Domínios de tipo (código→descrição): tipos-situacao, tipos-decisao, tipos-autor, tipos-atualizacao, tipos-documento, tipos-conteudo-documento, tipos-prazo. Retorna { tabela, count, total, linhas }count é o nº após o corte por limite e total o disponível; count < total indica truncagem (aumente limite); count 0 quando o filtro não casa. Cada linha traz código/sigla e descrição (campos conforme a API). Use antes de filtrar em senado_search_processos/senado_processo_detalhe. Para as tabelas do plenário (tipos de sessão, legislaturas) use senado_tabelas_plenario. Ex.: { tabela: 'tipos-prazo' } ou { tabela: 'siglas', filtro: 'PEC' }.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtroNoBusca textual sobre sigla/descrição; count 0 se nada casar
limiteNoMáximo de linhas (padrão 200, máx 1000); count < total sinaliza corte
tabelaYesTabela a consultar — entidades (siglas, assuntos, classes, destinos, entes) ou tipos (tipos-situacao, tipos-decisao, tipos-autor, tipos-atualizacao, tipos-documento, tipos-conteudo-documento, tipos-prazo)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark the operation as read-only, idempotent, and non-destructive, and the description adds valuable runtime behavior beyond that: it explains the return shape (`{ tabela, count, total, linhas }`), the truncation semantics (`count < total` means results were cut off by `limite`), and the behavior when `filtro` matches nothing. This is exactly the kind of behavioral context that helps an agent interpret results correctly.

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

Conciseness5/5

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

The description is dense but well-structured: purpose, domain lists, return semantics, usage timing, alternatives, and examples all earn their place. It front-loads the core action and follows with supporting detail in a logical order. The repeated enum values are acceptable because the description adds grouping and semantics not present in the schema.

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?

For a table-lookup tool with three parameters, an output schema, and a well-covered input schema, the description is complete: it lists all valid table domains, explains filter and limit behavior, describes the return envelope, gives usage context, and even names the sibling tool for plenary tables. An agent has everything needed to select and invoke the tool correctly.

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?

The input schema already documents all three parameters at 100% coverage, so the baseline is 3. The description adds meaningful semantic grouping beyond the schema by distinguishing entity domains from type domains and providing concrete examples such as `{ tabela: 'tipos-prazo' }` and `{ tabela: 'siglas', filtro: 'PEC' }`. It also ties `limite` and `filtro` to the count/total return semantics, which is useful but partly redundant with the schema text.

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

Purpose4/5

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

The description opens with a specific verb and resource: 'Consulta tabelas de referência do processo legislativo para resolver códigos/siglas'. It also clarifies the two domain categories (entity tables vs. type tables) and explicitly separates itself from `senado_tabelas_plenario`. However, it does not differentiate itself from the similarly named sibling `senado_tabelas_referencia`, which leaves some ambiguity about which reference-table tool to choose.

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 explicitly says to use this tool before filtering in `senado_search_processos`/`senado_processo_detalhe`, and it gives a clear when-not-to-use directive: plenary tables belong to `senado_tabelas_plenario`. This gives an agent concrete routing guidance rather than leaving it to infer the intended context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_tabelas_referenciaTabelas de referênciaA
Read-onlyIdempotent
Inspect

Consulta tabelas de referência do Senado pelo parâmetro tabela. Valores: tipos-materia{ count, tipos } (sigla/nome/descricao dos tipos de proposição, p.ex. PEC, PL, MPV) — catálogo curado mantido neste servidor (12 tipos mais comuns, não é a lista viva do upstream processo/siglas, que tem ~184 siglas); use para achar a sigla correta antes de senado_buscar_materias/senado_search_processos; partidos{ count, totalSenadores, partidos } (partidos com bancada atual, ordenados por nº de senadores); ufs{ count, totalSenadores, ufs } (as 27 UFs com a contagem de senadores em exercício); legislatura-atual{ numero, periodo, dataInicio, dataFim } da legislatura vigente; tipos-norma{ count, tipos } (sigla/descricao dos tipos de norma para senado_buscar_legislacao); tipos-uso-palavra{ count, tipos } (codigo/descricao para interpretar tipoUsoPalavra em senado_discursos_senador). Toda resposta inclui o campo tabela. Para a relação nominal de parlamentares use senado_listar_senadores.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabelaYesQual tabela de referência consultar: tipos-materia, partidos, ufs, legislatura-atual, tipos-norma ou tipos-uso-palavra

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds meaningful behavioral context: it is a curated cache ('catálogo curado mantido neste servidor') with only 12 common tipos versus the upstream ~184 siglas, notes that every response includes the `tabela` field, and discloses ordering for partidos.

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

Conciseness5/5

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

Although the description is long, every segment is load-bearing: each of the six options receives one compact line combining output shape, semantics, and usage. It is front-loaded with the core definition and uses bolded enum keys and em-dashes for scannability. No wasted sentences.

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?

Covers every enum value, all output shapes, relevant sibling routing, and a critical caveat about the curated nature of the data. With an output schema present and a single required parameter, nothing an agent needs to select and invoke the tool correctly is missing.

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

Parameters5/5

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

Schema coverage is 100%, so baseline is 3, but the description substantially enriches the lone `tabela` parameter by explaining each enum value's output shape, purpose, and downstream consumer tool. This goes well beyond the schema's single-line enum description.

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?

Specific verb 'Consulta' + resource 'tabelas de referência do Senado' via parameter `tabela`, with all six enum values enumerated and their return shapes spelled out. It distinguishes itself from search tools by naming them (senado_buscar_materias, senado_search_processos, senado_buscar_legislacao, senado_discursos_senador).

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 tells when to use which value: 'use para achar a sigla correta antes de senado_buscar_materias/senado_search_processos', maps tipos-norma to senado_buscar_legislacao, and tipos-uso-palavra to interpreting senado_discursos_senador. It also routes nominal parliamentary lists to senado_listar_senadores.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_terceirizadosTerceirizadosA
Read-onlyIdempotent
Inspect

Lista colaboradores terceirizados do Senado, filtráveis (busca parcial, sem acento) por nome, empresa contratada ou lotação. Retorna { count, total, terceirizados }, cada item com nome, cpf, situacao, empresa, lotacao e numeroContrato. A lista completa é baixada e filtrada no Worker; resultados limitados a limite (padrão 50, máx 500), com aviso ao truncar. Para a empresa contratante e seus contratos, use senado_empresas_contratadas.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeNoNome do colaborador (busca parcial)
limiteNoMáximo de resultados (padrão: 50)
empresaNoNome da empresa contratada (busca parcial)
lotacaoNoLotação/setor (busca parcial)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses important runtime behavior: the full list is downloaded and filtered in the Worker, results are truncated to limite (default 50, max 500), and an aviso is returned on truncation. It also documents the exact return shape, adding real value beyond annotations.

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

Conciseness5/5

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

Three focused sentences deliver the tool's purpose, filter mechanics, return format, limits, truncation behavior, and a routing pointer to the relevant sibling. Everything earns its place and the most important information is front-loaded.

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 the output schema already exists, the description still adds the key behavioral guarantee (Worker-side filtering), the truncation warning, field-level return details, and a cross-reference for related data. Nothing critical is missing for an agent to select and invoke this tool correctly.

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. The description adds useful semantics by stating that searches are partial and accent-insensitive, and by clarifying that parameters map to filters on the returned fields. It does not fully re-explain each parameter but provides enough extra context to justify a 4.

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 description uses a specific verb and resource: 'Lista colaboradores terceirizados do Senado' and clearly states the filtering dimensions (nome, empresa, lotação). It also differentiates itself from the sibling senado_empresas_contratadas, so there is no ambiguity about what this tool returns.

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?

It explicitly explains that results can be filtered by partial search without accents and are limited to a configurable limite. It also names the alternative tool for company/contract data, telling the agent when to use a different sibling instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_vetosVetos presidenciaisA
Read-onlyIdempotent
Inspect

Lista vetos presidenciais em apreciação pelo Congresso Nacional, por ano ou por status de tramitação. Retorna { count, total, aviso?, vetos }, com cada veto trazendo codigo, identificacao, ementa, emTramitacao, materiaVetada, tipo (total/parcial), assunto e dataLimiteVotacao (prazo de sobrestamento de pauta). limite controla o corte (padrão 100; aviso indica truncagem). Informe ano OU status (tramitando/antes-rcn/encerrados). Para o resultado da votação de um veto use senado_resultado_veto.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoVetos do ano informado
limiteNoMáximo de resultados (padrão: 100)
statusNotramitando = pós-RCN 1/2013 em tramitação (padrão); antes-rcn = anteriores à RCN; encerrados = tramitação encerrada

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark the tool as read-only/idempotent, and the description adds concrete behavioral details: the exact response envelope, truncation signaling via 'aviso', default limit of 100, meaning of 'dataLimiteVotacao', and status category semantics. This makes the tool's runtime behavior clear 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.

Conciseness5/5

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

The description is dense but compact: purpose, response shape, parameter guidance, and sibling routing each get one sentence, front-loaded in order of importance. No filler or repetition of schema details beyond what is needed for safe invocation.

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?

It is complete for a read-only lookup with zero required parameters: it documents the response envelope, per-item fields, default and cap for 'limite', status options, and the related vote-result tool. Even with the output schema present, the description leaves no significant calling ambiguity.

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?

The input schema already covers all three parameters at 100%, so 3 is the baseline. The description adds value by imposing the ano-OR-status relationship, clarifying that 'limite' controls truncation and that 'aviso' signals it, and expanding status meanings with the RCN reference.

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 description opens with a specific verb ('Lista'), resource ('vetos presidenciais em apreciação pelo Congresso Nacional'), and the two supported query dimensions (ano/status). It also routes the related but distinct vote-result lookup to sibling senado_resultado_veto, preventing confusion.

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?

It explicitly states to provide 'ano OU status', enumerates the valid status values, and explains the default behavior. The final sentence gives an explicit when-not-to-use pointer to senado_resultado_veto for vote-result lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_videos_taquigrafiaVídeos da taquigrafiaA
Read-onlyIdempotent
Inspect

Lista os vídeos e áudios (unidades descritivas) de uma sessão plenária ou reunião de comissão. Retorna { id, tipo, count, total, aviso?, videos } (sessão sem mídia no acervo → count/total 0 com aviso; ao passar de limite inclui aviso). A cobertura de mídia é mais ampla que a das notas: sessões conjuntas do Congresso costumam ter vídeos mesmo sem transcrição, cada item com codigo, data, descricao, orador, duracaoSegundos e os links urlVideo, urlAudio, urlThumbnail. Obtenha o id via senado_agenda_plenario/senado_resultado_plenario (sessão) ou senado_reuniao_comissao (reunião). Para a transcrição textual correspondente use senado_notas_taquigraficas, não esta.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCódigo da sessão plenária ou da reunião de comissão, conforme `tipo`
tipoNosessao = plenário (padrão); reuniao = comissãosessao
limiteNoMáximo de unidades (padrão 50, máx 200); o excedente é sinalizado em aviso
oradorNoRetorna só unidades cujo orador contém este nome (busca parcial)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior, lowering the burden. The description still goes beyond them by disclosing edge cases: no-media sessions return count/total 0 with aviso, exceeding limite includes aviso, and each item exposes fields like codigo, duracaoSegundos, urlVideo, urlAudio, and urlThumbnail. This makes expected response variants clear.

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

Conciseness5/5

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

The description is dense but efficient: purpose and return shape appear first, followed by edge cases, item structure, id sourcing, and the sibling alternative. Every sentence earns its place and there is no filler or repetition of annotation booleans.

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?

With an output schema present and annotations covering the safety profile, the description is fully sufficient: it explains where ids come from, what items contain, what happens on empty or over-limit responses, and which sibling handles transcription. An agent can choose and invoke this tool correctly without additional clues.

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 and heavy schema compensation is not required. The description adds meaningful semantics for the id parameter by naming the exact upstream tools that produce it per tipo, and it clarifies that media coverage is broader than notes coverage. It adds little beyond the schema for orador or limite, but the schema already documents those.

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 description opens with a specific verb and resource: it lists videos and audios ('unidades descritivas') of a plenary session or committee meeting. It names the returned shape and explicitly contrasts itself with senado_notas_taquigraficas, so an agent can distinguish it from the many senado_* siblings.

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?

It gives explicit context: obtain the id via senado_agenda_plenario/senado_resultado_plenario for sessions or senado_reuniao_comissao for meetings, and for the corresponding text transcription use senado_notas_taquigraficas, 'não esta'. The when/where and the alternative tool are both stated directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_votacao_comissaoVotações em comissãoA
Read-onlyIdempotent
Inspect

Lista votações em comissões. O parâmetro por (padrão comissao) define o eixo da consulta: por: comissao → exige siglaComissao; lista as votações daquela comissão. por: senador → exige codigoSenador; lista os votos do senador em comissões (filtro opcional comissao). por: materia → exige sigla, numero e ano (ex.: PL 2630/2020); lista as votações da proposição em comissões (filtro opcional comissao). Em todos os casos aceita período opcional dataInicio/dataFim (YYYYMMDD, filtrado pela data da reunião) e retorna { por, ...contexto, count, votacoes }, cada votação com codigo, data, comissao, reuniao, materia, descricao, totais computados dos votos (totalSim/totalNao/totalAbstencao) e votos (senador, partido, voto). Sem paginação. Períodos amplos podem estourar o tempo-limite da consulta (erro de timeout): prefira janelas de até 3 meses e divida períodos maiores em chamadas sucessivas. Obtenha siglas via senado_listar_comissoes, codigoSenador via senado_listar_senadores; para votações no plenário use senado_votos_materia. Atenção: o codigo de cada votação de comissão pertence a um espaço de numeração próprio e NÃO é válido em senado_obter_votacao (que é exclusivo de plenário) — podem coincidir numericamente, mas apontam para votações diferentes.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno da proposição (obrigatório quando por=materia)
porNoEixo da consulta: comissao, senador ou materiacomissao
siglaNoSigla do tipo da proposição (obrigatório quando por=materia; ex: PL, PEC)
numeroNoNúmero da proposição (obrigatório quando por=materia)
dataFimNoData fim (YYYYMMDD)
comissaoNoSigla da comissão para filtrar (por=senador ou por=materia)
dataInicioNoData início (YYYYMMDD)
codigoSenadorNoCódigo do senador (obrigatório quando por=senador)
siglaComissaoNoSigla da comissão (obrigatório quando por=comissao; ex: CCJ, CAE)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Annotations already mark this as read-only/idempotent, and the description adds important behavioral context: no pagination, timeout risk on broad periods, recommended 3-month windows, and that returned committee vote codes belong to a separate numbering space. It also describes the response envelope and computed vote totals.

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

Conciseness5/5

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

The paragraph is dense but every sentence carries needed information for a 9-parameter, three-mode tool. The main action and the primary mode are front-loaded, and caveats like timeout and invalid code namespace are placed at the end without bloating the core instructions.

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 the high parameter count, three mutually exclusive modes, and output schema, the description covers required parameters, response structure, filtering, identifiers, and failure/limitation behavior. Nothing essential for correct invocation is missing.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds significant conditional logic: which parameters are required for each `por` value, the optional `comissao` filter for two modes, the default `por` value, date format, and a concrete example (PL 2630/2020). This goes well beyond the schema's per-field descriptions.

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 exactly what the tool lists (committee votes), then the `por` parameter disambiguates three concrete query axes. It also distinguishes itself from plenary-vote tools by warning that committee vote codes are not valid in `senado_obter_votacao`.

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 gives explicit mode-dependent rules, names the related tools for getting required identifiers (`senado_listar_comissoes`, `senado_listar_senadores`), and directs plenary vote queries to `senado_votos_materia`. It even states when not to use the code with `senado_obter_votacao`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_votacoes_senadorVotações de um senadorA
Read-onlyIdempotent
Inspect

Lista as votações nominais de um senador, mostrando como votou em cada matéria. Retorna { periodo, count, votos }, cada voto com codigoVotacao, data, materia, descricao, voto e resultado, ordenados da mais recente para a mais antiga. Sem período usa o ano corrente; informe ano ou o par dataInicio/dataFim (YYYYMMDD). Requer codigoSenador (obtenha via senado_listar_senadores); para detalhes de uma votação específica use senado_obter_votacao.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno das votações
dataFimNoData fim (YYYYMMDD)
dataInicioNoData início (YYYYMMDD)
codigoSenadorYesCódigo único do senador

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, and the description adds helpful behavioral specifics: output shape {periodo, count, votos}, field list, chronological order, and default to the current year. No contradictions with annotations.

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

Conciseness5/5

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

Three dense sentences: purpose, return shape/ordering, and usage rules. The main action is front-loaded, and no sentence is redundant.

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?

With an output schema present, return values are already covered, and the description still adds ordering, defaults, and cross-tool references. For a list tool with strong annotations, nothing needed 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.

Parameters5/5

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

Schema coverage is 100%, and the description enriches it by explaining the mutual exclusivity of ano vs dataInicio/dataFim, the YYYYMMDD format, the default current-year behavior, and the origin of codigoSenador. This significantly exceeds the schema's bare parameter labels.

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 description opens with 'Lista as votações nominais de um senador, mostrando como votou em cada matéria', which specifies the exact action and resource, and differentiates from senado_obter_votacao. The scope is unambiguous.

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?

It explicitly states that codigoSenador is required and how to obtain it via senado_listar_senadores, and directs users needing details of a specific vote to senado_obter_votacao. It also clarifies the period default and alternatives (ano vs date range).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

senado_votos_materiaVotos de uma matériaA
Read-onlyIdempotent
Inspect

Obtém as votações de uma matéria pelo codigoMateria. Retorna { codigoMateria, count, votacoes }, cada item com data, descricao, resultado e placar (totalSim/totalNao/totalAbstencao); com incluirVotos: true (padrão false) acrescenta votos[] (nome, partido, uf e voto de cada senador). Obtenha o codigoMateria via senado_buscar_materias ou senado_obter_materia.

ParametersJSON Schema
NameRequiredDescriptionDefault
incluirVotosNoIncluir votos nominais de cada senador
codigoMateriaYesCódigo único da matéria

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish the tool as read-only, idempotent, open-world, and non-destructive. The description adds behavioral context beyond the annotations by specifying the exact return envelope ({ codigoMateria, count, votacoes }) and the conditional addition of votos[] when incluirVotos is true. There is no contradiction with 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.

Conciseness5/5

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

The description is two sentences with no filler: the first sentence front-loads the action and output structure, and the second efficiently covers the optional parameter behavior and the source for the required ID. Every clause earns its place.

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?

The description covers the required parameter, the optional parameter with its default and effect, the output structure, and how to source the required ID. Since an output schema exists, the return-value explanation is a bonus, and nothing an agent needs to invoke the tool correctly is missing for this simple read-only operation.

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% and already describes both parameters, so the baseline is 3. The description goes further by explaining how incluirVotos (default false) alters the response shape and by pointing to the specific sibling tools that can supply codigoMateria, which is practical semantic value beyond the schema.

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

Purpose4/5

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

The description states a specific action and resource: 'Obtém as votações de uma matéria pelo codigoMateria', making it clear the tool fetches all votes for a single matter by its code. It clearly identifies the required input and scopes the operation, but it does not explicitly distinguish itself from sibling tools like senado_obter_votacao or senado_votacoes_senador, so it falls just short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear prerequisite guidance by instructing the agent to obtain codigoMateria via senado_buscar_materias or senado_obter_materia, which implies when this tool is appropriate. However, it does not explicitly mention alternatives or exclusion conditions (e.g., when to use a different vote-related tool), so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server for the Brazilian Chamber of Deputies open-data API, enabling search and retrieval of federal legislative bills and their status.
    15
    1
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that provides access to the Brazilian Chamber of Deputies open data API. It enables users to search for deputies, track their expenses, and query legislative information such as bills and API endpoints.
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for querying Brazil's public transparency portal, providing read-only access to government spending and public data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation2/5

Several tools perform overlapping functions (e.g., senado_buscar_materias vs senado_search_processos, senado_contratos vs senado_contratacoes_lista, and three e-cidadania consultation tools). Although descriptions are detailed, an agent can easily select the wrong one without deep inspection.

Naming Consistency3/5

All tools share the 'senado_' prefix, but the pattern is inconsistent: some use Portuguese verbs (buscar, listar, obter), others English 'search', and some are bare nouns (senado_ceaps, senado_mesa, senado_vetos). This mixed convention reduces predictability.

Tool Count2/5

67 tools is far above the 25 threshold, indicating an overgrown surface. While each tool may serve a niche endpoint, the sheer number makes it difficult for an agent to choose efficiently, and many tools could be consolidated.

Completeness4/5

The toolset covers nearly every aspect of Senate open data (legislative, senatorial, committee, administrative, financial, e-cidadania) with list/detail/searches. Minor gaps exist, such as no direct consolidated contract search, but most workflows can be achieved.