Skip to main content
Glama

⚠️ Deprecated — this repository has moved

This server is no longer maintained here. The Brazilian Senate MCP server now lives at senado-br-mcp-cloudflare66 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 package senado-br-mcp now publishes that server (v3.2.1+); versions < 3.0.0 here are deprecated. Please migrate — this repository is archived.


Senado Brasil MCP Server

npm version npm downloads node MCP Registry GitHub stars GitHub Sponsors License: MIT

🇧🇷 Leia em Português

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

npx senado-br-mcp

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-mcp

Global Installation:

npm install -g senado-br-mcp
senado-br-mcp

From Source:

git clone https://github.com/SidneyBissoli/senado-br-mcp.git
cd senado-br-mcp
npm install
npm run build
npm start

Claude 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

GET /

Server info and documentation

GET /health

Health check

GET /stats

Usage statistics

POST /mcp

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

senado_listar_senadores

List senators in office or by legislature. Filters: state (UF), party

senado_obter_senador

Get detailed info about a senator (biography, mandates, committees)

senado_buscar_senador_por_nome

Search senators by name

senado_votacoes_senador

List how a senator voted. Filters: year, date range

Legislative Matters (Matérias)

Tool

Description

senado_buscar_materias

Search bills by type (PEC, PL, PLP, MPV), number, year, keyword, author

senado_obter_materia

Get bill details (summary, author, status, rapporteur)

senado_tramitacao_materia

Get bill's procedural history

senado_textos_materia

Get bill texts (original, substitute, final) with download URLs

senado_votos_materia

Get voting results for a bill

Votes (Votações)

Tool

Description

senado_listar_votacoes

List plenary votes by year. Filters: month, date range

senado_obter_votacao

Get vote details with nominal votes by senator

senado_votacoes_recentes

Get recent votes (last N days)

Committees (Comissões)

Tool

Description

senado_listar_comissoes

List committees. Filters: type (permanent, temporary, CPI), active

senado_obter_comissao

Get committee details (president, vice-president, purpose)

senado_membros_comissao

List committee members with roles

senado_reunioes_comissao

List committee meetings with agenda

Agenda

Tool

Description

senado_agenda_plenario

Get plenary session schedule with voting agenda

senado_agenda_comissoes

Get committee meeting schedule

Lookup/Auxiliary (Auxiliares)

Tool

Description

senado_legislatura_atual

Get current legislature info (number, period, dates)

senado_tipos_materia

List valid bill types (PEC, PL, PLP, MPV, etc.)

senado_partidos

List parties with senator count

senado_ufs

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

senado_ecidadania_listar_consultas

List public consultations with citizen voting on pending bills

senado_ecidadania_obter_consulta

Get consultation details including votes, author, and comments

senado_ecidadania_consultas_polarizadas

Get polarized consultations (~50/50 votes) - useful for identifying divisive issues

senado_ecidadania_consultas_consensuais

Get consensual consultations (>85% one way) - identifies broad agreement

Legislative Ideas (Ideias Legislativas)

Tool

Description

senado_ecidadania_listar_ideias

List citizen-proposed legislative ideas

senado_ecidadania_obter_ideia

Get idea details including full description and conversion to bill

senado_ecidadania_ideias_populares

Get most supported legislative ideas

Interactive Events (Eventos Interativos)

Tool

Description

senado_ecidadania_listar_eventos

List interactive events (hearings, confirmations, livestreams)

senado_ecidadania_obter_evento

Get event details including agenda, guests, and video link

senado_ecidadania_eventos_populares

Get events with most citizen comments and questions

Analysis Tools

Tool

Description

senado_ecidadania_sugerir_tema_enquete

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: 2024

Get recent votes

Use senado_votacoes_recentes with dias: 7

Find 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: 5000

Get most supported citizen ideas

Use senado_ecidadania_ideias_populares with limite: 5

Find 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 install

Build

# Build stdio version (npm package)
npm run build

# Build HTTP server version
npm run build:server

# Build both
npm run build:all

Development Mode

# stdio mode
npm run dev

# HTTP server mode
npm run dev:server

Type Check

npm run typecheck

Test with MCP Inspector

npm run inspect

Self-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:3000

Railway

  1. Fork this repository

  2. Connect Railway to your GitHub

  3. Deploy (auto-detects configuration from railway.json)

  4. Set environment variables:

    • MONTHLY_REQUEST_LIMIT (default: 10000)

    • ALERT_WEBHOOK_URL (optional, for notifications)

Environment Variables

Variable

Description

Default

PORT

Server port

3000

MONTHLY_REQUEST_LIMIT

Monthly request limit

10000

ALERT_WEBHOOK_URL

Webhook for alerts

-

LOG_LEVEL

Logging level

info

Data Sources

Official API

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 tools
senado_agenda_comissoesB

Obtém agenda de reuniões das comissões do Senado. Pode filtrar por data e comissão específica.

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

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoData específica (YYYYMMDD)
dataFimNoData fim (YYYYMMDD)
dataInicioNoData início (YYYYMMDD)

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema coverage is 100% with descriptions for each parameter. 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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno da matéria
siglaNoTipo: PEC, PL, PLP, MPV, PDL, PRS, etc.
numeroNoNúmero da matéria
autorNomeNoNome do autor
tramitandoNoApenas em tramitação
relatorNomeNoNome do relator
palavraChaveNoBusca na ementa

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeYesNome ou parte do nome do senador

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the verb 'Busca' 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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNoNúmero máximo de resultados
minimoVotosNoMínimo de votos para considerar
percentualMinimoNoPercentual mínimo em uma direção

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNoNúmero máximo de resultados
minimoVotosNoMínimo de votos para considerar
margemPolarizacaoNoConsidera polarizado se diferença < este percentual

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNoNúmero máximo de resultados
apenasAgendadosNoApenas eventos ainda não realizados

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the simplicity of the tool (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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNoNúmero máximo de resultados
apenasAbertasNoApenas ideias com apoiamento aberto

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The 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.

Purpose5/5

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

The description clearly states the tool returns 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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNoNúmero máximo de resultados
paginaNoPágina de resultados
statusNoFiltrar por status

TDQS

C2.9/5.0
Behavior1/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNoNúmero máximo de resultados
statusNoFiltrar por status
comissaoNoSigla da comissão

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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

Given the simplicity of the tool (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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ordemNoOrdem de ordenação
limiteNoNúmero máximo de resultados
paginaNoPágina de resultados
statusNoFiltrar por status
ordenarPorNoCampo para ordenação

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID da consulta pública

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID do evento

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness4/5

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

For a simple tool with one parameter and 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID da ideia legislativa

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool retrieves 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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
criteriosNo

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's 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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool returns 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.

Usage Guidelines4/5

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).

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

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoSigla do estado (ex: SP, RJ, MG)
partidoNoSigla do partido (ex: PT, PL, MDB)
emExercicioNoFiltrar apenas senadores em exercício
legislaturaNoNúmero da legislatura (ex: 57 para 2023-2027)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool lists senators, with 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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoYesAno das votações (obrigatório)
mesNoMês (1-12)
dataFimNoData fim (YYYYMMDD)
dataInicioNoData início (YYYYMMDD)

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
siglaYesSigla da comissão

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
siglaYesSigla da comissão (ex: CCJ, CAE)

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoMateriaYesCódigo único da matéria

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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

For a simple tool with one parameter and 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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool retrieves 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.

Usage Guidelines3/5

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.

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

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the verb 'Obtém' 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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoVotacaoYesCódigo único da votação

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool lists 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.

Usage Guidelines2/5

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.

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

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the verb 'Lista' and the resource '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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoMateriaYesCódigo único da matéria

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoMateriaYesCódigo único da matéria

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple tool with one 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool lists 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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
diasNoQuantidade de dias (padrão: 7)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno das votações
dataFimNoData fim (YYYYMMDD)
dataInicioNoData início (YYYYMMDD)
codigoSenadorYesCódigo único do senador

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

All parameters have descriptions in the schema (100% coverage), 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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoMateriaYesCódigo único da matéria

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

A3.6/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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'.

Tool Count2/5

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.

Completeness5/5

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

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that provides access to the Brazilian Chamber of Deputies open data API. It enables users to search for deputies, track their expenses, and query legislative information such as bills and API endpoints.
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP 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
  • A
    license
    A
    quality
    A
    maintenance
    MCP 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.
    66
    574
    5
    MIT

Latest Blog Posts

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