Senado BR MCP
Server Details
Brazilian Federal Senate open data over MCP — 66 tools, 4 prompts, 5 resources.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
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.
Tool Definition Quality
Average 4.6/5 across 65 of 65 tools scored.
Every tool has a distinct purpose clearly described, with explicit cross-references to related tools to avoid confusion. For example, senado_buscar_materias and senado_search_processos are differentiated by API version and parameters, and senado_agenda_comissoes vs senado_reunioes_comissao serve different roles (agenda vs history). Overlaps are minimal or documented.
The vast majority follow a 'senado_<verb>_<noun>' pattern (e.g., senado_listar_senadores, senado_obter_materia). However, there are minor inconsistencies: some use English 'search' (senado_search_processos) while others use Portuguese 'buscar' (senado_buscar_materias), and a few tools use acronyms or short names (senado_ceaps, senado_mesa). These are exceptions; overall the pattern is clear.
With 65 tools, the server is far beyond the recommended 3-15 range for a focused MCP server. While the scope covers many aspects of the Senate, the set could be split into multiple, more cohesive servers (e.g., by domain: plenary, committees, e-Cidadania, administration). The sheer number increases cognitive load and potential for misselection.
The tool set covers an impressively wide range of Senate data: plenary sessions, committees, senators, legislative processes, e-Cidadania, contracts, finances, personnel, and more. Most major CRUD operations are present (e.g., list, get, search for most entities). Minor gaps exist, such as the absence of a tool to create or update a committee, but those are outside the typical scope of a read-only MCP server.
Available Tools
66 toolssenado_agenda_comissoesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Data específica (YYYYMMDD) | |
| siglaComissao | No | Filtrar por comissão específica |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering safety and idempotency. The description adds transparent behavioral details: default date (today), return structure with fields, and optional filters. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loaded: first sentence states primary purpose and parameters, second covers return format and sibling distinctions. One more sentence could be combined, but it's efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of annotations (readOnly, idempotent) and an output schema (though not shown, indicated as present), the description is complete: it explains return shape, default date, filter, and links to siblings. No gaps for a tool with two non-required parameters and clear semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, each parameter explained. The description adds semantic value by stating the default for 'data' (today) and explaining the return shape, which enriches understanding beyond schema alone. Slight deduction since schema already covers core meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool obtains the meeting agenda for all commissions on a specific date, with an optional filter by commission acronym. It explicitly distinguishes from sibling tools 'senado_reunioes_comissao' (historical data) and 'senado_reuniao_comissao' (meeting details), ensuring no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (agenda for a specific date) and when to use alternatives (historical data via 'senado_reunioes_comissao', meeting details via 'senado_reuniao_comissao'). This helps the agent choose correctly among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_agenda_plenarioARead-onlyIdempotentInspect
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, relator). 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.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Data específica (YYYYMMDD; padrão: hoje) | |
| escopo | No | dia = SF+CN no dia; mes = mês inteiro; cn = plenário do Congresso | dia |
| dataFim | No | Data fim para período do CN (YYYYMMDD; apenas escopo=cn) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, etc. The description adds value by detailing the return structure (`{ data, escopo, count, sessoes }`), default behavior (assume hoje), and that it returns the agenda (a read operation). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose+return, parameter usage, alternative tools. No fluff, front-loaded, easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all essential aspects: what the tool does, input parameters with defaults, output structure with fields, and links to related tools. Given the tool's complexity (3 optional params, output schema alluded to), this is comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for three parameters, each with descriptions. The description adds minor context (e.g., default for data, escopo options), but does not significantly enhance beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Obtém' (gets) and resource 'agenda de sessões de plenário' with scope (dia/mês/cn) and content (pauta de matérias). It also distinguishes from sibling tools by explicitly naming alternatives for results and session details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on parameter usage (escopo, data default) and explicitly names alternative tools for different purposes (resultado_plenario, encontro_plenario). However, it does not explicitly outline 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_autores_atuaisARead-onlyIdempotentInspect
Lista parlamentares autores de processos em tramitação, ordenados por produção (maior número de matérias primeiro). 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).
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Filtrar por UF (ex: SP) | |
| nome | No | Filtrar por nome (busca parcial) | |
| limite | No | Máximo de resultados (padrão: 50) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the description adds value by detailing return structure (count, total, autores), sorting, partial search behavior, and limit constraints, without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: first covers purpose and output, second lists fields, third explains filters and integration. No redundant words, front-loaded with key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, output structure, optional filters, default/max limit, and how to use the output in other tools. Given the presence of an output schema and low complexity, the description is fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning: it specifies that 'nome' performs partial search without accents, and 'limite' defaults to 50 with max 1000, which is not evident from schema descriptions alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Lista parlamentares autores de processos em tramitação' with a specific verb (lista) and resource (autores), and distinguishes from siblings by mentioning sorting by production and returning author codes, which are used in other tools like senado_obter_senador.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent to use the 'codigo' in senado_obter_senador or senado_search_processos, providing clear chaining guidance. Also explains filter options and default limit, though lacks explicit when-not-to-use statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_buscar_legislacaoARead-onlyIdempotentInspect
Busca normas jurídicas federais (leis, decretos, etc.) por tipo, numero, ano ou data. Retorna { count, normas }, cada norma com codigo, tipo, numero, ano, data, ementa, situacao e url do texto. É obrigatório informar ao menos um parâmetro, senão retorna erro. Use o codigo retornado em senado_obter_legislacao para o detalhe; consulte os tipos válidos em senado_tabelas_referencia (tabela: "tipos-norma").
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Ano da norma | |
| data | No | Data da norma (YYYYMMDD) | |
| tipo | No | Tipo da norma (ex: LEI, DEC, LCP, EMC) | |
| numero | No | Número da norma |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds value by specifying the minimum parameter requirement, the response structure (count and normas with fields), and error behavior. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no waste. First sentence states purpose, second details return format, third provides usage constraints and cross-references. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters (none required), output schema exists, and annotations cover risk, the description fully covers what the tool does, its constraints (at least one param), the return shape, and links to related tools for deeper actions. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 4 parameters have descriptions). The description merely lists the parameters in a summary ('por tipo, numero, ano ou data') without adding new semantic info. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it searches federal legal norms by specific parameters (tipo, numero, ano, data) and distinguishes from sibling tools like senado_obter_legislacao (for details) and senado_tabelas_referencia (for valid tipos). Verb 'Busca' and resource 'normas jurídicas federais' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states that at least one parameter is required, otherwise returns error. Provides clear guidance on when to use this tool vs. alternatives: use codigo in senado_obter_legislacao for details and consult senado_tabelas_referencia for valid tipos.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_buscar_materiasARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Ano da matéria | |
| ordem | No | Direção da ordenação quando ordenarPor=dataApresentacao | desc |
| sigla | No | Tipo: PEC, PL, PLP, MPV, PDL, PRS, etc. | |
| limite | No | Máximo de resultados (padrão: 100) | |
| numero | No | Número da matéria | |
| autorNome | No | Nome do autor | |
| ordenarPor | No | Ordenação local; padrão dataApresentacao para favorecer pedidos recentes | dataApresentacao |
| tramitando | No | Apenas em tramitação | |
| palavraChave | No | Termo livre buscado nas palavras-chave do processo | |
| dataFimApresentacao | No | Data final de apresentação (YYYYMMDD ou YYYY-MM-DD) | |
| dataInicioApresentacao | No | Data inicial de apresentação (YYYYMMDD ou YYYY-MM-DD) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=true/false. The description adds return structure details (count, total, materias[] with fields) and truncation behavior (includes 'aviso'), which complements the annotations well 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-organized paragraph with front-loaded purpose, followed by usage patterns, return structure, and cross-reference. Every sentence adds value, slightly longer than minimal but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters, high schema coverage, and existing output schema, the description covers all essential aspects: purpose, usage guidance, parameter semantics, return structure, and interaction with sibling tools. No gaps for an AI 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.
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: explains default ordering (`ordenarPor: 'dataApresentacao'` favors recent requests), clarifies `sigla` values (PEC, PL, etc.), and describes `limite` default/max and truncation behavior. These add value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches legislative matters by multiple criteria (type, number, year, keywords, author, date range, status), and explicitly distinguishes from the sibling tool `senado_obter_materia` by guiding when to use `codigo` for details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance (e.g., for recent matters use specific parameters) and when-not-to (avoid calling details for listing, use `senado_obter_materia` for detail/tramitação/textos). Also gives concrete example for 'matérias recentes sobre X'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ceapsARead-onlyIdempotentInspect
Despesas da Cota para Exercício da Atividade Parlamentar (CEAPS) dos senadores em um ano. Retorna { ano, modo, totalDespesas, valorTotal, ... }: 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.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | Yes | Ano das despesas | |
| mes | No | Filtrar por mês | |
| modo | No | Agregação ou detalhe (padrão: por-senador) | por-senador |
| limite | No | Máximo de linhas no resultado (padrão: 100) | |
| codSenador | No | Filtrar por código do senador | |
| fornecedor | No | Filtrar por fornecedor (busca parcial) | |
| nomeSenador | No | Filtrar por nome do senador (busca parcial) | |
| tipoDespesa | No | Filtrar por tipo de despesa (busca parcial) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With rich annotations (readOnly, idempotent), the description adds significant context: output structure for aggregated/detail modes, filtering behavior (partial match), truncation with warning, and the need to use another tool for senator codes. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded with purpose, structured with semicolons and line breaks, every sentence adds value. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters (1 required), 100% schema coverage, and output schema, the description covers output shape for all modes, filtering, truncation, and a pointer to a related tool. Complete for a data retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description explains 'modo' behavior and output shape for each mode, filtering partial match semantics, and truncation limit with warning alert. This adds meaning beyond the schema, which only lists parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns CEAPS expenses for senators in a given year, with specific output shape for different modes. It uniquely identifies the resource (despesas CEAPS) and distinguishes from sibling tools by topic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use instructions. It mentions obtaining codSenador via another tool, implying a prerequisite, but does not compare with siblings or advise on mode selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_contratacao_detalheARead-onlyIdempotentInspect
Detalha uma seção específica de uma contratação. O tipo indica a natureza do registro: contratos (contrato firmado), atas_registro_preco (ata de registro de preço — compromisso de preços para compras futuras) ou notas_empenho (nota de empenho — reserva orçamentária do gasto). A secao escolhe o aspecto: itens, pagamentos, garantias, 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); seção sem registros retorna count 0 e itens vazio. Obtenha o id antes via senado_contratos ou senado_contratacoes_lista; combinações de seção/tipo inválidas retornam erro.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID da contratação (campo 'id' das listas de contratos/atas/empenhos) | |
| tipo | No | Tipo da contratação | contratos |
| secao | Yes | aditivos: apenas contratos; acionamentos: apenas atas | |
| limite | No | Máximo de itens (padrão: 100) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe read operation. The description adds critical behavioral details: validation rules (aditivos only for contratos, acionamentos only for atas), return format with pagination (limite, count, itens), and error handling for invalid combinations, all 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph that front-loads the main purpose. Every sentence adds value, covering parameters, return format, and usage notes without redundancy or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, enums, validation rules, pagination) and the presence of an output schema, the description is comprehensive. It covers all aspects: parameter meanings, valid combinations, return shape, pagination behavior, and error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description adds significant meaning: it explains the semantic differences between 'tipo' values (contract vs. price agreement vs. budget reservation) and lists valid 'secao' combinations, providing context the schema alone does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('detalha') and resource ('seção específica de uma contratação'). It explains the meaning of 'tipo' and 'secao' values, and directs users to obtain the 'id' from sibling tools, effectively distinguishing it from list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context, including how to obtain the 'id' from related tools and the valid combinations of 'secao' and 'tipo'. However, it does not explicitly state when this tool should be preferred over alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_contratacoes_listaARead-onlyIdempotentInspect
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). 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.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | Yes | Qual lista consultar | |
| filtro | No | Filtro textual (empresa, objeto, etc.) | |
| limite | No | Máximo de resultados (padrão: 50) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, indicating a safe, read-only operation. The description adds behavioral details beyond annotations: it specifies the return structure ({ tipo, count, total, registros }), differentiates the format for 'menores_aprendizes' as raw API records, and describes the truncation behavior with 'aviso'. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph but well-structured: it starts with the tool's purpose, then output format, then details about limits and alternatives. Every sentence adds value, though it could be slightly more concise. It fits the definition of concise for a tool with moderate complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters (one required), annotations indicating safety, and the description provides return format and behavioral details, it is quite complete. The description covers what is needed for an agent to use the tool correctly, including when to use an alternative tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 beyond the schema: it explains that 'filtro' is applied on the Worker to all fields, and reiterates the default and maximum for 'limite'. This provides useful semantic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: lists specific types of contract records (atas de registro de preço, notas de empenho, menores aprendizes) with optional text filtering. It distinguishes from the sibling tool senado_contratacao_detalhe, which is mentioned as an alternative for deeper details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool (to list these contract types) and when not to use it (for deeper detail, use senado_contratacao_detalhe). It also mentions the limit and truncation behavior, providing clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_contratosARead-onlyIdempotentInspect
Busca contratos administrativos do Senado por fornecedor, CNPJ, ano, número, objeto ou mão de obra (filtros aplicados pela API upstream). Retorna { count, total, contratos }, onde cada item traz id, numero, objeto, empresa {nome, cnpj}, subEspecie, dataAssinatura, vigencia e unidadeGestora. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Ano do contrato | |
| cnpj | No | CNPJ/CPF exato do fornecedor | |
| limite | No | Máximo de resultados (padrão: 50) | |
| numero | No | Número do contrato (busca parcial) | |
| objeto | No | Texto no objeto do contrato | |
| maoDeObra | No | Apenas contratos com mão de obra residente | |
| fornecedor | No | Nome do fornecedor (busca parcial) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. The description adds behavioral context such as the limit of results (default 50, max 500), truncation warning (aviso), and the specific return fields, which go 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and well-structured: first sentence states purpose and filters, second sentence details return format, limits, and usage hint. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 optional parameters, output schema, and clear annotations, the description covers purpose, return structure, pagination limits, and a usage flow to a sibling tool. It is complete for an AI agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a description. The description reiterates the search filters but adds minimal new semantics (e.g., 'filtros aplicados pela API upstream'). It does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool searches Senate administrative contracts by various criteria (fornecedor, CNPJ, ano, numero, objeto, maoDeObra). It also specifies the return structure and how to use the returned id for further details, distinguishing it from sibling tools like senado_contratacao_detalhe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description hints at usage flow (search then use id for details) but does not explicitly state when to use this tool versus alternative listing tools like senado_contratacoes_lista. It provides truncation behavior 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_discursos_plenarioARead-onlyIdempotentInspect
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, url e nomeParlamentar. Para discursos de um parlamentar específico use senado_discursos_senador; obtenha o texto integral com senado_discurso_texto.
| Name | Required | Description | Default |
|---|---|---|---|
| dataFim | Yes | Data fim (YYYYMMDD) | |
| dataInicio | Yes | Data início (YYYYMMDD) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, etc. Description adds return structure details but no additional behavioral context beyond parameter format, which is also in schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, neither wasted. First sentence covers purpose and parameters; second gives output structure and alternatives. Very efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter tool with output schema, description covers input, output, and alternatives. Could mention pagination or limits, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions and patterns. Description restates format and required status, adding minimal new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Lista' and resource 'discursos realizados em plenário' with required date parameters. It differentiates from siblings by naming two alternative tools for specific use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (list all plenary speeches in a date range) and when not to (for specific senator speeches or full text) with direct references to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_discursos_senadorARead-onlyIdempotentInspect
Lista pronunciamentos de um senador, filtráveis por período e casa legislativa. O parâmetro tipo (padrão discursos) escolhe entre discursos (pronunciamentos próprios) e apartes (intervenções em discursos de outros parlamentares). Retorna { codigoSenador, tipo, count, discursos }, cada item com codigo, data, casa, tipoUsoPalavra, resumo, indexacao, url e nomeParlamentar (sem texto integral; para tipo: apartes os itens são apartes, com a mesma estrutura). Obtenha o codigoSenador via senado_listar_senadores; use o codigo do pronunciamento em senado_discurso_texto para o texto completo.
| Name | Required | Description | Default |
|---|---|---|---|
| casa | No | Casa legislativa (SF=Senado, CN=Congresso) | |
| tipo | No | discursos (próprios) ou apartes (intervenções em discursos de outros) | discursos |
| dataFim | No | Data fim (YYYYMMDD) | |
| dataInicio | No | Data início (YYYYMMDD) | |
| codigoSenador | Yes | Código único do senador |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the tool's safe nature is covered. The description adds transparency about the output structure (including fields like codigo, data, casa, resumo, etc.) and clarifies that no full text is returned. It does not mention pagination or rate limits, but the openWorldHint may imply extensive results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that efficiently packs essential information: purpose, parameters, output, and cross-references. It is front-loaded with the main action. While it could be more structured (e.g., bullet points), it remains clear and not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, 1 enum, output schema), the description is fairly complete. It explains the output structure in detail, links to related tools, and clarifies the behavior of the tipo parameter. It does not specify if results are paginated or limited, but the openWorldHint suggests broad coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters have schema descriptions (100% coverage), so the schema already provides basic semantics. The description adds value by explaining the default for tipo, the distinction between discursos and apartes, and the output shape for each tipo. It also ties the parameters to the tool's purpose (filtering by period and house).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists pronunciamentos (speeches) of a senator, with filtering by period and house. It distinguishes from sibling tools by explicitly referencing senado_listar_senadores for obtaining the senator code and senado_discurso_texto for full text. It also specifies the tipo parameter differentiating discursos (own speeches) from apartes (interventions), making the tool's scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool: to list a specific senator's speeches with optional filtering. It explains the default for tipo and recommends using other tools for related tasks. However, it does not explicitly state when not to use it versus senado_discursos_plenario (which may list all plenary speeches), though the per-senator focus is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_discurso_textoARead-onlyIdempotentInspect
Obtém o texto integral de um pronunciamento/discurso específico. Retorna { codigoPronunciamento, texto }, onde texto é o conteúdo completo do discurso (string). Obtenha o codigoPronunciamento primeiro via senado_discursos_senador ou senado_discursos_plenario (campo codigo).
| Name | Required | Description | Default |
|---|---|---|---|
| codigoPronunciamento | Yes | Código do pronunciamento |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare `readOnlyHint: true`, `idempotentHint: true`, and `destructiveHint: false`, which the description does not contradict. The description adds value by explaining the output structure but does not disclose potential error behavior or data completeness. The bar is lowered due to annotations, so a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of three concise sentences with no extraneous information. It front-loads the core purpose, immediately followed by output format and prerequisite, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one required parameter and good annotations, the description is nearly complete. It explains the output, prerequisite, and usage flow. Lacks mention of error handling or validation, but overall sufficient 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description 'Código do pronunciamento'. The description adds context by linking the parameter to sibling tool outputs, which is helpful but does not significantly enhance the schema's meaning. Baseline for high coverage is 3, and the marginal context does not raise it further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 specific speech, specifies the output format with `codigoPronunciamento` and `texto`, and directs the user to sibling tools to obtain the required code. This leaves no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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: after obtaining the `codigoPronunciamento` from `senado_discursos_senador` or `senado_discursos_plenario`. It provides a clear prerequisite and distinguishes from siblings by indicating this tool retrieves full text while others list speeches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_distribuicao_materiasARead-onlyIdempotentInspect
Estatísticas de distribuição de matérias numa comissão (pela siglaComissao), por tipo: autoria (matérias por autor; padrão) ou relatoria (matérias relatadas); codigoParlamentar filtra apenas em autoria. Retorna { siglaComissao, tipo, count, parlamentares } ordenado por quantidade desc, cada item com codigo, nome, partido, uf e quantidade. Útil para medir carga de trabalho legislativo; obtenha a sigla via senado_listar_comissoes.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | autoria = matérias de autoria por parlamentar (padrão); relatoria = matérias relatadas | autoria |
| siglaComissao | Yes | Sigla da comissão (ex: CCJ, CAE) | |
| codigoParlamentar | No | Filtrar por parlamentar (apenas tipo=autoria) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds context about the return structure and parameter interactions (e.g., codigoParlamentar only works with tipo=autoria), which is valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, efficiently covering purpose, parameters, output, and usage hint. No redundant information, and the structure is front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (3 parameters, 1 required, 1 enum), the description fully covers the tool's behavior, parameters, and output format. The presence of rich annotations and a schema with 100% coverage means the description adds sufficient context without omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are fully described in the schema, and the description adds additional meaning: the default value for tipo, the exclusive use of codigoParlamentar with autoria, and the output structure. This goes beyond the schema to provide clear semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides distribution statistics of bills in a committee, with specific parameters and output format. It distinguishes from siblings by mentioning the prerequisite tool senado_listar_comissoes to obtain the committee acronym.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case (measuring legislative workload) and advises how to get the required committee acronym. However, it does not explicitly state when not to use this tool or compare it to alternatives among siblings, which would improve guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_consultas_analiseARead-onlyIdempotentInspect
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 }. Para o detalhe de uma consulta use senado_ecidadania_obter_consulta.
| Name | Required | Description | Default |
|---|---|---|---|
| modo | No | consenso (alta concordância) ou polarizada (~50/50) | consenso |
| limite | No | Número máximo de resultados | |
| status | No | Recorte 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 |
| minimoVotos | No | Mínimo de votos para considerar | |
| percentualMinimo | No | Modo consenso: percentual mínimo numa direção | |
| margemPolarizacao | No | Modo polarizada: considera polarizado se diferença ≤ este percentual |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: explains behavior of status (aberta/encerrada/todas), that closed before first load are not captured, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured and front-loaded, but somewhat lengthy. Could be trimmed slightly, but justified by complexity of two modes and status explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all aspects: purpose, modes, parameters, status behavior, and return shape. Output schema exists, so return explanation is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds meaning by explaining parameters in context of modes (e.g., percentualMinimo, margemPolarizacao) and their defaults, supplementing schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it analyzes open e-Cidadania public consultations by citizen agreement degree, distinguishing two modes (consenso and polarizada). It also differentiates from sibling tool for details. Specific verb+resource+scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to use each mode (consenso vs polarizada) with parameters, and when to use alternative tool for detail. Status options and default values are clearly described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_consultas_votosARead-onlyIdempotentInspect
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). 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).
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Sigla da UF (ex.: SP) — filtra e ranqueia por votos daquele estado | |
| ordem | No | Ordem (padrão desc) | desc |
| limite | No | Número máximo de resultados | |
| materia | No | Filtro por código da matéria (numérico) ou trecho do nome/ementa | |
| ordenarPor | No | Métrica do ranking (padrão: total de votos) | total |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive. The description adds valuable context: data source (CSV Arquimedes), update frequency (semanalmente), special handling of status as archive, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed but not excessively long. It uses bold for key terms and front-loads the main purpose. However, it could be slightly more structured (e.g., bullet list for parameters) to improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description still explains the return format (count, referencePeriod, consultas) and special fields like 'recorteUf'. All 5 parameters are described with behavior. Ranking and filtering are explained. Completely adequate for effective usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (baseline 3), but the description adds significant meaning beyond property descriptions: explains 'uf' adds 'recorteUf' to items, 'materia' allows numeric or text search, 'ordenarPor' ranking behavior, and default values. This enriches understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it accesses historical voting data from e-Cidadania public consultations, with breakdown by UF. It explicitly distinguishes itself from the sibling tool 'senado_ecidadania_listar_consultas' by stating the difference between ongoing vs historical consultations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use this tool (for historical votes, not ongoing consultations) and explicitly names the alternative sibling tool. It also explains the handling of 'Descontinuado' status and gives usage context for parameters like 'uf', 'ordenarPor', etc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_listar_consultasARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limite | No | Número máximo de resultados | |
| pagina | No | Página de resultados | |
| status | No | Filtrar 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
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, but the description adds valuable context: return format, lifecycle of consultations (aberta to encerrada), and limitation on capturing closed consultations before first ingestion. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph that efficiently conveys purpose, output, lifecycle, parameters, and sibling references. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (mentioned in context signals) and comprehensive parameter documentation, the description fully covers the tool's functionality, behavior, and relationship to siblings. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all three parameters with descriptions (100% coverage). The description reinforces default values and explains the meaning of status options, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists public consultations from e-Cidadania, focusing on open ones, and details the output structure. It distinguishes from sibling tools by naming specific alternatives for detail and analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool and refers to sibling tools for specific needs (detail, analysis). It explains the lifecycle of consultations, aiding in appropriate usage, but does not explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_listar_eventosARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ordem | No | Ordem (padrão desc) | desc |
| limite | No | Número máximo de resultados | |
| status | No | Filtrar por status | |
| comissao | No | Sigla da comissão | |
| ordenarPor | No | Ordenar por data ou número de comentários |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, etc. The description adds behavioral context: data is a complete corpus (D1), updated weekly, includes thousands of events even closed, and returns a specific structure with count and eventos. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly long but well-structured: purpose first, then return format, then filters, then examples. Each sentence adds value, though it could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 params, output schema exists, annotations rich), the description is comprehensive: it explains return structure, all filters, sorting, and points to the sibling tool for full details. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 value beyond schema by explaining the ranking usage (ordenarPor, ordem) and default limit, and by clarifying the return fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Lista eventos interativos do e-Cidadania', a specific verb+resource. It distinguishes from siblings by naming the alternative tool for full details and implies this tool returns the complete set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool (listing events) and when not to (for full details, use senado_ecidadania_obter_evento). It also provides context on data freshness and scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_listar_ideiasARead-onlyIdempotentInspect
Lista ideias legislativas propostas por cidadãos no e-Cidadania — conjunto completo (corpus persistido em D1, atualizado semanalmente; ~150 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.
| Name | Required | Description | Default |
|---|---|---|---|
| ordem | No | Ordem de ordenação | |
| limite | No | Número máximo de resultados | |
| pagina | No | Página de resultados | |
| status | No | Filtrar por status | |
| ordenarPor | No | Campo para ordenação (apoios é o disponível no corpus; data/comentarios só no detalhe) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that the corpus is persisted in D1, updated weekly, includes ~150k ideas, and that autor/dataPublicacao are null in listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence serves a purpose: purpose, dataset size, return structure, filters, ordering, and sibling tool reference. No wasted words; front-loaded with main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and no output schema details provided, the description covers return format, filtering, ordering, dataset context, and links to the detail tool. Complete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds value by explaining the default for limite (20), the effect of ordenarPor='apoios' with ordem='desc', and that status filters like 'aberta'/'encerrada'/'convertida' are available.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Lista' and resource 'ideias legislativas no e-Cidadania', and distinguishes itself from the sibling tool 'senado_ecidadania_obter_ideia' for detail retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool (list all ideas) and when not (for detail, use the sibling). Also provides an example for ordering by apoios descending to get a ranking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_obter_consultaARead-onlyIdempotentInspect
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, comentarios, url (campos como comissao e datas podem vir null). Obtenha o id antes via senado_ecidadania_listar_consultas ou senado_ecidadania_consultas_analise.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID da consulta pública |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. Description adds specific return fields and notes nullable fields (comissao, dates). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first covers purpose and return, second gives usage instruction. Zero waste, front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 clear annotations, description fully covers return structure, parameter source, and behavior. Output schema exists but description already lists fields, making it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (id) with 100% schema coverage. Schema already describes 'ID da consulta pública'. Description adds context on where to get id, but does not add new meaning about parameter semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Obtém o detalhe de uma consulta pública específica do e-Cidadania', specifying verb (obter), resource (consulta pública), and scope (específica). Lists return fields, distinguishing it from sibling list/analysis tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to obtain the id via sibling tools (senado_ecidadania_listar_consultas or senado_ecidadania_consultas_analise) before using this tool, providing clear when-to-use guidance and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_obter_eventoARead-onlyIdempotentInspect
Obtém o detalhe de um evento interativo do e-Cidadania. Retorna um objeto com id, titulo, descricao, data, hora, comissao e comissaoNomeCompleto, local, status, comentarios, url, além de pauta (até 15 itens), convidados e videoUrl (embed do YouTube, quando houver). Obtenha o id antes via senado_ecidadania_listar_eventos.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID do evento |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, indicating safe, non-destructive behavior. The description adds value by detailing the return fields (id, titulo, descricao, data, etc.), including array fields like pauta and convidados, and noting the videoUrl format. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, two sentences, front-loaded with the main action. It efficiently lists the return fields without redundancy. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter, the description provides complete context: what the tool does, what it returns (including field names and limits like 'até 15 itens'), and how to obtain the required id. The presence of an output schema is noted, but the description adequately covers the key aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter 'id' is already described in the schema as 'ID do evento' with constraints. The description does not add further semantics about the parameter itself, but it does contextually link the id to the list tool. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Obtém' and the resource 'detalhe de um evento interativo do e-Cidadania'. It distinguishes this from the sibling tool 'senado_ecidadania_listar_eventos' which lists events, while this retrieves details of a specific event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs users to obtain the event ID via 'senado_ecidadania_listar_eventos' first, providing clear prerequisite guidance. It lacks explicit 'when not to use' but the context is straightforward given the tool's singular purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_obter_ideiaARead-onlyIdempotentInspect
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, comentarios, url e plConvertido (sigla/número quando virou projeto de lei). Obtenha o id antes via senado_ecidadania_listar_ideias.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID da ideia legislativa |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds value by noting that the 'descricao' field is truncated to ~2000 characters, which is a behavioral trait not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with three sentences that front-load purpose and return type, include important behavioral detail (truncation), and guidance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 appropriately lists key fields without enumerating them fully. It mentions the truncation behavior, making it complete for this simple retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the single parameter. The description adds context by explaining how to obtain the required 'id' (from the listing tool), which goes beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (obter/get) and the resource (detalhe de uma ideia legislativa). It distinguishes from the sibling listing tool by explicitly instructing to obtain the id via that tool first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides usage guidance by telling the agent to get the id from 'senado_ecidadania_listar_ideias' first, implying when to use this tool. It does not explicitly mention alternatives or when not to use, 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_ecidadania_sugerir_tema_enqueteARead-onlyIdempotentInspect
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, sugestoes } (até 10), cada sugestão com tipo (consulta/ideia), id, titulo, motivo, metricas (participação/polarização) e url, ordenadas por participação. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| criterios | No | Critérios de seleção do tema (polarização, consenso, participação mínima, tramitação) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, open-world, idempotent, non-destructive behavior. The description adds context about criteria application, ordering, and return format, with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured and informative, but slightly verbose in places. Could be trimmed without losing clarity, but still efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of criteria-based suggestion with filtering and output structure, the description covers all necessary aspects: input criteria details, return format (with types and fields), ordering, and maximum items. Output schema exists but description already provides sufficient detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage for all parameters. The description elaborates on default values and behavior (e.g., apenasEmTramitacao considers only open consultations), adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool suggests topics for a monthly public poll by analyzing consultations and ideas, filtering by engagement metrics. It distinguishes from sibling tools like senado_ecidadania_obter_consulta and senado_ecidadania_obter_ideia.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use this tool (for generating poll suggestions) and when to use alternatives: to investigate a suggestion, use senado_ecidadania_obter_consulta or senado_ecidadania_obter_ideia based on type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_empresas_contratadasARead-onlyIdempotentInspect
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), totalContratos, totalAtas e totalNotasEmpenho. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| cnpj | No | CNPJ/CPF (busca parcial) | |
| nome | No | Nome da empresa (busca parcial, mín. 3 caracteres) | |
| limite | No | Máximo de empresas (padrão: 20) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
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 detailing the output format (fields, max 30 contracts) and the constraint that the base is large, requiring filters. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph. It front-loads the core action and search criteria, then lists output details and constraints. Every sentence is purposeful and adds information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, output schema provided via description, annotations), the description covers essential aspects: search criteria, output format, limits, and relationship to other tools. Could mention error handling or empty results, but overall complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions. The description adds the important constraint that at least one of nome or cnpj must be provided, which is not enforced in the schema (0 required). This clarifies usage beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for companies contracting with the Senate by name (min 3 characters) or CNPJ/CPF (partial match). It specifies the output structure, including count, total, and detailed fields per company. It also mentions follow-up tools, providing a complete picture of the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives usage context: it requires nome or cnpj because the full base is large, and limits results to 'limite' (default 20, max 100). However, it does not explicitly state when to use this tool versus sibling tools like senado_contratacoes_lista or senado_contratos, nor provides when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_encontro_plenarioARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| secao | No | Qual seção do encontro consultar | detalhes |
| codigo | Yes | Código do encontro/sessão |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds significant behavioral context: the return object structure, that encontro can be empty if no data, that an error occurs if codigo is invalid, and that output fields vary by secao. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized and front-loaded, but it is moderately long. Every sentence adds value, but it could be slightly more concise. Overall, it efficiently communicates purpose, behavior, and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (not shown), the description does not need to detail return values. It covers error handling, empty results, and parameter sourcing from siblings. For a tool with 2 parameters and enums, this is comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters have schema descriptions (100% coverage). The tool description adds substantial value by detailing the source of codigo and providing detailed explanations of the secao enum values (detalhes, pauta, resultado, resumo) and what each returns, far beyond the schema's brief descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves details of a legislative meeting (plenary session) given a codigo and secao. It specifies the structure of the return value and distinguishes itself from siblings by explaining that codigo comes from senado_agenda_plenario or senado_resultado_plenario, leaving no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (to get details of a session) and provides guidance on obtaining the required codigo parameter from sibling tools. It also notes error conditions and empty results. However, it does not explicitly state when not to use it or list alternatives for different needs, though the sibling context helps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_execucao_orcamentariaARead-onlyIdempotentInspect
Execução orçamentária do Senado: despesas (dotação, empenhado, liquidado, pago; desde 2013) ou receitas próprias (previstas e arrecadadas; desde 2012). 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).
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Filtrar por exercício financeiro | |
| modo | No | Agregação (por-acao/por-grupo/por-fonte: despesas; por-origem: receitas) ou detalhe | por-ano |
| tipo | No | despesas = dotação e execução; receitas = receitas próprias | despesas |
| limite | No | Máximo de linhas (padrão: 100) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. Description adds value by specifying return structure (tipo, modo, ano, totalLinhas, arrays), sorting, and truncation behavior with 'aviso' limit. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded sentences covering purpose, return structure, and usage guidance. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, enums, and an output schema, the description covers return format, aggregation modes, limit behavior, date ranges, and sibling differentiation. No missing critical details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions. Description adds context by mapping 'modo' values to 'tipo' (e.g., por-acao/por-grupo for despesas, por-origem for receitas) and explaining 'ano' and 'limite' impact. This goes beyond the schema's generic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states tool retrieves Senado budget execution data, covering expenses and revenues with specific time ranges. It explicitly distinguishes from the sibling tool 'senado_orcamento_parlamentar'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on using aggregation modes vs. detail, filtering by year to reduce volume, and default limit. It also warns about truncation and clarifies the tool's uniqueness among siblings. No explicit when-not-to-use conditions beyond sibling distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_horas_extrasARead-onlyIdempotentInspect
Horas extras pagas a servidores do Senado em ano/mes de referência (a partir de 2013). 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). Para a remuneração completa do servidor use senado_remuneracoes_servidores.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | Yes | Ano de referência | |
| mes | Yes | Mês de referência | |
| nome | No | Nome do servidor (busca parcial) | |
| limite | No | Máximo de resultados (padrão: 100) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent. Description adds context: pagination (limite default 100, max 500), return structure including nested array, and that valorTotal sums the month. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that front-loads purpose, then covers return structure and parameters efficiently. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, output schema present, and rich annotations, the description explains the output structure explicitly and covers all parameters. Complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 reiterates but adds little new: 'busca parcial' for nome and limits for limite are already in schema. No significant enrichment beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes specific verb+resource: 'Horas extras pagas a servidores do Senado em ano/mês' and returns structured data. Distinguishes from sibling 'senado_remuneracoes_servidores' by mentioning it explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to use (retrieve overtime by month/year), provides optional filters (nome, limite) with defaults, and explicitly points to alternative tool for full remuneration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_licitacoesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limite | No | Máximo de resultados (padrão: 50) | |
| numero | No | Número exato da licitação (ex: 19/2018) | |
| objeto | No | Texto no objeto da licitação |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent, but description adds response structure (count, total, licitacoes), limit constraints (default 50, max 500), and error condition. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, concise and informative, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete coverage: input constraints, output format, limit behavior, error case, and pointer to sibling tool for follow-up. Output schema exists but description still adds context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions, but description adds useful context: exact number format example '19/2018', text search for 'objeto', and the requirement to provide at least one filter. This goes beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches for Senado bids by exact number or object text, using the verb 'Busca' and specifying the resource. It distinguishes from sibling tool 'senado_contratos' by directing users there for contract details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (search by number or object), requires at least one of 'numero' or 'objeto' or an error is returned, and provides clear alternative for contracts: 'use senado_contratos'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_liderancasARead-onlyIdempotentInspect
Lista as lideranças do Senado e do Congresso Nacional (líderes, vice-líderes etc.). Retorna { count, liderancas }, cada item com tipo, descricao, unidadeLideranca e parlamentar (codigo, nome, partido, uf). Filtre por casa (SF/CN), codigoParlamentar, vigente (S/N) ou siglaTipoLideranca; sem filtros retorna todas. Para a composição de blocos use senado_listar_blocos.
| Name | Required | Description | Default |
|---|---|---|---|
| casa | No | Casa legislativa (SF=Senado, CN=Congresso) | |
| vigente | No | Apenas vigentes (S/N) | |
| codigoParlamentar | No | Código do parlamentar | |
| siglaTipoLideranca | No | Tipo de liderança (ex: LIDER, VICE-LIDER) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds return structure and filter behavior but does not disclose additional behavioral traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences: first defines purpose and return, second lists filters and alternative tool. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 optional parameters and presence of output schema, description fully explains response structure, all filters, and provides a cross-reference to a related tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. Description mentions possible values but does not add significant meaning beyond what schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists leadership (líderes, vice-líderes) of Senate and Congress, specifies return structure and filters, and distinguishes from sibling tool senado_listar_blocos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use alternative (senado_listar_blocos for blocos) and explains filtering options, providing clear context for when 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_listar_blocosARead-onlyIdempotentInspect
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). Use para descobrir o codigo de um bloco e depois detalhá-lo via senado_obter_bloco; para lideranças use senado_liderancas.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. Description adds return structure and field details, enhancing transparency beyond annotations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first covers purpose and output, second gives usage guidance. Every sentence adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, comprehensive annotations, and output schema implied by description, the description fully covers what the tool does, returns, and how to use it with related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline 4 applies. Description does not need to add parameter info, and it provides output format context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all parliamentary blocs and their member parties, using specific verb and resource. It distinguishes from siblings by directing to senado_obter_bloco for details and senado_liderancas for leaderships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance provided: use to discover bloco codes, then detail via senado_obter_bloco; for leaderships use senado_liderancas. Clear when-to-use and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_listar_comissoesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | Tipo: permanente, temporaria, cpi, mista | |
| ativa | No | Apenas comissões ativas |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent. Description adds behavior (only active commissions, filter behavior) and return structure, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, return, usage. No redundancy, front-loaded with essential info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a listing tool with filters, description fully covers purpose, behavior, input, output, and usage context. Agent has all needed info.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters (100%). Description adds context: explains behavior of ativa and enumerates tipo values, providing extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'lista comissões ativas do Senado' with filters, and distinguishes its output (sigla) for use by sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (to discover sigla for other tools) and warns that ativa=false returns empty list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_listar_senadoresARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Sigla do estado (ex: SP, RJ, MG) | |
| nome | No | Nome ou parte do nome (busca parcial, sem acento) | |
| partido | No | Sigla do partido (ex: PT, PL, MDB) | |
| emExercicio | No | Filtrar apenas senadores em exercício | |
| legislatura | No | Número da legislatura (ex: 57 para 2023-2027) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the tool is known to be safe. The description adds behavioral details: returns { count, senadores } with specific fields, explains partial name matching ignoring accents/case, and clarifies that uf/partido filter locally. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured, front-loaded with example user requests. Each sentence adds value, covering usage, parameters, output, and cross-references. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (not shown but indicated), the description sufficiently covers the tool's behavior, parameters, and output structure. It also links to related tools, making it complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning: explains default for emExercicio (true), the partial matching behavior of nome, and that uf/partido are local filters. It also clarifies the relationship between emExercicio and legislatura.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists senators with filters for UF/partido/nome, and distinguishes from sibling tools like senado_obter_senador (for details by code) and senado_senadores_afastados (for non-acting senators). The verb 'listar' and examples make 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when-to-use examples ('liste os senadores em exercício', 'senadores atuais'), describes parameter scenarios (partial name matching, local filtering), and directs to alternatives: 'Use o codigo em senado_obter_senador ou senado_votacoes_senador' and 'Para senadores fora de exercício veja senado_senadores_afastados'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_mesaARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| casa | No | senado (Mesa do SF) ou congresso (Mesa do CN) | senado |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint; the description adds context on return structure and parameter behavior without contradicting annotations. Provides additional 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extraneous words; front-loaded with purpose, then parameter details and return structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description still provides a useful summary of return fields and covers parameter options. Meets all needs for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3; description adds value by explaining the meaning of each enum value (senado vs. congresso) and the default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists members of the Mesa Diretora with specific roles, and distinguishes it from the sibling tool for leadership (senado_liderancas).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance on when to use this tool (for Mesa Diretora) vs. alternative (senado_liderancas for leadership), and explains the parameter choice for senado vs. congresso.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_notas_taquigraficasARead-onlyIdempotentInspect
Obtém as notas taquigráficas (transcrição oficial) de uma sessão plenária ou reunião de comissão. Retorna { id, tipo, sessao, data, totalBlocos, blocos }: no modo resumo (padrão) cada bloco traz sequencia, dataInicio/Fim, trecho (primeiros 200 chars), caracteres e linkAudio; no modo texto traz o texto integral de no máx. 20 blocos por chamada (controle a janela com sequenciaInicio/sequenciaFim) e inclui intervalo. Obtenha o id da sessão via senado_agenda_plenario/senado_resultado_plenario ou da reunião via senado_reuniao_comissao; use orador para filtrar blocos por nome e senado_videos_taquigrafia para a mídia.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Código da sessão plenária ou da reunião de comissão | |
| modo | No | resumo = blocos com trecho inicial; texto = transcrição integral dos blocos selecionados | resumo |
| tipo | No | sessao = plenário (padrão); reuniao = comissão | sessao |
| orador | No | Filtra blocos que mencionam este nome (busca no texto) | |
| sequenciaFim | No | Último bloco a retornar no modo texto (máx. 20 blocos por chamada) | |
| sequenciaInicio | No | Primeiro bloco (quarto) a retornar no modo texto (padrão: 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given annotations already indicate readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, the description adds substantial behavioral details: pagination (max 20 blocks in texto mode), window controls via sequenciaInicio/Fim, and output structure differences between resumo and texto modes. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single paragraph is well-organized and front-loaded with purpose. It efficiently packs return structure, mode details, and usage guidance. Slightly wordy but every sentence earns its place; could be improved with bullet points but still good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given tool complexity (two modes, pagination, multiple parameters) and presence of an output schema, the description fully covers prerequisites, limitations, and output structure. It references sibling tools for necessary IDs and media, making it self-contained for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds significant meaning beyond field names: explains that 'id' comes from specific sibling tools, 'modo' behavior differences, 'tipo' distinguishes session vs meeting, 'orador' filters blocks, and sequenciaInicio/Fim control paging. This greatly aids agent understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool obtains official shorthand transcriptions of plenary sessions or committee meetings. It details two output modes and distinguishes from sibling tools by referencing how to get the input ID (e.g., senado_agenda_plenario) and directing video needs to 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit instructions on when to use this tool: obtain the session ID from senado_agenda_plenario/senado_resultado_plenario for sessions or senado_reuniao_comissao for meetings, filter by orador, and use senado_videos_taquigrafia for media. Clearly delineates from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_blocoARead-onlyIdempotentInspect
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); dataExtincao é null para blocos vigentes. Obtenha o parâmetro codigo primeiro via senado_listar_blocos; código inexistente retorna erro ("Bloco parlamentar não encontrado").
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | Código do bloco parlamentar |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, and non-destructive behavior. The description adds valuable context: return field details, null for active blocs, and error handling. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the main purpose, and structured logically with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations, output schema, and the description covering input sourcing and error cases, the tool definition is complete and sufficient for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%. The description adds the crucial hint that 'codigo' should be obtained from senado_listar_blocos, which helps with correct invocation beyond the schema's basic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves details of a specific parliamentary bloc by its code, listing the returned fields. This distinguishes it from siblings like senado_listar_blocos which lists all blocs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to first obtain the 'codigo' parameter via senado_listar_blocos and notes that an inexistent code returns an error, providing clear 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_comissaoARead-onlyIdempotentInspect
Obtém dados de uma comissão pela sigla, conforme secao (padrão resumo): resumo → { codigo, sigla, nome, finalidade, presidente, vicePresidente, totalMembros, titulares, suplentes } (presidente/vice com nome/codigo/bancada). 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.
| Name | Required | Description | Default |
|---|---|---|---|
| secao | No | resumo (mesa/totais) ou membros (composição completa) | resumo |
| sigla | Yes | Sigla da comissão (ex: CCJ, CAE) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, etc. The description adds valuable behavioral details: the internal resolution of sigla to numeric code, and the exact data returned for each secao value. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured, and front-loaded with the main purpose. It efficiently conveys the output shapes and important notes without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (two output variants, internal resolution), the description is complete. It provides the output schema implicitly, explains parameter usage, and links to the discovery tool. No gaps remain for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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: it explains the effects of secao values (resumo vs membros), that sigla is resolved internally, and how to find valid siglas. This goes beyond the schema's basic type/description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves committee data by sigla, with two distinct sections (resumo and membros). It specifies the output structure for each section and differentiates from the sibling tool senado_listar_comissoes by suggesting to use that tool 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to use the tool (to get committee data) and how to obtain the sigla (via senado_listar_comissoes). While it does not explicitly list when not to use it, the context makes it clear it's for a single committee, and siblings cover other aspects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_legislacaoARead-onlyIdempotentInspect
Obtém os detalhes de uma norma jurídica federal específica pelo seu codigo. Retorna um objeto com codigo, tipo, descricaoTipo, numero, ano, data, ementa, indexacao, situacao, origem, observacao e url do texto integral. Obtenha o codigo primeiro via senado_buscar_legislacao.
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | Código único da norma |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe, read-only operation. The description adds value by listing the specific fields returned (codigo, tipo, descricaoTipo, etc.) and mentioning the URL of the full text. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the purpose and output fields, the second provides a prerequisite. No unnecessary information. Front-loading the verb and resource makes the purpose immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown but referenced), and the description lists the output fields. Given the single parameter and simple retrieval nature, the description covers purpose, prerequisite, output, and safety. It is fully adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter 'codigo' is described in the schema as 'Código único da norma'. The description adds meaning by specifying that the codigo is obtained via 'senado_buscar_legislacao', providing context for how to get the required input. This extra guidance justifies a score above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Obtém os detalhes de uma norma jurídica federal específica pelo seu codigo', specifying a verb (obtém) and resource (norma jurídica federal). It also distinguishes from the sibling tool 'senado_buscar_legislacao' by indicating that the codigo must be obtained first via that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use the tool: after obtaining the codigo via 'senado_buscar_legislacao'. This provides clear context but does not include exclusions or alternative tools. However, given the sibling tools are mostly unrelated, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_materiaARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| secao | No | detalhe (situação/relator), tramitacao (histórico) ou textos (documentos) | detalhe |
| limite | No | Máximo de itens em tramitacao/textos (padrão: 100 tramitacao, 50 textos) | |
| codigoMateria | Yes | Código único da matéria |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by explaining truncation behavior (keeping most recent items, including an 'aviso'), default limits for 'tramitacao' and 'textos', and the chronological ordering for 'tramitacao'. This adds valuable context not covered by the readOnlyHint, idempotentHint, and other annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed but well-structured with clear separation of sections. It could be slightly more concise, but every sentence serves a purpose and the overall length is justified by the complexity of the three sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is still highly complete: it covers all three section options, their return structures, default limits, truncation behavior, and the prerequisite to obtain 'codigoMateria' from another tool. No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description adds significant meaning: it explains the outcome of each 'secao' value, provides default limits for 'limite' parameter (100 for tramitacao, 50 for textos), and describes the structure of the returned data for each option. This enriches the schema's bare definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's function: retrieving data for a given 'codigoMateria' with different sections ('detalhe', 'tramitacao', 'textos'). It outlines the structure of each section's return object and distinguishes the tool by referencing how to obtain the required code via '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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by detailing the available sections and their outputs, and explicitly advises obtaining the 'codigoMateria' from the sibling tool 'senado_buscar_materias'. However, it does not explicitly state when not to use this tool or mention alternative tools for similar purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_processoARead-onlyIdempotentInspect
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 e tramitando. Obtenha o idProcesso antes via senado_search_processos ou senado_buscar_materias; para emendas, relatorias ou prazos use senado_processo_detalhe (parâmetro secao).
| Name | Required | Description | Default |
|---|---|---|---|
| idProcesso | Yes | ID do processo legislativo |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds the list of return fields but no contradictory behavioral info. While the description is accurate, it doesn't provide additional behavioral context beyond what annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and return fields, followed by usage guidance. Every sentence adds value with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter with full schema coverage, presence of output schema (implied by field list), and comprehensive annotations, the description completes the picture by also referencing sibling tools for related needs. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for idProcesso. The description adds a usage hint about obtaining the ID beforehand, but does not enhance semantic understanding of the parameter beyond what the schema already provides. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves complete details of a specific legislative process by id, and distinguishes from sibling tools by specifying that senado_processo_detalhe should be used for emendas, relatorias, or prazos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells how to obtain the required idProcesso via senado_search_processos or senado_buscar_materias, and when to use an alternative tool (senado_processo_detalhe) for specific data, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_senadorARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| codigoSenador | Yes | Código único do senador no sistema do Senado |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds the return fields and parameter source but does not disclose additional behavioral traits beyond what annotations provide. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is composed of two concise, front-loaded sentences. The first sentence states the purpose and lists return fields. The second sentence provides usage guidance and alternatives. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter, the description covers purpose, return fields, parameter source, and alternatives for related queries. It is complete given the tool's complexity and the presence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides a description for codigoSenador, but the description adds value by instructing how to obtain it via senado_listar_senadores with a nome filter. This goes beyond the schema's basic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Obtém o detalhe biográfico de um senador específico', clearly identifying the verb (obtém) and resource (detalhe biográfico de um senador). It also distinguishes from siblings by referencing senado_listar_senadores for obtaining the code and senado_senador_historico for other historical data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: use this tool to get biographical details of a specific senator. It explains how to obtain the required codigoSenador via senado_listar_senadores with a nome filter, and directs users to senado_senador_historico (with tipo parameter) for other historical info like filiations and commissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_votacaoARead-onlyIdempotentInspect
Obtém detalhes de uma votação pelo codigoVotacao (que é o codigoSessao da sessão plenária), incluindo votos nominais. Retorna o objeto da votação (placar, resultado, 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.
| Name | Required | Description | Default |
|---|---|---|---|
| codigoVotacao | Yes | Código único da votação (codigoSessao da sessão plenária) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, not destructive, and the description confirms a read operation. It adds details about the return structure (single object vs wrapped) and behavior for multiple votes, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence with two clauses, front-loading the purpose and parameter. Every part adds value, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter and the presence of an output schema, the description covers input, output variants, and prerequisite. It is fully self-contained for an agent to understand how to use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of the single parameter. The description adds the equivalence between codigoVotacao and codigoSessao, which clarifies the parameter beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool obtains voting details including nominal votes, and explains the return format. It distinguishes from the sibling tool senado_search_votacoes by referencing it as the source for the parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to obtain codigoSessao via senado_search_votacoes before calling, providing a clear prerequisite. Does not explicitly exclude other use cases, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_orcamento_parlamentarARead-onlyIdempotentInspect
Lista emendas parlamentares dos senadores ao orçamento da União (e os ofícios de apoio a elas), conforme tipo (padrão emendas). tipo: emendas → { tipo, count, emendas }, cada item com codigo, numero, ano, tipo, autor, valor e descricao. tipo: oficios → { tipo, count, oficios }, cada item com codigo, numero, data, tipo, descricao e situacao (ofícios de apoio às emendas). Não recebe outros parâmetros; count é 0 e a lista vem vazia quando não há registros. Use para as emendas dos parlamentares ao orçamento federal — para a execução do orçamento interno do próprio Senado (despesas/receitas) use senado_execucao_orcamentaria.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | emendas (lotes de emendas) ou oficios (ofícios de apoio) | emendas |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, destructiveHint=false. The description adds the response structure for each tipo, behavior when no records (count=0, empty list), and that it does not receive other 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise paragraph that front-loads the purpose and provides structured detail on responses. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema (1 enum param), rich annotations, and sibling differentiation, the description is fully complete. It explains output format, edge cases (empty results), and how this tool relates to others.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (1 parameter with enum). The description adds meaning beyond schema: it explains the two enum values (emendas/oficios), the response shape for each, and default value. It also clarifies that no other parameters are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists parliamentary amendments (emendas) or supporting offices (oficios) from senators to the federal budget. It specifies the default type and response structure, and distinguishes from sibling tool senado_execucao_orcamentaria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use (for amendments to federal budget) and when not (for internal budget, use senado_execucao_orcamentaria). It also explains the two types and default behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_orientacao_bancadaARead-onlyIdempotentInspect
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, sessao, totais (totalSim, totalNao, totalAbstencao, obstrucoes) e orientacoes (partido, voto). Informe data (um dia) ou o período dataInicio/dataFim. Para o resultado das sessões use senado_resultado_plenario.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Data da sessão (YYYYMMDD) | |
| dataFim | No | Data fim do período (YYYYMMDD) | |
| dataInicio | No | Data início do período (YYYYMMDD) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent. Description adds return structure details but not contradictory. Provides additional context on what data is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences: purpose, return structure, usage, sibling reference. No unnecessary words, well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple query tool with 3 parameters, the description covers purpose, return fields, usage options, and sibling tool. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds usage nuance: data is for a single day, dataInicio/dataFim for a period, implying mutual exclusivity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool provides party leadership voting orientations with a scoreboard, and explicitly distinguishes itself from sibling senado_resultado_plenario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (single day or period) and when not to use (for session results, use senado_resultado_plenario), with clear alternative naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_pessoal_tabelasARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filtro | No | Filtro textual (nome, curso, setor...) | |
| limite | No | Máximo de registros (padrão: 100) | |
| tabela | Yes | Qual tabela de pessoal consultar (quantitativo agregado ou lista nominal) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive. Description adds: empty results behavior ('count 0 e lista vazia'), pagination via 'limite' (default 100, max 2000), and filter matching against any 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured: first sentence states purpose, then enumerates tables, then return format, then behavior of parameters. Slightly verbose but every sentence adds value. Could be slightly tighter but remains clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters (all described), a full output schema description, and annotations covering safety, the description is comprehensive. It covers return shape, error conditions, and parameter details. No gaps for a read-only retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters. Description adds value by detailing each enum option (e.g., 'pessoal: força de trabalho por classe/escolaridade') and explaining that 'filtro' matches against any field in the record ('casa contra qualquer campo do registro'), which is not fully specified in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides Senate personnel tables per the 'tabela' parameter. It enumerates all 8 table options with brief descriptions of content, and explicitly distinguishes from sibling tool 'senado_servidores' by directing users to that tool for nominal effective/commissioned servant records. This gives a specific resource and verb (implied 'consult'), with strong sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use (e.g., for specific personnel tables) and when not to ('Para o cadastro nominal de servidores efetivos/comissionados use senado_servidores'). Also explains return structure, default/max limit, and filter behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_processo_detalheARead-onlyIdempotentInspect
Detalha um aspecto de processos legislativos conforme o parâmetro secao: emendas → emendas apresentadas (id, identificacao, numero, tipo, autoria, data, colegiado, descricao, decisoes, 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.
| Name | Required | Description | Default |
|---|---|---|---|
| secao | Yes | Qual aspecto detalhar: emendas, relatorias ou prazos | |
| limite | No | Máximo de resultados (padrão: 100) | |
| dataFim | No | Até esta data (YYYYMMDD ou YYYY-MM-DD) | |
| dataInicio | No | A partir desta data (YYYYMMDD ou YYYY-MM-DD) | |
| idProcesso | No | ID do processo | |
| codigoMateria | No | Código legado da matéria | |
| dataReferencia | No | secao=relatorias/prazos: vigentes nesta data (YYYYMMDD ou YYYY-MM-DD) | |
| codigoColegiado | No | secao=relatorias: código do colegiado | |
| codigoParlamentar | No | secao=relatorias: código do parlamentar relator | |
| codigoParlamentarAutor | No | secao=emendas: código do parlamentar autor |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey safe, read-only behavior. The description adds value by detailing the return structure, pagination limits (default 100, max 500), and the fact that 'prazos' returns raw API data. This context helps the agent understand behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured with clear sections and parenthetical details. It front-loads the main purpose. While somewhat long, the complexity of the tool justifies the length. Minor improvements could streamline wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 sections, 10 parameters), the description covers all necessary aspects: each section's purpose, accepted filters, return format, limits, and references to related tools. An output schema exists, so the description appropriately avoids redundant return value detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explaining the meaning of each 'secao' value, the associated return fields, and specific filter roles (e.g., 'codigoParlamentarAutor' for emendas). This adds significant semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it details aspects of legislative processes based on 'secao' parameter, lists the three sections (emendas, relatorias, prazos) with their return fields, and distinguishes from sibling tools by mentioning how to obtain 'idProcesso' and types via other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use each section and which filters are accepted, including the requirement to provide at least one filter. It also references prerequisite tools for obtaining IDs and types. While it doesn't explicitly state when not to use, the instruction is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_remuneracoes_servidoresARead-onlyIdempotentInspect
Remunerações dos servidores do Senado em ano/mes de referência (a partir de 2013). modo=resumo (padrão) retorna { ano, mes, totalRegistros, resumo[] } agregado por tipoFolha com registros, totalBruto e mediaBruta; modo=detalhe retorna { count, total, remuneracoes[] } com a composição individual (remuneracaoBasica, vantagensPessoais, funcaoComissionada, horasExtras, bruto etc.), limitada por limite (padrão 50, máx 500) com aviso se truncado. Filtre por nome ou tipoFolha no detalhe para evitar listas longas. Para o cadastro de servidores use senado_servidores.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | Yes | Ano de referência | |
| mes | Yes | Mês de referência | |
| modo | No | resumo = totais por tipo de folha (padrão); detalhe = composição individual | resumo |
| nome | No | Nome do servidor (busca parcial) | |
| limite | No | Máximo de linhas no modo detalhe (padrão: 50) | |
| tipoFolha | No | Filtrar por tipo de folha (busca parcial) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds output structure details, truncation warnings for limite, and field composition for detalhe mode, complementing annotations well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph but well-organized: first general purpose, then mode details, then filtering advice, then sibling reference. It is concise yet informative; slight improvement could be bullet points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity (6 params, 2 required, modes, limits, output schema), the description covers all essential aspects: purpose, mode behavior, filtering, truncation, and reference to related tool. It is complete for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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: explains modo enum meanings, default and max for limite, and that nome and tipoFolha support partial search. This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves salary data for Senate employees for a given year/month. It specifies two modes (resumo and detalhe) with distinct output structures, and mentions a sibling tool for employee registration. The verb 'retorna' is explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly distinguishes when to use resumo vs detalhe, recommends filtering by nome or tipoFolha to avoid long lists, and references senado_servidores for cadastro. It provides clear context for optimal usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_requerimentos_cpiARead-onlyIdempotentInspect
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. CPIs sem requerimentos retornam lista vazia. Descubra as siglas via senado_listar_comissoes com tipo=cpi.
| Name | Required | Description | Default |
|---|---|---|---|
| pagina | No | Página da lista (padrão: 0) | |
| siglaCpi | Yes | Sigla da CPI (ex: CPIVD, CPIPED) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate safe, read-only, idempotent behavior. Description adds return structure, pagination termination condition, and typical response fields, exceeding annotation basics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded with purpose, no wasted words. Every sentence adds necessary context for correct usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the pagination complexity and need to discover siglas, description covers return structure, termination condition, and how to obtain valid siglas. Sufficient for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. Description adds pagination behavior and example sigla values, enhancing understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists requerimentos of a CPI by siglaCpi with pagination, and distinguishes from siblings by directing to use senado_listar_comissoes for CPI discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to find siglas via senado_listar_comissoes com tipo=cpi, explains pagination (0-based index, count=0 means end), and notes empty list for CPIs without requerimentos. Does not explicitly state 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_resultado_plenarioARead-onlyIdempotentInspect
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, parecer — resultado/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.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data da sessão (YYYYMMDD); para escopo=mes, qualquer dia do mês | |
| escopo | No | sf = Senado no dia; cn = Congresso no dia; mes = resumo do mês | sf |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, open-world. Description adds crucial details: returns all sessions without pagination, items may have null fields if not yet deliberated, and empty result structure when no session exists. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded purpose and alternative tools. Could be slightly more concise but every sentence adds value. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all relevant aspects: parameters, return structure, edge cases (null results, empty sessions), and relationships to sibling tools. Output schema exists but description goes beyond it by explaining the shape in natural language.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and descriptions in schema are identical to those in the tool description. However, the description adds value by explaining the return structure that ties to parameters, e.g., escopo='mes' yields monthly summary. Slightly above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns session results for a given date, mentioning items, opinions, and outcomes. It distinguishes from sibling tools like senado_agenda_plenario and senado_orientacao_bancada, explicitly stating when to use them instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when-not guidance by naming alternative tools for pre-session agenda and bancada orientation. Also explains the escopo parameter variations for daily vs monthly scope, giving clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_resultado_vetoARead-onlyIdempotentInspect
Resultado da votação nominal de um veto presidencial. Retorna { codigo, tipo, resultado }, onde resultado é o objeto bruto da API (já sem wrappers), com campos variáveis conforme o veto — tipicamente identificação do veto, sessão/data, placar e situação da apreciação; pode vir objeto vazio quando o veto ainda não foi votado, e a chamada retorna erro se o codigo não existir. Informe codigo e tipo: veto (código do veto, padrão), materia (código do projeto vetado) ou dispositivo (dispositivo de veto parcial). Obtenha o código do veto via senado_vetos.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | veto = código do veto (padrão); materia = código do projeto vetado; dispositivo = dispositivo de veto parcial | veto |
| codigo | Yes | Código do veto, da matéria ou do dispositivo, conforme o tipo |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly, openWorld, idempotent, non-destructive. Description adds value by detailing return structure, variable fields, empty object case for unvoted veto, and error condition for invalid code, with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: first for purpose and return structure, second for edge cases and errors, third for parameter guidance. No fluff, well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists and annotations cover safety, the description sufficiently covers return variations (empty object, variable fields), error behavior, parameter semantics, and links to sibling tool, making it complete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage (baseline 3). Description adds meaning by explaining the three tipo values (veto, materia, dispositivo) with their meanings, the default value 'veto', and that codigo adapts based on tipo, enhancing understanding beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the nominal voting result of a presidential veto, specifies the return object structure (codigo, tipo, resultado), and distinguishes from siblings like senado_vetos and senado_resultado_plenario through explicit detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains when to use the tool (querying veto results), details parameter selection (codigo and tipo with examples), notes edge cases (empty object for unvoted veto, error for invalid code), and references sibling tool senado_vetos for obtaining the code.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_reuniao_comissaoARead-onlyIdempotentInspect
Detalha uma reunião de comissão pelo codigoReuniao. Retorna um objeto com codigo, titulo, comissao, data, hora, local, situacao, realizada, secreta, presidente, links urlPauta/urlResultado/urlAta e partes (cada parte com evento e itens apreciados: identificacao, ementa, relator, resultado). Obtenha o codigoReuniao em senado_agenda_comissoes ou senado_reunioes_comissao.
| Name | Required | Description | Default |
|---|---|---|---|
| codigoReuniao | Yes | Código da reunião (campo 'codigo' na agenda de comissões) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint: true, openWorldHint: true, idempotentHint: true, and destructiveHint: false. The description adds value by detailing the return structure and nested fields, including 'partes', which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense paragraph that conveys purpose, parameter source, and full return structure without redundancy. Every sentence adds value, and the key purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, an output schema (though not provided), and comprehensive annotations, the description fully covers what an agent needs: purpose, parameter sourcing, return fields, and relationships to sibling tools. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (parameter 'codigoReuniao' described). The description adds meaning by explaining where to find the parameter value, not just the schema description. It also uses code formatting (`codigoReuniao`) to align with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Detalha uma reunião de comissão pelo `codigoReuniao`', clearly stating the specific verb (detalha) and resource (reunião de comissão). It distinguishes from siblings by mentioning where to obtain the code, differentiating from senado_agenda_comissoes 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states where to get the required 'codigoReuniao' parameter from other tools ('Obtenha o `codigoReuniao` em `senado_agenda_comissoes` ou `senado_reunioes_comissao`'), providing clear context for when to use this tool. It lacks explicit when-not-to-use or alternatives, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_reunioes_comissaoARead-onlyIdempotentInspect
Lista reuniões de uma comissão (pela sigla) num intervalo dataInicio/dataFim (YYYYMMDD); sem datas, usa os últimos 30 dias. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| sigla | Yes | Sigla da comissão | |
| dataFim | No | Data fim (YYYYMMDD) | |
| dataInicio | No | Data início (YYYYMMDD) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses default date range (last 30 days), internal year-splitting behavior, and output structure, adding value beyond annotations which indicate idempotency and non-destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first covers purpose, parameters, default; second covers output structure and linking to other tools. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully explains the tool's behavior, output, and relationship to siblings, leaving no ambiguity for a simple tool with 3 parameters and an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes parameters, but description adds format (YYYYMMDD), default behavior, and explains how sigla is used, enriching understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists meetings of a commission by its acronym within a date range, and distinguishes from related tools like senado_reuniao_comissao for details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: how to obtain the acronym (via senado_listar_comissoes), default date behavior, and how the output code is used in another tool (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_search_processosARead-onlyIdempotentInspect
Busca processos legislativos no endpoint v3 /processo (parâmetros complementares ao senado_buscar_materias). Retorna { count, processos }, cada item com id, codigoMateria, identificacao, ementa, tipoDocumento, dataApresentacao, autoria, tramitando e normaGerada. É obrigatório ao menos um filtro (sigla, número, ano, autor ou período; janela de datas máx. 1 ano). Use o id retornado em senado_obter_processo para detalhes.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Ano do processo | |
| autor | No | Nome do autor | |
| sigla | No | Sigla do tipo de processo (ex: PL, PEC) | |
| numero | No | Número do processo | |
| tramitando | No | Em tramitação (S/N) | |
| dataFimApresentacao | No | Data fim da apresentação (YYYYMMDD ou YYYY-MM-DD) | |
| codigoParlamentarAutor | No | Código do parlamentar autor | |
| dataInicioApresentacao | No | Data início da apresentação (YYYYMMDD ou YYYY-MM-DD; janela máxima de 1 ano) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive nature. The description adds behavioral context: it is a search operation with filters, returns specific fields, and requires at least one 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose, return structure, usage constraints, and cross-reference. No redundant or superfluous information. Front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given rich annotations and output schema, the description covers purpose, constraints, return format, and linkage to related tools. Complete for a search tool with no required parameters and clear orchestration hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% parameter description coverage, so the schema already documents each parameter well. The description adds overall context (complementary to another tool, mandatory filter requirement, date window) but does not add significant new semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Busca' (searches) and the resource 'processos legislativos' via endpoint v3. It distinguishes itself from sibling tool 'senado_buscar_materias' by noting complementary parameters, and specifies the return structure and link to 'senado_obter_processo'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states that at least one filter is required (sigla, número, ano, autor or período), imposes a maximum date window of 1 year, and advises using the returned 'id' in 'senado_obter_processo' for details. This provides clear when-to-use and next-step guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_search_votacoesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Ano da matéria | |
| dias | No | Janela: votações dos últimos N dias (ignorado se dataInicio/dataFim forem informados) | |
| sigla | No | Sigla do tipo de matéria | |
| numero | No | Número da matéria | |
| dataFim | No | Data fim (YYYYMMDD) | |
| dataInicio | No | Data início (YYYYMMDD) | |
| idProcesso | No | ID do processo legislativo | |
| codigoMateria | No | Código da matéria | |
| codigoParlamentar | No | Código do parlamentar | |
| siglaVotoParlamentar | No | Tipo de voto do parlamentar |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
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 valuable behavioral context: it states that results are ordered from most recent to oldest, that it returns aggregate vote counts without nominal votes, and describes the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph. It front-loads the purpose, then logically organizes temporal parameters, other filters, return format, and cross-reference. Every sentence adds necessary information without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential aspects: full parameter usage, return structure, ordering, and cross-reference to a related tool. It does not specify pagination, limits, or default date ranges, but given the output schema exists and the tool is read-only with no required parameters, these omissions are minor. The description is adequate for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds relational context beyond the schema, such as how `dias` is ignored when `dataInicio`/`dataFim` are provided, and it lists all filter parameters in a clear, concise manner. This adds moderate value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Busca e lista votações do plenário combinando critérios opcionais.' This specifies the verb (search and list) and the resource (plenary voting sessions), and it distinguishes the tool from siblings like senado_obter_votacao (which gets details for a single session) by emphasizing the combination of optional criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 different temporal parameters: use `dias` for recent activity, or `dataInicio`/`dataFim` for arbitrary periods, including an example for a full year. It also directs users to senado_obter_votacao for individual votes, clearly indicating 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_senadores_adminARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Filtrar por estado (auxilio-moradia/escritorios-apoio) | |
| nome | No | Filtrar por nome do senador (busca parcial) | |
| tipo | Yes | Qual dado administrativo consultar |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
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 detailing return structures for each `tipo`, including edge cases (empty lists with count 0), and confirms the tool is purely query-based without mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but well-organized with clear formatting (arrows, line breaks) that groups information by `tipo`. While every sentence adds value, it could be slightly more concise without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (three modes, multiple optional filters, and an output schema), the description is fairly complete. It covers all return structures, edge cases, and provides a cross-reference to a sibling tool. The presence of an output schema is noted, so return values need not be described in detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all parameters with descriptions (100% coverage). The description adds meaning by explaining how `tipo` selects the data type and which filters apply to which types, going beyond the schema's basic property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides administrative data on senators based on the `tipo` parameter, distinguishes between three specific data types (`auxilio-moradia`, `escritorios-apoio`, `aposentados`), and explicitly differentiates from sibling tool `senado_ceaps` for parliamentary expense queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies when to use the tool (to obtain administrative data by `tipo`) and provides an explicit alternative for parliamentary expenses (`senado_ceaps`). It also details optional filters (`uf`, `nome`) but does not fully exclude other sibling tools beyond the one mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_senadores_afastadosARead-onlyIdempotentInspect
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. Use codigo em senado_obter_senador para o detalhe; para os senadores em exercício (e busca por nome) use senado_listar_senadores.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly, idempotent, non-destructive. Description adds that 'emExercicio' is always false and the exact return fields, adding value beyond annotations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded with purpose, then details, then alternatives. Every sentence adds value; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and simple purpose, description fully explains use, return structure, and relationship with sibling tools. Output schema exists, so return values need not be detailed further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage is 100%. Description confirms no parameters in natural language, which adds clarity. Baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists senators currently on leave ('afastados'), specifies the return structure with fields, and distinguishes from the sibling tool 'senado_listar_senadores' which lists active senators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool (for afastados) and when not to (for exercise, use 'senado_listar_senadores'). Also guides to use 'codigo' with 'senado_obter_senador' for details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_senador_historicoARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | Yes | Qual histórico consultar | |
| codigoSenador | Yes | Código único do senador |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint) are consistent. Description adds that items depend on tipo, and empty returns zero count and empty itens. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three well-structured sentences with dense, relevant information. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and the complexity of the tool, the description fully explains parameters and output variations. Complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but description goes beyond by explaining how the output structure varies per tipo, adding meaning beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns the functional history of a senator based on the 'tipo' parameter, listing all enum values and their data structures. It distinguishes from siblings like senado_obter_senador (biographical) and senado_listar_senadores (list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to obtain codigoSenador via senado_listar_senadores, and notes that for biographical data and mandates use senado_obter_senador, providing clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_servidoresARead-onlyIdempotentInspect
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. Para remuneração use senado_remuneracoes_servidores; para estagiários/pensionistas/quantitativos use senado_pessoal_tabelas.
| Name | Required | Description | Default |
|---|---|---|---|
| nome | No | Nome do servidor (busca parcial) | |
| cargo | No | Cargo (busca parcial) | |
| limite | No | Máximo de resultados (padrão: 50) | |
| lotacao | No | Lotação/setor (busca parcial, ex: SEGRAF) | |
| situacao | No | Qual lista consultar (padrão: ativos) | ativos |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive. Description adds detail on return structure (situacao, count, total, servidores[]), item fields, limit behavior with default 50 max 500, and truncation warning.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences front-loaded with purpose, output structure, limit behavior, then alternatives. Every sentence adds value with no repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, output, limits, and alternatives. Given output schema exists and complexity is moderate, description is complete for effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all 5 parameters at 100%. Description adds context beyond schema by explaining enum values for situacao, default and max for limite, and overall behavior of the list. Slight improvement over baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists servidores do Senado filtered by situacao, with optional filters. Verb 'Lista' and resource 'servidores do Senado' are specific. Distinguishes from siblings by naming alternatives for remuneration and other personnel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool and when to use alternatives: 'Para remuneração use senado_remuneracoes_servidores; para estagiários/pensionistas/quantitativos use senado_pessoal_tabelas.' Also advises refining filters when truncated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_suprimento_fundosARead-onlyIdempotentInspect
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. Informe o ano (>=2010); use os mesmos códigos administrativos vistos em senado_contratacoes_lista ou senado_execucao_orcamentaria para cruzar gastos.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | Yes | Ano de referência | |
| tipo | No | Qual relação consultar (padrão: supridos) | supridos |
| filtro | No | Filtro textual (nome, unidade...) | |
| limite | No | Máximo de resultados (padrão: 100) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, destructiveHint=false) already indicate safe read operations. The description adds behavioral details: return structure, truncation warning, year constraint (>=2010), and limit bounds. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with core purpose, then covers return structure and parameters. It is relatively concise but could be slightly shorter without losing clarity. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the parameter count (4), presence of an output schema, and complexity, the description is comprehensive. It explains return format, filtering, limits, and cross-referencing with sibling tools. No gaps found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds value by listing the 'tipo' enum values, explaining defaults (tipo=supridos, limite=100), and stating the year minimum. It also contextualizes the output format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides data on Senate fund advances (suprimento de fundos) including various types like list of recipients, concession acts, commitments, etc., filtered by 'tipo'. It explicitly names the resource and actions, distinguishing it from siblings by mentioning cross-referencing with other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use (querying fund advance records for a given year) and suggests alternatives for cross-referencing (senado_contratacoes_lista, senado_execucao_orcamentaria). It does not explicitly state when not to use, but provides sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_tabelas_plenarioARead-onlyIdempotentInspect
Tabelas de referência do plenário para resolver códigos e domínios. Retorna { tabela, count, total, linhas } com as linhas da tabela escolhida em tabela: tipos-sessao, tipos-comparecimento ou legislaturas. filtro faz busca textual e limite corta o resultado (padrão 100). Use para interpretar campos como tipo retornados por senado_agenda_plenario e senado_resultado_plenario.
| Name | Required | Description | Default |
|---|---|---|---|
| filtro | No | Filtro textual | |
| limite | No | Máximo de linhas (padrão: 100) | |
| tabela | Yes | Tabela de referência a consultar |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint, destructiveHint. The description adds return structure details and explains how parameters affect behavior (filtro search, limite default), which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with purpose, then return format, parameter details, and usage context. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and the tool's simplicity, the description covers everything needed: purpose, return shape, parameter behavior, and connection to sibling tools. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning by explaining that 'filtro' does textual search and 'limite' cuts results with a default of 100, which is beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns reference tables for plenary sessions, attendance types, or legislatures, and it helps interpret fields from sibling tools. It uses a specific verb 'resolver' and distinguishes its purpose from similar lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use para interpretar campos como `tipo` retornados por `senado_agenda_plenario` e `senado_resultado_plenario`', giving clear when-to-use guidance with alternative sibling tools named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_tabelas_processoARead-onlyIdempotentInspect
Consulta tabelas de referência do processo legislativo (parâmetro tabela): siglas, assuntos, classes, destinos, entes, tipos-situacao/decisao/autor/atualizacao/documento/conteudo-documento/prazo. Retorna { tabela, count, total, linhas } com as linhas brutas da tabela escolhida — cada linha traz tipicamente um código/sigla e a descrição do domínio (campos conforme a API). filtro textual opcional (sobre sigla/descrição) e limite padrão 200 (máx. 1000); count 0 quando o filtro não casa. Use para resolver códigos/siglas antes de filtrar em senado_search_processos e ferramentas afins.
| Name | Required | Description | Default |
|---|---|---|---|
| filtro | No | Filtro textual aplicado sobre sigla/descrição | |
| limite | No | Máximo de linhas (padrão: 200) | |
| tabela | Yes | Tabela de referência a consultar |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds significant behavioral details: return format (object with tabela, count, total, linhas), default/max limit, filter behavior (count 0 when no match), and that each line contains code and description. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and well-structured: first sentence states purpose and lists tables, second explains return format, third specifies parameters, fourth gives usage advice. No unnecessary words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity (3 parameters, one enum), 100% schema coverage, and presence of output schema, the description sufficiently covers return structure, parameter defaults, and usage context. It could mention if results are sorted, but overall complete for its role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all three parameters have descriptions). The description reiterates the schema info without adding new semantics. For example, filtro and limite are already described in the schema. With full schema coverage, the baseline is 3, and the description adds no extra value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'consulta' (consults) to specify the action on reference tables of legislative process. It lists all table types and explicitly states the tool's role in resolving codes/siglas before using filtering tools like senado_search_processos, distinguishing it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to use this tool before filtering with senado_search_processos and related tools, providing clear context. However, it does not explicitly mention when not to use it or alternative tools, but the purpose is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_tabelas_referenciaARead-onlyIdempotentInspect
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) — 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.
| Name | Required | Description | Default |
|---|---|---|---|
| tabela | Yes | Qual tabela de referência consultar: tipos-materia, partidos, ufs, legislatura-atual, tipos-norma ou tipos-uso-palavra |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds significant behavioral context beyond annotations: details the exact return format for each table type, mentions ordering for `partidos`, and notes every response includes `tabela`. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that efficiently packs information about all table types. It is front-loaded with the main purpose and uses dashes for readability. Slightly long but warranted by the content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, output schema exists), the description fully covers return structures for all enum values, mentions the `tabela` field, and provides cross-references to sibling tools. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a well-documented enum, but the description adds crucial semantic meaning by explaining what each enum value returns and how to use it in other tools (e.g., finding sigla from tipos-materia). This goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it consults Senate reference tables by parameter `tabela`, enumerating each possible value and its return structure. It distinguishes from siblings by directing users to `senado_listar_senadores` for nominal lists of parliamentarians.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly guides when to use the tool (e.g., to find correct `sigla` before `senado_buscar_materias` or `senado_search_processos`) and when not to (for nominal list of parliamentarians, use `senado_listar_senadores`). This provides clear context versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_terceirizadosARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nome | No | Nome do colaborador (busca parcial) | |
| limite | No | Máximo de resultados (padrão: 50) | |
| empresa | No | Nome da empresa contratada (busca parcial) | |
| lotacao | No | Lotação/setor (busca parcial) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive. The description adds crucial behavioral details: data is downloaded and filtered in the worker, results are limited to 'limite' (default 50, max 500), and a warning is issued when truncating. This provides 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with purpose. It uses only three sentences, each adding necessary information without redundancy. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage, rich annotations, and output schema description, the description is fully adequate. It explains the return structure ({ count, total, terceirizados } and fields like nome, cpf, etc.) and the filtering behavior, leaving no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 that filters are partial search and case-insensitive (sem acento), which enriches the parameter meaning. It also explains the limit parameter's default and maximum, but these are already in the schema. The additional detail on search behavior justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists outsourced employees of the Senate and can filter by name, company, or location. It distinguishes itself from the sibling tool 'senado_empresas_contratadas' by noting that for company contracts, that tool should be used.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions when to use the sibling tool instead: 'Para a empresa contratante e seus contratos, use senado_empresas_contratadas.' It also explains the filtering behavior, result limits, and truncation warning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_vetosARead-onlyIdempotentInspect
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 e dataLimiteVotacao. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Vetos do ano informado | |
| limite | No | Máximo de resultados (padrão: 100) | |
| status | No | tramitando = pós-RCN 1/2013 em tramitação (padrão); antes-rcn = anteriores à RCN; encerrados = tramitação encerrada |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, open-world, idempotent, and non-destructive behavior. The description adds details about the return structure (count, total, aviso, vetos with fields), truncation logic (limite and aviso), and filter alternatives, providing complete 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with three sentences efficiently conveying purpose, usage, and return structure. Key information is front-loaded, and no extraneous text is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (3 parameters, all optional, enums for status, output schema described), the description fully covers what the tool does, how to use it, what it returns, and how it relates to siblings. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 by clarifying that 'ano' and 'status' are mutually exclusive filters, explains the meaning of each status value, and describes the 'limite' parameter's default and truncation behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 under consideration by Congress, filterable by year or status. It also explicitly differentiates from siblings by directing to 'senado_resultado_veto' for voting results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (listing vetoes) and specifies that to get voting results, one should use 'senado_resultado_veto'. It also explains the filter options 'ano' or 'status' and their values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_videos_taquigrafiaARead-onlyIdempotentInspect
Lista os vídeos e áudios (unidades descritivas) de uma sessão plenária ou reunião de comissão. Retorna { id, tipo, count, videos }, onde cada item traz codigo, data, descricao, orador, duracaoSegundos, e links urlVideo, urlAudio, urlThumbnail. Obtenha o id da sessão via senado_agenda_plenario/senado_resultado_plenario ou da reunião via senado_reuniao_comissao; use orador para filtrar pelo nome de quem fala e senado_notas_taquigraficas para a transcrição textual correspondente.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Código da sessão plenária ou da reunião de comissão | |
| tipo | No | sessao = plenário (padrão); reuniao = comissão | sessao |
| orador | No | Filtra unidades por nome do orador |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, non-destructive behavior. Description adds value by detailing the output structure and filtering capability, without contradicting annotations. Provides context beyond annotations but doesn't cover all edge cases (e.g., pagination or rate limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences efficiently cover purpose, output, and usage guidelines. No redundant words, well-structured, and front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity (3 parameters, output schema implied), the description provides sufficient context to use the tool correctly: how to obtain the ID, what the response contains, how to filter, and related tools for next steps. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing descriptions for all three parameters. Description adds further meaning by explaining where to get the 'id', clarifying the 'tipo' enum (sessão vs reunião), and highlighting the 'orador' filter. This goes beyond schema, meriting a higher score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description specifies the verb 'Lista' and the resource 'vídeos e áudios de uma sessão plenária ou reunião de comissão', clearly distinguishing from siblings like senado_discursos_plenario which deal with text, not media.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on obtaining the required 'id' via related tools (senado_agenda_plenario, senado_reuniao_comissao) and suggests using 'orador' for filtering and 'senado_notas_taquigraficas' for transcriptions. Does not explicitly state when not to use this tool, 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_votacao_comissaoARead-onlyIdempotentInspect
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) e retorna { por, ...contexto, count, votacoes }, cada votação com codigo, data, comissao, materia, descricao, resultado, totais (totalSim/totalNao/totalAbstencao) e votos (senador, partido, voto). Sem paginação. Obtenha siglas via senado_listar_comissoes, codigoSenador via senado_listar_senadores; para votações no plenário use senado_votos_materia.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Ano da proposição (obrigatório quando por=materia) | |
| por | No | Eixo da consulta: comissao, senador ou materia | comissao |
| sigla | No | Sigla do tipo da proposição (obrigatório quando por=materia; ex: PL, PEC) | |
| numero | No | Número da proposição (obrigatório quando por=materia) | |
| dataFim | No | Data fim (YYYYMMDD) | |
| comissao | No | Sigla da comissão para filtrar (por=senador ou por=materia) | |
| dataInicio | No | Data início (YYYYMMDD) | |
| codigoSenador | No | Código do senador (obrigatório quando por=senador) | |
| siglaComissao | No | Sigla da comissão (obrigatório quando por=comissao; ex: CCJ, CAE) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true and destructiveHint=false. Description adds behavioral context: no pagination, return format details (fields in each votação), and parameter constraints. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is long but well-structured with backtick formatting and clear sections. Every sentence adds value. Could be slightly shorter but is efficient given the complexity of three modes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensively covers all query modes, parameters, return structure, dependencies on other tools, and lack of pagination. Output schema exists, so return format description is sufficient. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the 'por' parameter's role and required dependent parameters for each mode, date format YYYYMMDD, and optional filters. Goes well beyond schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists votes in committees, specifies three query modes (by committee, senator, or bill), and explicitly distinguishes from sibling tool 'senado_votos_materia' which handles plenary votes. Verb+resource is specific and scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use each mode and what parameters are required for each. Concludes with clear alternative for plenary votes: 'use senado_votos_materia'. Also directs user to obtain siglas and codes via other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_votacoes_senadorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Ano das votações | |
| dataFim | No | Data fim (YYYYMMDD) | |
| dataInicio | No | Data início (YYYYMMDD) | |
| codigoSenador | Yes | Código único do senador |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate safe read-only idempotent characteristics. Description adds beyond: return format, ordering, behavior with no period, and field details. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences front-loaded with purpose. Every sentence adds value without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, full schema coverage, annotations, and many siblings, the description is thoroughly complete: explains return structure, ordering, parameter defaults, prerequisite, and alternative tool for details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description adds meaning: codigoSenador from another tool, period parameter relationships, default current year. Clarifies usage beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists nominal votes of a senator with voting details. It distinguishes from sibling tools like senado_obter_votacao by explicitly mentioning that for a specific vote details use that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use context: requires codigoSenador obtainable via senado_listar_senadores; for detailed vote use senado_obter_votacao. Also explains period defaults and parameter options (ano vs dataInicio/dataFim).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_votos_materiaARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| incluirVotos | No | Incluir votos nominais de cada senador | |
| codigoMateria | Yes | Código único da matéria |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description adds value by detailing the return structure and the effect of incluirVotos, providing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences), front-loaded with the core purpose, and structured logically without any extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the return shape and prerequisites, which is sufficient for a read-only tool with good annotations. It lacks error handling details but is complete enough for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully covered in the schema. The description enhances meaning by explaining that incluirVotos adds a votes array with specific fields and that codigoMateria comes from other tools, adding context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool obtains votes for a matter by codigoMateria, a specific verb and resource. It also references sibling tools for obtaining the required codigoMateria, aiding differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that codigoMateria is obtained via other tools and describes the optional parameter incluirVotos. While not explicitly contrasting with siblings, it provides clear usage context and prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!