Senado BR MCP
Server Details
Brazilian Federal Senate open data over MCP — 65 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
65 toolssenado_agenda_comissoesARead-onlyInspect
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 indicate readOnlyHint and openWorldHint. Description adds default date (today) and return structure details, which 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?
Description is concise, front-loads purpose, then details output and alternatives. Every sentence adds value with no 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 simplicity (2 optional params, output schema present), the description provides complete context including default, return shape, and sibling tool references.
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 both parameters. Description adds meaning by explaining the default for 'data' and the filtering use of 'siglaComissao', enhancing 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?
Description explicitly states it obtains the agenda of meetings of all commissions on a date with optional filter. It also distinguishes itself from related tools by naming alternatives for history and 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 says when to use this tool (for date-based agenda) and when to use alternatives (senado_reunioes_comissao for history, senado_reuniao_comissao for details). Provides clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_agenda_plenarioARead-onlyInspect
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 declare readOnlyHint=true and openWorldHint=true, and the description aligns as a read operation. It discloses the return structure in detail, increasing transparency 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?
Single paragraph, front-loaded with purpose, no wasted words. Concisely covers purpose, parameters, returns, and sibling references.
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 (as per context), the description provides a clear breakdown of the return structure and references sibling tools. Complexity is low and the description 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 description adds contextual meaning: explains each parameter (data, escopo, dataFim) with defaults and constraints (e.g., dataFim only for escopo=cn), and defines the escopo enum values.
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 obtains the agenda of plenary sessions, specifies the scope (Senado or Congresso Nacional), and distinguishes from siblings like 'senado_resultado_plenario' and 'senado_encontro_plenario' for different purposes.
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 this tool vs alternatives: for results use 'senado_resultado_plenario', for session details use 'senado_encontro_plenario'. Also provides parameter guidance: 'Use escopo dia/mes/cn; sem data assume hoje'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_autores_atuaisARead-onlyInspect
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 provide readOnlyHint and openWorldHint. The description adds behavioral context: ordering by production, return structure, partial search without accents, and a default/max 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?
The description is a single paragraph that efficiently provides purpose, return structure, filters, and cross-tool usage. Every sentence earns its place 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 (context signal), the description adequately covers purpose, parameters, return fields, and related tools. It provides sufficient information for an agent to use the 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%, so baseline is 3. The description adds value by explaining that nome uses partial search without accents and confirming the default and maximum for limite, exceeding 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 explicitly states the tool lists parliamentary authors of ongoing processes, ordered by production, with specific fields returned. It distinguishes from sibling tools by mentioning the codigo can be used in senado_obter_senador or senado_search_processos.
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 optional filters (uf, nome, limite) with details like partial search without accents and default/max limits. It implies usage for finding authors of pending processes, but does not explicitly exclude scenarios or compare to all alternatives, though it does mention related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_buscar_legislacaoARead-onlyInspect
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 declare readOnlyHint=true and openWorldHint=true, so the description adds value by specifying the requirement of at least one parameter and the error behavior. It does not contradict annotations and provides additional context.
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: first states purpose and return structure, second gives usage constraint and error condition, third provides cross-references. No wasted words, 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?
Given the tool's complexity (4 optional parameters, output schema present), the description covers purpose, return format, usage constraints, and links to related tools. No missing information; it's fully self-contained.
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 described. The description adds meaning by stating the requirement for at least one parameter, listing examples of 'tipo' values, and explaining the return format. This goes beyond the schema's individual 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 searches federal legal norms by type, number, year, or date, and specifies the return structure. It distinguishes itself from sibling tools like senado_obter_legislacao and senado_tabelas_referencia, which are referenced for detail and valid types.
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 (or an error is returned), and directs users to use the returned 'codigo' in senado_obter_legislacao for details and to consult senado_tabelas_referencia for valid types. This provides 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_buscar_materiasARead-onlyInspect
Busca matérias legislativas por tipo (PEC, PL, PLP, MPV), número, ano, palavras-chave, autor ou situação de tramitação; informe ao menos um critério. Retorna { count, total, materias[] }, cada item com codigo (codigoMateria), sigla, numero, ano, ementa, autor, situacao e tramitando. Use codigo em senado_obter_materia (com secao = detalhe, tramitacao ou textos). limite padrão 100 (máx. 500); ao truncar inclui aviso.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Ano da matéria | |
| 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 | |
| tramitando | No | Apenas em tramitação | |
| palavraChave | No | Termo livre buscado nas palavras-chave do processo |
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 and openWorldHint, confirming a read operation with potentially incomplete results. The description adds value by detailing the return structure (count, total, materias[] with specific fields), pagination behavior (limite default 100, max 500, truncation warning), and the role of 'codigo', enhancing 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 moderately sized but front-loaded with the core action. It efficiently packs criteria, return format, and cross-reference without redundancy, though slightly longer than minimal due to detailed return field listing.
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 7 parameters (0 required but needing at least one), full schema coverage, and available output schema, the description covers return value structure, usage of 'codigo', limit behavior, and conditions for truncation. It is complete for the 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?
With 100% schema coverage, the description still adds meaning by grouping parameters (tipo, número, ano, etc.), mentioning examples like PEC, PL, PLP, MPV, and emphasizing the need for at least one criterion. This clarifies usage beyond the schema's individual 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 searches legislative matters (matérias) by various criteria, with specific examples of types. It distinguishes from siblings by mentioning the use of 'codigo' in 'senado_obter_materia' for further details, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises that at least one criterion must be provided, and outlines default and maximum limits. It also hints at when to use a different tool ('senado_obter_materia') for detailed information, providing useful context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ceapsARead-onlyInspect
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?
Beyond annotations (readOnlyHint, openWorldHint), the description adds details about the return structure, aggregation options, truncation behavior (limite cap with aviso), and ordering. It also advises getting codSenador from another tool, enhancing behavioral transparency.
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 yet comprehensive, front-loading the purpose and return structure, then covering modes, filters, and a cross-reference. Every sentence adds unique information 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?
For a tool with 8 parameters and an output schema, the description covers the essential information: modes, filters, truncation, and reference to another tool. It is complete enough for an agent to use effectively, though output schema details are not duplicated.
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?
Parameters have 100% schema description coverage, so baseline is 3. The description adds value by explaining the modes, default behavior, and that filtering is partial. It also describes the return structure difference between modes, which the schema does not convey.
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 CEAPS expenses for senators in a year, specifying the resource (despesas CEAPS) and verb (gets/returns). It distinguishes from siblings by focusing on this specific expense type, which is not covered by 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 explains when to use the tool (to query CEAPS expenses) and mentions filters and modes. However, it does not explicitly state when not to use it or provide alternatives among sibling tools, though 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_contratacao_detalheARead-onlyInspect
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?
Beyond annotations (readOnlyHint, openWorldHint), the description details return format, limits (default 100, max 500), behavior for empty sections (count 0, empty itens), and error on invalid type/section combinations. 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 a single well-structured paragraph, front-loaded with the main purpose, then systematically explaining parameters, return format, and usage. 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?
With annotations indicating read-only and open-world behavior, the description covers return structure, limits, and edge cases. No explicit output schema provided, but the description compensates well, making it complete enough for an agent to use effectively.
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: explains enum values for tipo and secao, their constraints (aditivos only for contratos, acionamentos only for atas), and default/max for limite. This enriches the parameter 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 'Detalha uma seção específica de uma contratação.' It explains the two key parameters (tipo and secao) with their enum values and meanings, and relates to sibling tools by mentioning how to obtain the id beforehand.
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 to obtain the id via senado_contratos or senado_contratacoes_lista first, and warns about invalid combinations returning error. This provides clear context for when to use this tool and prerequisite steps, though it doesn't give extensive when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_contratacoes_listaARead-onlyInspect
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 indicate readOnlyHint and openWorldHint. The description adds transparency about response structure per tipo, truncation behavior with 'aviso', and that 'menores_aprendizes' come as raw API records. 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 a single paragraph but well-structured, front-loading the main action. It is informative but could be slightly more concise; however, 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 presence of an output schema (implied by the described return structure), the description completes the picture by explaining what each tipo returns and the truncation warning. It covers all aspects needed for correct 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 coverage is 100%, so parameters are defined. The description adds semantics beyond schema: explains that filter is applied on Worker across all fields, clarifies default and max limit, and describes the response format for each tipo, which is not 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 lists three specific types of records (atas, notas, menores aprendizes) with optional text filter. It distinguishes itself from sibling 'senado_contratacao_detalhe' by mentioning deepening into a specific item. The verb 'Lista' and resource 'contratacoes' 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?
The description explicitly tells when to use the sibling tool for deepening ('Para aprofundar uma ata/empenho, use o id em senado_contratacao_detalhe'). It implies usage for listing, but no explicit when-not-to-use. Overall 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-onlyInspect
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 declare readOnlyHint=true and openWorldHint=true, indicating safe read operation. The description adds value by specifying the limit parameter (default 50, max 500) and the aviso field for truncation. This provides practical behavioral context beyond what annotations 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?
The description is three sentences, each efficient and front-loaded. First sentence states purpose and filters, second specifies return structure, third covers behavior (limit/truncation) and links to related 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 the output schema (return structure described), 100% parameter coverage, and annotations, the description is complete. It explains functionality, filtering, return format, limits, truncation warning, and provides a clear next step (senado_contratacao_detalhe). Meets all needs for a search 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 descriptions for each parameter. The description lists the filter criteria and mentions they are applied upstream, but does not significantly add new information beyond the schema. It reinforces the usage but doesn't provide deeper semantics (e.g., format, restrictions). 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 tool searches for Senate administrative contracts with specific verb 'Busca' and resource 'contratos administrativos do Senado'. It lists multiple filter criteria (fornecedor, CNPJ, ano, numero, objeto, mão de obra) and distinguishes itself from sibling tools by referencing 'senado_contratacao_detalhe' for detailed follow-up.
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 search contracts by various criteria) and when to use another tool (senado_contratacao_detalhe for details on a specific contract). It also explains the limit and truncation behavior. However, it does not explicitly mention when not to use this tool or contrast with other 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_plenarioARead-onlyInspect
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 and openWorldHint. Description adds return structure and parameter format. It does not mention pagination limits or performance considerations, but it is adequate given annotations and output 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, front-loaded with purpose and parameter info. 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?
Output schema exists, so return values are covered. Description includes return shape and sibling context. Tool is straightforward and description is 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%, so baseline is 3. Description adds format YYYYMMDD but this is already in schema. It does not add significant new meaning beyond what schema 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?
The description clearly states the tool lists all speeches in plenary within a date range, with specific parameters and format. It distinguishes from siblings by mentioning alternatives for specific senator speeches and full text 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 (list all speeches in date range) and when to use alternatives (senado_discursos_senador for specific senator, senado_discurso_texto for full text).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_discursos_senadorARead-onlyInspect
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 declare readOnlyHint=true and openWorldHint=true. The description adds that the operation is a list (read) and details the return structure, including that 'apartes' have a similar 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 a single paragraph but front-loads the main purpose, then covers parameters, output, and cross-references to other tools. Every sentence adds value 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?
The description is comprehensive given the tool's complexity: it covers all parameters, output structure, and related tools. It lacks explicit mention of pagination or maximum date range, but the openWorldHint and schema patterns mitigate this.
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% coverage, and the description adds significant value: it explains the 'tipo' parameter's default and options, the purpose of date and 'casa' filters, and provides the exact output fields. 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 lists 'pronunciamentos' of a senator, filterable by period and house, and distinguishes between 'discursos' and 'apartes'. It references related tools for getting the senator code and full text, differentiating from siblings like senado_discursos_plenario and senado_discurso_texto.
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 'discursos' vs 'apartes' via the 'tipo' parameter, and directs users to obtain the 'codigoSenador' from 'senado_listar_senadores' and to get full text from 'senado_discurso_texto'. It does not explicitly state when not to use this tool, 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_discurso_textoARead-onlyInspect
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 provide readOnlyHint=true and openWorldHint=true. Description adds meaningful context about return format (object with codigoPronunciamento and texto), which is beyond schema. 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?
Two tightly-focused sentences with no extraneous information. 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?
Given the simple tool (1 required parameter, output schema present), description covers input source, output structure, and purpose completely.
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 description 'Código do pronunciamento'. Description adds value by explaining how to obtain the parameter from other tools, going 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?
Description clearly states verb 'Obtém' (retrieves) and resource 'texto integral de um pronunciamento/discurso específico'. It distinguishes from siblings by specifying that the parameter comes from senado_discursos_senador or senado_discursos_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 instructs to first obtain codigoPronunciamento from sibling tools, providing clear when-to-use guidance and avoiding misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_distribuicao_materiasARead-onlyInspect
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 declare readOnlyHint=true and openWorldHint=true. Description adds that results are ordered by quantidade descending and that codigoParlamentar only works with tipo=autoria, providing behavioral details 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?
Single paragraph, front-loaded with main action and parameter details, concise 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 output schema exists and tool has 3 parameters with clear semantics, the description covers purpose, parameters, output structure, and usage tip, making it comprehensively 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 covers all parameters with descriptions. Description adds context on enum values, filter constraints, and output ordering, providing additional 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?
Description clearly states it provides statistics of distribution of matters in a committee, specifies parameters (siglaComissao, tipo, codigoParlamentar), and distinguishes itself by referencing senado_listar_comissoes for getting 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?
Description indicates it is useful for measuring legislative workload and tells users to obtain siglaComissao from a sibling tool, though it does not explicitly mention when not to use this tool or provide direct alternatives.
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-onlyInspect
Analisa consultas públicas 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). Ambos 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 | |
| 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?
The description adds behavioral details beyond annotations: it explains ordering (by concentration or difference), default values, and output structure. Annotations indicate readOnlyHint=true and openWorldHint=true, which the description supports. 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 of ~5 sentences, efficiently front-loading the main purpose and then detailing each mode's criteria. It avoids unnecessary words and ends with a clear sibling reference.
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, two modes, no required params, output schema present), the description fully covers behavior, defaults, and return format. It also guides the agent to a sibling tool for detailed consultation, ensuring completeness.
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 for all parameters. The description adds context about defaults (e.g., 85% for percentualMinimo, 15 for margemPolarizacao) and ordering logic, enhancing the schema's meaning without redundancy.
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 analyzes e-Cidadania public consultations by citizen agreement degree, with two modes ('consenso' and 'polarizada'). It distinguishes itself from the sibling tool 'senado_ecidadania_obter_consulta' by explicitly directing users there for detailed consultation info.
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 each mode: 'consenso' for high vote concentration, 'polarizada' for balanced voting. It also mentions the sibling tool for details. However, it doesn't explicitly state when not to use this tool or provide alternative contexts beyond the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_listar_consultasARead-onlyInspect
Lista consultas públicas do e-Cidadania, em que cidadãos votam sim/não sobre matérias em tramitação. Retorna { count, consultas }, cada consulta com id, materia, ementa, votosSim/votosNao/totalVotos, percentualSim/percentualNao, status e url; aceita filtro por status e 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 |
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: describes return format, default limit, filtering. Annotations already provide readOnly and openWorld hints, so description complements 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?
Single paragraph, front-loaded with purpose, then return and parameters, then sibling guidance. 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?
Covers purpose, return structure, parameters, and sibling differentiation. Output schema exists, so no need to detail returns 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?
Schema coverage is 100% with descriptions, but description adds meaning: highlights limite default, status filter, and return structure (count, consultas).
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 the tool lists public consultations from e-Cidadania where citizens vote on matters. Distinguishes from siblings by mentioning detail and 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 says when to use this tool (list consultations) and when to use alternatives for details or analysis.
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-onlyInspect
Lista eventos interativos do e-Cidadania (audiências públicas, sabatinas, lives). Retorna { count, eventos }, cada evento com id, titulo, data, hora, comissao (sigla), comentarios, status (agendado/encerrado) 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 and openWorldHint, so the description adds value by detailing the return structure (count, eventos with specific fields) and default limit (20) with max (100). 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 cover purpose, return structure with filters, and alternative tool. Each sentence is packed with relevant 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 output schema existence and rich parameter schema, the description adequately covers tool behavior. It could mention pagination or authentication, but annotations offset some 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?
All parameters are described in schema, but the description enriches them with usage context (e.g., ordering by comments for ranking, filtering by status/commission). It provides practical guidance 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 lists interactive events (audiências públicas, sabatinas, lives) from e-Cidadania, and distinguishes itself from the sibling tool for event details (senado_ecidadania_obter_evento) and other list tools (consultas, ideias).
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 recommends using the sibling tool for full event details, and gives ordering advice for ranking. It does not explicitly state when not to use it, but the context 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_ecidadania_listar_ideiasARead-onlyInspect
Lista ideias legislativas propostas por cidadãos no portal e-Cidadania. Retorna { count, ideias }, cada ideia com código, título, autor, número de apoios e status; resultado paginado (padrão 20 por página, ordenável por apoios, data ou comentários). Para um ranking das mais apoiadas, ordene por apoios (ordenarPor: "apoios", ordem: "desc", opcionalmente status: "aberta"). Para o detalhe completo de uma ideia (texto, apoios, se virou projeto de lei) chame senado_ecidadania_obter_ideia com o código.
| 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 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
A descrição vai além das anotações (readOnlyHint, openWorldHint) ao detalhar comportamento de paginação (padrão 20 por página, máximo 100), ordenação por apoios/data/comentários, e estrutura de retorno. Não contradiz as anotações, que indicam operação de leitura segura.
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?
A descrição é concisa em duas frases principais, com informação essencial na primeira linha. Não há palavras desnecessárias; cada frase agrega valor funcional.
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?
Considerando a complexidade (5 parâmetros, nenhum obrigatório, esquema completo, esquema de saída existente), a descrição cobre todos os aspectos: propósito, parâmetros, paginação, ordenação, filtros, e referência ao tool irmão. Não faltam informações relevantes.
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?
A cobertura do esquema é 100% e a descrição adiciona significado além das descrições dos parâmetros: explica como usar ordenarPor, ordem e status para ranking, e menciona o limite padrão. Exemplos práticos aumentam o valor além do esquema.
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?
A descrição especifica claramente que o ferramenta lista ideias legislativas do portal e-Cidadania, incluindo o formato de retorno e campos, e diferencia-se dos irmãos ao mencionar que para detalhes completos deve-se usar senado_ecidadania_obter_ideia. O verbo 'Lista' e o recurso 'ideias' são específicos.
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?
A descrição fornece orientações explícitas: 'Para um ranking das mais apoiadas, ordene por apoios' com exemplo de parâmetros, e também indica quando não usar (para detalhes completos, use outro tool). Exclui alternativas e contextos de uso.
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-onlyInspect
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 declare readOnlyHint and openWorldHint. The description adds value by detailing the return object fields and noting which fields may be null (comissao and dates). This disclosure beyond annotations helps set expectations about possible null values.
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 three sentences, front-loaded with the main purpose, then return details, then source guidance. Every sentence provides necessary 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 has one parameter, good annotations, and an existing output schema, the description is complete. It covers what the tool does, what it returns, and how to get input. 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%, and the description adds context beyond the schema by explaining how to obtain the required 'id'. It tells users to get it from two specific sibling tools, which adds 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 the tool retrieves details of a specific e-Cidadania public consultation. It uses a specific verb 'Obtém' and identifies the resource as 'detalhe de uma consulta pública específica do e-Cidadania'. It distinguishes from sibling tools by instructing to obtain the id from 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?
The description explicitly tells users to obtain the id from senado_ecidadania_listar_consultas or senado_ecidadania_consultas_analise before using this tool. This provides clear guidance on prerequisites. It does not explicitly state when not to use, but the scope is well-defined by the 'id' requirement.
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-onlyInspect
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 indicate readOnlyHint=true and openWorldHint=true. The description goes beyond by listing all return fields (id, titulo, descricao, etc.) and noting optional videoUrl, giving full behavioral expectations.
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?
Extremely concise: one sentence for purpose, followed by a structured list of return fields, then a usage note. No wasted words, information 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?
With only one parameter, clear annotations, and a comprehensive description of return fields (acting as an output schema), the agent has all necessary context to use the 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 covers 'id' with description 'ID do evento'. The description adds value by explaining where to get the id, i.e., from listar_eventos, aiding correct invocation.
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 resource 'detalhe de um evento interativo do e-Cidadania', specifying exactly what the tool does. It distinguishes itself from sibling tools like listar_eventos by being the detail retriever.
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 senado_ecidadania_listar_eventos, providing a clear prerequisite. Does not discuss when not to use or alternatives, but context is adequate.
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-onlyInspect
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 indicate readOnlyHint and openWorldHint. Description adds that 'descricao' is truncated at ~2000 characters and explains 'plConvertido'. 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 concise sentences: first states purpose and return fields, second gives prerequisite. 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?
With full schema coverage, output schema, and clear description including truncation notice and reference to list tool, the tool is completely specified for its simple retrieval purpose.
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 the only parameter fully (100%). Description does not add new semantic meaning for the parameter itself, but provides usage context. 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?
Clearly states it retrieves details of a legislative idea from e-Cidadania, lists returned fields, and distinguishes from sibling 'senado_ecidadania_listar_ideias'.
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 directs to obtain the id via the list tool, providing a clear prerequisite. Does not mention when not to use, but the single-parameter tool is straightforward.
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-onlyInspect
Sugere temas para uma enquete pública mensal (seleção de pauta): analisa as consultas e 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. 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?
The description adds behavioral details beyond annotations: it specifies the output format (up to 10 suggestions with fields), filtering criteria with defaults, and ordering by participation. Annotations already declare readOnlyHint and openWorldHint, which are consistent with a read/suggestion operation.
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 with all essential information front-loaded: purpose, output structure, filtering options, and sibling tool guidance. Every sentence adds value 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 simplicity (one optional nested parameter), annotations, and implied output schema from the description, the description is fully complete. It covers input parameters, expected output, and follow-up actions.
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 coverage is 100% with descriptions, so the schema already documents parameters. The description adds meaningful context by explaining the criteria in natural language (e.g., 'evita temas com ~50/50' for evitarPolarizacao) and linking them to the output structure.
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: 'Sugere temas para uma enquete pública mensal (seleção de pauta)' with specific verb and resource. It differentiates from sibling tools by focusing on suggestion rather than listing or retrieval, and explicitly names alternatives for follow-up.
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 for using this tool to get top engaging topics and explicitly directs the agent to use 'senado_ecidadania_obter_consulta' or 'senado_ecidadania_obter_ideia' for investigating suggestions. However, it does not discuss when to avoid this tool or compare with other analysis tools like 'senado_ecidadania_consultas_analise'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_empresas_contratadasARead-onlyInspect
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 provide readOnlyHint=true and openWorldHint=true; the description adds valuable behavioral context such as requiring at least one of nome/cnpj, partial search behavior, and limit parameter with maximum of 100. 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 well-structured and concise: it first states the purpose and parameters, then the return format, then usage constraints, and finally links to siblings. Every sentence adds value, and it is appropriately 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's complexity (search with multiple parameters, output format, constraints) and the presence of output schema (described textually) and annotations, the description is complete: it covers search behavior, required inputs, return fields, limits, and connection to other tools. No significant 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%, and the description adds meaning beyond schema by clarifying that at least one of nome/cnpj must be provided (though not required in schema), describing partial search for CNPJ/CPF, and explaining the reason for the limit ('a base completa é grande').
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 that contract with the Senate by name or CNPJ/CPF, uses a specific verb 'Busca' and resource 'empresas que contratam com o Senado', and distinguishes from siblings by directing to use `senado_contratos` or `senado_contratacao_detalhe` for detailed information.
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 states that providing `nome` or `cnpj` is required (though schema marks them optional), warns that the full base is large, and mentions the `limite` parameter with defaults and max. It does not list explicit alternatives or when not to use, but it effectively guides usage with constraints and links to sibling tools for further detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_encontro_plenarioARead-onlyInspect
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 indicate read-only and open-world (return varies). Description adds: result can be empty for a section, error if codigo missing, and that encontro is a raw object. 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?
Single paragraph, front-loaded with purpose. Every sentence provides useful information (structure, sections, edge cases, prerequisite). Could be slightly more concise, but structure is 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 moderate complexity (4 variants) and no explicit output schema, the description adequately describes return format and behavior. It also explains error and empty results. Coordination with sibling tools is covered.
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 that codigo should be from other tools, and details what each secao value returns (e.g., tipo, data, situação for detalhes). This goes 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 the tool returns details of a legislative plenary session (specific verb and resource). It distinguishes from siblings by mentioning sources for obtaining the required code (senado_agenda_plenario, senado_resultado_plenario) and by explaining the different sections.
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 prerequisite: obtain codigo from specific sibling tools. It also describes each section's purpose, guiding selection. However, it does not explicitly state when not to use this tool compared to all alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_execucao_orcamentariaARead-onlyInspect
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 indicate readOnlyHint=true and openWorldHint=true. Description adds behavioral details: return structure (tipo, modo, ano, totalLinhas, agregado[] with chave/valores, limit with aviso to truncation), which is not present in annotations. 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?
Description is only a few sentences, front-loaded with purpose, then covers return structure, usage guidance, and differentiation from sibling. Every sentence provides value 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?
For a tool with 4 parameters, various modes, and an output schema (described in text), the description fully covers: purpose, data ranges, return schema, parameter usage, filtering advice, and sibling distinction. No gaps evident given the 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%, but the description adds context beyond schema descriptions: explains valid combinations of tipo and modo (e.g., despesas with por-acao/por-grupo/por-fonte, receitas with por-origem) and suggests using ano filter to reduce volume. This enriches parameter 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 handles Senate budget execution (expenses since 2013, revenues since 2012) and distinguishes from the sibling tool 'senado_orcamento_parlamentar' which deals with parliamentary amendments. The verb 'execução orçamentária' and resource 'Senado' 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?
Provides explicit guidance: use 'detalhe' only after filtering with 'ano' to reduce volume; explains which modes apply to despesas vs receitas; and explicitly warns not to confuse with the sibling tool. Also suggests filtering by year before requesting detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_horas_extrasARead-onlyInspect
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 indicate readOnlyHint and openWorldHint. The description adds behavioral context: data from 2013 onward, return structure with totals and per-item fields, and that nome allows partial search. 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 two sentences, front-loaded with purpose and required params, then output details and optional filters. No redundancy, 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 presence of an output schema and annotations, the description fully explains what the tool returns, the meaning of key fields, and provides a cross-reference to a sibling tool. No gaps for the 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 the return object structure, that nome is a partial search, limite has a default and max, and the date range. This goes beyond the schema's simple 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 verb ('retorna') and resource ('horas extras pagas a servidores do Senado'), specifies the date range, and distinguishes from sibling tools by focusing on overtime payments and referencing the alternative tool for full remuneration.
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 states required parameters (ano, mes), optional filters (nome, limite with defaults and max), and directs users to a sibling tool ('senado_remuneracoes_servidores') for alternative use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_licitacoesARead-onlyInspect
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?
The annotations declare readOnlyHint: true and openWorldHint: true. The description adds significant behavioral context: return format with count, total, and licitacoes; raw API data; limit defaults to 50, max 500. No contradiction with annotations; the description enriches the transparency.
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, front-loaded with the core purpose, then format, constraints, and sibling tool reference. 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 presence of an output schema (not shown but indicated), the description adequately covers the tool's purpose, parameters, output structure, constraints, and sibling guidance. It fully addresses the complexity of a search tool with multiple optional parameters.
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%, but the description adds value beyond schema: it provides an example format for 'numero' (19/2018), clarifies the relationship between parameters and the requirement of at least one, and explains the default and max for 'limite'. This extra context earns 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 the verb 'Busca' (search) and the resource 'licitações do Senado' (Senate bidding processes). It also distinguishes itself from siblings by specifying search by exact number or object text and explicitly mentions the sibling tool 'senado_contratos' 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?
The description provides explicit usage conditions: at least one of 'numero' or 'objeto' is required, otherwise an error is returned. It also guides the user to 'senado_contratos' if they need the resulting contract, offering a clear alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_liderancasARead-onlyInspect
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 indicate readOnlyHint=true and openWorldHint=true. The description adds valuable behavioral context: it explains the return structure (`{ count, liderancas }`) and the fields within each item (`tipo`, `descricao`, `unidadeLideranca`, `parlamentar`). This goes beyond annotations and helps the agent understand what to expect.
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 front-loading the purpose and then covering filters and an alternative. Every sentence adds value, 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 tool has 4 optional parameters, a clear output schema, and good annotations, the description provides sufficient context: what the tool returns, how to filter, and a pointer to a related 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%, so baseline is 3. However, the description adds clarity by explaining the meaning of the `casa` parameter (SF/CN) and `vigente` (S/N), and mentions that filters can be combined. It also clarifies that without filters all data is returned, which is not fully explicit in 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 a clear verb 'Lista' (lists) and specific resource 'lideranças do Senado e do Congresso Nacional', immediately conveying what the tool does. It distinguishes itself from the sibling `senado_listar_blocos` by mentioning that for bloc composition another 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 lists the available filters (`casa`, `codigoParlamentar`, `vigente`, `siglaTipoLideranca`) and states that without filters it returns all leaderships. It also points to an alternative tool for blocos. However, it does not explicitly state when not to use this tool or provide exclusions for specific use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_listar_blocosARead-onlyInspect
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 indicate read-only and open-world; description adds specific return structure (count, blocos with fields), which is helpful but not necessary for behavioral transparency.
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, followed by usage guidance; 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 presence of output schema, description fully covers what the tool does, returns, and how to use it with siblings.
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 description has no need to explain them; baseline score 4 for zero 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?
Description clearly states it lists all parliamentary blocs and their member parties, specifies return format, and distinguishes from sibling tools like senado_obter_bloco and 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?
Explicitly says to use this tool to find the code of a bloco then use senado_obter_bloco for details, and directs to senado_liderancas for leadership info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_listar_comissoesARead-onlyInspect
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 readOnlyHint=true. The description adds that the endpoint only returns active commissions, so ativa=false gives empty list. Provides useful 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, front-loaded with the main purpose, no filler. Every sentence adds meaningful 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 2 parameters, output described in detail, and sibling tools referenced, the description is fully complete. It covers return structure, edge cases, and usage 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%, so baseline is 3. The description adds value by explaining the effect of ativa=false and listing the enum values for tipo, which is already in schema but clarifies their 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 lists active commissions with filters, and specifies the returned fields (codigo, sigla, etc.). It distinguishes itself from siblings by noting it is used to discover sigla for 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 explicitly states to use this tool to find sigla for senado_obter_comissao and senado_reunioes_comissao, and explains that ativa=false yields empty list. It does not explicitly state 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_listar_senadoresARead-onlyInspect
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. 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?
The description confirms readOnlyHint and openWorldHint by stating it's a listing operation. It discloses behavioral details: default `emExercicio=true`, partial matching ignoring accents/case, and local filtering for uf/partido. 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 clear and front-loaded with the main purpose. While somewhat lengthy (multiple sentences), each sentence adds value and there is no redundancy. Could be slightly more concise, but highly effective.
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 sufficiently explains the return format (`{ count, senadores }` with fields like `codigo`, `nome`, `partido`, etc.) and links to related tools. Covers all necessary context 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%, and the description adds significant meaning: explains that `nome` is for partial match to retrieve `codigo`, clarifies defaults for `emExercicio`, and states that `uf`/`partido` filter locally. Also describes output structure, which 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 the tool lists senators, with two modes (current or legislature) and optional filters. It distinguishes from sibling tools like 'senado_senadores_afastados' and 'senado_obter_senador' by mentioning when to use each.
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 filter usage: use `nome` for partial match to get `codigo`, and use `codigo` in other tools. Mentions alternative tool for non-exercising senators. However, the claim that `uf`/`partido` filter locally is not fully explained (e.g., whether it's client-side or server-side).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_mesaARead-onlyInspect
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?
The description discloses the return format and fields, consistent with the readOnlyHint annotation. It adds context beyond annotations by specifying exact output structure and parameter effects.
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, front-loaded with purpose, no redundant information, and efficiently conveys all necessary details.
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, full schema coverage, existing output schema, and clear annotations, the description covers purpose, usage, output structure, and alternative tool, making it 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 by explaining the values (senado vs. congresso) and their implications, going beyond the enum definition.
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 for either the Senate or Congress, using specific verbs and resources, and distinguishes it from the sibling tool 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?
It explicitly tells when to use this tool (to list board members) and when not (for party leadership, use senado_liderancas), and explains the parameter choice between senado and 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-onlyInspect
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?
Annotations indicate readOnlyHint=true and openWorldHint=true, which are consistent with the description. The description adds significant behavioral detail beyond annotations: it explains the two modes (resumo and texto), the structure of the response (id, tipo, sessao, data, totalBlocos, blocos), and constraints like max 20 blocks per call in texto mode and pagination using sequenciaInicio/sequenciaFim. This provides a clear understanding of the tool's behavior 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?
The description is a single paragraph that efficiently packs a lot of information. It starts with the core purpose and then details return structure, modes, and related tools. While it could be structured with bullet points for improved readability, every sentence contributes useful information, and it is 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 that an output schema exists and the tool has 6 parameters (1 required), the description is highly complete. It explains how to obtain the required 'id', the two modes with their differences, pagination details, filtering by speaker, and links to sibling tools for media and session IDs. This ensures an agent can effectively use the tool without additional lookups.
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 6 parameters are described in the input schema). The description adds value by explaining the purpose of the 'modo' parameter in detail, how 'sequenciaInicio' and 'sequenciaFim' enable pagination, and how 'orador' filters blocks by speaker. It does not simply repeat the schema but provides practical usage 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 verb 'Obtém' and the resource 'notas taquigráficas (transcrição oficial)' and distinguishes between plenary sessions and committee meetings via the 'tipo' parameter. It differentiates from sibling tools by specifying how to obtain the 'id' from related tools like 'senado_agenda_plenario' and 'senado_reuniao_comissao', and notes the availability of media via 'senado_videos_taquigrafia'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use the tool: to retrieve official transcripts of sessions. It also explains how to obtain the required 'id' from other tools, which is helpful context. However, it does not explicitly state when NOT to use the tool or compare it to alternatives for transcription retrieval, which would enhance clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_blocoARead-onlyInspect
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 and open world. Description adds details: returns specific fields, null for extinction date on active blocks, and error behavior for nonexistent code. 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 concise sentences, front-loaded with purpose, 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 output schema (which describes return object), annotations, and simple 1-param input, description fully covers behavior, error handling, and prerequisite.
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 100% covers parameter 'codigo' with description. Description adds prerequisite info (get from senado_listar_blocos), adding 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?
Clear verb 'Obtém' and resource 'bloco parlamentar específico pelo seu código'. Distinguishes from sibling tools like senado_listar_blocos (which lists all) and senado_obter_comissao (different entity).
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: obtain 'codigo' via senado_listar_blocos first, and note that invalid code returns error with specific message.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_comissaoARead-onlyInspect
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?
The description explains that the sigla is resolved internally to a numeric code, which is a behavioral detail not in annotations. It also details output structures for both secao options. Annotations already indicate readOnlyHint and openWorldHint, and no contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that front-loads purpose and efficiently covers parameters, output structures, and a cross-reference. It is concise without omitting critical information, though a bulleted list could improve readability.
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 existence of an output schema (not shown but indicated), the description provides sufficient detail on the two sections and internal resolution. It covers all necessary context for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the description adds value by explaining the meaning of secao ('resumo' vs 'membros'), providing example siglas (CCJ, CAE), and describing output fields beyond simple types.
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 states a specific verb ('Obtém dados') and resource ('comissão'), identifies the key parameters (sigla, secao), and clearly distinguishes from sibling tools like senado_listar_comissoes by referencing it for discovering 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?
The description tells when to use this tool (to get commission data by sigla) and directs users to senado_listar_comissoes to find valid siglas. However, it does not explicitly state when not to use it or mention alternatives for other commission-related tasks (e.g., meetings).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_legislacaoARead-onlyInspect
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 indicate read-only, but description adds value by detailing the return object structure and fields, going beyond basic annotation.
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 concise sentences: first states purpose and return fields, second gives prerequisite. 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 simple input and annotations, the description adequately explains what the tool does and returns. Could mention error cases but not essential.
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?
Parameter 'codigo' is fully described in schema with 100% coverage; description adds no additional 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?
Description clearly states it obtains details of a specific federal legal norm by code, and lists return fields. Distinguishes from sibling tool 'senado_buscar_legislacao'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to obtain the code first via 'senado_buscar_legislacao', providing clear when-to-use and alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_materiaARead-onlyInspect
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?
Annotations (readOnlyHint, openWorldHint) are consistent with read-only access. Description adds behavioral details not in annotations, such as truncation behavior, default limits, and inclusion of aviso when truncated.
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 detailed and well-structured, front-loading the main purpose and then breaking down each secao. Though lengthy, every sentence adds valuable information; minor reduction could improve conciseness.
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 fully explicates return structures for all secao options, covers parameter behavior, and provides a complete picture for tool 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?
Despite 100% schema coverage, description significantly enriches parameter meaning by explaining secao values, default behavior, applicable limits, and the return structure for each option, exceeding what the schema 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 the tool retrieves data for a specific materia using codigoMateria, differentiates between secao options, and explicitly references sibling tool senado_buscar_materias for obtaining the required ID.
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?
Describes when to use each secao (detalhe for full details, tramitacao for history, textos for documents) and directs to senado_buscar_materias for finding codigoMateria. Lacks explicit exclusion scenarios but provides 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_processoARead-onlyInspect
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 and openWorldHint. The description adds value by listing the exact fields returned, confirming the read-only nature and providing transparency about the output shape. It does not disclose any additional behavioral traits beyond annotations, but the added context is sufficient.
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 two sentences: first states purpose and lists output fields, second gives usage guidance. Every word adds value, no redundancy, and it is well-structured for quick comprehension.
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 low parameter count, full schema coverage, annotations present, and description covering purpose, usage, and output fields, the description is complete for its complexity. No output schema needed as description lists fields.
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?
There is only one parameter, idProcesso. Schema description covers its meaning, but the description adds crucial context that this ID must be obtained from other tools, enhancing usability beyond the 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?
The description begins with a clear verb 'Obtém detalhes completos' and identifies the specific resource 'processo legislativo' by its id. It lists all return fields, and explicitly distinguishes from sibling tools by naming alternatives for obtaining the ID and for more detailed 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 explicitly instructs to obtain idProcesso via senado_search_processos or senado_buscar_materias before using this tool. It also states when to use senado_processo_detalhe instead for emendas, relatorias, or prazos, 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-onlyInspect
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?
No contradiction with annotations (readOnlyHint=true). Description adds detail on the return object structure (fields listed), which is beyond annotations. No destructive behavior implied.
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, each serves a purpose: purpose, return format, parameter requirement, 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 the presence of an output schema (mentioned in description) and sufficient annotations, the description fully covers what the tool does, what it returns, and how to use it. No missing 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%, so baseline 3. Description adds value by stating the parameter is required and advising how to obtain it ('via senado_listar_senadores'), going beyond the schema 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?
Description clearly states the verb 'Obtém' and resource 'detalhe biográfico de um senador'. It distinguishes from sibling tools by mentioning 'senado_senador_historico' for related but different 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?
Explicitly tells when to use this tool (to get biographical details) and when not to (use 'senado_senador_historico' for other histories). Also guides the user to obtain the required parameter from 'senado_listar_senadores'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_votacaoARead-onlyInspect
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 indicate readOnlyHint and openWorldHint. The description adds contextual details such as the conditional return shape (multiple votes vs single vote) and the alias relationship between codigoVotacao and codigoSessao, which enhances transparency.
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, no redundant information. Front-loaded with purpose and key details, then prerequisite. Very 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 single parameter and existing output schema, the description covers input derivation, output structure in both scenarios, and prerequisite, making it fully sufficient.
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 description for codigoVotacao is complete, and the description adds semantic value by explaining that codigoVotacao is actually the codigoSessao, providing essential context 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?
Description clearly states it retrieves voting details by a specific code, includes nominal votes, and describes the return structure. It distinguishes the tool from its sibling by specifying the prerequisite call to senado_search_votacoes.
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 clear context. Could be improved by mentioning when not to use this tool, but the guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_orcamento_parlamentarARead-onlyInspect
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?
Beyond readOnlyHint and openWorldHint annotations, the description details response structures for each tipo, empty list behavior, and confirms no other parameters.
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?
Dense but slightly verbose; could be tightened without losing clarity. However, it is well-structured with code formatting.
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 complete given the output schema exists; description provides enough context for correct invocation and understanding.
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?
Adds significant meaning beyond schema: explains default value, maps each enum option to its response shape, and confirms no other 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?
Clearly states it lists parliamentary amendments and support letters, specifies the two tipos, and explicitly distinguishes from sibling tool senado_execucao_orcamentaria for internal budget.
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 (for federal budget amendments), when not to use (for internal Senate budget) and names the alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_orientacao_bancadaARead-onlyInspect
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?
The description discloses the return structure in detail (count, votacoes, fields like codigoVotacao, orientacoes, etc.) and notes that the tool is read-only and open-world. This adds value beyond annotations which already indicate readOnlyHint and openWorldHint.
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, consisting of two main sentences. It front-loads the core purpose and then details the return structure. While it packs a lot of information, it remains readable 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 the presence of an output schema, the description provides sufficient context: it explains the tool's output format, parameter combinations, and references an alternative. It fully addresses the tool's usage scenario.
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 meaning by explaining that parameters 'data' (single day) or 'dataInicio'/'dataFim' (period) can be used, and implies at least one should be provided. This clarifies usage beyond the schema's simple 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 returns party leadership voting orientation and placar, specifically for analyzing party discipline. It distinguishes itself from sibling tools like senado_resultado_plenario by explicitly mentioning it returns orientation 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 tells the agent when to use this tool (for orientation) and explicitly points to an alternative: 'Para o resultado das sessões use senado_resultado_plenario.' It also instructs on parameter usage, specifying that a single date or a period can be provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_pessoal_tabelasARead-onlyInspect
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?
Discloses the output structure {tabela, count, total, aviso?, registros[]}, explains behavior for empty tables (count=0, empty list), and details the optional filter; annotations already indicate read-only, so no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph contains all necessary information but could benefit from bullet points for easier scanning; however, it is not verbose and front-loads the 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 complexity of multiple tables and parameters, the description covers all aspects: purpose, parameter semantics, output structure, and edge cases (empty results, use of filters).
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 have schema descriptions (100% coverage), and the description adds value by explaining how 'tabela' determines output type, the maximum and default for 'limite', and the filter behavior across 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?
Description clearly states the tool retrieves personnel tables from the Senate, lists specific table options differentiating between aggregate quantitative and nominal lists, and explicitly distinguishes from sibling tool 'senado_servidores' for nominal registration of servers.
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 table type (aggregate vs nominal) and provides a direct alternative ('senado_servidores') for a different use case, making context and exclusions clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_processo_detalheARead-onlyInspect
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?
Beyond the readOnlyHint and openWorldHint annotations, the description details the return structure ({ secao, count, total, aviso?, itens }), pagination (limite with default 100, max 500), and notes that prazos returns raw API records. 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 comprehensive and well-structured with bullet points, but somewhat lengthy. It front-loads the main purpose and uses clear formatting, but could be slightly more concise. Still, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, conditional behavior based on secao), the description is remarkably complete. It covers all parameter combinations, return format, limits, and references external tools for prerequisite data. The output schema existence reduces burden, but description still provides necessary 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%, but the description adds significant value: for each secao it lists returned fields and applicable filters (e.g., codigoParlamentarAutor for emendas), explains date format (YYYYMMDD or ISO), and clarifies conditional parameters like dataReferencia for relatorias/prazos.
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 legislative process aspects based on the 'secao' parameter, listing three sections (emendas, relatorias, prazos) with their respective fields. It distinguishes from siblings by referencing prerequisite tools (senado_search_processos, senado_tabelas_processo) and 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?
The description provides explicit guidance on when to use each section, acceptable filters, and prerequisite steps (getting idProcesso from another tool). It advises to inform at least one filter. It lacks explicit exclusion conditions but overall offers clear context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_remuneracoes_servidoresARead-onlyInspect
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 declare readOnlyHint=true, and the description does not contradict. It adds behavioral details like the limite cap (500) and truncation warning ('aviso'), which go beyond annotations. Missing details on rate limits or authentication but sufficient for a read-only tool.
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 paragraph, dense but well-structured. Front-loads key purpose and parameters. Could be improved with section breaks but remains concise and informative 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 moderate complexity (two modes, six parameters), the description covers output shapes, filters, and limits. References sibling tool for registration. Missing details on error handling or exact date format, but overall adequate for 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 has 100% coverage, so baseline is 3. The description adds value by explaining output shapes for each modo, indicating that nome and tipoFolha are partial searches, and detailing the aggregated vs individual fields. This meaningfully extends the 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 retrieves salary data for Senate employees by year/month, with two distinct modes (resumo and detalhe). It explicitly differentiates from sibling tool 'senado_servidores' for employee registration, making the purpose specific and 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?
Provides guidance on when to use resumo vs detalhe, suggests filters to avoid long lists in detalhe, and references the sibling tool for registration. However, it does not explicitly state when not to use this tool or list alternatives beyond one sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_requerimentos_cpiARead-onlyInspect
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 readOnlyHint=true and openWorldHint=true. Description adds pagination behavior (page beyond total returns count 0) and edge case (CPIs without requerimentos return empty list). 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?
Description is efficient: front-loaded with purpose, then pagination, return format, and edge cases. Each sentence adds 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?
Covers return structure, pagination, how to obtain siglas, and handles edge cases. Output schema is noted as present, and description supplements it well.
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 3. Description adds meaning: pagina is index based on 0 defined by upstream, siglaCpi examples given. Adds 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 lists requerimentos of a CPI by siglaCpi with pagination. It distinctively tells how to obtain siglas via sibling tool 'senado_listar_comissoes', effectively differentiating from other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use 'senado_listar_comissoes' to discover siglas. Explains pagination: page index starts at 0, count=0 indicates end. Does not 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-onlyInspect
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 declare readOnlyHint and openWorldHint. The description adds behavioral context: returns all sessions without pagination, describes response structure with possible null fields for items not yet deliberated, and explains empty results. 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-loading the main purpose, and every sentence adds value. No redundant or filler 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 complexity (multiple nested fields, edge cases), the description comprehensively explains the return format, including fields like codigoSessao, data, itens, and handling of null results and empty sessions. It also covers the escopo parameter variations.
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 both parameters well described. The description echoes schema details (date format, escopo enum) but does not add significant new information beyond what the schema already provides. Baseline of 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 explicitly states what the tool does: returns results of plenary sessions for a given date, including agenda items, opinions, and outcomes. It distinguishes itself from siblings by mentioning alternative tools for prior agenda (senado_agenda_plenario) and voting orientation (senado_orientacao_bancada).
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 when-to-use guidance (getting session results) and when-not-to-use guidance (for prior agenda or voting orientation), naming specific alternative tools. It also explains scope options (sf, cn, mes).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_resultado_vetoARead-onlyInspect
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 already declare readOnlyHint and openWorldHint. The description adds critical details: return format (codigo, tipo, resultado), variable fields, empty object for unvoted veto, and error on invalid code—all 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 well-structured but slightly verbose. Each sentence adds value (purpose, return format, edge cases, parameter guidance, source for code). Could be trimmed slightly but overall 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 output schema exists (not shown), the description covers return structure, edge cases (empty, error), and parameter semantics. No obvious gaps for a single-item 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 coverage is 100%, baseline 3. The description explains the 'tipo' enum values (veto, materia, dispositivo), default, and how to interpret 'codigo' based on type, 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 retrieves the result of a nominal vote on a presidential veto, specifies the return structure, and distinguishes it from the sibling tool 'senado_vetos' by referencing it for obtaining the code.
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 (to get veto result), behavior for non-existent code (error) and unvoted veto (empty object), and directs to 'senado_vetos' for the code. It lacks explicit alternatives 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_reuniao_comissaoARead-onlyInspect
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 and openWorldHint=true, so the tool is safe. The description adds value by detailing the structure of the returned object, including fields like partes and links, which provides transparency beyond the 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?
The description is extremely concise: two sentences with no filler. The first sentence states the action, and the second lists the return fields. It is front-loaded and 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 tool has only one parameter with 100% schema coverage and a known output schema (though not provided), the description fully explains the input source and the output structure. For a detail retrieval tool with clear annotations, it is 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?
The input schema provides a description for codigoReuniao, but the description adds context by explaining that it is the code from the agenda or list tools. This extra guidance helps the agent understand how to obtain the parameter value, going beyond the schema's own 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's purpose: to detail a committee meeting by its code. It distinguishes from sibling tools like senado_agenda_comissoes and senado_reunioes_comissao by specifying that the codigoReuniao should be obtained from those tools, indicating that this tool provides detailed information rather than listing.
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 the tool (when you have a codigoReuniao) and explicitly mentions where to obtain that code (from senado_agenda_comissoes or senado_reunioes_comissao). It does not explicitly state when not to use it, but the alternative tools are implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_reunioes_comissaoARead-onlyInspect
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?
Annotations already indicate read-only and open-world; description adds that date intervals crossing years are split internally, and return structure is specified, fully describing behavior.
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 front-load the main action, with no superfluous content; structure is clear 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 the tool's complexity (3 parameters, no nested objects) and presence of output schema description, the description fully covers return format, default behavior, and cross-references to other tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters (100% description coverage) and description adds value: date format YYYYMMDD, default date handling, and sigla origin.
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 meetings of a committee by abbreviation within a date range, differentiates from sibling tools like senado_reuniao_comissao (for details), and explains how to obtain required parameters.
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 usage: when to use (listing meetings), when not to use (for meeting details), default behavior (last 30 days if no dates), and prerequisites (sigla from senado_listar_comissoes).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_search_processosARead-onlyInspect
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 indicate readOnlyHint=true and openWorldHint=true. Description adds significant context: return structure, filter requirements, and date window constraint. No contradictions. Provides useful behavioral details 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?
Single paragraph, front-loaded with purpose, then return, constraints, and usage tip. Every sentence adds value. No wasted text.
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?
Describes return structure, filter constraints, and relationship to sibling tool. Could mention behavior when no results or optional parameters, but overall sufficient for a search tool with 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 covers all 8 parameters with descriptions (100% coverage). Description summarizes filter categories but does not add substantial new meaning 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?
Description clearly states the tool searches legislative processes, specifies the endpoint, and distinguishes from sibling senado_buscar_materias by noting complementary parameters. Includes return structure and filter requirements.
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 mentions complementarity to senado_buscar_materias, required filters, and date window constraint. Suggests using returned id in senado_obter_processo. Lacks explicit exclusion of other alternatives but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_search_votacoesARead-onlyInspect
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 indicate readOnlyHint=true and openWorldHint=true. The description adds that the tool returns {count, votacoes} without individual votes (sem votos nominais), and that each item includes specific fields, providing 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 each sentence providing necessary information (purpose, time windows, filters, return format, sibling reference). No redundant or fluff 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 complexity (10 optional parameters, without required ones) and the fact that output schema is noted as existing, the description covers the key aspects: what the tool returns, ordering, and limitations (no individual votes). It could mention pagination, but that is 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%, and the description adds significant value beyond schema descriptions: it explains the interplay between dias and dataInicio/dataFim, provides an example for full year search, and clarifies that dias is ignored when date range is set. This helps agents use parameters correctly.
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 and lists plenary votes with optional filters, specifying the resource (votações do plenário) and action (busca e lista). It also differentiates from the sibling tool senado_obter_votacao, which is mentioned for retrieving individual senator votes.
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 vs senado_obter_votacao, and explains the alternative time window options (dias vs dataInicio/dataFim) with the behavior that dias is ignored if date range is provided. It lacks explicit exclusion statements but is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_senadores_adminARead-onlyInspect
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?
Beyond the readOnlyHint and openWorldHint annotations, the description adds valuable behavioral details: it describes the response structure for each tipo, including the count and list fields, and specifies that empty results return count 0 and empty list. 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 dense but well-structured, using backticks and bullet-like formatting to separate the three tipos. It front-loads the core purpose and efficiently covers filters, empty behavior, and cross-reference. Slightly verbose but earns its length.
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 (multiple tipos with distinct output structures) and the presence of an output schema (per context signals), the description covers all essential aspects: each tipo, filter applicability, empty result behavior, and a pointer to an alternative tool. It is fully sufficient 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%, so baseline is 3. The description adds significant meaning by detailing the output for each tipo enum value, explaining how filters (uf, nome) apply differently per tipo, and clarifying that nome also filters aposentados. This extra context raises the score above baseline.
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, explicitly listing three distinct types (auxilio-moradia, escritorios-apoio, aposentados) and their structures. It distinguishes itself from siblings by directing users to senado_ceaps for parliamentary expense 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 explicitly states when to use the tool (for administrative data by tipo) and when not to ('Para gastos de cota parlamentar use senado_ceaps'). It also explains how optional filters apply to specific tipos, 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_senadores_afastadosARead-onlyInspect
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 indicate readOnlyHint and openWorldHint, and the description adds context about return fields and that emExercicio is always false. No contradiction; description enhances transparency beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, single paragraph with front-loaded purpose. Every sentence adds value: purpose, output format, parameter info, usage guidance. No 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?
Complete for a parameterless tool with output schema and annotations. Covers what, return structure, usage, and sibling connections. 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?
No parameters, and schema coverage is 100% (empty). The description confirms 'Não requer parâmetros', which adds value beyond the schema. Baseline 4 for zero 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 lists currently removed senators (afastados) and specifies the return structure. It distinguishes from siblings by naming senado_listar_senadores for in-office senators and senado_obter_senador 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?
Explicitly states no parameters are required and provides clear guidance on when to use this tool versus siblings: for out-of-exercise senators, and using codigo with senado_obter_senador for details or senado_listar_senadores for in-office/named search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_senador_historicoARead-onlyInspect
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?
The description provides detailed behavioral context beyond annotations: it specifies the return structure `{ codigoSenador, tipo, count, itens }`, explains that item structure depends on `tipo`, and describes empty responses. No contradictions with readOnlyHint and openWorldHint.
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 the purpose, but the list of tipos is dense and could benefit from bullet points for readability. Still, it is efficient and contains 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 tool's complexity (multiple tipos with varying structures), the description comprehensively covers all return fields, error cases, and prerequisites. Although an output schema exists, the description compensates fully.
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 described in the schema. The description adds significant meaning by detailing the data structure returned for each `tipo` value (e.g., fields like `dataInicio`, `sigla`, etc.), which is not present in the 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?
The description explicitly states the tool retrieves the functional history of a senator based on the `tipo` parameter, enumerates all possible values, and distinguishes it from `senado_obter_senador` which provides biographical data and mandates.
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 a prerequisite: obtain `codigoSenador` via `senado_listar_senadores`. It also contrasts with the sibling tool `senado_obter_senador` for different data needs, providing clear when-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_servidoresARead-onlyInspect
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 indicate readOnlyHint=true and openWorldHint=true. Description adds truncation behavior with 'aviso' and suggests refining filters. No contradictions. Could mention idempotency or error states, but sufficiently clear.
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 shape, truncation behavior and sibling references. Front-loaded key info. Every sentence adds value with 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?
Covers all key aspects: filtering, return structure, truncation, and cross-reference to related tools. With output schema present, return description is sufficient. Comprehensive for a multi-parameter 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 3. Description adds context: explains situacao enum values (ativos, efetivos, etc.), clarifies nome/lotacao/cargo are partial searches, and states default limit. Adds 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?
Description clearly states the verb 'Lista' (lists), the resource 'servidores do Senado', and the primary filter 'situacao'. It explicitly names sibling tools for alternative queries (remuneração, estagiários/pensionistas), effectively distinguishing itself.
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 (listar servidores por situação) and when not (use senado_remuneracoes_servidores for remuneration, senado_pessoal_tabelas for others). Provides guidance on 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-onlyInspect
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 already declare readOnlyHint and openWorldHint. The description adds valuable behavioral details: truncation with 'aviso', default and max limits, and the exact return shape beyond what annotations cover. 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 succinct yet comprehensive: three sentences cover purpose, return format, and usage instructions. No wasted words; 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 tool has an output schema, the description provides sufficient context: return structure, filtering, limits, and cross-referencing hints. It does not elaborate on what each 'registros' contains per tipo, but the output schema likely covers that.
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 by explaining the tipo enum values in context, the cross-referencing hint, and the default values. It goes beyond the schema's bare 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 annual data on Senate fund advances, with multiple tipo options (supridos, atos-concessao, etc.). It mentions the return structure and references sibling tools for cross-referencing, making the purpose distinct.
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 for using this tool (annual fund advances, filtering) and mentions cross-referencing with senado_contratacoes_lista or senado_execucao_orcamentaria. It implies when not to use it (e.g., for contracts), but does not explicitly state alternatives for other financial data types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_tabelas_plenarioARead-onlyInspect
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 declare readOnlyHint=true and openWorldHint=true. The description adds context: it describes the return structure ({tabela, count, total, linhas}), explains that filtro does textual search, and notes that limite defaults to 100. There is 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 extremely concise: two sentences. The first sentence states purpose and return format, the second explains filtering and use case. Every sentence earns its place with no 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 that an output schema is implied (return object described) and annotations are present, the description is complete. It covers what tables are available, how to filter, and the intended usage scenario. No gaps remain for this reference lookup 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 description coverage is 100% (all three parameters documented). The description reinforces the meaning of each parameter but does not add significant new information beyond the schema. For high coverage, baseline is 3, and the description marginally improves understanding by providing usage examples.
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: retrieving reference tables (tipos-sessao, tipos-comparecimento, legislaturas) to resolve codes and domains. It distinguishes itself from siblings by explicitly mentioning its use for interpreting fields from senado_agenda_plenario and 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?
The description provides a clear use case: interpreting tipo fields from two specific tools. It implies when to use but does not explicitly state when not to use or list alternatives among many sibling reference tools. However, the guidance is sufficient for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_tabelas_processoARead-onlyInspect
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?
Beyond annotations (readOnlyHint, openWorldHint), description details return structure ({tabela, count, total, linhas}), default/max limit (200/1000), and count=0 when filter fails. 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 with dense information: purpose, tables, return structure, parameter details, and usage tip. Front-loaded and 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 presence of an output schema (implied by description), the description fully explains return format, parameter constraints, and usage context. Complete for a reference table lookup 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. Description adds meaning: explains 'filtro' targets sigla/descrição, 'limite' has default 200/max 1000, and 'tabela' enum. Also mentions count=0 behavior for filters.
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 queries reference tables of the legislative process, listing specific tables. It distinguishes itself by advising use before filtering in 'senado_search_processos'.
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: 'Use para resolver códigos/siglas antes de filtrar em senado_search_processos e ferramentas afins.' Provides clear context and alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_tabelas_referenciaARead-onlyInspect
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?
Annotations already indicate read-only and open-world; description adds detailed return structure for each `tabela` value and confirms non-destructive behavior.
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 clear section per value, but slightly lengthy due to detailed examples; still appropriate for the 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?
Completely explains what each table returns and how it relates to sibling tools, leaving no ambiguity for a single-parameter 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 has 100% coverage, but description enriches each enum value with exact return fields and usage context, far exceeding schema details.
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 reference tables via the `tabela` parameter, and distinguishes from sibling tools by listing specific use cases (e.g., using `tipos-materia` before `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?
Provides explicit when-to-use guidance for each `tabela` value and directs to `senado_listar_senadores` for nominal list, offering clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_terceirizadosARead-onlyInspect
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=true and openWorldHint=true, indicating safe read operations and that the tool provides incomplete results. The description adds that data is downloaded and filtered server-side, results are truncated with an 'aviso', and the limit parameter behavior. This provides useful 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, front-loading the main purpose within the first sentence. Every sentence adds value, and it avoids repetition or unnecessary details.
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 (which lists return fields), parameter descriptions, and sibling tool reference, the description is fully complete for an agent to select and invoke this tool. It covers filtering, limit behavior, truncation, and alternative 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?
Schema coverage is 100% with descriptions for all 4 parameters. The description adds that filters support partial search without accents (busca parcial, sem acento) and restates the default and max for 'limite'. This adds 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 it lists third-party employees of the Senate, filterable by name, company, or location. It explicitly distinguishes from sibling tool 'senado_empresas_contratadas', providing a specific verb+resource and 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 the complete list is downloaded and filtered in the Worker, with results limited to 'limite' (default 50, max 500), and a warning when truncated. It also explicitly tells when to use an alternative tool for the contracting company and its contracts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_vetosARead-onlyInspect
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 declare readOnlyHint=true and openWorldHint=true. The description adds behavioral details about return format (count, total, aviso, vetos), truncation via 'limite', and parameter mutual exclusivity. Could mention more about error cases or pagination, but sufficient given 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?
Four sentences: purpose, return structure, parameter guidance, sibling referral. Front-loaded with key action. No redundant or vague statements.
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?
Output schema is described (shape of return object). Annotations cover safety. Description explains parameter constraints and truncation. Could mention expected error responses or rate limits, but overall complete for a read-only list tool with sibling reference.
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 individual descriptions, but the description adds crucial mutual exclusivity instruction (ano OU status) and explains the meaning of 'aviso' in truncation, which is not in schema. Provides context beyond schema 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 lists presidential vetoes by year or status, with specific verb 'Lista' and resource 'vetos presidenciais'. It distinguishes from the sibling tool 'senado_resultado_veto' by noting that tool should be used 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?
Explicitly states when to use this tool: provides parameters 'ano' or 'status' (mutually exclusive). Directs to another tool for a different purpose: 'Para o resultado da votação de um veto use senado_resultado_veto'. No ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_videos_taquigrafiaARead-onlyInspect
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?
As anotações já indicam readOnlyHint=true e openWorldHint=true. A descrição adiciona a estrutura de saída e campos, mas não revela comportamentos além disso (ex.: sem mencionar limites de paginação ou autenticação). A contribuição é marginal, mas não contradiz as anotações.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Duas frases curtas, a primeira define propósito e saída, a segunda fornece contexto de uso e ferramentas relacionadas. Sem redundância, informação essencial na frente.
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?
A descrição cobre entrada (id, tipo, orador), saída (estrutura com campos) e contexto (fontes do id, filtro, ferramenta para transcrição). Com anotações e schema de saída, a informação é suficiente para uso correto.
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?
A cobertura do schema é 100%, e a descrição enriquece o significado: explica como obter o id de outras ferramentas, o propósito do tipo (sessao vs reuniao) e o uso do filtro orador. Vai além do schema ao conectar com ferramentas irmãs.
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?
A descrição começa com o verbo 'Lista' e especifica o recurso 'vídeos e áudios de uma sessão plenária ou reunião de comissão', distinguindo-se claramente de ferramentas irmãs como senado_notas_taquigraficas (transcrição) e senado_reuniao_comissao (obter IDs). A ação e o escopo são precisos.
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?
A descrição orienta a obter o id via outras ferramentas (senado_agenda_plenario, senado_reuniao_comissao), sugere o filtro orador e referencia senado_notas_taquigraficas para transcrição. Falta uma exclusão explícita de quando não usar, mas o contexto implícito é claro.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_votacao_comissaoARead-onlyInspect
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 indicate read-only and open-world behavior. The description adds substantial context: no pagination, return structure with detailed fields (e.g., totalSim, totalNao, votos), optional date filters, and conditional parameter requirements. 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 thorough and well-organized, starting with the main purpose, then breaking down each mode, followed by optional parameters and return format. While slightly lengthy, every sentence is informative, and there is no redundancy. A minor reduction for wordiness in the return structure section.
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 modes, 9 parameters, conditional requirements, no pagination), the description covers all necessary aspects. It also explains how to obtain auxiliary data and contrasts with a sibling tool. With an output schema existing, the description completes the picture 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 coverage is 100%, but the description adds significant meaning beyond field names by explaining conditional requirements per mode (e.g., 'por: comissao → exige siglaComissao'), providing examples, and clarifying optional filters. This helps agents correctly select and populate 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 lists votes in committees with three distinct modes based on the 'por' parameter. It explicitly differentiates from sibling tool 'senado_votos_materia' for plenary votes, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use each mode, detailing required and optional parameters for each. It also directs users to auxiliary tools for obtaining necessary codes and to the sibling tool for plenary votes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_votacoes_senadorARead-onlyInspect
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 provide readOnlyHint and openWorldHint. Description adds detailed behavioral context: return structure {periodo, count, votos}, each voto's fields, ordering from most recent, default period (current year), and period specification. 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 paragraph with three front-loaded sentences: purpose, return format, period options, required parameter, and cross-references. No wasted words, 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 complexity (filtering, default period, return structure) and presence of schema/annotations, description explains output structure, ordering, period options, required parameter, and sibling links. Compensates for lack of output schema display by listing fields.
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 meaning: clarifies mutual exclusivity of 'ano' vs 'dataInicio/dataFim' pair, default behavior, and that codigoSenador is required with a source. Provides guidance 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?
Description clearly states it lists a senator's nominal votes with how they voted, using specific verb 'Lista' and resource 'votações nominais de um senador'. Differentiates from siblings by mentioning alternative tools: senado_obter_votacao for details and senado_listar_senadores for obtaining the senator code.
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 list a senator's votes, and when not to: for details of a specific vote use senado_obter_votacao. Also explains period defaults and how to specify period via 'ano' or date range.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_votos_materiaARead-onlyInspect
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?
The description adds significant behavior beyond annotations: it outlines the return object structure, fields within votacoes, and the effect of incluirVotos. Annotations indicate readOnlyHint and openWorldHint, which are consistent. 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 two sentences, front-loaded with the core purpose and return structure, followed by optional parameter details and prerequisite 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?
For a read-only retrieval tool with two parameters, the description covers input, output structure, optional behavior, and prerequisite. It is sufficient for an agent to understand and invoke correctly, though it lacks explicit mention of limits or pagination (mitigated by openWorldHint).
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 value by explaining the effect of incluirVotos (adds votos array with details) and referencing companion tools for codigoMateria, which provides context 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 retrieves votes for a matter by its code (codigoMateria) and details the return structure. It differentiates from siblings by specifying the exact input and output, and references companion tools for obtaining the code.
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 how to obtain the required parameter (via senado_buscar_materias or senado_obter_materia) and the optional parameter effect. While it does not explicitly state when not to use it, the purpose is specific, making usage context clear.
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!