senado-br-mcp
This server provides structured access to real-time data from the Brazilian Federal Senate's official open-data APIs and the e-Cidadania citizen participation platform (33 tools total).
Senators
List senators by legislature, state, or party; get detailed info (biography, mandates, committee memberships); search by name; view voting history
Legislative Matters
Search bills by type (PEC, PL, PLP, MPV, etc.), number, year, keyword, author, or rapporteur
Get full bill details, procedural history, bill texts with download URLs, and voting results
Votes
List plenary votes by year/month/date range; get detailed results including nominal votes per senator; retrieve recent votes (up to last 365 days)
Committees
List committees by type (permanent, temporary, CPI, mixed) and active status; get details, members with roles, and meeting schedules
Agenda
Get plenary session schedule (including items up for vote) and committee meeting schedule
Lookup / Auxiliary
Get current legislature info, list valid bill types, parties with senator counts, and states (UFs) with senator counts
e-Cidadania (Citizen Participation)
Public Consultations: list, get details, find polarized (~50/50) or consensual (>85%) consultations
Legislative Ideas: list, get details, find most supported ideas (including those converted to bills)
Interactive Events: list, get details, find most popular events by citizen engagement
AI-assisted survey topic suggestion based on participation metrics, avoiding overly polarized or consensus themes
⚠️ Deprecated — this repository has moved
This server is no longer maintained here. The Brazilian Senate MCP server now lives at senado-br-mcp-cloudflare — 66 tools with level-1 provenance, available both hosted (
https://senado.sidneybissoli.com/mcp, no setup) and via npm/stdio (npx senado-br-mcp, v3.x). The npm packagesenado-br-mcpnow publishes that server (v3.2.1+); versions< 3.0.0here are deprecated. Please migrate — this repository is archived.
Senado Brasil MCP Server
MCP server for Brazilian Federal Senate open data (legislators, bills, votes, committees).
Servidor MCP (Model Context Protocol) que permite acesso estruturado aos dados abertos do Senado Federal do Brasil, democratizando o acesso a informações legislativas através de conversas com IA.
See it in action
Ask your assistant, in plain Portuguese:
"Liste os senadores de SP em exercício." →
senado_listar_senadores"Mostre a tramitação da PEC 45/2019." →
senado_buscar_materias+senado_obter_materia"Quais ideias legislativas mais apoiadas estão abertas no e-Cidadania?" →
senado_ecidadania_listar_ideias
The answers come live from the Senate's official open-data APIs — real data with provenance, not numbers guessed from training data.
Related MCP server: IBGE Brasil MCP
Features
33 tools for accessing Senate data
Real-time data from official API
e-Cidadania integration: citizen participation data via web scraping
Structured JSON responses
Error handling with actionable suggestions
TypeScript with full type safety
Two access modes: stdio (npm) and HTTP remote
Two Ways to Use
Mode | Installation | Best For |
stdio/npm |
| Technical users, local usage |
HTTP remote | None required | Non-technical users, cloud access |
Both modes provide access to the same 33 tools.
Option 1: stdio/npm (Local)
Installation
Using npx (Recommended):
npx senado-br-mcpGlobal Installation:
npm install -g senado-br-mcp
senado-br-mcpFrom Source:
git clone https://github.com/SidneyBissoli/senado-br-mcp.git
cd senado-br-mcp
npm install
npm run build
npm startClaude Desktop Configuration
Add to your claude_desktop_config.json:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"senado-br-mcp": {
"command": "npx",
"args": ["-y", "senado-br-mcp"]
}
}
}Option 2: HTTP Remote (Cloud)
No installation required. Connect directly via URL.
Claude Desktop Configuration
In Claude Desktop settings, go to "Add Custom Connector" and enter:
Name: senado-br-mcp
URL:
https://senado-br-mcp.up.railway.app/mcp
Endpoints
Endpoint | Description |
| Server info and documentation |
| Health check |
| Usage statistics |
| MCP protocol endpoint |
Rate Limiting
The HTTP server has a monthly request limit to stay within free tier:
Alerts are sent at 50%, 80%, and 100% usage
When limit is reached, use the npm version instead
Limit resets on the 1st of each month
Available Tools
Senators (Senadores)
Tool | Description |
| List senators in office or by legislature. Filters: state (UF), party |
| Get detailed info about a senator (biography, mandates, committees) |
| Search senators by name |
| List how a senator voted. Filters: year, date range |
Legislative Matters (Matérias)
Tool | Description |
| Search bills by type (PEC, PL, PLP, MPV), number, year, keyword, author |
| Get bill details (summary, author, status, rapporteur) |
| Get bill's procedural history |
| Get bill texts (original, substitute, final) with download URLs |
| Get voting results for a bill |
Votes (Votações)
Tool | Description |
| List plenary votes by year. Filters: month, date range |
| Get vote details with nominal votes by senator |
| Get recent votes (last N days) |
Committees (Comissões)
Tool | Description |
| List committees. Filters: type (permanent, temporary, CPI), active |
| Get committee details (president, vice-president, purpose) |
| List committee members with roles |
| List committee meetings with agenda |
Agenda
Tool | Description |
| Get plenary session schedule with voting agenda |
| Get committee meeting schedule |
Lookup/Auxiliary (Auxiliares)
Tool | Description |
| Get current legislature info (number, period, dates) |
| List valid bill types (PEC, PL, PLP, MPV, etc.) |
| List parties with senator count |
| List states with senator count |
e-Cidadania (Citizen Participation)
Tools for accessing e-Cidadania data - the Senate's citizen participation platform.
Public Consultations (Consultas Públicas)
Tool | Description |
| List public consultations with citizen voting on pending bills |
| Get consultation details including votes, author, and comments |
| Get polarized consultations (~50/50 votes) - useful for identifying divisive issues |
| Get consensual consultations (>85% one way) - identifies broad agreement |
Legislative Ideas (Ideias Legislativas)
Tool | Description |
| List citizen-proposed legislative ideas |
| Get idea details including full description and conversion to bill |
| Get most supported legislative ideas |
Interactive Events (Eventos Interativos)
Tool | Description |
| List interactive events (hearings, confirmations, livestreams) |
| Get event details including agenda, guests, and video link |
| Get events with most citizen comments and questions |
Analysis Tools
Tool | Description |
| AI-assisted analysis to suggest topics for monthly surveys based on participation metrics |
Note: e-Cidadania tools use web scraping with rate limiting and caching. If the e-Cidadania website is temporarily unavailable, API tools (senators, bills, votes) remain operational.
Usage Examples
List senators from São Paulo
Use senado_listar_senadores with uf: "SP"Search for Constitutional Amendments in 2024
Use senado_buscar_materias with sigla: "PEC", ano: 2024Get recent votes
Use senado_votacoes_recentes with dias: 7Find a senator by name
Use senado_buscar_senador_por_nome with nome: "Randolfe"Get CCJ committee members
Use senado_membros_comissao with sigla: "CCJ"Get polarized public consultations
Use senado_ecidadania_consultas_polarizadas with minimoVotos: 5000Get most supported citizen ideas
Use senado_ecidadania_ideias_populares with limite: 5Find upcoming interactive events
Use senado_ecidadania_listar_eventos with status: "agendado"Response Format
All tools return structured JSON responses:
Success Response
{
"success": true,
"data": { ... },
"metadata": {
"fonte": "Senado Federal - Dados Abertos",
"dataConsulta": "2024-01-15T10:30:00Z",
"endpoint": "/senador/lista/atual"
}
}Error Response
{
"success": false,
"error": {
"code": "SENADOR_NAO_ENCONTRADO",
"message": "Senator with code 99999 was not found",
"suggestion": "Use senado_buscar_senador_por_nome to find the correct code"
}
}Development
Prerequisites
Node.js 18+
npm
Setup
npm installBuild
# Build stdio version (npm package)
npm run build
# Build HTTP server version
npm run build:server
# Build both
npm run build:allDevelopment Mode
# stdio mode
npm run dev
# HTTP server mode
npm run dev:serverType Check
npm run typecheckTest with MCP Inspector
npm run inspectSelf-Hosting HTTP Server
You can host your own HTTP server instance.
Local
npm run build:server
npm run start:server
# Server runs on http://localhost:3000Railway
Fork this repository
Connect Railway to your GitHub
Deploy (auto-detects configuration from
railway.json)Set environment variables:
MONTHLY_REQUEST_LIMIT(default: 10000)ALERT_WEBHOOK_URL(optional, for notifications)
Environment Variables
Variable | Description | Default |
| Server port | 3000 |
| Monthly request limit | 10000 |
| Webhook for alerts | - |
| Logging level | info |
Data Sources
Official API
Documentation: https://legis.senado.leg.br/dadosabertos/docs/
Format: JSON
Authentication: None (public data)
e-Cidadania (Web Scraping)
Website: e-Cidadania
Content: Public consultations, legislative ideas, interactive events
Method: HTML scraping with rate limiting (1 req/sec) and caching (15min-24h)
Fallback: If e-Cidadania is unavailable, API tools continue working
Bill Types (Tipos de Matéria)
Code | Name | Description |
PEC | Proposta de Emenda à Constituição | Constitutional Amendment |
PL | Projeto de Lei | Ordinary Law Bill |
PLP | Projeto de Lei Complementar | Complementary Law Bill |
MPV | Medida Provisória | Provisional Measure |
PDL | Projeto de Decreto Legislativo | Legislative Decree Bill |
PRS | Projeto de Resolução do Senado | Senate Resolution Bill |
PLC | Projeto de Lei da Câmara | Chamber of Deputies Bill |
License
MIT
Author
Sidney da Silva Pereira Bissoli
Repository
https://github.com/SidneyBissoli/senado-br-mcp
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Changelog
1.1.0
Added e-Cidadania integration (11 new tools)
Web scraping infrastructure with rate limiting and caching
Public consultations analysis (polarized/consensual)
Legislative ideas tracking
Interactive events monitoring
Survey topic suggestion tool
1.0.0
Initial release
22 tools for Senate data access
Senators, bills, votes, committees, agenda, and lookup tools
Available Tools
33 toolssenado_agenda_comissoesB
Obtém agenda de reuniões das comissões do Senado. Pode filtrar por data e comissão específica.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Data específica (YYYYMMDD) | |
| siglaComissao | No | Filtrar por comissão específica |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states it can filter by date and committee, without disclosing read-only nature, default behavior, or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, concise sentence that front-loads purpose. Could be slightly more structured, but highly 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?
Lacks output schema and does not describe return format, default behavior when no filters applied, or date format expectations. Incomplete for guiding proper 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 has 100% description coverage for both parameters. Description merely repeats filtering capability, adding no semantic depth 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' and resource 'agenda de reuniões das comissões do Senado'. It distinguishes from sibling tools like senado_listar_comissoes and senado_reunioes_comissao by focusing on schedule of meetings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives mentioned. Implied usage is for fetching committee meeting agenda with optional filters, but no comparison with similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_agenda_plenarioA
Obtém agenda de sessões do plenário do Senado, incluindo pauta com matérias a serem votadas.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Data específica (YYYYMMDD) | |
| dataFim | No | Data fim (YYYYMMDD) | |
| dataInicio | No | Data início (YYYYMMDD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It adds that the output includes 'pauta com matérias a serem votadas', which gives some behavioral insight. However, no mention of read-only nature, authentication, rate limits, or other important traits. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently conveys the tool's purpose and key content. No extraneous words; front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no required parameters and no output schema, the description covers the core purpose but lacks details on date range behavior, output structure, or possible results. Adequate but leaves 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% with descriptions for each parameter. The description does not add beyond what the schema provides, but it contextualizes that the returned data includes matters to be voted. 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 retrieves the plenary session agenda including matters to be voted. The verb 'obtém' and resource 'agenda de sessões do plenário' are specific, and it distinguishes from sibling tool senado_agenda_comissoes which handles committee agendas.
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 implies use for plenary agenda but does not explicitly mention when to use or not use this tool versus alternatives. No exclusions or context provided, leaving the agent to infer from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_buscar_materiasA
Busca matérias legislativas por diversos critérios: tipo (PEC, PL, PLP, MPV), número, ano, palavras-chave, autor ou relator.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Ano da matéria | |
| sigla | No | Tipo: PEC, PL, PLP, MPV, PDL, PRS, etc. | |
| numero | No | Número da matéria | |
| autorNome | No | Nome do autor | |
| tramitando | No | Apenas em tramitação | |
| relatorNome | No | Nome do relator | |
| palavraChave | No | Busca na ementa |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It correctly indicates a search action but does not specify output details like pagination, result limits, or whether it returns multiple matches. The description implies return of matching matters but lacks depth.
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 a single 15-word sentence that immediately states the purpose and lists criteria. It is front-loaded and contains no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should provide some expectation of the return value (e.g., list of matters with basic details). It does not mention output format or contrast with sibling tools like senado_obter_materia. Adequate but not 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 description coverage is 100% with all 7 parameters described in the schema. The description adds only a brief list of example types, which does not significantly enhance understanding beyond the schema definitions. Baseline score 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?
Description clearly states it searches for legislative matters with specific verb (Busca) and resource (matérias legislativas). It lists multiple search criteria including examples of types (PEC, PL, PLP, MPV), distinguishing it from sibling tools like senado_obter_materia (get a specific matter) or senado_listar_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?
Description provides clear context on when to use the tool: when searching by criteria such as type, number, year, keyword, author, or rapporteur. However, it does not explicitly mention alternatives or when not to use it, such as when the specific matter ID is known (which would favor senado_obter_materia).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_buscar_senador_por_nomeA
Busca senadores por nome (útil quando não se tem o código). Retorna lista de senadores correspondentes.
| Name | Required | Description | Default |
|---|---|---|---|
| nome | Yes | Nome ou parte do nome do senador |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states that it returns a list of matching senators, but omits details like fuzzy matching, pagination, case sensitivity, or diacritics handling, which are important for a search 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?
The description is extremely concise with two well-structured sentences that front-load the purpose and utility, containing no extraneous 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's simplicity (single required parameter, no output schema), the description is adequate but lacks details about the output format (e.g., what fields each senator object contains), which would help an agent use the result 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 description coverage is 100% (parameter 'nome' with description 'Nome ou parte do nome do senador'). The tool description reaffirms this but adds no new semantic details beyond the schema, so baseline score 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 clearly states the verb 'Busca' and resource 'senadores por nome', and explicitly notes its utility when the senator code is unknown, distinguishing it from sibling tools like senado_obter_senador that likely require a 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 includes a clear usage context ('útil quando não se tem o código') indicating when this tool is appropriate, but does not explicitly mention when not to use it or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_consultas_consensuaisA
Retorna consultas com alta concordância (>85% em uma direção), útil para identificar temas de consenso.
| Name | Required | Description | Default |
|---|---|---|---|
| limite | No | Número máximo de resultados | |
| minimoVotos | No | Mínimo de votos para considerar | |
| percentualMinimo | No | Percentual mínimo em uma direção |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries full burden. It discloses the tool returns filtered consultations but does not elaborate on side effects, destruction, or other behaviors. Adequate for a read-only query 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 sentence with no filler. Efficiently communicates purpose and use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple query tool with good parameter descriptions, the description is sufficient. No output schema, but return format is implied by the tool's nature. Could mention that results are from the e-Cidadania platform.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all parameters. Description adds no extra meaning beyond schema, so baseline score 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?
Description clearly states the tool returns consultations with high agreement (>85%) and identifies consensus themes. Verb 'retorna' and resource 'consultas' with condition distinguish it from sibling 'senado_ecidadania_consultas_polarizadas'.
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 implies use for consensus identification but does not explicitly state when to use versus alternatives like the polarized consultations tool. No direct guidance on when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_consultas_polarizadasA
Retorna consultas com votação equilibrada (~50/50), útil para identificar temas polarizados na sociedade.
| Name | Required | Description | Default |
|---|---|---|---|
| limite | No | Número máximo de resultados | |
| minimoVotos | No | Mínimo de votos para considerar | |
| margemPolarizacao | No | Considera polarizado se diferença < este percentual |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the tool returns filtered consultations, but does not explicitly state it is read-only or comment on side effects, permissions, or rate limits. The description is adequate but not detailed beyond the core 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?
The description is a single, efficient sentence that front-loads the verb and resource. Every word adds value, and there is no fluff. It is appropriately sized for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a filtered-list tool with a schema rich in parameter info, the description covers the high-level purpose but omits details like pagination, ordering, or result format. It does not mention the adjustable margin or minimum votes, though those are in the schema. Completeness is adequate but not exhaustive.
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 with descriptions for all parameters. The tool description adds no additional meaning beyond the schema, merely restating the overall purpose. Baseline 3 is appropriate as the schema already handles parameter explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns consultations with balanced voting (~50/50), which distinguishes it from sibling tools like senado_ecidadania_consultas_consensuais and senado_ecidadania_listar_consultas. The verb 'Retorna' and resource 'consultas com votação equilibrada' are specific and actionable.
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 implies usage for identifying polarized themes but provides no explicit guidance on when to use this tool versus alternatives (e.g., consensuais or listar). No when-not or exclusion criteria are mentioned. The context is implied but not formalized.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_eventos_popularesB
Retorna eventos com mais comentários e perguntas dos cidadãos.
| Name | Required | Description | Default |
|---|---|---|---|
| limite | No | Número máximo de resultados | |
| apenasAgendados | No | Apenas eventos ainda não realizados |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states the tool returns popular events but does not disclose ordering behavior (e.g., sorted by comment count), pagination, or read-only status. Beyond the basic purpose, it lacks behavioral details.
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 sentence that immediately conveys the core purpose. It is front-loaded with the verb and resource, and contains no extraneous information. Every word is necessary.
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 simplicity of the tool (2 optional parameters, no output schema, no annotations), the description sufficiently covers the essential distinction needed for tool selection. It could be slightly more detailed (e.g., mentioning that results are presumably sorted), but it is generally complete for this 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?
The input schema has 100% coverage with descriptions for both parameters. The description does not add any additional meaning beyond what the schema already provides, so it meets the baseline of 3 without adding value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'Retorna' (returns) and the resource 'eventos' (events), and adds a distinguishing scope 'com mais comentários e perguntas dos cidadãos' (with most comments and questions from citizens). This clearly differentiates it from sibling tools like 'senado_ecidadania_listar_eventos' which likely lists events without this popularity filter.
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 does not provide any guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or contrast with similar sibling tools such as 'senado_ecidadania_listar_eventos' or 'senado_ecidadania_obter_evento'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_ideias_popularesB
Retorna as ideias legislativas mais apoiadas pelos cidadãos.
| Name | Required | Description | Default |
|---|---|---|---|
| limite | No | Número máximo de resultados | |
| apenasAbertas | No | Apenas ideias com apoiamento aberto |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only describes the purpose, not what the result contains (e.g., support counts), ordering, or that it's a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded and efficient, but could add a bit more context without bloating.
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 two parameters with good schema descriptions and no output schema, the description is minimally adequate but lacks details about return structure, making it less complete for complex 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 the baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the most supported legislative ideas ('ideias legislativas mais apoiadas'), which distinguishes it from sibling tools like 'senado_ecidadania_listar_ideias' that likely list all ideas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., 'listar_ideias' for browsing all ideas), nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_listar_consultasC
Lista consultas públicas do e-Cidadania com votação cidadã sobre matérias em tramitação.
| Name | Required | Description | Default |
|---|---|---|---|
| limite | No | Número máximo de resultados | |
| pagina | No | Página de resultados | |
| status | No | Filtrar por status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as read-only status, authentication requirements, rate limits, or side effects. The description only states it 'lists', which is insufficient for a tool with zero annotation coverage.
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, clear sentence without redundant information. However, it could be more concise by omitting obvious parts or more informative by adding context, but overall it is efficient for 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 absence of an output schema, the description fails to explain what fields are returned, sorting, or other behavioral details. For a listing tool, this is a significant gap that reduces 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, so each parameter (status, limite, pagina) is already explained. The tool description adds no additional context beyond what the schema provides, thus only meeting 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 'listar' (list), the resource 'consultas públicas do e-Cidadania', and adds qualifiers 'com votação cidadã sobre matérias em tramitação', making it specific and distinct from sibling tools like senado_ecidadania_consultas_consensuais or listar_eventos.
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 no guidance on when to use this tool versus alternatives, such as the more specific consultation endpoints (e.g., consultas_consensuais) or other list tools. No 'when-not-to-use' or prerequisite information is included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_listar_eventosB
Lista eventos interativos (audiências públicas, sabatinas, lives) do e-Cidadania.
| Name | Required | Description | Default |
|---|---|---|---|
| limite | No | Número máximo de resultados | |
| status | No | Filtrar por status | |
| comissao | No | Sigla da comissão |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the tool 'lists events'. It does not disclose that the operation is read-only, whether authentication is needed, or what the response format looks like. The term 'lista' implies a collection, but no further detail.
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 sentence that front-loads the purpose. It could be considered slightly under-specified, but it avoids unnecessary words, earning a score of 4.
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 simplicity of the tool (3 optional params, no output schema, no annotations), the description is minimal. It does not explain return behavior, pagination, or filtering semantics beyond what the schema provides. An AI agent would need to infer basic behavior, which limits 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?
All three parameters have descriptions in the schema (100% coverage), so the description adds no additional meaning beyond what the schema already provides. Baseline is 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 specifies the verb (listar) and resource (eventos interativos) and distinguishes from sibling tools like senado_ecidadania_listar_consultas and senado_ecidadania_listar_ideias by naming specific event types (audiências públicas, sabatinas, lives).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No information is provided about when to use this tool versus alternatives. It does not mention that senado_ecidadania_obter_evento is for single event details, nor does it give context on when to avoid using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_listar_ideiasC
Lista ideias legislativas propostas por cidadãos no e-Cidadania.
| 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose behavioral traits such as read-only nature, authentication requirements, or rate limits. The description only states the basic function.
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 sentence, making it concise but lacking structure. It is not front-loaded and omits important details that would help an agent use the tool effectively.
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 lack of output schema, the description does not explain return values. It provides minimal context about the tool's output or pagination, though the schema includes pagination 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?
The input schema has 100% coverage with descriptions for all parameters. The description adds no additional meaning beyond what the schema provides, so the baseline score applies.
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 legislative ideas proposed by citizens, using a specific verb and resource. However, it does not differentiate from sibling tools like senado_ecidadania_ideias_populares or senado_ecidadania_obter_ideia.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_obter_consultaA
Obtém detalhes de uma consulta pública específica, incluindo votos, autor e comentários.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID da consulta pública |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full burden. It indicates a read operation and mentions data returned, but does not disclose potential errors, authentication, rate limits, or side effects beyond the obvious.
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, front-loaded sentence with no redundant information. It efficiently conveys the tool's purpose and key outputs.
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 output schema, the description provides a good overview of the return content (votes, author, comments). It is complete for a single-ID retrieval tool, though it might omit edge cases or full field list, which is acceptable for this complexity level.
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 already describes the single parameter 'id' with a brief description. The tool description adds context about what is returned (votes, author, comments) but does not add further meaning to the parameter itself. With 100% schema coverage, the 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 clearly states the action (Obtém detalhes) and the resource (consulta pública específica), and lists included data (votos, autor, comentários). It distinguishes from sibling list tools by specifying a single consultation 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?
The description implies usage when you have a specific consultation ID, but does not explicitly state when to use this tool versus alternatives like listar_consultas, or provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_obter_eventoA
Obtém detalhes de um evento interativo, incluindo pauta, convidados e link para vídeo.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID do evento |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full responsibility for behavioral disclosure. It does not state that the operation is read-only, nor does it mention authentication, rate limits, or any side effects. The description only lists output contents without behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the tool's purpose and included data. It is front-loaded and concise, though could be slightly expanded without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the essential purpose and return contents. However, given no annotations or output schema, it would benefit from noting that it is a read operation and specifying the response format.
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 single parameter 'id' is described in the schema as 'ID do evento' (100% coverage). The tool description adds no further semantic meaning to the parameter beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool obtains details of an interactive event, specifying included information (agenda, guests, video link). It effectively distinguishes from sibling tools like listar_eventos which list events.
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?
Usage is implied from the description, but no explicit guidance on when to use versus alternatives (e.g., listar_eventos for listing, obter_consulta for consultations). No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ecidadania_obter_ideiaB
Obtém detalhes de uma ideia legislativa, incluindo descrição completa, apoios e se foi convertida em PL.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID da ideia legislativa |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden, but it only lists returned fields and does not disclose read-only behavior, authentication needs, or rate limits. The tool likely performs a read operation, but this is not explicitly stated.
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 sentence that front-loads the purpose and key details. It earns its place but could benefit from slightly more structure, e.g., listing fields separately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter, the description covers the main output elements (description, support, conversion status) but omits details like response format or pagination. Since no output schema exists, more completeness is needed.
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% as the single parameter 'id' is described in the schema ('ID da ideia legislativa'). The description does not add additional meaning or constraints beyond the schema, so score is baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves details of a legislative idea, including description, support, and conversion status. It distinguishes from siblings like senado_ecidadania_obter_consulta and senado_ecidadania_obter_evento by specifying the resource type (ideia) and included fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives. The sibling list includes many similar tools, but the description does not compare or provide 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_ecidadania_sugerir_tema_enqueteB
Analisa e sugere temas para enquete mensal baseado em critérios configuráveis. Evita temas muito polarizados ou com consenso total.
| Name | Required | Description | Default |
|---|---|---|---|
| criterios | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It states it analyzes and suggests, but does not confirm if the tool is read-only (no destructive hint) or if it requires special permissions. The avoidance criteria are mentioned, but side effects or output format are omitted.
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 short sentences, front-loaded with purpose and key constraint. 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 complexity (nested object parameter, no output schema, no annotations), the description is too brief. It does not explain what the tool returns, whether the suggestion is persisted, or how to interpret results. More context is needed 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 0% for the top-level parameter, but the nested properties have descriptions in the schema. The description adds no extra meaning beyond 'based on configurable criteria', which is already implied by the schema. Baseline 3 is appropriate as schema descriptions exist, but the description does not compensate for gaps.
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 verb ('Analisa e sugere') and resource ('temas para enquete mensal'), and differentiates from sibling list/obter tools by focusing on suggestion. It also adds a constraint ('Evita temas muito polarizados ou com consenso total'), further clarifying its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for suggesting monthly poll themes with configurable criteria, but does not explicitly state when to use it vs alternatives like listar or obter. No when-not-to-use or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_legislatura_atualA
Retorna informações sobre a legislatura vigente, incluindo número, período e datas de início/fim.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It states 'retorna informações' implying a read-only operation, but does not explicitly confirm no side effects, auth requirements, or rate limits. For a simple retrieval tool, this is minimally adequate.
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 single sentence that efficiently conveys the tool's purpose and return data. Every word 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 no parameters, no output schema, and straightforward functionality, the description fully covers what an agent needs: it returns information about the current legislature with specific details. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (trivially). According to guidelines, baseline is 4 for 0 parameters. The description does not add parameter info, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns information about the current legislative term, including specific fields (number, period, start/end dates). This is a precise verb+resource combination that distinguishes it from sibling tools, which focus on committees, senators, matters, etc.
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 implies usage when needing current legislature details, and sibling tools cover other distinct areas, providing clear context. However, it does not explicitly state when not to use or list alternatives, stopping short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_listar_comissoesC
Lista comissões do Senado. Pode filtrar por tipo (permanente, temporária, CPI, mista) e status (ativa/inativa).
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | Tipo: permanente, temporaria, cpi, mista | |
| ativa | No | Apenas comissões ativas |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits such as read-only nature, authentication requirements, or rate limits. The operation implies a read, but this is not explicit, leaving the agent with insufficient safety 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?
Single sentence, direct and front-loaded. However, it could be slightly more efficient by omitting the redundant enum listing from the schema. Still, it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being a simple listing tool, the description omits return value structure (e.g., fields of commission objects) and pagination details. With no output schema, this gap leaves the agent underinformed about the tool's output.
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 clear descriptions for both parameters. The description reinforces the filter options but adds no additional semantic value beyond the schema, meeting the baseline expectation.
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 Senate commissions with filters for type and status. The verb 'listar' paired with 'comissoes' makes the resource explicit. While it doesn't differentiate from siblings like 'senado_obter_comissao', the purpose is specific enough for an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like 'senado_obter_comissao' for details or 'senado_agenda_comissoes' for schedules. The description merely lists available filters, offering no contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_listar_senadoresA
Lista senadores em exercício ou de uma legislatura específica. Pode filtrar por UF e partido.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Sigla do estado (ex: SP, RJ, MG) | |
| 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) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions two modes and filters but omits default behavior (e.g., what happens with no parameters), pagination, ordering, or read-only nature. The description is insufficient for a user to predict behavior without testing.
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, clear sentence that efficiently conveys the main purpose and key filters. It is concise, though it could be slightly restructured for even better clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 optional parameters, no output schema, and no annotations, the description should provide more details on defaults (e.g., default emExercicio true), result format, and pagination. The current description leaves uncertainty about behavior and output.
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 value by explaining the two modes (emExercicio vs legislatura) and indicating UF and partido as filters. This provides meaning beyond the field labels 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 clearly states the tool lists senators, with two modes (current or specific legislature) and optional filters by UF and party. It distinguishes from sibling tools like senado_obter_senador (single senator) and senado_buscar_senador_por_nome (name search).
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 implies usage for listing senators with filters, but does not explicitly state when not to use or mention alternative tools. The context from sibling names suggests alternatives, but the description itself lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_listar_votacoesA
Lista votações do plenário do Senado por ano, podendo filtrar por mês ou período específico.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | Yes | Ano das votações (obrigatório) | |
| mes | No | Mês (1-12) | |
| dataFim | No | Data fim (YYYYMMDD) | |
| dataInicio | No | Data início (YYYYMMDD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies a read-only listing operation but does not disclose pagination, authentication needs, or edge cases like empty results. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is concise and to the point. No unnecessary words; every part adds meaning.
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 output schema, description could explain return format or potential errors. It covers the core function and filters but lacks completeness for a tool with 4 parameters and no annotations.
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 with descriptions for all 4 parameters. The description adds minimal value by summarizing the filter options (ano, mes, período), but does not provide additional semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Lista', resource 'votações do plenário do Senado', and scope 'por ano' with optional filters. It distinguishes from sibling tools like 'senado_votacoes_recentes' by specifying yearly 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?
No guidance on when to use this tool versus alternatives like 'senado_votacoes_recentes' or 'senado_votacoes_senador'. The description only explains what it does, not when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_membros_comissaoA
Lista membros atuais de uma comissão, incluindo cargo (presidente, vice, titular, suplente).
| Name | Required | Description | Default |
|---|---|---|---|
| sigla | Yes | Sigla da comissão |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only notes that members are 'atuais' (current) and includes cargo. It does not disclose data freshness, sorting, pagination, or whether all members are included. This is adequate for a simple list but lacks depth.
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 clear sentence with no unnecessary words. It front-loads the purpose and includes key output 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?
For a simple one-parameter tool with no output schema, the description covers the basics. However, it omits what order members are listed, whether pagination exists, or if it pertains to the current legislature only—leaving some ambiguity.
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 covers 100% of parameters with description 'Sigla da comissão', so the schema does the heavy lifting. The description adds no additional meaning beyond implying the parameter is an acronym. 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 explicitly states the tool lists current members of a commission with their specific positions (president, vice, titular, substitute), which clearly distinguishes it from sibling tools like senado_listar_comissoes (lists commissions) and senado_obter_comissao (get commission 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?
No guidance is provided on when to use this tool versus alternatives, such as when to list commissions versus members, or whether filtering by legislature is needed. The description fails to mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_comissaoB
Obtém detalhes de uma comissão, incluindo presidente, vice-presidente e finalidade.
| Name | Required | Description | Default |
|---|---|---|---|
| sigla | Yes | Sigla da comissão (ex: CCJ, CAE) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It discloses some return fields but does not state that it is a read operation, whether authentication is required, or any side effects. The tool likely reads data but this is not explicit.
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 sentence that effectively states the tool's purpose without unnecessary words. It is front-loaded with the verb and resource.
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 no output schema, the description must detail return values. It only lists three fields (president, vice-president, purpose), but 'detalhes' implies more data is returned (e.g., members, meetings). The tool is part of a large server with many sibling tools, but the description does not help differentiate beyond basic 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 coverage is 100% for the single parameter 'sigla', with a clear description and examples. The description adds no additional meaning to the parameter beyond what the schema already provides. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Obtém' and resource 'comissão', listing key fields (president, vice-president, purpose). It distinguishes from sibling 'senado_listar_comissoes' by focusing on details of a single commission, and from 'senado_membros_comissao' by including leadership 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 implies usage for fetching a specific commission's details, but does not explicitly state when to use this tool versus alternatives like 'senado_membros_comissao' or 'senado_listar_comissoes'. No exclusionary guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_materiaA
Obtém detalhes completos de uma matéria legislativa, incluindo ementa, autoria, situação atual e relator.
| Name | Required | Description | Default |
|---|---|---|---|
| codigoMateria | Yes | Código único da matéria |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the burden of behavioral disclosure. 'Obtém' suggests a read operation, but it does not explicitly state that the tool is read-only, nor does it disclose any potential side effects, authentication requirements, or error behavior. The description lacks transparency about what happens if the code does not exist.
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 sentence that front-loads the core purpose and lists key details. Every part adds value, with no redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is adequate but not comprehensive. It covers the purpose and return fields, but lacks usage guidance and behavioral context (e.g., read-only confirmation, error handling). With no annotations, there is room for improvement.
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 one parameter with a description, achieving 100% schema description coverage. The tool description adds context about the tool's output (details of the matter) but does not elaborate on the parameter beyond the schema's own description. Baseline 3 is appropriate as the schema already fully documents the parameter.
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 full details of a legislative matter, including specific fields like ementa, autoria, situação atual, and relator. It distinguishes itself from sibling tools such as 'senado_buscar_materias' (search/list) and 'senado_tramitacao_materia' (tracking).
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 implies usage for obtaining full details of a single matter, but it does not explicitly state when to use this tool vs alternatives, nor does it mention prerequisites or exclusions. Sibling tool names provide some context, but the description itself offers no direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_senadorA
Obtém informações detalhadas de um senador específico, incluindo dados biográficos, mandatos e comissões.
| Name | Required | Description | Default |
|---|---|---|---|
| codigoSenador | Yes | Código único do senador no sistema do Senado |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description indicates a read operation without side effects, but lacks details on return structure, error handling, or any behavioral traits beyond 'informações detalhadas'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and direct. No unnecessary words. Could benefit from front-loading the data scope, but it is 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?
The description adequately covers the tool's purpose for a simple lookup with one parameter and no output schema. Missing details on return format and error cases, leaving minor 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% with a clear description for 'codigoSenador'. The tool description adds 'específico' but no additional meaning beyond the schema. Baseline 3 for high schema coverage.
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 specific resource 'informações detalhadas de um senador específico', listing included data types. It distinguishes from siblings like 'senado_buscar_senador_por_nome' and 'senado_listar_senadores'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a senator code is known, but does not explicitly state when to use or avoid this tool versus alternatives. No exclusionary language or context on prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_obter_votacaoB
Obtém detalhes de uma votação específica, incluindo votos nominais de cada senador.
| Name | Required | Description | Default |
|---|---|---|---|
| codigoVotacao | Yes | Código único da votação |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only mentions output includes nominal votes, but not safety, error handling, or read-only nature.
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?
One sentence, no fluff, front-loaded with purpose. Efficient and 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?
No output schema, but description mentions nominal votes. Lacks details on other return fields (e.g., date, summary). Still adequate for a simple retrieval tool with few 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?
Schema coverage is 100% and already describes 'codigoVotacao'. Description adds context about return content but no extra parameter meaning. Baseline 3 applies.
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' and specific resource 'detalhes de uma votação específica, incluindo votos nominais de cada senador'. Differentiates from sibling tools like senado_votacoes_recentes or senado_votacoes_senador.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs siblings such as senado_listar_votacoes or senado_votacoes_senador. Implicitly for a single vote, but lacks exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_partidosA
Lista partidos com representação atual no Senado, incluindo sigla, nome completo e número de senadores.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It fails to mention that this is a read-only operation, whether authentication is needed, or any potential limitations (e.g., rate limits, empty results). The description only states output content, not behavioral traits.
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 sentence of 12 words, starting with the verb 'Lista' to immediately convey the action. No redundant information or filler; every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description sufficiently outlines the return fields for a simple list tool. However, it does not mention ordering, pagination, or how to handle edge cases (e.g., no parties). Given the tool's simplicity and parameterless nature, the description is largely 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 tool has zero parameters (schema coverage 100% vacuously). The description adds value by specifying the output fields (sigla, nome completo, número de senadores), which the empty schema does not convey. This exceeds the baseline of 4 for parameterless tools.
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 parties with current Senate representation and includes specific fields (sigla, nome completo, número de senadores). It uses a specific verb ('Lista') and resource ('partidos com representação atual no Senado'), distinguishing it from sibling tools like senado_listar_senadores (lists senators) or senado_ufs (lists states).
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 no guidance on when to use this tool versus alternatives (e.g., senado_listar_senadores for senators or senado_listar_comissoes for committees). While the purpose is clear, there are no explicit usage conditions, exclusions, or references to related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_reunioes_comissaoA
Lista reuniões agendadas ou realizadas de uma comissão, com data, hora, local e pauta.
| Name | Required | Description | Default |
|---|---|---|---|
| sigla | Yes | Sigla da comissão | |
| dataFim | No | Data fim (YYYYMMDD) | |
| dataInicio | No | Data início (YYYYMMDD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation (listing) and covers both scheduled and held meetings, which is a behavioral detail. However, with no annotations, it lacks disclosure of permissions, rate limits, or side 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?
Single sentence that efficiently conveys purpose and output without redundancy. Every word is necessary.
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?
No output schema is provided; the description mentions output fields (date, time, location, agenda) but does not specify format or additional fields. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds no additional meaning beyond the schema. The description focuses on output rather than parameter semantics, which is acceptable given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Lista' and the resource 'reuniões de comissão', specifying the output includes date, time, location, and agenda. It distinguishes from sibling tools like 'senado_agenda_comissoes' by focusing on committee meetings with 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?
No guidance on when to use this tool versus alternatives. It does not specify prerequisites, exclusions, or context for choosing this tool over similar ones like 'senado_agenda_comissoes'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_textos_materiaA
Obtém textos disponíveis de uma matéria (inicial, substitutivo, final) com URLs para download.
| Name | Required | Description | Default |
|---|---|---|---|
| codigoMateria | Yes | Código único da matéria |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks disclosure of behavioral traits such as authentication needs, side effects, or behavior when no texts are available. It only states what the tool does, not how it behaves.
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 sentence that concisely conveys the purpose and output, with no redundant information. It is well-structured and 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 simple one-parameter input and no output schema, the description adequately explains the function and return type (URLs). However, it lacks details about possible results (e.g., empty response) or error handling, which would enhance 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 (codigoMateria described as 'Código único da matéria'), so the baseline is 3. The tool description does not add any additional meaning or guidelines for the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action (Obtém), the resource (textos disponíveis de uma matéria), and the content (inicial, substitutivo, final) with download URLs. It distinguishes from sibling tools like senado_obter_materia, which retrieves the matter 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?
The description implies usage when texts of a matter are needed, but it does not explicitly state when to use or avoid this tool, nor does it mention alternatives or prerequisites (e.g., how to obtain the códigoMateria).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_tipos_materiaA
Lista os tipos de matérias legislativas válidos com sigla, nome completo e descrição. Útil para usar em buscas.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, but description explains it's a list of valid types with specific fields, no side effects 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?
Single sentence, 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?
Tool is simple with no parameters and no output schema; description sufficiently covers its function and return 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?
No parameters; schema coverage is 100%, so baseline 4 applies.
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 valid types of legislative matters with acronym, full name, and description, distinguishing from search or detail 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 it is useful for searches, implying use as a reference list for filtering, though no explicit when-not-to-use or sibling comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_tramitacao_materiaA
Obtém histórico de tramitação de uma matéria, mostrando todas as movimentações em ordem cronológica.
| Name | Required | Description | Default |
|---|---|---|---|
| codigoMateria | Yes | Código único da matéria |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses that the tool shows all movements chronologically but does not mention side effects, permissions, or error handling. For a read tool, this is minimally adequate but lacks depth.
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, front-loaded sentence with no unnecessary words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one input parameter and no output schema, the description sufficiently explains the core functionality. However, it could briefly describe the output fields (e.g., date, location) to fully compensate for missing 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 coverage is 100% with a clear parameter description. The tool description adds no additional meaning beyond what the schema provides, so baseline score 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 clearly states it retrieves the processing history of a matter in chronological order. The verb 'obtém' and resource 'histórico de tramitação de uma matéria' are specific, and it distinguishes from sibling tools like senado_obter_materia which likely provide current 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 implies usage for obtaining historical movements but does not explicitly state when to use this tool versus alternatives like senado_obter_materia or senado_textos_materia. No when-not or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_ufsA
Lista unidades federativas com número de senadores atualmente em exercício por estado.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It correctly implies a read-only operation listing UF with senator counts. However, it does not disclose any additional behavioral traits such as data freshness, sorting, or whether the count includes all senators or only those in office (the description says 'em exercício' which clarifies active senators). It is adequate but not rich.
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 single, concise sentence that front-loads the action and resource. 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 simple tool with no parameters and no output schema, the description is sufficiently complete. It tells the agent what the tool returns (UF names with senator counts) and covers the core functionality. Minor lack of detail about output format is acceptable given simplicity.
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 no parameters, so the description does not need to explain them. Since schema coverage is 100% (empty), the baseline is 4. The description adds no parameter semantics, which is acceptable here.
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 federal units (UF) with the number of currently active senators per state. The verb 'Lista' and the specific resource differentiate it from sibling tools like 'senado_listar_senadores' which lists senators individually.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not mention when to use this tool versus alternatives such as 'senado_listar_senadores' for senator details or 'senado_partidos' for party information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_votacoes_recentesA
Obtém as votações mais recentes do plenário (últimos N dias). Útil para acompanhar atividade legislativa recente.
| Name | Required | Description | Default |
|---|---|---|---|
| dias | No | Quantidade de dias (padrão: 7) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states it fetches votes, omitting details about side effects, authentication, rate limits, or output format. This is minimal transparency for a data retrieval 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?
Two concise sentences, no unnecessary words. Front-loaded with the core action and purpose, making it 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?
The description is adequate for a simple data retrieval tool with one parameter, but lacks information about return format, sorting, or limitations. Given no output schema, additional details would improve 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?
Schema coverage is 100%, so the schema already documents the parameter. The description adds no additional semantic value beyond restating the purpose, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves recent plenary votes for a configurable number of days. It uses specific verbs and resources, and distinguishes from siblings like senado_listar_votacoes and senado_obter_votacao.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it is useful for tracking recent legislative activity but does not explicitly state when to avoid using it or suggest alternatives. The context of sibling tools provides implicit guidance, but no explicit usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_votacoes_senadorA
Lista votações de um senador específico, mostrando como o senador votou em cada matéria.
| 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the full burden of behavioral disclosure. It only states what the tool does (lists votes) but omits details like return format, pagination, data freshness, or side effects. For a read operation, this is minimally acceptable but not transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, directly states purpose. Highly concise and 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?
No output schema is provided, so the description should explain return values. It vaguely mentions showing how the senator voted, but lacks specifics (e.g., fields, structure). Given 4 parameters and many siblings, more context about output would improve 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?
All parameters have descriptions in the schema (100% coverage), so baseline is 3. The description adds no extra parameter-specific information beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists votes of a specific senator, showing voting behavior. It uses a specific verb ('Lista') and resource ('votações de um senador'), and is distinguishable from siblings like senado_listar_votacoes or senado_votos_materia by focusing on a single senator.
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?
Usage is implied (when you need votes of a specific senator), but there is no explicit guidance on when to use this tool versus alternatives like senado_votos_materia or senado_obter_votacao. No exclusions or best practices are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senado_votos_materiaA
Obtém resultado de votações de uma matéria, incluindo placar e votos nominais quando disponíveis.
| Name | Required | Description | Default |
|---|---|---|---|
| codigoMateria | Yes | Código único da matéria |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description partially discloses behavior (returns scores and nominal votes when available), but lacks info on side effects, authentication requirements, or rate limits. It is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence front-loading the purpose with no extraneous words. Every part earns its place.
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?
Simple lookup tool with one parameter; description covers core purpose and output type. Missing details on error handling or what happens when no votes exist, but overall adequate given simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with schema description (Código único da matéria). Description adds no extra meaning beyond schema, and schema coverage is 100%, so baseline 3 applies.
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) and resource (resultado de votações de uma matéria), specifying content (placar e votos nominais) and condition (quando disponíveis). It distinguishes from siblings like senado_obter_votacao (focused on a specific voting) and senado_listar_votacoes (lists votings).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs. alternatives. For example, senado_obter_votacao might provide more detail on a single voting; description does not clarify distinction or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource or action: committees, senators, matters, voting, e-Cidadania items. Even similar-looking tools like listar_votacoes and votacoes_recentes are differentiated by time filters, while obter_votacao and votos_materia focus on different granularities. Descriptions clearly clarify the purpose, leaving little ambiguity for an agent.
All tools share the 'senado_' prefix and use snake_case with a consistent verb_noun pattern (e.g., listar_comissoes, obter_materia, buscar_senador_por_nome). Exceptions like 'senado_agenda_comissoes' still follow the structure and are predictable. No mixing of styles or vague verbs like 'process' or 'do_thing'.
33 tools is significantly above the typical well-scoped range of 3-15. While the Brazilian Senate domain is broad, many tools could be parameterized (e.g., combining listar and obter variants, or reducing e-Cidadania sub-tools). The count feels heavy and may overwhelm agents, especially with 11 dedicated to e-Cidadania alone.
The tool set covers all major Senate operations: committees (list, details, members, meetings), senators (list, search, details, voting record), legislation (search, details, texts, history, types), voting (list, details, by senator, by matter), and e-Cidadania (consultations, events, ideas, popularity metrics, even suggestion). No obvious gaps exist for typical queries about Senate activity.
Maintenance
Related MCP Connectors
MCP server for Brazilian Federal Senate open data (legislative, administrative, e-Cidadania).
MCP server for French (BOAMP) + EU (TED) public procurement data via TenderAPI.
Brazilian legal stack in one MCP: lawsuits, court publications, case law, tenders, certificates.
Access U.S. congressional data - bills, votes, members, committees - via MCP.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that provides access to the Brazilian Chamber of Deputies open data API. It enables users to search for deputies, track their expenses, and query legislative information such as bills and API endpoints.6MIT
- AlicenseAqualityAmaintenanceThis server provides access to IBGE's public APIs, enabling AI assistants to query geographic, demographic, and statistical data from Brazil.238769MIT
- AlicenseNot gradedqualityDmaintenanceMCP Server for accessing 36 Brazilian public data sources and 1 agent, enabling AI agents to query government data on economy, legislation, transparency, judiciary, elections, environment, health, and more.MIT
- AlicenseAqualityAmaintenanceMCP server for Brazilian Federal Senate open data — 90 tools covering the legislative process, Senate administration, and citizen participation. Hosted on Cloudflare Workers (Streamable HTTP), no authentication required. Tool names and responses are in Portuguese (pt-BR), matching the official Senate data.665745MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SidneyBissoli/senado-br-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server