Skip to main content
Glama

Dados Abertos Senado BR MCP

Ownership verified

Server Details

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

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

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.7/5 across 66 of 66 tools scored. Lowest: 4.1/5.

Server CoherenceA
Disambiguation4/5

Tool purposes are distinct and descriptions are thorough with cross-references, but the high volume of tools means some could be confused (e.g., senado_buscar_materias vs senado_search_processos) without careful reading.

Naming Consistency5/5

All tools consistently use the 'senado_' prefix followed by snake_case names that follow a verb_noun or noun pattern, with clear subdomain prefixes like 'senado_ecidadania_' for related tools.

Tool Count3/5

With 66 tools, the server covers an extensive domain (legislative, administrative, e-participation), but the large number is on the high side and may require careful navigation by agents.

Completeness5/5

The tool set comprehensively covers major areas of the Brazilian Senate: committees, plenary, e-cidadania, contracts, personnel, budgets, processes, and more, with no obvious gaps for its informational purpose.

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

Behavior3/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint; description adds default date behavior and return structure but no additional behavioral traits (e.g., rate limits, auth requirements). With rich annotations, description adds moderate value beyond structured fields.

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 well-structured sentences: first covers core function and parameters, second details return structure and alternatives. No wasted words, front-loaded with essential information.

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?

Given annotations and schema richness, description adequately covers input, output, and alternatives. Lacks mention of pagination or error cases, but overall complete for a simple list tool with good annotations.

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%, setting baseline 3. Description adds value by specifying default date (today) and clarifying optional filter purpose, going slightly beyond schema 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?

Uses specific verb 'Obtém' with clear resource 'agenda de reuniões de todas as comissões'. Explicitly distinguishes from siblings by naming alternatives for historical per-commission data (senado_reunioes_comissao) and detailed meeting info (senado_reuniao_comissao).

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?

Clearly states when to use: for agenda on a specific date, with optional filter. Provides explicit when-not-to-use by referencing sibling tools for historical periods and meeting details, fulfilling the guidelines dimension perfectly.

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

Behavior5/5

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

The description discloses the return structure (`{ data, escopo, count, sessoes }`) and the fields within each sessão (`codigo, data, hora, tipo, situacao, pauta` with subfields). Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds context on data format and scope, fully covering behavioral traits 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?

The description is concise: two sentences that efficiently front-load purpose, then return structure, then usage guidance, then alternatives. Every sentence adds value with no redundancy or filler. It is well-structured and easy 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?

Given the tool's complexity (3 optional parameters, a non-trivial return object, and sibling tools for related functionality), the description is fully complete. It explains the tool's scope, parameter options, return format, and when to use alternative tools. The output schema exists but the description still provides the necessary behavioral context.

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 semantic value: it explains defaults (`data` assumes today), scope values (`dia` = SF+CN no dia; `mes` = mês inteiro; `cn` = plenário do Congresso), and that `dataFim` is only for escopo=cn. This clarifies parameter usage 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 purpose: obtaining the agenda of plenary sessions (Senate or National Congress) by day or month, with the agenda of matters to be voted. It specifies the verb 'obtém' and the resource 'agenda de sessões de plenário'. It also distinguishes itself from sibling tools by mentioning senado_resultado_plenario (for already appreciated results) and senado_encontro_plenario (for session details), 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 usage context: when to use (to get the agenda with items to be voted), parameter guidance (use `escopo` dia/mes/cn; without `data` assumes today), and when not to use (for already appreciated results use senado_resultado_plenario; for session details use senado_encontro_plenario). This clearly guides the agent on 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_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

Behavior5/5

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

Beyond annotations, explains the nuanced semantics of 'atual', that mixed membership and duplicate entries can occur due to different tratamentos. Discloses sorting order.

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?

Efficiently packs critical information in a few sentences, front-loaded with purpose and crucial semantic caveats. 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?

With output schema, it covers return structure, field descriptions, and cross-tool usage. Annotations handle safety, so description completes the picture.

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?

Adds meaningful details not in schema: 'nome' filter is partial and accent-insensitive; 'limite' default and max are reiterated with practical context.

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?

Clearly states the tool lists parliamentary authors of ongoing processes, sorted by productivity. Explicitly differentiates from similar tools like senado_listar_senadores.

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-not-to-use guidance (not for current senators) and names the alternative tool. Also explains how to use the output codigo in other tools.

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

Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds concrete behavioral details: no pagination, return format with count and normas, field names and null handling, and that results may vary between calls (consistent with openWorldHint). No contradictions.

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-structured and front-loaded with the core purpose. It is slightly long but all sentences provide necessary information, including return format, alternative tool, and error condition. No fluff, but could be slightly more concise.

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 (4 optional parameters, output schema with multiple fields, sibling tools), the description fully covers purpose, usage, parameter meaning, behavior, and return format. Annotations and output schema are already rich, but the description adds necessary context without 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. The description adds significant meaning: for 'tipo' it explains the format (sigla oficial) and suggests catalog via 'senado_tabelas_referencia'; for 'data' it clarifies the compact format and difference from output; for 'ano' specifies range; for 'numero' gives example and combination with tipo/ano. Each parameter is enriched beyond 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 tool searches for already-promulgated federal legal norms, specifying the resource (normas jurídicas federais) and verb (busca). It distinguishes from the sibling tool 'senado_buscar_materias' for propositions in progress.

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 this tool (promulgated norms) versus 'senado_buscar_materias' (propositions in process). Also states that at least one filter is required, and calling without filters returns an error.

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

Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. Description adds beyond these: it notes the search returns a list with truncation (including 'aviso'), default limit of 100 (max 500), and the response structure. It also clarifies that calling details separately is unnecessary for listing.

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?

Description is well-organized: first sentence states purpose and required criteria, then usage guidance, then response format, then examples. Every sentence earns its place; no fluff. Front-loaded with key information.

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 (11 parameters, sibling tools, output schema exists), the description leaves no gaps. It covers purpose, usage guidance, parameter meaning, output format, and examples. It also effectively leverages the output schema to avoid repeating return value 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 covers 100% of parameters with descriptions, so baseline is 3. Description adds significant value: it states 'informe ao menos um critério', explains that ordenarPor defaults to dataApresentacao to favor recent requests, gives exact date formats (YYYYMMDD or ISO), and provides two illustrative examples showing parameter combinations.

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?

Description clearly states 'Busca matérias legislativas' and enumerates all criteria (type, number, year, keywords, author, date range, situation). It distinguishes from sibling senado_obter_materia, specifying that this tool is for listing and the other for details.

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 states when to use this tool (e.g., for 'matérias recentes sobre X') and when not to (use senado_obter_materia only for details). Provides concrete examples and advises on parameters like palavraChave, ordenarPor, and limite for typical queries.

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

Behavior5/5

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

Annotations indicate readOnly and idempotent, and the description goes beyond by detailing computation of statistics (min/max/mean/median/percentiles), output structure (grupos[], agregado[], despesas[]), truncation with aviso, and the interaction between parameters like estatisticas and modo. 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 comprehensive but somewhat lengthy (~20 sentences). It is front-loaded with purpose and well-organized, but could be condensed to improve readability. Still, it earns high marks for clarity.

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 (11 parameters, enums, output schema present), the description covers all essential behaviors: aggregation modes, statistics, filtering, limits, truncation warnings, and cross-reference to another tool. The agent can correctly select and invoke this tool.

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 description coverage is 100% and the tool description adds significant context: it explains how estatisticas, agruparPor, modo, and topN interact, clarifies that modo is ignored when estatisticas=true, and describes output differences per mode. This goes well beyond schema 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 clearly states the tool retrieves CEAPS expenses for senators in a given year, with examples of statistical queries. It distinguishes from siblings by focusing on this specific expense type and referencing a companion tool for senator codes.

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 estatisticas=true for ranking/distribution queries versus aggregation modes, explains grouping options, and references senado_listar_senadores for obtaining senator codes. It covers both normal and statistical use cases thoroughly.

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

Behavior5/5

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

The description goes well beyond annotations by explaining behaviors like truncation (count < total), empty sections returning count 0, error on invalid combos, and absence of monetary values in most sections. Annotations confirm readOnly, idempotent, non-destructive, so no contradiction.

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-structured with a clear first sentence stating purpose, followed by parameter explanations, return format, and warnings. It is somewhat lengthy but each sentence serves a purpose; minor redundancy in parameter explanations could be tightened.

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 (multi-enum parameters, valid combos, truncation, error conditions, missing data warnings), the description covers all necessary contexts. The return structure is described, and behavioral nuances are fully addressed, making it complete for correct agent 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?

With 100% schema coverage, the description still adds significant value by explaining enum meanings in depth (e.g., tipo values as contract, price commitment, budget reservation) and the practical meaning of limite (truncation indicator). It also clarifies valid secao×tipo pairs.

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 purpose: to detail a specific section of a procurement identified by id. It explicitly distinguishes itself from sibling tools like senado_contratos and senado_contratacoes_lista by noting they are for locating procurements, not detailing them.

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 when-to-use guidance, including valid section×type combinations and that invalid combos return errors. It also gives important warnings (e.g., value only in aditivos) and explains truncation behavior with limit parameter.

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

Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds valuable behavioral details: return format for each tipo, ordering behavior, pagination with offset and limit, truncation warning, and that menores_aprendizes returns raw non-normalized fields. No contradictions.

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-structured, starting with the main purpose and then detailing parameters and behavior. It is slightly verbose but each sentence adds value, so it earns a 4 rather than 5 for being perfectly concise.

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 tool (5 parameters, three tipos, pagination, filtering, output structure), the description covers all necessary aspects: return format, pagination mechanics, filtering, ordering, and links to the sibling detail tool. Output schema exists and the description adequately explains the return values.

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 description coverage is 100%, but the description enriches each parameter with context: e.g., 'filtro' applied on all fields, 'ordem' over id sequence, 'offset' for paginating the tail, and 'limite' default 50 max 500 with truncation warning. This adds meaning 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 tool lists contract records (atas de registro de preço, notas de empenho, or menores aprendizes) from Senado, with optional text filtering. It distinguishes itself from the sibling tool senado_contratacao_detalhe by explicitly mentioning its use for detailed views.

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 when-to-use guidance: 'Para aprofundar uma ata/empenho, use o id em senado_contratacao_detalhe.' It also explains pagination and limits, making it clear when this list tool is appropriate.

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

Behavior5/5

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

Beyond annotations (readOnly, idempotent, not destructive), the description adds: partial accent-free search, worker-side filtering, absence of monetary value fields, truncation behavior, and return structure. 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 well-structured, front-loaded with purpose and parameters, then return structure, warnings, and cross-reference. Every sentence provides value, and it is not overly verbose.

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 (7 params, external data source, sibling relation) and existence of output schema, the description covers return structure, edge cases (no monetary value, subespécies mix), truncation, and cross-reference to sibling tool. It is fully informative.

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 context: search is partial and accent-insensitive for certain fields, and summarizes search dimensions. This adds marginal value beyond schema 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 clearly states it searches administrative contracts of the Senate by various criteria (fornecedor, CNPJ, ano, etc.). It distinguishes from sibling tool senado_contratacao_detalhe by mentioning its use for detailed info. The resource and action are explicit.

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: use the returned 'id' in senado_contratacao_detalhe for details, warns against looking for monetary values since the source doesn't publish them, explains subespécies, and notes the 'limite' parameter and truncation behavior.

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

Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive. Description adds return structure, mandatory date parameters, and that it lists all speeches (no filtering beyond dates). No contradiction. Could mention pagination or limits, but overall good.

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: first states purpose and required params, second describes return structure, third gives sibling alternatives. No fluff, front-loaded with essential information.

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 purpose (list floor speeches with date filter) and presence of an output schema, the description is complete. It covers what, how, and where to go for related tasks.

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% with basic descriptions. Description adds that parameters form a date range, specifies mandatory nature, and the exact format. This clarifies the relationship between the two parameters 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?

Description clearly states the verb (Lista) and resource (discursos em plenário) with a specific date range. It explicitly distinguishes from siblings by naming alternative tools for specific senator speeches and full text.

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 (listing all floor speeches in a date range) and when-not-to-use (for specific senator or full text), naming alternative tools `senado_discursos_senador` and `senado_discurso_texto`.

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

Behavior5/5

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

Description adds key behavioral details beyond annotations: no pagination, empty list when no results, different period behavior for discursos vs apartes, and full return structure. Annotations (readOnly, idempotent, not destructive) are consistent and description provides necessary context.

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?

Description is detailed and informative, front-loaded with purpose. While slightly long, each sentence adds value and there is no redundancy. Could be marginally shorter but remains clear.

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 (5 parameters, conditional behavior based on tipo and date omission, multiple sibling tools), the description fully covers input, output, behavior, and relationships. Output schema is described in text, providing complete guidance.

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 description adds significant meaning: explains casa filter, tipo enum with impact, date parameters with the important caveat about 30-day default for discursos, and codigoSenador. Enhances understanding beyond 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 tool lists speeches of a specific senator, filterable by period and house. It distinguishes between 'discursos' (own speeches) and 'apartes' (interventions), and differentiates from sibling tools senado_discursos_plenario (all senators) and senado_discurso_texto (full text).

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 this tool (list speeches of a senator), how to obtain codigoSenador via senado_listar_senadores, and to use senado_discurso_texto for full text. Warns about default 30-day limit for discursos and recommends explicit period for history. Advises to use senado_discursos_plenario for all senators.

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

Behavior5/5

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

Annotations declare `readOnlyHint=true`, `idempotentHint=true`, `destructiveHint=false`. The description adds that the text is a complete transcript, not truncated or paginated, can be large (dezenas de KB), and that invalid codes or speeches without text result in errors. 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 (4 sentences) and front-loaded. The first sentence states the purpose and the parameter. The second details the return format and behavior. The third gives context on obtaining the code. The fourth contrasts with alternatives. No wasted words.

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 presence of an output schema (implicit from description), the description covers the return structure, error conditions (invalid code, no text), data size, and input sourcing. For a simple retrieval tool, all relevant aspects are addressed.

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 coverage is 100%, so the description does not need to explain parameters, but it adds value by specifying that `codigoPronunciamento` comes from the `codigo` field of the sibling tools, reinforcing the required input and its source.

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 retrieves the full text of a single speech by `codigoPronunciamento`. It distinguishes itself from sibling tools `senado_discursos_senador` and `senado_discursos_plenario` by noting that those are for listing/filtering, while this one fetches the complete text of an already identified speech.

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 use the tool (to get the full text of a speech), when not to (for listing/filtering), and recommends alternative tools (`senado_discursos_senador` or `senado_discursos_plenario`). It also mentions that an invalid or textless speech returns an error, providing clear guidance.

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

Behavior5/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds critical behavior: no pagination, count=0 for empty committees, and that codigoParlamentar is only effective for autoria and ignored in relatoria.

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?

Multiple sentences but all are informative and front-load the main purpose. No redundant information; every sentence adds value.

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?

Output schema exists, so description doesn't need to detail return values, but it still describes the structure. Covers all relevant aspects: parameters, behavior, and cross-references to other 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?

Schema coverage is 100%, so baseline is 3. Description adds context beyond schema by stating the default for tipo (autoria) and the conditional effectiveness of codigoParlamentar.

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?

Description clearly states the tool ranks parliamentarians by quantity of matters in a committee, specifying the two axes (autoria/relatoria) and parameters. It distinguishes from sibling 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 Guidelines5/5

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

Explicitly instructs to use senado_listar_comissoes for committee sigla and senado_obter_senador for parlamentar codigo. Also provides when-not-to-use: for the list of matters themselves, use senado_buscar_materias.

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

Behavior5/5

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

Annotations already provide readOnlyHint, idempotentHint, etc. The description adds significant context: explains the meaning of each status, the coverage limitation for closed consultations, the return format, and that all modes accept minimoVotos and limite. No contradictions.

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 and front-loaded with purpose, but it is slightly verbose. Some details like 'cresce com o tempo' are repeated. Overall, it earns its length by providing essential differentiation and behavioral 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?

Given 6 parameters, 0 required, 100% schema coverage, and output schema, the description is thorough: it explains modes, status nuances, default values, return structure, and differentiates from siblings. No missing critical information for correct use.

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 adds default values (percentualMinimo 85%, margemPolarizacao 15, etc.) and explains the logic for each mode, going beyond schema descriptions. For example, it clarifies that polarizada orders by smallest sim/não difference.

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 it analyzes open public consultations by citizen agreement degree, explains two modes (consenso and polarizada), and explicitly distinguishes from sibling tools 'senado_ecidadania_consultas_votos' (historical) and 'senado_ecidadania_obter_consulta' (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?

It provides explicit when-to-use guidance: consenso for high concentration, polarizada for balanced votes. It also clarifies status options (aberta, encerrada, todas) and notes that closed consultations before first ingestion are not captured, avoiding misuse.

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

Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint false. Description adds source (CSV Arquimedes), update frequency (semanalmente), scope (~15 mil matérias), and explains why status is 'Descontinuado' and treated as archive. No contradiction.

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?

Description is well-structured with bold terms, front-loaded with purpose, then usage, sibling distinction, parameter details, and return format. Every sentence is informative 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 output schema exists and complexity (5 parameters, 2 enums, 1 UF filter with ranking), description covers all: return structure, filtering, ordering, ranking per UF, and archive vs active distinction. No 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?

All 5 parameters are described in schema with 100% coverage. Description enriches each: `uf` filters and adds `recorteUf`, `materia` can be numeric code or text snippet, `ordenarPor` metrics explained, `limite` default given.

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?

Description clearly defines tool as historical vote archive by UF, explicitly contrasting with sibling tools `senado_ecidadania_consultas_analise` and `senado_ecidadania_listar_consultas`. Specific verb 'acervo histórico' and resource 'votos das consultas públicas do e-Cidadania com quebra por UF'.

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: '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`.' Also notes difference from `senado_ecidadania_listar_consultas`.

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

Behavior5/5

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

Annotations already indicate readOnly, openWorld, idempotent, and non-destructive. The description adds value by detailing that it returns a complete set of open consultations (~7.7k), the specific fields returned, how status transitions from 'aberta' to 'encerrada' when the matter leaves processing, and that encerradas before first ingestion are not captured. 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 relatively long but well-structured, front-loading the main purpose and then adding details. It contains no wasted sentences, but could be slightly more concise while retaining all necessary information.

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 has 3 parameters, full schema descriptions, output schema present, and rich annotations, the description is complete. It covers return structure, edge cases (pre-ingestion consultations), and behavioral nuances over time.

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% with descriptions for all three parameters. The description adds contextual details like default 'limite' (20) and elaborates on the status parameter behavior, providing additional meaning beyond the 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 clearly states the verb 'Lista' and the resource 'consultas públicas do e-Cidadania', and distinguishes from sibling tools by specifying that for detail use 'senado_ecidadania_obter_consulta' and for analytical recortes use '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?

The description explicitly explains when to use this tool (to list public consultations) and when to use alternatives, naming the specific sibling tools for different purposes. It also describes the default behavior (open consultations) and the status parameter.

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

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. The description adds value by disclosing data source persistence ('corpus persistido em D1'), update frequency ('atualizado semanalmente'), scale ('~milhares de eventos'), and inclusion of closed events ('incluindo encerrados'). This operational context is beyond what 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 moderately sized at four sentences, gets to the main purpose immediately, and every sentence adds meaningful information. There is 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?

Given that an output schema exists (so return values need not be fully explained), the description covers all essential aspects: what the tool returns, filtering options, ordering, data source, update frequency, cardinality, and a pointer to a related sibling tool. This provides a complete operational picture.

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 baseline is 3. The description adds meaning beyond the schema by giving concrete usage examples (e.g., ordering for ranking), mentioning the default limit (20), and stating that filters by comissao use a sigla. This helps an agent understand how to combine parameters effectively.

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 'Lista' and the resource 'eventos interativos do e-Cidadania (audiências públicas, sabatinas, lives)'. It specifies the scope as 'conjunto completo' and distinguishes from sibling tools like 'senado_ecidadania_obter_evento' by noting that this tool returns the full list and that the sibling is for detailed event retrieval.

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 explicit guidance for a ranking use case ('Para um ranking dos mais comentados, ordene por comentários') and directs to a sibling tool for detail ('Para o detalhe completo de um evento use senado_ecidadania_obter_evento'). While it doesn't explicitly state when not to use this tool, the context of the sibling differentiation covers typical decision points.

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

Behavior4/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds behavioral details: data persistence in D1, weekly updates, null fields in listing, confirming read-only nature. No contradictions.

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?

Description is well-structured: first sentence states purpose and data scope, then return format, then filter options, then usage hints. No fluff, each sentence adds value.

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 (5 parameters, output schema present), the description fully covers return shape, field constraints, filtering, and ordering behavior. No gaps.

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% (all parameters documented). The description adds meaning beyond schema by explaining which ordenarPor values are actually available ('apoios' in corpus, others only in detail) and gives a specific usage for ranking.

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 it lists citizen-proposed legislative ideas from e-Cidadania, specifying it returns the complete corpus (including closed and converted), the data fields, and distinguishes from the detail tool obter_ideia.

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 explains when to use this tool (list ideas) and when to use the sibling tool (obter_ideia for detail), and provides a usage example for ranking. It implies context but lacks explicit 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_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

Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds value by explaining that fields like 'dataAbertura', 'dataEncerramento', 'comissao', 'linkMateria', and 'comentarios' are always null, revealing internal data constraints beyond what annotations provide. No contradictions.

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 paragraph that efficiently covers purpose, return structure, null constraints, and input prerequisite. It front-loads the main verb and resource, and every sentence adds necessary information 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 the output schema exists, the description does not need to detail return values. It explains which fields are null and why, and instructs how to obtain the required input. This is fully adequate for a simple look-up tool with clear annotations.

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 single parameter 'id' is already described in the schema as 'ID da consulta pública'. The description adds context on how to obtain a valid ID via sibling tools, which provides practical guidance beyond the schema. With 100% schema coverage, baseline is 3, and the extra context justifies this score.

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 'Obtém o detalhe de uma consulta pública específica do e-Cidadania', clearly stating the specific verb ('obtém') and resource ('consulta pública'). It lists the returned fields, distinguishing it from sibling tools like 'senado_ecidadania_listar_consultas' which lists consultations, and 'senado_ecidadania_consultas_analise' which likely analyzes multiple consultations.

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 instructs the agent to obtain the 'id' via 'senado_ecidadania_listar_consultas' or 'senado_ecidadania_consultas_analise' before calling this tool. It also clarifies that certain fields are always null due to portal limitations, preventing misinterpretation.

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

Behavior4/5

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

As annotations já declaram readOnlyHint, idempotentHint, etc. A descrição adiciona detalhes sobre o formato do retorno, campos nulos, e erro para id inexistente, complementando sem contradizer.

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?

Descrição concisa em um parágrafo, iniciando pelo propósito, listando campos retornados e finalizando com orientações de uso. Cada frase agrega valor, sem redundância.

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?

Para uma ferramenta de busca por id com output schema existente, a descrição cobre propósito, pré-requisitos, diferenciação de siblings, tratamento de erro e campos nulos. Completa e auto-suficiente.

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?

Único parâmetro (id) já bem descrito no schema. A descrição menciona a origem do id, mas não agrega significado adicional ao que o schema já provê. Cobertura 100%, baseline 3.

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?

A descrição claramente especifica o verbo 'obtém', o recurso 'detalhe completo de um evento interativo do e-Cidadania (audiência, sabatina, live)', e distingue do sibling senado_ecidadania_listar_eventos que apenas lista eventos sem detalhes.

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?

A descrição instrui explicitamente a obter o id via senado_ecidadania_listar_eventos e recomenda usar listar para listagem simples, evitando esta ferramenta. Fornece orientação clara sobre quando usar e quando não.

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

Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. Description adds valuable behavioral details: description field is truncated to ~2000 characters, 'comentarios' is always null (a potential user expectation), and 'plConvertido' appears only when idea becomes a law. This adds context 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?

Description is concise: 3 sentences. First sentence states purpose, second lists returned fields with notes, third provides necessary usage instruction. No extraneous information.

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 simplicity of the tool (one parameter), the description fully covers what the agent needs: purpose, return field details including special cases (truncation, null field, plConvertido), and prerequisite step. Output schema is present, so return structure documentation is not required.

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% with a description for the 'id' parameter. The description does not add further semantic meaning beyond stating the prerequisite to get id from another tool. Baseline score 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?

Description clearly states it obtains the detail of a legislative idea from e-Cidadania. It uses a specific verb ('obtém') and resource ('detalhe de uma ideia legislativa'), and distinguishes itself from sibling tool 'senado_ecidadania_listar_ideias' by specifying the prerequisite id.

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 explicit prerequisite: obtain id via 'senado_ecidadania_listar_ideias'. Does not explicitly state when not to use, but the context of a detail retrieval tool is clear. Also warns that 'comentarios' is always null.

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

Behavior5/5

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

All behavioral traits are disclosed: the tool is read-only, idempotent, and non-destructive (as annotations confirm). The description adds detail on filtering logic, defaults, and output structure, complementing 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 efficient, front-loaded with purpose, then details output, then criteria. No redundant sentences. Each part serves a purpose.

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 nested parameter, output schema, and many siblings, the description covers everything needed: purpose, criteria, output format, follow-up actions. Completeness is high.

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 covers 100%, and description adds value by explaining default values, the meaning of 'apenasEmTramitacao' (considering real status), and overall criteria behavior beyond 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 clearly states the tool's goal: to suggest topics for a monthly public poll by analyzing consultations and ideas. It distinguishes from siblings like senado_ecidadania_consultas_analise by focusing on suggestion of topics for poll, not just analysis.

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 explicit follow-up guidance (use senado_ecidadania_obter_consulta or obter_ideia), but does not explicitly state when to prefer this tool over siblings. It implies usage context well.

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

Behavior4/5

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

Adds useful behavioral details beyond annotations: output structure with count, total, empresas, each item having id, nome, cnpj, contratos (up to 30 numbers), and totalContratos; constraint that at least one input is needed; and limit on number of companies (default 20, max 100). 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?

Two concise, front-loaded sentences: first states purpose and output format, second provides constraints and cross-reference. No redundant information, every sentence adds value.

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 simplicity (3 params, output schema present, annotations cover read-only/idempotent), the description fully covers usage, output structure, and connections to sibling tools. No gaps identified.

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?

Description adds context beyond schema: explains why at least one of nome or cnpj is required, confirms partial search behavior, and reiterates default and max for limite. Schema coverage is 100% but description enriches understanding with practical usage notes.

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?

Description clearly states the tool searches for companies contracting with the Senate by name (min 3 chars) or CNPJ/CPF, and distinguishes itself from sibling tools by mentioning use of id/contract number in senado_contratos or senado_contratacao_detalhe for details.

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?

Description explains the need to provide at least nome or cnpj due to large database, and directs to use other tools for further details. It does not explicitly state when not to use this tool, but provides clear guidance on prerequisites and follow-up.

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

Behavior4/5

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

Annotations indicate readOnlyHint, openWorldHint, idempotentHint are true, and destructiveHint false. The description adds that encontro may be empty if the section has no data and that errors occur if the codigo does not exist. This provides useful context beyond 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.

Conciseness4/5

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

The description is multi-sentence but well-structured and front-loaded with the main purpose. It conveys necessary information without excess words.

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?

Given the tool's complexity (multiple sections) and the presence of an output schema, the description adequately covers the return structure and edge cases. It explains the behavior for each secao value and potential empty results.

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 has 100% description coverage, but the tool description adds meaning by explaining how the 'secao' parameter affects the output structure. This adds value beyond the schema's enum listing.

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 returns details of a plenary session, specifies the return fields (codigo, secao, encontro), and explains how encontro varies by secao. It distinguishes itself from sibling tools like senado_agenda_plenario and senado_resultado_plenario by mentioning they provide the codigo.

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 explains when to use the tool (to get details of a specific plenary session) and how to obtain the codigo from other tools. It indirectly indicates when not to use by specifying the codigo source. However, it does not explicitly state cases where alternative tools would be more appropriate.

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

Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, but the description adds significant behavioral context: it explains the output fields (caminho, subordinadas with sigla, nome, nivel), the depth level (até o nível de serviço), and the data source (portal institucional, not the open data API). 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 well-structured: it starts with the core function, then explains output, use cases, and an alternative. While it is on the longer side, every sentence adds value (examples, source attribution, alternative tool). Minor room for brevity, but overall well-organized.

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 (returning a hierarchical tree structure), the description is highly complete. It explains the output shape (caminho and subordinadas with depth), the scope (up to service level), and provides examples. An output schema exists, so return values are documented. The mention of an alternative tool for server counts completes the 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?

Both parameters (unidade, limite) are fully described in the input schema (100% coverage). The description restates that unidade can be a sigla or name, and mentions the default limit (200) but does not add new semantics beyond the schema. Per guidelines, 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 clearly states the tool's purpose: returning the organizational structure (organograma) of the Senate up to service level, given a unit. It specifies the output structure (unit, path, total subordinates, subordinates with acronym, name, depth) and differentiates itself from sibling tools like 'senado_servidores' by explicitly mentioning when to use that alternative.

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 excellent usage guidance. It gives concrete example queries ('o que está sob a DGER', 'quais secretarias/serviços pertencem a X'), states the tool's purpose for understanding hierarchy, and explicitly directs users to 'senado_servidores' for counting or listing servers under a unit. This clear when-to-use and when-not-to-use guidance is exemplary.

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

Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds value by explaining automatic column selection based on tipo, return structure with `campoAnalisado`, behavior of `estatisticas` with/without `agruparPor`, and truncation with `aviso`. No contradiction.

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 relatively long but well-structured: starts with purpose, then statistics mode, then return format, then usage tips, then sibling disambiguation. Every sentence adds value, though it could be slightly more streamlined.

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, grouping), the description covers all aspects: parameter interactions, output structure, use cases, and distinction from alternatives. Complete and clear.

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?

Despite 100% schema description coverage, the description adds extensive meaning: explains how `estatisticas` overrides `modo`, how `campo` auto-selection works, how `agruparPor` ranks groups by sum descending, and the effect of `limite` with truncation warning.

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 it covers budget execution for expenses (since 2013) and revenues (since 2012), and explicitly distinguishes it from the sibling 'senado_orcamento_parlamentar' for parliamentary budget.

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 guidance: use `estatisticas=true` for statistics, filter by `ano` before requesting `detalhe`, warns against confusing with parliamentary budget. Also explains when to use `agruparPor` with statistics to get ranked groups.

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

Behavior5/5

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

Annotations indicate readOnly, idempotent, non-destructive. Description adds detailed behavioral context: output structure for each mode, handling of parameters (limite ignored with estatisticas, default topN), and grouping behavior (groups ranked by descending sum). No contradictions.

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?

Description is lengthy but well-organized with bold emphasis for key terms. Every sentence adds necessary detail. Slight redundancy (repeats default values) but acceptable given complexity.

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, multiple parameters, statistics, grouping), the description is comprehensive. It covers all major use cases, constraints, and links to related tool. Output schema exists, so return values not required.

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% (baseline 3). Description adds significant value by explaining parameter interactions (e.g., estatisticas=true ignores limite, topN only for some modes, agruparPor only with estatisticas). Provides contextual meaning beyond schema 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?

Description clearly states the tool retrieves overtime hours for Senate employees for a given year/month. It distinguishes from sibling 'senado_remuneracoes_servidores' for full remuneration. The two operational modes (with/without estatisticas) are well explained.

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 specifies when to use estatisticas=true (for statistics/ranking) vs false (listing). Explains behavior with agruparPor and limit. Provides alternative tool for full remuneration. Clear guidance on parameter interactions.

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

Behavior5/5

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

Annotations already indicate read-only, idempotent, non-destructive. The description adds the return format '{ count, total, licitacoes }', explains raw API data, and notes error condition on no filter. No contradictions.

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, no fluff. Purpose is front-loaded. Each sentence adds essential information: search methods, return structure, constraints, and sibling tool pointer.

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 output schema present, the description adequately covers required parameters, limits, error cases, and cross-references. Complete for a search tool with good annotations.

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 examples (e.g., '19/2018') and contextual details (default 50, max 500) beyond the schema descriptions, enhancing 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 clearly states the verb 'Busca' (search) and the resource 'licitações do Senado', and distinguishes from sibling tools by noting that for the resulting contract, use 'senado_contratos'.

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 specifies that at least 'numero' or 'objeto' is required, otherwise returns error, and mentions an alternative tool for contracts. Also details default and max limit.

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

Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive). The description adds return structure, notes UF always null due to data source, and explains use of 'bloco' field. No contradictions.

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 a single dense paragraph, but every sentence adds value: purpose, return format, caveat, filters, sibling reference. Could be more structured but is efficient.

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 is a read-only listing with output schema, the description covers all needed context: return structure, missing UF, filtering behavior, and cross-references to other tools for additional data.

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 has 100% description coverage, so baseline 3 applies. The description adds minimal extra semantics (e.g., 'no filters returns all houses') but does not need to compensate.

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 it lists leaderships of Senate, Chamber, and National Congress, using specific verbs and resource. It distinguishes from siblings like senado_listar_blocos for bloc composition and senado_obter_senador for UF retrieval.

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 context on when to use filters, notes that without filters returns all houses, and directs to alternatives for UF (senado_obter_senador) and bloc details (senado_listar_blocos).

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

Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds important behavioral context: the list includes historical composition with dataDesligamento, and a party may appear multiple times with different periods. This goes beyond annotations, though no mention of potential pagination or rate limits (likely not needed).

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?

Single well-structured paragraph: first sentence states purpose, second details return format, third adds behavioral caveats, fourth gives usage guidance. No wasted words, 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 zero-parameter tool with output schema implied, the description covers purpose, return structure, historical data behavior, and sibling references. Annotations provide safety guarantees. Everything an agent needs to invoke correctly is present.

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?

No parameters exist; schema coverage is 100%. Baseline for 0 parameters is 4. The description adds no parameter-specific info because none exist, but it still provides meaningful context about the tool's output.

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?

Description clearly states it lists all parliamentary blocs and their member parties, specifies the return structure, and distinguishes from sibling tools (senado_obter_bloco, 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?

Explicitly advises when to use this tool (to discover a block's codigo) and when to use alternatives (senado_obter_bloco for details, senado_liderancas for leaderships).

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

Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds that the endpoint only returns active commissions, so ativa=false results in empty list, and describes the return structure.

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 concise sentences, front-loaded with purpose, followed by behavior and usage context. No redundant information.

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 2 optional parameters, output schema provided, and clear linkage to sibling tools, the description is fully adequate for an AI agent to understand and use the 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?

All parameters have schema descriptions (100% coverage). The description adds the critical insight that ativa=false will return empty because the endpoint only serves active commissions, and lists the possible tipo values.

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 it lists active comissões (colegiados) with filters for tipo and ativa. It distinguishes from siblings by noting its output sigla is used by senado_obter_comissao and senado_reunioes_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?

Explicitly guides use to discover sigla for other tools, and warns that ativa=false yields empty list. However, it does not explicitly state when not to use this tool or mention alternatives beyond the two sibling tools.

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

Behavior4/5

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

Annotations declare readOnlyHint, idempotentHint, and destructiveHint, setting a safety baseline. The description adds behavioral context: partial name matching ignoring accents, local filtering for uf/partido, official endpoint provenance, and response structure. This adds 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.

Conciseness4/5

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

The description is a single dense paragraph, packing many details but could benefit from bullet points or clearer sectioning for easier parsing by AI. It is not overly verbose, but structure slightly impacts readability.

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 tool's purpose, parameters, return format ({count, senadores} with fields), endpoint provenance, and integration with sibling tools. Given the presence of an output schema and 100% parameter coverage, the description is complete and provides all needed context.

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 enriches each parameter: emExercicio's default, nome's partial matching behavior, partido's tolerance for short forms, and the interaction between emExercicio and legislatura. This surpasses what the raw schema provides.

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 lists senators with filters (UF, party, name) and distinguishes from siblings like senado_senadores_afastados and senado_obter_senador. The verb 'listar' is specific and the resource is well-defined.

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 usage examples ('Use para pedidos como...'), specifies default behavior (emExercicio=true), and directs when to use alternative tools (e.g., senado_senadores_afastados for out-of-exercise senators). It also guides chaining with other tools via código.

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

Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint false, so description adds minimal behavioral disclosure. It does not contradict 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?

Two sentences front-load purpose, then parameter context, output structure, and sibling reference. Every sentence adds value.

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 tool with one parameter and an output schema, the description fully covers purpose, parameter, output format, and alternatives.

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 description adds meaning by explaining the default value and the difference between 'senado' and 'congresso' options.

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?

Description clearly states it lists members of Mesa Diretora (president, vice-presidents, secretaries) and distinguishes it from the sibling tool senado_liderancas by explicitly directing users to use that for leadership queries.

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 states when to use this tool (to get Mesa members) and when not (for party leadership, use senado_liderancas). Also explains the parameter casa and its options.

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

Behavior5/5

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

The description goes well beyond annotations by detailing behavioral traits: return structure for existing vs. non-existent IDs, pagination via `sequenciaInicio` and `limite`, mode differences (`resumo` vs. `texto`), filtering by `orador`, and coverage caveats (conjunct sessions not transcribed). Annotations already indicate read-only and idempotent, but the description adds rich behavioral context.

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 thorough and well-structured, with each sentence adding value. It is slightly long but front-loaded with the main purpose. It could be trimmed slightly without losing meaning, but it remains clear and organized.

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 (7 parameters, two modes, pagination, filtering, coverage caveats, multiple sources for `id`), the description covers all necessary context. The output schema exists and the description explains the return structure, so the description is complete.

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?

All 7 parameters have descriptions in the input schema (100% coverage), so baseline is 3. The description adds extra meaning: e.g., `sequenciaInicio` explained as pagination in resumo and window start in texto, `sequenciaFim` only effective in texto mode, `orador` filters by name cite, and defaults/limits clarified. This elevates the score to 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 clearly states the tool returns official transcriptions (notas taquigráficas) of plenary sessions or committee meetings in sequential blocks. It distinguishes from sibling tools by explicitly mentioning that media (video/audio) should be obtained via `senado_videos_taquigrafia`.

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: for official transcripts, and when not to: for media (use `senado_videos_taquigrafia`). It also explains how to obtain the required `id` from other tools like `senado_agenda_plenario` or `senado_reuniao_comissao`, and notes coverage limitations for certain session types.

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

Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable behavioral details: the meaning of null in dataExtincao, the historical nature of partidos array, and the error message for non-existent codes, going 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?

The description is two sentences with no wasted words. The first sentence states the action and result, the second provides key details about return fields and usage. Every sentence adds value.

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 simplicity (one parameter, existing output schema, complete annotations), the description fully covers what an agent needs: how to get the code, what the response contains, and edge cases like inactive blocs and errors.

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 has 100% coverage for the single parameter 'codigo', including a description. The description repeats the parameter's purpose but does not add new semantic meaning beyond the schema, so a 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 clearly states the verb 'Obtém detalhes' and the resource 'bloco parlamentar específico pelo seu código'. It lists the returned fields, distinguishing it from sibling tools like senado_listar_blocos, which only lists blocs.

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 instructs to obtain the 'codigo' parameter from senado_listar_blocos first and notes that an invalid code returns an error. It does not explicitly state when not to use it, but the context is clear enough for an agent.

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

Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, etc. Description adds behavioral details like internal sigla resolution, finalidade field behavior (null for permanent commissions with aviso), and return structure. No contradictions.

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?

Description is well-structured and front-loaded with purpose. Each sentence adds value, though slightly verbose. No wasted 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?

Given the output schema, the description provides complete context including edge cases (finalidade null), internal behavior, and discovery via sibling. All necessary information for correct invocation is present.

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%, but description adds significant meaning: explains return details for each secao value, the finalidade edge case, and internal resolution of sigla. This goes beyond the schema's brief 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 clearly states it obtains commission data by sigla and section, with detailed return structures for each section. It distinguishes from siblings like senado_listar_comissoes (for discovery) and senado_reuniao_comissao (meetings).

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?

Explicitly directs to use senado_listar_comissoes to discover the sigla, providing clear context. Could be more explicit about when not to use, but the alternative is well-stated.

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

Behavior5/5

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

Adds value beyond annotations by describing live query, no side effects, return format, null handling, and error response. Annotations already cover readOnly, idempotent, nondestructive.

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?

Single dense paragraph front-loads purpose, then details return and usage. Every sentence earns its place; no 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?

Complete for a simple retrieval tool: explains all return fields, null behavior, error case, and relationship to sibling tool. Output schema exists but description still adds value.

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 description adds meaning: explains codigo is internal identifier, not law number, references sibling tool, and provides exclusiveMinimum.

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?

Description clearly states the verb 'Obtém' and resource 'detalhe de uma norma federal promulgada por codigo interno', distinguishing from sibling tool senado_buscar_legislacao.

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 specifies when to use (when codigo known), when not (for search by type/number/year), and prerequisite (obtain codigo via senado_buscar_legislacao).

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

Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds behavioral details beyond annotations: it explains that tramitacao returns chronological history ordered by date, textos returns documents from most recent to oldest, and truncation includes an 'aviso' field. This provides practical transparency about data ordering and limit handling.

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 a single dense paragraph but uses colons and parenthetical lists effectively to organize information about sections and their outputs. It is concise with no filler, though a bulleted list might improve readability. Every sentence provides necessary detail, earning 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 output schema exists, the description need not detail exact return values. It sufficiently covers the three secao options, their output structures, default limits, truncation behavior, and the prerequisite to use senado_buscar_materias. The description is complete for an agent to invoke the tool correctly without ambiguity.

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 description coverage is 100%, so all three parameters have schema descriptions. The description adds significant value by explaining the meaning of secao values and their outputs, clarifying default limits and truncation behavior for limite, and providing context for codigoMateria as a foreign key from another tool. This enriches the agent's understanding 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 'Obtém dados de uma matéria pelo codigoMateria', specifying the verb (obtém), resource (matéria), and key parameter (codigoMateria). It distinguishes from sibling senado_buscar_materias by instructing the agent to first obtain the code from that search tool. The description also lists three sections with distinct outputs, making the tool's 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 explicitly tells the agent to 'Obtenha o codigoMateria via senado_buscar_materias', providing clear guidance on prerequisites. It explains when to use each secao value (detalhe, tramitacao, textos) with descriptions of their output structures. It also covers default limit values and truncation behavior, giving comprehensive usage context.

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

Behavior4/5

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

As anotações já declaram readOnlyHint, idempotentHint e destructiveHint como true/true/false, cobrindo o perfil de segurança. A descrição adiciona valor ao listar os campos retornados, mas não fornece contexto comportamental além das anotações. Não há contradição com 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 é front-loaded: começa com o propósito, depois lista os campos retornados, e termina com orientações de uso. Embora seja um pouco longa, não contém informações redundantes e está bem organizada.

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?

Considerando que a ferramenta tem apenas 1 parâmetro, anotações completas e a descrição já detalha o retorno e fornece orientações de uso, a descrição é suficientemente completa para um agente. Não menciona condições de erro, mas isso é aceitável para uma ferramenta de leitura com anotações adequadas.

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?

O esquema de entrada possui 1 parâmetro (idProcesso) com descrição 'ID do processo legislativo' e cobertura de 100%. A descrição da ferramenta menciona 'pelo seu id', mas não acrescenta significado além do esquema. Como o esquema já é completo, a nota base 3 é adequada.

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?

A descrição afirma claramente 'Obtém detalhes completos de um processo legislativo específico pelo seu `id`', usando verbo específico ('Obtém') e recurso ('processo legislativo'). Diferencia-se de ferramentas irmãs ao mencionar que o id deve ser obtido via 'senado_search_processos' ou 'senado_buscar_materias', e que detalhes adicionais (emendas, relatorias, prazos) requerem 'senado_processo_detalhe'.

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?

Fornece orientação explícita sobre quando usar esta ferramenta: 'Obtenha o idProcesso antes via senado_search_processos ou senado_buscar_materias; para emendas, relatorias ou prazos use senado_processo_detalhe'. Isso informa claramente o contexto de uso e alternativas.

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

Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds value by detailing the return object structure, but does not disclose additional behavioral traits beyond what's annotated.

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, each with distinct value: purpose, required param with source, and alternative tool. No redundant information; very concise.

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 single parameter, explicit return fields, and adequate annotations, the description provides complete context for an AI agent to select and use 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% and describes the parameter as a unique code. The description adds meaning by stating the parameter is required and how to obtain it via another tool, which aids 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 clearly states it obtains the biographical detail of a specific senator, listing the exact fields returned. It explicitly distinguishes from sibling tools like senado_listar_senadores (obtain the code) and senado_senador_historico (other historical details).

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 when to use (get biographical detail), how to get the required parameter (via senado_listar_senadores), and when to use an alternative tool (senado_senador_historico for other data). This provides clear usage 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

Behavior4/5

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

Description adds significant behavioral context beyond annotations: describes return format (object with votos or with codigoSessao/count/votacoes), and warns about numeric coincidence with comissao codes. Annotations already declare readOnly/ idempotent/ non-destructive, so bar is lower; description adds value without contradiction.

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?

Description is moderately concise but front-loaded with purpose. It contains essential details (return format, prerequisite, warnings) without redundancy. Could be slightly shortened, but every sentence adds value.

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 there is an output schema (not shown), the description explains return variants, how to obtain input, and warns about pitfalls. For a single-parameter tool, it covers prerequisites, behavior, and edge cases thoroughly.

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 already describes the parameter (codigoVotacao) with type and description. Description adds clarifying context: it is the codigoSessao from plenary sessions, and that it must not come from comissao. This adds meaning beyond the schema, especially warning about numeric overlap.

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 it obtains details of a plenary vote by codigoVotacao, including nominal votes. It explicitly distinguishes from the sibling tool senado_votacao_comissao, noting that comissao codes are not valid here.

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: after obtaining codigoSessao via senado_search_votacoes. Clearly states when not to use: codes from senado_votacao_comissao are invalid. Provides clear alternative (senado_search_votacoes) for obtaining the input.

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

Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint as false. Description adds behavioral details: response structure for each mode, pagination behavior, and the temporal relationship between oficios and emendas. No contradictions found.

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?

Description is concise but dense; it could benefit from line breaks or bullet points for clarity. However, it front-loads the core purpose and uses a single paragraph effectively with minimal waste.

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?

Given the complexity of two modes and multiple parameters, the description covers essential usage context, output structure, and a crucial note about the alternative tool. Output schema exists, so return values are not needed in text. Adequate for an agent to use 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% (all parameters described). Description adds value by explaining the meaning of 'oficios' as execution documents and the role of 'incluirEmendas'. Reinforces pagination and filtering concepts 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?

Description clearly states the tool handles parliamentary budget amendments (emendas) with two distinct modes: 'emendas' (proposed amendments) and 'oficios' (execution documents). It specifies the verb 'conforme' and distinguishes from the sibling 'senado_execucao_orcamentaria' in the note.

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 guidance on when to use each mode (tipo) and recommends filtering by ano for oficios. Explicitly mentions an alternative tool for internal Senate budget execution. Could include more explicit 'when not to use' statements, but the context is clear.

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

Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds behavioral context: returns detailed structure with 'count, votacoes', including voting codes, descriptions, totals, and orientations. Does not contradict 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, each earning its place: purpose, output structure, usage guidance. No fluff, front-loaded. Extremely efficient.

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 simplicity (read-only query, 3 params, output schema exists), description covers all necessary aspects: purpose, output, usage, sibling differentiation. Complete for agent decision-making.

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 covers 100% of parameters with descriptions. Description adds semantic guidance: the mutual exclusivity between 'data' and the 'dataInicio/dataFim' pair, clarifying usage beyond 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?

Description clearly states purpose: 'Orientação de bancada nas votações de plenário' with a specific verb (returns orientation) and resource (bench guidance in plenary votes). Distinguishes from sibling tools like 'senado_resultado_plenario' by focusing on party discipline analysis.

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: 'essencial para análise de disciplina partidária'. Provides alternatives: 'Para o resultado das sessões use senado_resultado_plenario'. Also explains parameter usage: 'Informe data (um dia) ou o período dataInicio/dataFim'.

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

Behavior4/5

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

Annotations already indicate readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds valuable behavioral details: return format (tabela, count, total, aviso?, registros[]), default limit (100, max 2000), empty result behavior, and optional textual filter. 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 well-structured with a clear front-loaded sentence and a bullet-like use of colons. It is somewhat lengthy but every sentence adds value. Minor redundancy could be trimmed, but overall it is effective.

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 (multiple tables, different result types), the description is remarkably complete. It covers all tables, parameters, limits, empty results, and points to an alternative tool. The output schema is indicated, so no need to explain return values further.

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 baseline is 3. The description enriches parameter meaning: it explains the two categories of tables (quantitativos vs listas), clarifies that 'limite' defaults to 100 and max 2000, and describes the 'filtro' as matching any field. This adds 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 states 'Tabelas de pessoal do Senado conforme o parâmetro `tabela`, specifying both quantitative aggregations and nominal lists. It distinguishes between different table types and mentions the alternative tool 'senado_servidores' for nominal cadastro of effective/commissioned servers, providing clear differentiation from 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 explicitly recommends using 'senado_servidores' for a specific use case (nominal cadastro of effective/commissioned servers), indicating when not to use this tool. However, it does not mention prerequisites or broader when-not scenarios, 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_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

Behavior4/5

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

Annotations indicate read-only, idempotent, non-destructive behavior. The description adds value by detailing the response format (secao, count, total, aviso?, itens), pagination limits (default 100, max 500), and date format expectations. This goes 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.

Conciseness3/5

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

The description is detailed but verbose (over 400 characters). While well-structured and front-loaded, it could be more concise. Every sentence adds value, but some redundancy exists in listing sub-fields.

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 (10 parameters, 3 secao options), the description covers all necessary aspects: required vs optional filters, default values, response structure, cross-references, and examples. The presence of an output schema further supports completeness.

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 descriptions cover all 10 parameters (100% coverage). The description enhances meaning by explaining parameter interactions (e.g., codigoParlamentar used only when secao=relatorias) and providing detailed sub-field structures for each 'secao'. This adds significant context 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 tool's purpose: detailing legislative processes by 'secao' (emendas, relatorias, prazos). It distinguishes itself from sibling tools by focusing on process details, and the name/title align well.

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 explicit guidance on when to use each 'secao', required filters (at least idProcesso or codigoMateria), default limits, and examples. It also cross-references related tools (senado_search_processos, senado_tabelas_processo). However, it lacks explicit statements about when not to use this tool.

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

Behavior4/5

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

Annotations already indicate read-only, open-world, idempotent, non-destructive. The description adds behavioral context: estatisticas computes percentiles with readable labels, consolidarPorServidor sums Normal+Suplementar lines, agruparPor implies non-consolidated, etc. Slight deduction because no explicit mention of data freshness or pagination.

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 with information, no fluff. Every sentence adds value. However, it could be slightly more structured (e.g., separate paragraphs for estatisticas vs normal modes). Still, it's very efficient for an AI agent.

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?

The description covers all major use cases, parameter interactions, and edge cases (e.g., agruparPor forces non-consolidated). It references the output schema indirectly (campoAnalisado, rotulo). The sibling tool mention adds context. Slight deduction due to no explicit mention of rate limits or max results beyond those in params.

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 significant meaning beyond each parameter's schema description. It explains interactions (e.g., estatisticas ignores modo, agruparPor forces consolidarPorServidor=false), gives usage examples like 'quem ganhou mais', and clarifies the purpose of idInternoFolha for disambiguation only.

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 retrieves remuneration data for Senate servers for a given year/month. It distinguishes between modes (resumo, detalhe, estatisticas) and explicitly references the sibling tool 'senado_servidores' for registration, avoiding 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?

The description provides explicit guidance: use estatisticas=true for rankings, averages, percentiles; otherwise use resumo (default) or detalhe. It warns that for extremes, estatisticas is required because resumo/detalhe only see a slice. It also explains when to use agruparPor and consolidarPorServidor.

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

Behavior5/5

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

Discloses idempotent, read-only behavior aligned with annotations. Adds real-world behavior: pagination stops at empty page with count=0, and known limitation that upstream may return empty even for active CPIs, with an aviso field. 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?

Description is moderately long but every sentence serves a purpose: defining scope, pagination details, return shape, discovery method, and caveat. Could be slightly tightened but remains efficient and front-loaded with key actions.

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 output schema exists (though not fully detailed in input), description provides complete information: return structure, fields in requerimentos, pagination logic, how to discover siglas, and known limitations. No gaps remain for an agent to use successfully.

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 covers both parameters with descriptions (100% coverage). Description adds value: clarifies pagina is zero-based index defined by upstream, gives example for siglaCpi, and explains how pagina and count work together. Extra context warrants above baseline 3.

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 it lists requerimentos of a specific CPI, with pagination. It specifies the key parameter siglaCpi and distinguishes from sibling senado_listar_comissoes by mentioning how 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?

Explicitly tells when to use: to list requerimentos of an active CPI. Provides how-to for finding siglas via senado_listar_comissoes with tipo=cpi. Explains pagination: zero-based index, count=0 indicates end. Gives caveat about empty responses and the aviso field.

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

Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds context about the return structure, including that resultado and parecer can be null for undeliberated items, and that the tool returns all sessions without pagination.

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, comprising a few sentences with front-loaded purpose, followed by return structure, edge case, and sibling references. No redundant or unnecessary text.

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 low complexity (2 parameters, no nested objects, annotations covering safety, and output schema present), the description comprehensively explains the return format, edge cases, and alternatives, making it complete for agent usage.

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% and the schema already provides complete descriptions for both parameters (data and escopo). The description does not add new parameter semantics beyond what is in the schema, meeting 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 clearly states it returns results of plenary sessions for a given date, including items considered, opinions, and results. It distinguishes from siblings by naming senado_agenda_plenario and senado_orientacao_bancada for related but different tasks.

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 use this tool (for session results) and when to use alternatives (senado_agenda_plenario for previous agenda, senado_orientacao_bancada for bank orientation). It also explains the behavior when no session exists (count=0 and sessoes empty).

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

Behavior5/5

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

The description adds significant behavioral details beyond the annotations: it explains the raw API object structure, variable fields, empty object return when veto hasn't been voted, error on invalid code, and absence of a numeric score. This provides a rich behavioral profile beyond the readOnlyHint and idempotentHint 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 slightly long but well-structured: it opens with the main purpose, then details the return format, follows with behavioral notes, and ends with a guidance to the sibling tool. Every sentence adds value; there is 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?

Given the tool's complexity and the presence of an output schema (context signal), the description is remarkably complete. It covers the return structure, error cases, empty result, parameter behavior, and relates to a sibling tool. No gaps are apparent.

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 meaningful context: it explains the three 'tipo' values and how they relate to 'codigo', and clarifies that all three point to the same veto. This goes beyond the schema's enum definition.

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: 'Obtém o resultado da apreciação de um veto presidencial'. It specifies the return structure and distinguishes itself from the sibling tool 'senado_vetos' by stating that the latter is for listing vetos, not getting a single result.

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 to obtain the code via 'senado_vetos' and clarifies that for listing vetos one should use 'senado_vetos'. It also explains the three possible values for 'tipo' and their meanings, providing clear context on when to use each.

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

Behavior5/5

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

Discloses a key limitation: the API does not publish attendance list. Aligns with annotations (readOnlyHint, idempotentHint, destructiveHint=false). No contradiction. Adds valuable behavioral context 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.

Conciseness4/5

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

Single paragraph is dense but efficient. Every sentence adds value. Could be slightly restructured for readability but no waste.

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 (many return fields, significant limitation noted), the description is comprehensive. It explains return structure, links to related tools, and addresses a key gap. Output schema exists, so return values are already documented.

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% (one parameter with description). Description adds context by noting that the parameter corresponds to the 'codigo' field in the agenda of committees, aiding selection. Exceeds baseline 3.

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?

Description clearly states the action ('Detalha'), the resource ('reunião de comissão'), and the key parameter. It also distinguishes by listing return fields and mentions where to obtain the parameter, differentiating from sibling tools like 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 Guidelines4/5

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

Provides explicit guidance on how to reconstruct attendance using sibling tools (senado_votacao_comissao, senado_notas_taquigraficas, urlAta) and where to get the parameter. Lacks explicit 'when not to use' but context is clear.

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

Behavior4/5

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

Annotations já indicam readOnly, openWorld, idempotent, não destrutivo. A descrição adiciona contexto valioso sobre o comportamento upstream (retorna todas as comissões, filtro local), limite de payload, divisão interna de intervalos anuais, e comportamento default de 14 dias.

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?

Descrição bem estruturada: ação principal, advertências de uso, formato de saída, referências a ferramentas relacionadas. Não é excessivamente longa para a quantidade de informação útil.

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?

Dado que schema e output schema estão presentes, a descrição é completa: cobre todos os parâmetros, comportamento default, limitações, retorno, e interação com ferramentas irmãs. Nada essencial falta.

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 cobre 100% dos parâmetros. A descrição complementa com o formato YYYYMMDD, o significado de sigla (sigla da comissão), e o comportamento default quando datas são omitidas (últimos 14 dias).

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?

O verbo 'Lista' especifica a ação, e o recurso 'reuniões de uma comissão pela sigla' é claro. Distingue-se dos irmãos senado_listar_comissoes (para descobrir sigla) e senado_reuniao_comissao (detalhes).

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?

Explicita quando usar (pela sigla, com intervalo de datas), quando não usar (janelas amplas causam erro de payload), e alternativas (consultar senado_listar_comissoes). Recomenda dividir períodos maiores e prefere janelas de até 2 semanas.

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

Behavior5/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false. The description adds important behavioral details: truncation with `aviso`, limit defaults and maximum (20, 200), mandatory filter requirement, return structure with field descriptions, and date format guidance. No contradictions. Adds significant 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?

The description is a single, well-structured paragraph of 5-6 sentences. It front-loads the purpose, then describes return structure, constraints, and usage example. Every sentence is efficient and informative, with 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?

Given the tool's complexity (9 parameters, no required ones, output schema described in text), the description is comprehensive. It explains mandatory filter condition, limit behavior, return fields, and linkage to sibling tool. It covers all essential context 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 3. The description adds meaning by clarifying that at least one filter among sigla, numero, ano, autor, or data range must be provided, and includes an example with date formats. This goes beyond the schema's per-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 clearly states the tool searches legislative processes, specifies the endpoint, and distinguishes from sibling `senado_buscar_materias` by noting they are complementary. The verb "Busca" and resource "processos" are precise.

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 advises that at least one filter is mandatory, provides an example, and directs to use the returned `id` with `senado_obter_processo` for details. It mentions complementarity with `senado_buscar_materias`, giving clear context. However, it does not explicitly exclude use cases or compare with other siblings like `senado_search_votacoes`, so slightly below perfect.

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

Behavior4/5

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

Annotations already declare safety traits (readOnly, idempotent, non-destructive). Description adds behavioral details: results ordered by date, fields included, absence of nominal votes, and mutual exclusivity of time parameters. No contradictions.

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?

Single paragraph covering all essential aspects without excessive verbosity; could be structured with bullet points for clarity but is reasonably concise given parameter count.

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?

Covers core functionality, filter usage, return format, and cross-reference to sibling tool. Lacks explicit pagination info but openWorldHint implies potential incompleteness. Overall complete for a search tool with descriptive output.

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% with descriptions for each parameter. Description adds context: how time parameters interact (mutually exclusive), example formats for year, and lists filter types beyond 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?

Description clearly states it searches and lists plenary votes with optional criteria, explicitly distinguishes from sibling tool senado_obter_votacao by stating it returns aggregated results without nominal votes.

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 guidance on time windows: use 'dias' for recent activity OR 'dataInicio'/'dataFim' for arbitrary period, with format examples. Also recommends senado_obter_votacao for detailed individual votes.

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

Behavior4/5

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

Description adds context beyond annotations (readOnlyHint, idempotentHint, etc.) by explaining that each 'tipo' returns count=0 and empty list when no records, and details the structure of each response. 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?

Description is moderately long but well-structured using colons and backticks for readability. Every sentence adds value, though some minor redundancy could be trimmed. Front-loaded with key purpose.

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 presence of an output schema, the description still covers important aspects: edge cases (empty results), relationship to sibling tools, and full parameter documentation. No gaps identified.

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%, but description adds meaningful detail: it explains each enum value of 'tipo' with the returned fields, and clarifies the optional 'uf' and 'nome' filters including partial search 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?

Description clearly states the tool provides administrative data about senators, with three distinct types ('auxilio-moradia', 'escritorios-apoio', 'aposentados') each with specific return structures. It also explicitly distinguishes from sibling tool 'senado_ceaps' for parliamentary quota expenses.

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 (for administrative data) and when not to use (for quota expenses, use 'senado_ceaps'). Provides example invocations and explains optional filter parameters.

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

Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds return format, data quality warnings, and mentions that the list is raw and may contain historical records, which is useful 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.

Conciseness4/5

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

Description is a single paragraph but each sentence adds value: purpose, return format, usage notes, cross-references. Could be slightly more structured but is not overly verbose.

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 no parameters and existing output schema, the description fully explains the tool's behavior, return shape, data caveats, and related tools. No gaps.

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?

No parameters exist, so schema coverage is 100%. Description explicitly states 'Não requer parâmetros', meeting the baseline. No additional parameter semantics needed.

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?

Clearly states it lists senators currently not in exercise ('afastados'), distinguishing from sibling tool 'senado_listar_senadores' which lists active senators. The verb 'Lista' and resource 'senadores afastados' are specific.

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 says no parameters required, warns about raw upstream data, historical records, and suggests alternatives: use 'senado_obter_senador' for mandate details and 'senado_listar_senadores' for active senators. Provides when-not-to-use and cross-references.

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

Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint. The description adds context: return format {codigoSenador, tipo, count, itens} with type-dependent item shapes, and explains empty results (count 0, empty itens). No contradiction.

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 thorough but well-structured: purpose first, then enum details, return format, usage comparisons, and an example. Each sentence adds value, though slightly lengthy for a simple data retrieval 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 that an output schema exists (reducing need to describe return values), the description fully covers input semantics, per-tipo item expectations, and usage context. It is complete for an agent to correctly invoke the tool.

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%, but the description goes beyond by detailing each 'tipo' enum (e.g., 'licencas' → dataInicio/dataFim/descricao) and noting 'codigoSenador' can be obtained from another tool, adding practical 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 clearly states the tool retrieves a senator's functional history based on the 'tipo' parameter, listing all six possible types with their specific item structures. It distinguishes from sibling tools like 'senado_obter_senador' for biographical 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?

Explicitly tells when to use this tool vs alternatives: 'Para dados biográficos e mandatos use senado_obter_senador.' It also instructs how to obtain the required 'codigoSenador' via 'senado_listar_senadores' and provides a concrete example.

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

Behavior5/5

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

Discloses return behavior including count, total, truncation warning, and details of subordinadasA mode (unresolved units, afastados). No contradiction with annotations (readOnlyHint, idempotentHint, destructiveHint).

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 front-loaded with main purpose. Every sentence adds value, though slightly verbose. Could be trimmed slightly but still effective.

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 6 parameters and output schema, the description covers all aspects: return format, special modes, truncation, cross-referencing organogram. No gaps identified.

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%, but description adds extra context: default limit 50, max 500, truncation warning, and detailed explanation of subordinadasA behavior beyond schema 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 clearly states the tool lists Senate employees by situation (ativos, efetivos, comissionados, inativos) with optional filters, and distinguishes from sibling tools like senado_estrutura_organizacional and senado_remuneracoes_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?

Explicitly explains when to use subordinadasA vs lotacao, notes that filtering by parent unit in lotacao returns 0, and provides examples of when to use sibling tools for organogram and remuneration.

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

Behavior5/5

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

The description goes far beyond annotations (readOnly, idempotent) by detailing return format (snake_case), pagination (default 100, max 500), truncation warnings, statistics behavior (with/without agruparPor), automatic value column selection, and exclusion of null-value records. No contradictions.

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-structured, starting with purpose, then return format, filtering, statistics, and specific notes. It is verbose but efficiently dense with information; every sentence adds value. Front-loaded with main purpose.

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, enums, statistics, grouping), the description covers all behaviors, constraints, and cross-references completely. It even mentions output schema structure and edge cases (e.g., non-applicable types for statistics). No gaps.

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?

With 100% parameter description coverage in schema, baseline is 3. The description adds significant context for parameters like 'estatisticas', 'agruparPor', and 'campo', explaining advanced behaviors (e.g., value column auto-selection, grouping effects) beyond schema explanations.

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 purpose: listing annual data on 'suprimento de fundos' (advances to suppliers) with specific resource types (supridos, atos-concessao, empenhos, etc.). It uses a specific verb ('relação anual') and distinguishes the tool from siblings by its unique domain and detailed options.

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 context on usage, such as filtering, statistics, and cross-referencing with other tools (senado_contratacoes_lista, senado_execucao_orcamentaria). However, it lacks explicit 'when to use' vs alternative tools, though the domain is distinct enough to infer.

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

Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive. Description adds return structure ({ tabela, count, total, linhas }), explains pagination (count < total means truncation), and what count=0 means (no match). 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?

Reasonably concise at about 5 sentences. Front-loaded with purpose and resource, then return structure, usage guidance, and examples. Some parenthetical details could be integrated, but overall well-structured without 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?

For a reference table lookup tool, the description covers all essential aspects: purpose, supported tables, return format, pagination, edge cases (count=0), and explicit sibling differentiation. With output schema and full parameter coverage, this is complete.

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% with descriptions for all 3 parameters. Description adds meaningful context: explains the meaning of each enum value for tabela, elaborates on filtro's textual search behavior, and clarifies the count/total truncation logic for limite. This goes beyond the schema 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?

Clear verb 'Consulta' and resource 'tabelas de referência do plenário'. Enumerates the specific tables (tipos-sessao, tipos-comparecimento, legislaturas) and explicitly distinguishes from sibling tool senado_tabelas_processo. Also provides use case context for interpreting fields of other 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?

Explicitly states when to use this tool (to interpret campos como tipo de senado_agenda_plenario/senado_resultado_plenario) and when not to (for tabelas do processo legislativo, use senado_tabelas_processo). Provides usage examples with parameters.

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

Behavior5/5

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

The description adds significant behavioral context beyond the annotations: it explains the output structure (count vs total, truncation, zero when no match), the two domain categories for the `tabela` parameter, and the effect of `filtro`. This is valuable for correct invocation.

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 a single paragraph but effectively front-loads the main purpose. It is information-dense without being overly verbose. Could be slightly improved with bullet points for the table list, but it is still clear and well-structured.

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 exists (and the description details the return object) and the tool's simplicity, the description is fully complete. It explains pagination, zero results, integration with other tools, and provides examples. No gaps remain.

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 categorizing the `tabela` enum into 'entidades' and 'tipos', providing examples, and clarifying the behavior of `filtro` and `limite` regarding count/total. However, the schema itself already contains good 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 clearly states the tool's purpose: to query legislative process reference tables to resolve codes/acronyms. It lists specific table domains and distinguishes from a sibling tool (senado_tabelas_plenario), making the purpose precise and distinctive.

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 provides usage guidance: 'Use antes de filtrar em senado_search_processos/senado_processo_detalhe' and 'Para as tabelas do plenário... use senado_tabelas_plenario'. This tells the agent when to use this tool and when to use an alternative.

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

Behavior5/5

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

Annotations declare readOnlyHint, idempotentHint, destructiveHint false. The description adds behavioral context beyond annotations: it notes that 'tipos-materia' is a curated catalog (not the live upstream list with 184 siglas) and that every response includes the 'tabela' field. 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 a single paragraph that front-loads the overall purpose, then enumerates each table value with its response structure and context. Every sentence adds value; no superfluous text.

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 has only one parameter, the annotations cover safety, and an output schema exists (though not shown), the description fully documents all enumerated options, their response shapes, and cross-references to related tools. It is complete for an agent to select and invoke 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?

Although schema coverage is 100% with one enum parameter and a brief description, the tool description adds extensive semantics: for each enum value it explains the response shape (e.g., '{ count, tipos }' for tipos-materia) and specific use cases, significantly exceeding what the schema provides.

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 it consults reference tables of the Senate, lists all six possible table values with their specific purposes, and distinguishes itself from the sibling tool senado_listar_senadores for nominal parliamentary lists. The verb 'consulta' plus the resource 'tabelas de referência' with explicit examples makes the 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?

Explicitly states when to use: 'use para achar a sigla correta antes de senado_buscar_materias/senado_search_processos'. Also provides an alternative: for nominal list of parliamentarians use senado_listar_senadores. This fully addresses when and when not to use the tool.

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

Behavior5/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that the full list is downloaded and filtered in the Worker, results are limited to 'limite' (default 50, max 500), with a warning when truncated. No contradiction.

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?

Single paragraph, front-loaded with purpose, includes return structure, filtering details, and a cross-reference. Every sentence adds value; no waste.

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 4 optional parameters, filter logic, and an output schema, the description covers return fields, filtering behavior, limits, and alternatives. Fully sufficient for an agent to invoke 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?

All parameters have descriptions in the schema (100% coverage). The description adds context that filters are partial and without accents, and explains the default/max for 'limite', adding 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 clearly states it lists outsourced employees of the Senate, filterable by name, company, or location. This distinguishes it from sibling tools like senado_empresas_contratadas, which is for company contracts.

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 states filters are partial search without accents and provides a cross-reference: 'Para a empresa contratante e seus contratos, use senado_empresas_contratadas.' This tells when to use an alternative.

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

Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false. The description adds return format details, truncation via `limite` with `aviso` indicator, and parameter constraints, providing good contextual transparency 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?

Two sentences, front-loaded with purpose, then return format, then parameter notes. Every sentence adds essential information 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 the tool has 3 parameters, an output schema, and no nested objects, the description covers input options, output format, and usage constraints. It also references the sibling tool for voting results, providing complete guidance.

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 description adds value by explaining the relationship between `ano` and `status` (use one, not both) and the default for `limite`. Also clarifies that `aviso` indicates truncation when limit is exceeded.

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 lists presidential vetoes being considered by Congress, with filtering by year or status. It distinguishes itself from sibling tool `senado_resultado_veto` which is for voting results of a specific veto.

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 states when to use this tool (list vetoes) and when to use the sibling for voting results. It also specifies the optional parameters `ano` or `status` and explains the meaning of each status value.

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

Behavior5/5

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

Discloses behavior when no media (count/total 0 with aviso) and when exceeding limite (includes aviso). Notes that media coverage is broader than notes. Annotations already indicate read-only, idempotent, non-destructive; description adds behavioral context 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.

Conciseness4/5

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

Description is thorough but slightly verbose. It is well-structured with clear sections, but some sentences could be more concise. Still, every sentence adds value.

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 has 4 parameters, a return type with nested structure, and many sibling tools, the description covers edge cases, return semantics, source of id, and relationship to other tools. Output schema exists, so return values are partially documented. Complete enough for an agent to use 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 description adds meaning: explains id (code from other tools), tipo (sessao vs reuniao with default), limite (default 50, max 200, signals overflow), orador (partial search). Provides value beyond 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 clearly states the tool lists videos and audios of a session or committee meeting, specifies the return structure, and distinguishes from sibling tools like senado_notas_taquigraficas. It also indicates how to obtain the required id from other 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?

Provides explicit guidance on when to use (to get media for a session/meeting) and when not to use (for textual transcriptions, use senado_notas_taquigraficas). Also explains how to obtain the id via senado_agenda_plenario, senado_resultado_plenario, or senado_reuniao_comissao.

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

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. The description adds valuable behavioral context beyond annotations: no pagination, potential timeouts for wide periods, that codigo is specific to committee votes and not valid for plenary, and the return format. This goes beyond what 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 lengthy but well-structured with clear sections for each mode, warnings, and cross-references. Every sentence adds value. There is no fluff, though with three modes the length is justified. Could be slightly more condensed but overall efficient.

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 (9 parameters, 3 modes, no pagination, timeout risks, linked to other tools), the description covers all aspects: return format, parameter dependencies, required codes, behavior across modes, and important caveats. It is fully complete for an AI agent to use 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 description coverage is 100%, so baseline is 3. The description significantly enhances parameter understanding by explaining how 'por' determines required parameters, explaining the meaning of each mode, and adding context about optional filters and the output structure. It connects parameters to real use cases.

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 'Lista votações em comissões' and then details three distinct query modes (por comissao, senador, materia), making the tool's purpose specific and differentiating it from siblings such as senado_votos_materia and 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?

Explicitly explains when to use each mode based on the 'por' parameter, provides warnings about timeouts and recommends 3-month windows, tells where to obtain required codes (senado_listar_comissoes, senado_listar_senadores), and explicitly states when NOT to use this tool (e.g., plenary votes and that codigo is invalid for 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

Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. The description adds valuable behavioral details: results are ordered most recent first, default year is current if no period, exact return structure, and dependencies (codigoSenador from senado_listar_senadores). No contradictions.

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 (three sentences) and well-structured: main purpose first, then output schema, then usage details. No redundant information; every sentence adds value.

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?

The description covers main use cases, output fields, ordering, default behavior, and prerequisites. Given that an output schema exists and annotations provide safety info, the description is sufficiently complete. Minor omission: no mention of error conditions or pagination.

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. Description adds meaning by noting codigoSenador is required and obtainable via another tool, explains alternative period parameters (ano vs dataInicio/dataFim), and that omission defaults to current year. This compensates more than a baseline 3.

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 lists nominal votes of a senator by codigoSenador, specifies output fields, and explicitly distinguishes from a sibling tool (senado_obter_votacao) for detailed vote info. The verb 'lista' and resource are specific.

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 tells when to use (to list senator votes) and mentions alternative (senado_obter_votacao for details). It also explains default behavior and parameter combinations. However, it does not explicitly exclude other similar tools like senado_search_votacoes.

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

Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds behavioral details: return object structure, conditional inclusion of `votos[]` based on `incluirVotos`, and field explanations. No contradictions.

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?

Description is concise yet comprehensive, with 3 sentences. Information is front-loaded: purpose first, then return format, then parameter behavior. No superfluous text.

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 2 parameters, full schema coverage, and an implied output schema (described explicitly), the description is complete. It covers purpose, input, output, and how to obtain prerequisites.

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 covers 100% of parameters. Description adds meaning beyond schema: explains `incluirVotos` default (false) and effect (adds `votos[]`), clarifies where to get `codigoMateria` (sibling tools), and outlines the return structure.

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?

Description clearly states it 'Obtém as votações de uma matéria pelo `codigoMateria`', specifying the verb (obtém) and resource (votações de uma matéria). It distinguishes from siblings by detailing the unique return structure and how to obtain the required code.

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?

Description explains when to use the tool (to get votes of a matter) and directs users to sibling tools for obtaining the `codigoMateria`. It lacks explicit when-not scenarios but provides clear context.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.