# Dados Abertos Senado BR MCP MCP server

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

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-sidneybissoli-senado-br-mcp-cloudflare
- Repository: https://github.com/SidneyBissoli/senado-br-mcp-cloudflare
- Website: https://senado.sidneybissoli.com

## Install
- Command: `npx -y senado-br-mcp`
- Endpoint: https://senado.sidneybissoli.com/mcp
- Auth: Not captured

## Setup notes
- Package: Npm senado-br-mcp v3.4.0
- Remote endpoint: https://senado.sidneybissoli.com/mcp

## Tools
- senado_tabelas_referencia (Tabelas de referência) - Consulta tabelas de referência do Senado pelo parâmetro `tabela`. Valores: `tipos-materia` → `{ count, tipos }` (sigla/nome/descricao dos tipos de proposição, p.ex. PEC, PL, MPV) — **catálogo curado mantido neste servidor** (12 tipos mais comuns, não é a lista viva do upstream `processo/siglas`, que tem ~184 siglas); use para achar a `sigla` correta antes de `senado_buscar_materias`/`senado_search_processos`; `partidos` → `{ count, totalSenadores, partidos }` (partidos com bancada atual, ordenados por nº de senadores); `ufs` → `{ count, totalSenadores, ufs }` (as 27 UFs com a contagem de senadores em exercício); `legislatura-atual` → `{ numero, periodo, dataInicio, dataFim }` da legislatura vigente; `tipos-norma` → `{ count, tipos }` (sigla/descricao dos tipos de norma para `senado_buscar_legislacao`); `tipos-uso-palavra` → `{ count, tipos }` (codigo/descricao para interpretar `tipoUsoPalavra` em `senado_discursos_senador`). Toda resposta inclui o campo `tabela`. Para a relação nominal de parlamentares use `senado_listar_senadores`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_listar_senadores (Listar senadores) - Use para pedidos como 'liste os senadores em exercício', 'senadores atuais', 'lista atual de senadores' ou filtros por UF/partido. Lista senadores em exercício ou de uma legislatura específica, com filtros opcionais por `nome`, `uf` e `partido`. Retorna `{ count, senadores }`, cada item com `codigo`, `nome`, `nomeCompleto`, `partido`, `uf`, `foto` e `emExercicio`, mais proveniência oficial do endpoint `/senador/lista/atual`. Use `emExercicio` (padrão `true`) ou `legislatura` para escolher o conjunto; `nome` faz correspondência parcial ignorando acentos/maiúsculas (use quando você só tem o nome e precisa do `codigo`); `uf`/`partido` filtram localmente. Use o `codigo` em `senado_obter_senador` ou `senado_votacoes_senador`. Para senadores fora de exercício veja `senado_senadores_afastados`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_obter_senador (Detalhar senador) - Obtém o detalhe biográfico de um senador específico. Retorna um objeto com `codigo`, `nome`, `nomeCompleto`, `nomeCivil`, `sexo`, `dataNascimento`, `naturalidade`/`ufNaturalidade`, `partido`, `uf`, `foto`, `email` e a lista `mandatos` (`legislatura`, `uf`, `participacao`, `dataInicio`, `dataFim`). Requer `codigoSenador` — obtenha-o via `senado_listar_senadores` (filtro `nome`). Para filiações, profissões, licenças, comissões ou cargos use `senado_senador_historico` (parâmetro `tipo`). Endpoint: https://senado.sidneybissoli.com/mcp
- senado_votacoes_senador (Votações de um senador) - Lista as votações nominais de um senador, mostrando como votou em cada matéria. Retorna `{ periodo, count, votos }`, cada voto com `codigoVotacao`, `data`, `materia`, `descricao`, `voto` e `resultado`, ordenados da mais recente para a mais antiga. Sem período usa o ano corrente; informe `ano` ou o par `dataInicio`/`dataFim` (YYYYMMDD). Requer `codigoSenador` (obtenha via `senado_listar_senadores`); para detalhes de uma votação específica use `senado_obter_votacao`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_senador_historico (Histórico do senador) - Histórico funcional de um senador conforme o parâmetro `tipo`. Valores: `licencas` (itens com `dataInicio`/`dataFim`/`descricao`), `comissoes` (`sigla`/`nome`/`casa`/`participacao`/datas), `cargos` (`comissao`/`cargo`/datas), `historico-academico` (cursos, registros brutos da API), `filiacoes` (`partido`/`nomePartido`/`dataFiliacao`/`dataDesfiliacao`) e `profissoes` (`nome`). Retorna `{ codigoSenador, tipo, count, itens }`, com a forma de cada item dependente do `tipo`; tipos sem registros para o senador retornam `count` 0 e `itens` vazio. Requer `codigoSenador` (obtenha via `senado_listar_senadores`). Para dados biográficos e mandatos use `senado_obter_senador`. Ex.: `{ codigoSenador: 4994, tipo: 'filiacoes' }` → histórico de partidos do senador. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_senadores_afastados (Senadores afastados) - Lista os senadores atualmente afastados (fora de exercício). Retorna `{ count, senadores }`, cada item com `codigo`, `nome`, `nomeCompleto`, `partido`, `uf`, `foto` e `emExercicio` (sempre `false`). Não requer parâmetros. Atenção: é a lista BRUTA do upstream, sem recorte de legislatura — pode conter registros históricos (ex.: senadores falecidos) e inconsistências pontuais com o detalhe do parlamentar; também não traz o vínculo titular↔suplente (para saber quem assumiu a vaga, consulte os mandatos em `senado_obter_senador`). Use `codigo` em `senado_obter_senador` para o detalhe; para os senadores em exercício (e busca por nome) use `senado_listar_senadores`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_buscar_materias (Buscar matérias legislativas) - Busca matérias legislativas por tipo (PEC, PL, PLP, MPV), número, ano, palavras-chave, autor, período de apresentação ou situação de tramitação; informe ao menos um critério. Para pedidos como 'matérias recentes sobre X', use `palavraChave`, `ano` ou `dataInicioApresentacao`/`dataFimApresentacao`, `ordenarPor: 'dataApresentacao'`, `ordem: 'desc'` e `limite` baixo (ex: 10); não é necessário chamar detalhes para listar resultados. Retorna `{ count, total, materias[] }`, cada item com `codigo` (codigoMateria), `sigla`, `numero`, `ano`, `ementa`, `autor`, `situacao`, `dataApresentacao`, `url` e `tramitando`. Use `codigo` em `senado_obter_materia` apenas quando o usuário pedir detalhe/tramitação/textos. `limite` padrão 100 (máx. 500); ao truncar inclui `aviso`. Ex.: `{ palavraChave: 'inteligência artificial', ano: 2025, limite: 10 }` ou `{ sigla: 'PEC', numero: 45, ano: 2019 }` (datas em YYYYMMDD ou ISO). Endpoint: https://senado.sidneybissoli.com/mcp
- senado_obter_materia (Detalhar matéria legislativa) - Obtém dados de uma matéria pelo `codigoMateria`, conforme `secao` (padrão `detalhe`): `detalhe` → objeto com `identificacao`, `apelido`, `ementa`, `autor`, `situacao`, `localAtual`, `dataApresentacao`, `indexacao`, `classificacoes[]`, `tramitando`, `relator` (nome/partido/uf/comissão), `deliberacao` e `normaGerada`. `tramitacao` → histórico de tramitação cronológico em `tramitacoes[]` (`data`, `local`, `descricao`), com `count`/`total` (mantém os mais recentes ao truncar). `textos` → documentos da matéria em `textos[]` (`tipo`, `formato`, `identificacao`, `data`, `autoria`, `url`), do mais recente ao mais antigo. `limite` aplica-se a tramitacao/textos (padrão 100 e 50; ao truncar inclui `aviso`). Obtenha o `codigoMateria` via `senado_buscar_materias`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_obter_votacao (Detalhar votação) - Obtém detalhes de uma votação de **plenário** pelo `codigoVotacao` (que é o `codigoSessao` da sessão plenária), incluindo votos nominais. Retorna o objeto da votação (placar, `resultado` legível + `resultadoCodigo` bruto, `secreta`) com `votos[]` (`codigoSenador`, `nomeSenador`, `partido`, `uf`, `voto`); se a sessão tiver várias votações, retorna `{ codigoSessao, count, votacoes }`. Obtenha o `codigoSessao` via `senado_search_votacoes` antes de chamar. Atenção: este endpoint só aceita códigos de votação de **plenário** — códigos de `senado_votacao_comissao` pertencem a outro espaço de numeração e NÃO são válidos aqui (podem coincidir numericamente, mas apontam para outra votação). Endpoint: https://senado.sidneybissoli.com/mcp
- senado_votos_materia (Votos de uma matéria) - Obtém as votações de uma matéria pelo `codigoMateria`. Retorna `{ codigoMateria, count, votacoes }`, cada item com `data`, `descricao`, `resultado` e placar (`totalSim`/`totalNao`/`totalAbstencao`); com `incluirVotos: true` (padrão false) acrescenta `votos[]` (nome, partido, uf e voto de cada senador). Obtenha o `codigoMateria` via `senado_buscar_materias` ou `senado_obter_materia`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_search_votacoes (Pesquisar votações) - Busca e lista votações do plenário combinando critérios opcionais. Janela temporal: informe `dias` (últimos N dias, 1-365) para atividade recente, OU `dataInicio`/`dataFim` (YYYYMMDD) para um período arbitrário — para um ano inteiro use `dataInicio: "AAAA0101"` e `dataFim: "AAAA1231"`. Demais filtros: `idProcesso`, `codigoMateria`, `sigla`/`numero`/`ano` da matéria, `codigoParlamentar` e `siglaVotoParlamentar`. Retorna `{ count, votacoes }` ordenadas da mais recente para a mais antiga; cada item traz `codigoSessao`, `data`, `materia`, `codigoMateria`, `resultado` e placar (`totalSim`/`totalNao`/`totalAbstencao`), sem votos nominais. Use `senado_obter_votacao` com o `codigoSessao` para os votos de cada senador. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_listar_comissoes (Listar comissões) - Lista comissões (colegiados) ativas do Senado, com filtros por `tipo` (permanente, temporaria, cpi, mista) e `ativa`. Retorna `{ count, comissoes }`, cada item com `codigo`, `sigla`, `nome`, `tipo`, `casa` e `ativa`. O endpoint só traz comissões ativas, logo `ativa=false` resulta em lista vazia. Use para descobrir a `sigla` exigida por `senado_obter_comissao` e `senado_reunioes_comissao`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_obter_comissao (Detalhar comissão) - Obtém dados de uma comissão pela `sigla`, conforme `secao` (padrão `resumo`): `resumo` → `{ codigo, sigla, nome, tipo, finalidade, presidente, vicePresidente, totalMembros, titulares, suplentes }` (presidente/vice com `nome`/`codigo`/`bancada`). `finalidade` só vem preenchida para colegiados temporários (CPIs, comissões temporárias e de medida provisória); para comissões permanentes (CCJ, CAE etc.) a fonte não a publica e o campo vem nulo com um `aviso` — as competências estão no Regimento Interno. `membros` → `{ sigla, secao, count, membros }`, cada membro com `codigo`, `nome`, `tipoVaga` (titular/suplente), `ativo` e `dataInicio`. A sigla é resolvida internamente para código numérico; descubra-a via `senado_listar_comissoes`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_reunioes_comissao (Reuniões de comissão) - Lista reuniões de uma comissão (pela `sigla`) num intervalo `dataInicio`/`dataFim` (YYYYMMDD); sem datas, usa os últimos 14 dias. Atenção: o upstream devolve a agenda de TODAS as comissões do período (o filtro por sigla é local), então janelas amplas (mensais/anuais) podem estourar o limite de tamanho da resposta (erro de payload): prefira janelas de até 2 semanas e divida períodos maiores em chamadas sucessivas. Retorna `{ sigla, periodo, count, reunioes }`, cada reunião com `codigo`, `descricao`, `data`, `hora`, `local`, `tipo` e `situacao`. Intervalos entre anos são divididos por ano internamente. Descubra a `sigla` via `senado_listar_comissoes`; use o `codigo` retornado em `senado_reuniao_comissao` para os detalhes da pauta. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_agenda_comissoes (Agenda das comissões) - Obtém a agenda de reuniões de todas as comissões numa data (`data` YYYYMMDD; padrão: hoje), com filtro opcional `siglaComissao`. Retorna `{ data, siglaComissao, count, reunioes }`, cada reunião com `codigo`, `comissao` (`sigla`, `nome`), `descricao`, `data`, `hora`, `local`, `tipo` e `situacao`. Para o histórico de uma única comissão por período use `senado_reunioes_comissao`; para detalhes de uma reunião use `senado_reuniao_comissao` com o `codigo`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_reuniao_comissao (Detalhar reunião de comissão) - Detalha uma reunião de comissão pelo `codigoReuniao`. Retorna um objeto com `codigo`, `titulo`, `comissao`, `data`, `hora`, `local`, `situacao`, `realizada`, `secreta`, `tipoPresenca` (presencial/semipresencial), `presidente`, links `urlPauta`/`urlResultado`/`urlAta` e `partes` (cada parte com `evento` e `itens` apreciados: `identificacao`, `ementa`, `autoria`, `relatoria`, `resultado`, `codigoMateria`). A API NÃO publica lista de presença da reunião (só presidente e eventuais convidados): reconstrua a presença pelos votos nominais (`senado_votacao_comissao`), por quem falou na transcrição (`senado_notas_taquigraficas` com `tipo=reuniao`) ou pela ata oficial (`urlAta`, quando publicada). Obtenha o `codigoReuniao` em `senado_agenda_comissoes` ou `senado_reunioes_comissao`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_requerimentos_cpi (Requerimentos de CPI) - Lista requerimentos de uma CPI (Comissão Parlamentar de Inquérito) em atividade, pela `siglaCpi`, com paginação por `pagina` (índice baseado em 0, definido pelo upstream). Retorna `{ siglaCpi, pagina, count, requerimentos }`, onde `requerimentos` é a lista de registros brutos da página (campos conforme a API: tipicamente número, data, ementa, autor e situação do requerimento). `count` é o tamanho da página; uma página além do total retorna `count` 0 — use isso para saber que as páginas acabaram. Descubra as siglas via `senado_listar_comissoes` com `tipo=cpi`. Limitação conhecida: o endpoint upstream costuma responder vazio mesmo para CPIs em atividade, e não há fonte alternativa limpa na API; nesses casos o retorno traz `count` 0 e um campo `aviso` explicando — não interprete lista vazia como certeza de que a CPI não possui requerimentos. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_distribuicao_materias (Ranking de autoria/relatoria por comissão) - Ranqueia parlamentares pela quantidade de matérias numa comissão (`siglaComissao`), medindo carga de trabalho legislativo. `tipo` escolhe o eixo: `autoria` (matérias de autoria; padrão) ou `relatoria` (matérias relatadas). Retorna `{ siglaComissao, tipo, count, parlamentares }` ordenado por `quantidade` desc, sem paginação (`count` 0 quando a comissão não tem registros), cada item com `codigo`, `nome`, `partido`, `uf` e `quantidade`. `codigoParlamentar` restringe a um parlamentar e **só tem efeito em `tipo=autoria`** (ignorado em relatoria). Descubra a `sigla` via `senado_listar_comissoes`; use o `codigo` do parlamentar em `senado_obter_senador`. Para a lista das matérias em si (não a contagem) use `senado_buscar_materias`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_agenda_plenario (Agenda do plenário) - Obtém a agenda de sessões de plenário (Senado ou Congresso Nacional), por dia ou mês, com a pauta de matérias a votar. Retorna `{ data, escopo, count, sessoes }`, onde cada sessão traz `codigo`, `data`, `hora`, `tipo`, `situacao` e `pauta` (matéria, ementa, autor, parecer). Use `escopo` dia/mes/cn; sem `data` assume hoje. Para o resultado já apreciado use `senado_resultado_plenario`; detalhes de uma sessão via `senado_encontro_plenario`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_resultado_plenario (Resultados do plenário) - Resultado das sessões plenárias numa data: itens de pauta apreciados, pareceres e resultados. Retorna `{ data, escopo, count, sessoes }` (todas as sessões da data, sem paginação), com cada sessão trazendo `codigoSessao`, `numeroSessao`, `data`, `hora`, `tipo`, `casa` e `itens` (`codigoMateria`, `identificacao`, `ementa`, `resultado`, `parecer` — `resultado`/`parecer` podem vir `null` em itens ainda não deliberados). Sem sessão na data, `count` é 0 e `sessoes` vem vazio. `escopo`: sf (Senado), cn (Congresso) ou mes (resumo do mês). Para a pauta prévia use `senado_agenda_plenario`; orientação de bancada via `senado_orientacao_bancada`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_orientacao_bancada (Orientação de bancada) - Orientação de bancada nas votações de plenário: como cada liderança partidária orientou o voto, com placar — essencial para análise de disciplina partidária. Retorna `{ count, votacoes }`, com cada votação trazendo `codigoVotacao`, `descricao`, `materia`, `dataInicio`, `dataTermino`, `sessao`, totais (`totalSim`, `totalNao`, `totalAbstencao`, `obstrucoes`), `quorumInicial`/`quorumFinal` e `orientacoes` (`partido`, `voto`). Informe `data` (um dia) ou o período `dataInicio`/`dataFim`. Para o resultado das sessões use `senado_resultado_plenario`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_vetos (Vetos presidenciais) - Lista vetos presidenciais em apreciação pelo Congresso Nacional, por ano ou por status de tramitação. Retorna `{ count, total, aviso?, vetos }`, com cada veto trazendo `codigo`, `identificacao`, `ementa`, `emTramitacao`, `materiaVetada`, `tipo` (total/parcial), `assunto` e `dataLimiteVotacao` (prazo de sobrestamento de pauta). `limite` controla o corte (padrão 100; `aviso` indica truncagem). Informe `ano` OU `status` (tramitando/antes-rcn/encerrados). Para o resultado da votação de um veto use `senado_resultado_veto`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_resultado_veto (Resultado de veto) - Obtém o resultado da apreciação de um veto presidencial. Retorna `{ codigo, tipo, resultado }`, onde `resultado` é o objeto bruto da API (sem wrappers), com campos variáveis — tipicamente identificação do veto, situação por dispositivo (ex.: "Rejeitado"/"Mantido") e link do PDF do resultado nominal (`PdfsResultadoVotacao`). A API **não** fornece placar numérico (sim/não) aqui — o detalhamento nominal está no PDF; vem **objeto vazio** quando o veto ainda não foi votado e **retorna erro** se o `codigo` não existir. `tipo` define o que `codigo` representa: `veto` (código do veto, padrão), `materia` (código do projeto vetado) ou `dispositivo` (dispositivo de veto parcial) — as três chaves apontam para o mesmo veto. Obtenha o código via `senado_vetos`. Para **listar** vetos (não o resultado de um) use `senado_vetos`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_encontro_plenario (Sessões do plenário) - Detalhes de um encontro legislativo (sessão de plenário). Retorna `{ codigo, secao, encontro }`, onde `encontro` é o objeto bruto da API (ou array, quando o upstream traz vários) cujos campos variam conforme a `secao` escolhida: `detalhes` (padrão) traz dados gerais da sessão (tipo, data, situação, presença); `pauta` traz as matérias previstas; `resultado` traz os itens apreciados e seus resultados; `resumo` traz uma síntese. `encontro` pode vir vazio se a seção não tiver dados, e a chamada retorna erro se o `codigo` não existir. Obtenha o `codigo` via `senado_agenda_plenario` ou `senado_resultado_plenario`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_tabelas_plenario (Tabelas de referência do plenário) - Consulta tabelas de referência do plenário para resolver códigos/domínios, conforme `tabela`: `tipos-sessao` (espécies de sessão plenária), `tipos-comparecimento` (situações de presença) ou `legislaturas` (períodos legislativos com datas). Retorna `{ tabela, count, total, linhas }` — `count` é o nº após o corte por `limite` e `total` o disponível; `count < total` indica truncagem (aumente `limite`); `count` 0 quando o `filtro` não casa. Cada linha traz o código/sigla e a descrição do domínio (campos conforme a API). Use para interpretar campos como `tipo` de `senado_agenda_plenario`/`senado_resultado_plenario`. Para tabelas do processo legislativo (assuntos, classes, situações) use `senado_tabelas_processo`. Ex.: `{ tabela: 'legislaturas' }` ou `{ tabela: 'tipos-sessao', filtro: 'deliberativa' }`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_search_processos (Pesquisar processos) - Busca processos legislativos no endpoint v3 `/processo` (parâmetros complementares ao `senado_buscar_materias`). Retorna `{ count, total, aviso?, processos }`, cada item com `id`, `codigoMateria`, `identificacao`, `ementa`, `tipoDocumento`, `dataApresentacao`, `autoria` (compactada: primeiros autores + total), `totalAutores`, `tramitando` (boolean) e `normaGerada`. É obrigatório ao menos um filtro (sigla, número, ano, autor ou período). Limitado a `limite` (padrão 20, máx. 200), com `aviso` ao truncar. Use o `id` retornado em `senado_obter_processo` para detalhes. Ex.: `{ sigla: 'PL', ano: 2025, dataInicioApresentacao: '2025-03-01' }` (datas em YYYYMMDD ou ISO). Endpoint: https://senado.sidneybissoli.com/mcp
- senado_obter_processo (Detalhar processo) - Obtém detalhes completos de um processo legislativo específico pelo seu `id`. Retorna um objeto com `id`, `codigoMateria`, `identificacao`, `sigla`, `numero`, `ano`, `objetivo`, `ementa`, `tipoConteudo`, `dataApresentacao`, `autoria`, `indexacao`, `urlDocumento`, `tramitando` (boolean) e o estado atual do processo: `situacaoAtual` (+`siglaSituacaoAtual`/`dataSituacaoAtual`), `deliberacao` (data, tipo, destino) e `normaGerada` (quando o processo virou norma). Obtenha o `idProcesso` antes via `senado_search_processos` ou `senado_buscar_materias`; para emendas, relatorias ou prazos use `senado_processo_detalhe` (parâmetro `secao`). Endpoint: https://senado.sidneybissoli.com/mcp
- senado_processo_detalhe (Detalhes do processo) - Detalha um aspecto de processos legislativos conforme o parâmetro `secao`: `emendas` → emendas apresentadas (`id`, `identificacao`, `numero`, `tipo`, `autoria`, `data`, `colegiado`, `descricao`, `decisoes` (objetos com `casa`/`data`/`tipo`/`comissao`/`nomeComissao`), `url`; aceita filtro `codigoParlamentarAutor`); `relatorias` → relatorias designadas (`idProcesso`, `processo`, `relator`, `partido`, `uf`, `tipoRelator`, `comissao`, `dataDesignacao`, `dataDestituicao`, `motivoEncerramento`; aceita `codigoParlamentar`/`codigoColegiado`/`dataReferencia`); `prazos` → prazos regimentais/constitucionais (registros brutos da API; aceita `dataReferencia`). Todos aceitam `idProcesso` e/ou `codigoMateria` e período `dataInicio`/`dataFim` (YYYYMMDD ou ISO) — informe pelo menos um filtro. Retorna `{ secao, count, total, aviso?, itens }`, limitado a `limite` (padrão 100, máx. 500). Obtenha o `idProcesso` via `senado_search_processos`; tipos de prazo via `senado_tabelas_processo`. Ex.: `{ secao: 'emendas', codigoMateria: 137999 }` ou `{ secao: 'relatorias', codigoParlamentar: 4994, dataReferencia: '2025-06-01' }`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_autores_atuais (Autores em exercício) - Lista parlamentares autores de processos em tramitação, ordenados por produção (maior número de matérias primeiro). Atenção à semântica: 'atual' significa 'com processo AINDA EM TRAMITAÇÃO', não 'mandato vigente' — a lista mistura senadores, deputados e ex-parlamentares, e a mesma pessoa pode aparecer 2× com códigos distintos (ex.: como 'Senador' e como 'Deputado', pelo `tratamento`); não use como lista de senadores em exercício (para isso, `senado_listar_senadores`). Retorna `{ count, total, autores }`, cada autor com `codigo`, `nome`, `tratamento`, `uf` e `quantidadeMaterias`. Filtros opcionais `uf` e `nome` (busca parcial sem acento); `limite` padrão 50 (máx. 1000). Use o `codigo` em `senado_obter_senador` ou `senado_search_processos` (codigoParlamentarAutor). Endpoint: https://senado.sidneybissoli.com/mcp
- senado_tabelas_processo (Tabelas de referência de processos) - Consulta tabelas de referência do processo legislativo para resolver códigos/siglas, conforme `tabela`. Domínios de entidade: `siglas` (siglas de proposição), `assuntos`, `classes`, `destinos`, `entes`. Domínios de tipo (código→descrição): `tipos-situacao`, `tipos-decisao`, `tipos-autor`, `tipos-atualizacao`, `tipos-documento`, `tipos-conteudo-documento`, `tipos-prazo`. Retorna `{ tabela, count, total, linhas }` — `count` é o nº após o corte por `limite` e `total` o disponível; `count < total` indica truncagem (aumente `limite`); `count` 0 quando o `filtro` não casa. Cada linha traz código/sigla e descrição (campos conforme a API). Use antes de filtrar em `senado_search_processos`/`senado_processo_detalhe`. Para as tabelas do plenário (tipos de sessão, legislaturas) use `senado_tabelas_plenario`. Ex.: `{ tabela: 'tipos-prazo' }` ou `{ tabela: 'siglas', filtro: 'PEC' }`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_ecidadania_listar_consultas (Listar consultas públicas) - Lista consultas públicas do e-Cidadania (conjunto completo das **abertas** — toda matéria em tramitação, ~7,7 mil), em que cidadãos votam sim/não. Retorna `{ count, consultas }`, cada consulta com `id`, `materia`, `ementa`, `votosSim`/`votosNao`/`totalVotos`, `percentualSim`/`percentualNao`, `status` e `url`. Toda consulta entra como `aberta`; quando a matéria sai de tramitação ela passa a `encerrada` (o conjunto `encerrada`/`todas` cresce com o tempo). Consultas encerradas antes da 1ª ingestão não são capturadas. Aceita `limite` (padrão 20). Para o detalhe de uma consulta chame `senado_ecidadania_obter_consulta` com o `id`; para recortes analíticos (consenso/polarização) use `senado_ecidadania_consultas_analise`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_ecidadania_obter_consulta (Detalhar consulta pública) - Obtém o detalhe de uma consulta pública específica do e-Cidadania. Retorna um objeto com `id`, `materia`, `ementa`, `votosSim`/`votosNao`/`totalVotos`, `percentualSim`/`percentualNao`, `status`, `autor`, `relator`, `url`. O portal não publica o período da consulta: `dataAbertura`/`dataEncerramento` (e `comissao`/`linkMateria`) vêm sempre `null` — a consulta abre quando a matéria entra em tramitação e encerra quando sai, refletido em `status`. O campo `comentarios` vem `null`: a página de consulta não possui recurso de comentários. Obtenha o `id` antes via `senado_ecidadania_listar_consultas` ou `senado_ecidadania_consultas_analise`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_ecidadania_consultas_analise (Análise de consultas públicas) - Analisa o conjunto completo de consultas públicas **abertas** (matérias em tramitação) do e-Cidadania por grau de concordância cidadã, conforme `modo`: `consenso` → consultas com alta concentração de votos numa direção, ordenadas da maior para a menor concentração; usa `percentualMinimo` (padrão 85%). `polarizada` → consultas com votação equilibrada (~50/50), ordenadas da menor para a maior diferença sim/não; usa `margemPolarizacao` (padrão 15 pontos). Analisa por padrão consultas `aberta` (opinião pública atual). Quando a matéria sai de tramitação a consulta passa a `encerrada`, então `status: "encerrada"`/`"todas"` cobrem o conjunto que foi encerrado desde a ingestão (cresce com o tempo); fechadas antes da 1ª carga não são capturadas. Todos os modos aceitam `minimoVotos` (padrão 1000) e `limite` (padrão 10). Retorna `{ modo, criterio, count, consultas }`. É esta a ferramenta para 'consultas mais votadas', ranking ou panorama ATUAL da votação das consultas em tramitação — não confundir com `senado_ecidadania_consultas_votos`, que é o acervo HISTÓRICO (matérias já arquivadas) com quebra por UF. Para o detalhe de uma consulta use `senado_ecidadania_obter_consulta`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_ecidadania_listar_ideias (Listar ideias legislativas) - Lista ideias legislativas propostas por cidadãos no e-Cidadania — **conjunto completo** (corpus persistido em D1, atualizado semanalmente; ~114 mil ideias, incluindo encerradas e convertidas em proposição). Retorna `{ count, ideias }`, cada ideia com `id`, `titulo`, `apoios`, `status` (`aberta`/`encerrada`/`convertida`) e `url` (`autor` e `dataPublicacao` só aparecem no detalhe, vêm `null` aqui). Aceita filtro por `status` e `limite` (padrão 20). Para um ranking das mais apoiadas, ordene por apoios (`ordenarPor: "apoios"`, `ordem: "desc"`). Para o detalhe completo de uma ideia (texto, autor, se virou projeto de lei) chame `senado_ecidadania_obter_ideia` com o `id`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_ecidadania_obter_ideia (Detalhar ideia legislativa) - Obtém o detalhe de uma ideia legislativa do e-Cidadania. Retorna um objeto com `id`, `titulo`, `descricao` (texto completo, truncado em ~2000 caracteres), `apoios`, `dataPublicacao`, `status`, `autor`, `url` e `plConvertido` (sigla/número quando virou projeto de lei). O campo `comentarios` vem `null`: a página de ideia não possui recurso de comentários. Obtenha o `id` antes via `senado_ecidadania_listar_ideias`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_ecidadania_listar_eventos (Listar eventos interativos) - Lista eventos interativos do e-Cidadania (audiências públicas, sabatinas, lives) — conjunto completo (corpus persistido em D1, atualizado semanalmente; ~milhares de eventos, incluindo encerrados). Retorna `{ count, eventos }`, cada evento com `id`, `titulo`, `data`, `hora`, `comissao` (sigla), `comentarios`, `status` (`agendado`/`encerrado`/`cancelado`) e `url`; aceita filtro por `status`, por `comissao` (sigla) e `limite` (padrão 20). Para um ranking dos mais comentados, ordene por comentários (`ordenarPor: "comentarios"`, `ordem: "desc"`). Para o detalhe completo de um evento use `senado_ecidadania_obter_evento`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_ecidadania_obter_evento (Detalhar evento interativo) - Obtém o detalhe completo de um evento interativo do e-Cidadania (audiência, sabatina, live). Retorna um objeto com `id`, `titulo`, `descricao`, `data`, `hora`, `comissao` e `comissaoNomeCompleto`, `local`, `status` (`agendado`/`encerrado`/`cancelado`), `comentarios`, `url`, mais `pauta` (até 15 itens), `convidados` e `videoUrl` (embed do YouTube quando houver, senão `null`) — campos não preenchidos vêm `null` e `id` inexistente retorna erro. Obtenha o `id` antes via `senado_ecidadania_listar_eventos`. Para apenas listar/rankear eventos (sem descrição/pauta/convidados) use `senado_ecidadania_listar_eventos`, não esta. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_ecidadania_sugerir_tema_enquete (Sugerir tema de enquete) - Sugere temas para uma enquete pública mensal (seleção de pauta): analisa o conjunto completo de consultas (abertas) e as ideias do e-Cidadania e elege as de maior engajamento cidadão, filtrando por polarização/consenso e participação mínima. Retorna `{ criteriosAplicados, totalAnalisados, count, totalQualificados, sugestoes }` (até 10), cada sugestão com `tipo` (`consulta`/`ideia`), `id`, `titulo`, `motivo`, `metricas` (participação/polarização) e `url`, ordenadas por participação. `count` é o número de sugestões retornadas (≤10) e `totalQualificados` é quantas passaram nos critérios. Critérios opcionais em `criterios`: `evitarPolarizacao`/`evitarConsenso` (padrão true), `minimoParticipacao` (padrão 500), `apenasEmTramitacao` (padrão true → considera só consultas abertas, com base no status real). Para investigar uma sugestão, use `senado_ecidadania_obter_consulta` ou `senado_ecidadania_obter_ideia` conforme o `tipo`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_ecidadania_consultas_votos (Votos em consultas por UF) - Acervo **histórico** de votos das consultas públicas do e-Cidadania, com **quebra por UF** (fonte: CSV Arquimedes; ~15 mil matérias, atualizado semanalmente). Use apenas quando o pedido for pelo acervo/arquivo histórico ou por votos por estado (UF); para 'consultas mais votadas', ranking ou opinião ATUAL das consultas em tramitação use `senado_ecidadania_consultas_analise`. Diferente de `senado_ecidadania_listar_consultas` (consultas em tramitação): aqui o conjunto é o **arquivo** de matérias já consultadas — `status` vem como `Descontinuado` no arquivo de origem, por isso é tratado como acervo, não como opinião atual. Retorna `{ count, referencePeriod, consultas }`, cada item com `id`, `materia`, `ementa`, `autoria`, `votosSim`/`votosNao`/`totalVotos`, `votosPorUf` (`{ UF: { sim, nao } }`) e `url`. Use `ordenarPor` (`total`/`sim`/`nao`, padrão `total`) e `ordem` para ranking; `uf` para recortar e **ranquear por aquele estado** (só matérias com votos na UF, e cada item ganha `recorteUf`); `materia` para filtrar por código (numérico) ou trecho do nome/ementa; `limite` (padrão 20). Endpoint: https://senado.sidneybissoli.com/mcp
- senado_discursos_senador (Discursos de um senador) - Lista pronunciamentos de um senador, filtráveis por período e casa. `tipo` (padrão `discursos`) alterna entre `discursos` (falas próprias) e `apartes` (intervenções em falas de outros) — muda a fonte upstream e o conteúdo, mantendo a mesma estrutura. Retorna `{ codigoSenador, tipo, count, discursos }` sem paginação (`count` 0 e lista vazia quando não há pronunciamentos no período), cada item com `codigo`, `data`, `casa`, `tipoUsoPalavra`, `resumo`, `indexacao`, `url` e `nomeParlamentar` — sem o texto integral. ATENÇÃO: para `tipo=discursos`, omitir `dataInicio`/`dataFim` faz a fonte retornar SOMENTE os últimos 30 dias (frequentemente vazio) — para o histórico, informe o período explícito (ex.: desde o início do mandato); apenas `apartes` traz o histórico completo sem período. Obtenha o `codigoSenador` via `senado_listar_senadores` e o texto completo em `senado_discurso_texto` (campo `codigo`). Para discursos de todos os senadores num período use `senado_discursos_plenario`, não esta. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_discursos_plenario (Discursos no plenário) - Lista todos os discursos realizados em plenário num período de datas (`dataInicio`/`dataFim` obrigatórias, formato YYYYMMDD). Retorna `{ periodo, count, discursos }`, cada item com `codigo`, `data`, `casa`, `tipoUsoPalavra`, `resumo`, `indexacao`, `url`, `nomeParlamentar`, `codigoParlamentar`, `partido` e `uf`. Para discursos de um parlamentar específico use `senado_discursos_senador`; obtenha o texto integral com `senado_discurso_texto`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_discurso_texto (Texto de um discurso) - Obtém o texto integral de um único pronunciamento pelo `codigoPronunciamento`. Retorna `{ codigoPronunciamento, texto }`, onde `texto` é a transcrição completa (string, podendo ter dezenas de KB — não é truncada nem paginada); `codigo` inexistente ou discurso sem texto retorna erro. Obtenha o `codigoPronunciamento` antes via `senado_discursos_senador` ou `senado_discursos_plenario` (campo `codigo`). Para apenas listar/filtrar discursos (resumo, data, autor) use aquelas ferramentas; esta traz o texto de um discurso já identificado. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_listar_blocos (Listar blocos parlamentares) - Lista todos os blocos parlamentares do Senado e seus partidos membros. Retorna `{ count, blocos }`, onde cada bloco traz `codigo`, `nome`, `nomeApelido`, `dataCriacao`, `dataExtincao` e a lista `partidos` (cada um com `sigla`, `nome`, `dataAdesao`, `dataDesligamento`). A lista inclui a composição HISTÓRICA de cada bloco: partido com `dataDesligamento` preenchida já saiu (a composição atual são os com `dataDesligamento` null) e o mesmo partido pode repetir com períodos de adesão distintos — sem esse filtro um partido parece estar em 2 blocos ao mesmo tempo. Use para descobrir o `codigo` de um bloco e depois detalhá-lo via `senado_obter_bloco`; para lideranças use `senado_liderancas`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_obter_bloco (Detalhar bloco parlamentar) - Obtém detalhes de um bloco parlamentar específico pelo seu código. Retorna um objeto com `codigo`, `nome`, `nomeApelido`, `dataCriacao`, `dataExtincao` e `partidos` (array com `sigla`, `nome`, `dataAdesao`, `dataDesligamento`); `dataExtincao` é `null` para blocos vigentes. `partidos` é a composição HISTÓRICA: quem tem `dataDesligamento` preenchida já saiu do bloco (composição atual = `dataDesligamento` null). Obtenha o parâmetro `codigo` primeiro via `senado_listar_blocos`; código inexistente retorna erro ("Bloco parlamentar não encontrado"). Endpoint: https://senado.sidneybissoli.com/mcp
- senado_liderancas (Lideranças partidárias) - Lista as lideranças do Senado, da Câmara e do Congresso Nacional (líderes, vice-líderes etc.). Retorna `{ count, liderancas }`, cada item com `tipo`, `descricao`, `unidadeLideranca`, `casa`, `dataDesignacao`, `dataTermino`, `numeroOrdemViceLider`, `bloco` (`codigo`/`nome`/`sigla` — preenchido quando a liderança é de bloco; o `codigo` serve em `senado_obter_bloco`), `partido` (`codigo`/`sigla`/`nome` — a unidade liderada, quando liderança de partido) e `parlamentar` (`codigo`, `nome`, `partido` de filiação, `uf`). A fonte NÃO publica a UF do parlamentar (vem sempre `null`) — obtenha-a via `senado_obter_senador` pelo `codigo`. Filtre por `casa` (SF/CN/CD), `codigoParlamentar`, `vigente` (S/N) ou `siglaTipoLideranca`; sem filtros retorna todas as casas. Para a composição de blocos use `senado_listar_blocos`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_mesa (Mesa Diretora) - Lista os membros da Mesa Diretora (presidente, vice-presidentes, secretários). O parâmetro `casa` (padrão `senado`) escolhe entre `senado` (Mesa do Senado Federal) e `congresso` (Mesa do Congresso Nacional). Retorna `{ casa, mesa, count, membros }`, cada membro com `cargo`, `codigo`, `nome`, `partido` e `uf`. Para lideranças partidárias use `senado_liderancas`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_orcamento_parlamentar (Orçamento parlamentar (emendas)) - Emendas parlamentares ao orçamento da União, conforme `tipo` (padrão `emendas`). `tipo: emendas` (proposição) → `{ tipo, count, emendas }`, cada item (lote de emendas de um autor) com `autor`, `codigoAutor`, `quantidadeEmendas`, `anoExecucao`, `materia` (peça orçamentária, p.ex. `LOA 29/2023`), `tipoPl`, `dataOperacao` e `ativo`. `tipo: oficios` (execução — indicação de destino de emendas já aprovadas) → `{ tipo, ano, count, total, aviso?, oficios }`, cada ofício com `id`, `autor`, `protocolo`, `dataInclusao` e `quantidadeEmendas`; filtre pelo `ano` do orçamento da emenda (recomendado — a base cobre vários anos), pagine com `limite`/`pagina`, e use `incluirEmendas: true` para o detalhe de cada emenda (favorecido, CNPJ, órgão, nota de empenho). Nota: no modo oficios, o ofício é o documento de execução que indica o destino do recurso de uma emenda já aprovada (posterior à proposição); a data do ofício difere do ano do orçamento. Para a execução do orçamento interno do próprio Senado (despesas/receitas) use `senado_execucao_orcamentaria`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_buscar_legislacao (Buscar legislação federal) - Busca normas jurídicas federais **já promulgadas** (leis, decretos, leis complementares, emendas constitucionais etc.) combinando os filtros `tipo`, `numero`, `ano` e `data` em modo AND; informe ao menos um: uma chamada sem nenhum filtro retorna erro determinístico, não uma lista vazia. Somente leitura, sem efeitos colaterais; consulta ao vivo à base oficial de dados abertos, cujos resultados podem variar entre chamadas. Retorna `{ count, normas }` sem paginação: `count` é o total de normas que casam (0, sem erro, quando nenhuma casa) e cada item traz `codigo`, `tipo`, `descricaoTipo`, `numero`, `ano`, `data` (ISO AAAA-MM-DD), `norma`, `ementa` e `apelido`, com `null` nos campos ausentes. Passe o `codigo` a `senado_obter_legislacao` para obter a indexação temática e a URL do texto integral. Para **proposições ainda em tramitação** (PEC, PL, PLP, MPV) use `senado_buscar_materias`; esta ferramenta cobre apenas normas já promulgadas. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_obter_legislacao (Detalhar norma legal) - Obtém o detalhe de uma norma federal já promulgada pelo seu `codigo` interno. Somente leitura, sem efeitos colaterais; consulta ao vivo à base oficial de dados abertos. Retorna um objeto com `codigo`, `tipo`, `descricaoTipo`, `numero`, `ano`, `data` (ISO AAAA-MM-DD), `norma`, `apelido`, `ementa`, `indexacao` (termos temáticos) e `url` do texto integral — campos ausentes na norma vêm `null`, e `codigo` inexistente retorna erro "Norma não encontrada", não um objeto vazio. Obtenha o `codigo` antes via `senado_buscar_legislacao` (é o identificador interno da norma, não o número da lei). Para localizar normas por tipo/número/ano use `senado_buscar_legislacao`; esta serve só para o detalhe de uma norma já identificada. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_votacao_comissao (Votações em comissão) - Lista votações em comissões. O parâmetro `por` (padrão `comissao`) define o eixo da consulta: `por: comissao` → exige `siglaComissao`; lista as votações daquela comissão. `por: senador` → exige `codigoSenador`; lista os votos do senador em comissões (filtro opcional `comissao`). `por: materia` → exige `sigla`, `numero` e `ano` (ex.: PL 2630/2020); lista as votações da proposição em comissões (filtro opcional `comissao`). Em todos os casos aceita período opcional `dataInicio`/`dataFim` (YYYYMMDD, filtrado pela data da reunião) e retorna `{ por, ...contexto, count, votacoes }`, cada votação com `codigo`, `data`, `comissao`, `reuniao`, `materia`, `descricao`, totais computados dos votos (`totalSim`/`totalNao`/`totalAbstencao`) e `votos` (senador, partido, voto). Sem paginação. Períodos amplos podem estourar o tempo-limite da consulta (erro de timeout): prefira janelas de até 3 meses e divida períodos maiores em chamadas sucessivas. Obtenha siglas via `senado_listar_comissoes`, `codigoSenador` via `senado_listar_senadores`; para votações no plenário use `senado_votos_materia`. Atenção: o `codigo` de cada votação de comissão pertence a um espaço de numeração próprio e NÃO é válido em `senado_obter_votacao` (que é exclusivo de plenário) — podem coincidir numericamente, mas apontam para votações diferentes. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_notas_taquigraficas (Notas taquigráficas) - Transcrição oficial (notas taquigráficas) de uma sessão plenária ou reunião de comissão, em blocos sequenciais. Retorna `{ id, tipo, sessao, data, totalBlocos, aviso?, blocos }`; `id` inexistente ou sem transcrição no acervo retorna `totalBlocos` 0 com `aviso` explicando. Cobertura: sessões plenárias do SF (deliberativas, não deliberativas, especiais) são transcritas em poucos dias; sessões CONJUNTAS do Congresso, canceladas/não realizadas e algumas solenes NÃO têm notas (a mídia pode existir em `senado_videos_taquigrafia`). `modo` governa o payload: `resumo` (padrão) traz por bloco `sequencia`, `dataInicio/Fim`, `trecho` (200 chars), `caracteres` e `linkAudio`, limitado a `limite` (padrão 20; pagine com `sequenciaInicio`, `aviso` sinaliza corte); `texto` traz o conteúdo integral de até 20 blocos por chamada (janela `sequenciaInicio`→`sequenciaFim`) e inclui `intervalo`. `sequenciaFim` só atua em `modo=texto`. Obtenha o `id` via `senado_agenda_plenario`/`senado_resultado_plenario` (sessão) ou `senado_reuniao_comissao` (reunião); `orador` filtra blocos pelo nome citado. Para a mídia (vídeo/áudio) use `senado_videos_taquigrafia`, não esta. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_videos_taquigrafia (Vídeos da taquigrafia) - Lista os vídeos e áudios (unidades descritivas) de uma sessão plenária ou reunião de comissão. Retorna `{ id, tipo, count, total, aviso?, videos }` (sessão sem mídia no acervo → `count`/`total` 0 com `aviso`; ao passar de `limite` inclui `aviso`). A cobertura de mídia é mais ampla que a das notas: sessões conjuntas do Congresso costumam ter vídeos mesmo sem transcrição, cada item com `codigo`, `data`, `descricao`, `orador`, `duracaoSegundos` e os links `urlVideo`, `urlAudio`, `urlThumbnail`. Obtenha o `id` via `senado_agenda_plenario`/`senado_resultado_plenario` (sessão) ou `senado_reuniao_comissao` (reunião). Para a transcrição textual correspondente use `senado_notas_taquigraficas`, não esta. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_ceaps (Gastos CEAPS (cota parlamentar)) - Despesas da Cota para Exercício da Atividade Parlamentar (CEAPS) dos senadores em um ano. Para perguntas de **maior/menor/média/mediana/distribuição/ranking** ('quem gastou mais CEAPS', 'gasto mediano', 'distribuição das despesas') use `estatisticas=true`: computa min/máx/média/mediana/desvio/percentis sobre TODAS as despesas filtradas e devolve `top`/`bottom` (padrão 10) com identificadores — os modos agregados só somam por grupo e não revelam a distribuição nem o extremo individual. Sem `agruparPor` → `distribuicao` das despesas individuais + `top`/`bottom`; com `agruparPor` (`senador`/`tipo`/`mes`/`fornecedor`) → `grupos[]` ranqueados por soma decrescente (`grupos[0]` = maior gastador), cada um com sua mini-distribuição. Sem `estatisticas`: nos modos agregados (`por-senador`/`por-tipo`/`por-mes`/`por-fornecedor`, padrão `por-senador`) traz `agregado[]` ordenado por `total` desc com `chave`, `total` e `despesas` (contagem); em `modo='detalhe'` traz `despesas[]` (mês, data, senador, tipoDespesa, fornecedor, cnpjCpf, valor). Filtre por `mes`, `codSenador`, `nomeSenador`, `tipoDespesa` ou `fornecedor` (busca parcial); `limite` cap 100 com `aviso` ao truncar. Obtenha `codSenador` via `senado_listar_senadores`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_senadores_admin (Senadores (dados administrativos)) - Dados administrativos dos senadores conforme o parâmetro `tipo`: `auxilio-moradia` → `{ tipo, count, senadores }` (`nome`, `uf`, `partido`, `auxilioMoradia`, `imovelFuncional`; legislatura atual). `escritorios-apoio` → `{ tipo, count, escritorios }` (`senador`, `uf`, `partido`, `setor`, `endereco`, `telefone`). `aposentados` → `{ tipo, count, aposentados }` ex-senadores aposentados pelos planos de previdência do Congresso (IPC e PSSC), com `nome`, `tipo` do plano, `dataInicial`, `remuneracao`. Filtros opcionais `uf` e `nome` (busca parcial) aplicam-se a auxilio-moradia e escritorios-apoio; `nome` também filtra aposentados. Cada `tipo` retorna `count` 0 e lista vazia quando não há registros. Para gastos de cota parlamentar use `senado_ceaps`. Ex.: `{ tipo: 'auxilio-moradia', uf: 'SP' }` ou `{ tipo: 'aposentados' }`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_servidores (Servidores do Senado) - Lista servidores do Senado por `situacao` (ativos, efetivos, comissionados ou inativos), com filtros opcionais por `nome`, `lotacao` e `cargo`. Retorna `{ situacao, count, total, servidores[] }`, cada item com `nome`, `vinculo`, `situacao`, `cargo`, `funcao`, `lotacao`, `anoAdmissao` etc. Aplica `limite` (padrão 50, máx 500) e inclui `aviso` quando há truncamento — refine os filtros. Também conta e lista TODOS os servidores de TODA a estrutura subordinada a uma diretoria/secretaria (não só a lotação direta), cruzando a lotação de cada servidor com o organograma até o nível de serviço: informe a unidade (sigla ou nome, ex.: 'DGER') em `subordinadasA` — use isso para 'quantas pessoas estão sob a Diretoria-Geral', pois filtrar `lotacao` pela sigla-mãe retorna 0 (os servidores ficam em serviços/núcleos subordinados). Nesse modo o retorno traz a unidade resolvida, o total (um piso), os servidores, as unidades não reconhecidas no organograma (`naoClassificados`, com nota explicativa) e os afastados/em trânsito (`afastadosOuEmTransito`); ao responder, verbalize esses conceitos em português corrente — não cite nomes de parâmetros ou campos. Para o organograma em si use `senado_estrutura_organizacional`; para remuneração use `senado_remuneracoes_servidores`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_remuneracoes_servidores (Remuneração de servidores) - Remunerações dos servidores do Senado em `ano`/`mes` de referência (a partir de 2013). Para perguntas de **maior/menor/média/mediana/ranking** ('quem ganhou mais em junho/2026', 'remuneração média') use `estatisticas=true`: computa min/máx/média/mediana/desvio/percentis sobre a folha INTEIRA e devolve `top`/`bottom` (padrão 10) identificados por `nome` (com `idInternoFolha` só para desambiguar homônimos, não para citar) — o modo `resumo`/`detalhe` só vê uma fatia e não acha o extremo real. Cada percentil vem com um `rotulo` legível e a coluna analisada tem rótulo legível em `campoAnalisado`. `campo` escolhe a verba analisada (padrão: remuneração bruta); `consolidarPorServidor` (padrão true) soma as linhas Normal+Suplementar da mesma pessoa antes das estatísticas; `agruparPor='tipoFolha'` devolve estatísticas por grupo (implica não-consolidado). Sem `estatisticas`: `modo=resumo` (padrão) retorna `{ ano, mes, totalRegistros, resumo[] }` agregado por `tipoFolha`; `modo=detalhe` retorna `{ count, total, remuneracoes[] }` com a composição individual, limitada por `limite` (padrão 50, máx 500). Filtros `nome`/`tipoFolha` aplicam antes de tudo. Para o cadastro de servidores use `senado_servidores`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_horas_extras (Horas extras de servidores) - Horas extras pagas a servidores do Senado em `ano`/`mes` de referência (a partir de 2013). Para perguntas de **maior/menor/média/mediana/distribuição/ranking** ('quem recebeu mais horas extras', 'valor mediano de hora extra', 'distribuição dos pagamentos') use `estatisticas=true`: computa min/máx/média/mediana/desvio/percentis sobre TODAS as linhas filtradas (`valorTotal`) e devolve `top`/`bottom` (padrão 10) com identificadores. Sem `agruparPor` → `distribuicao` das linhas individuais + `top`/`bottom`; com `agruparPor` (`nome`/`competencia`) → `grupos[]` ranqueados por soma decrescente (`grupos[0]` = quem mais recebeu; por `nome` soma as linhas do mesmo servidor no mês), cada um com sua mini-distribuição. Sem `estatisticas`: retorna `{ ano, mes, count, total, valorTotal, horasExtras[] }`, onde `valorTotal` soma o gasto do mês e cada item traz `nome`, `valorTotal`, `horasExtras`, `competencia` e `pagamento`. Filtro opcional por `nome` (busca parcial) e `limite` (padrão 100, máx 500; ignorado quando estatisticas=true). Para a remuneração completa do servidor use `senado_remuneracoes_servidores`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_pessoal_tabelas (Tabelas de gestão de pessoas) - Tabelas de pessoal do Senado conforme o parâmetro `tabela`. Quantitativos agregados: `pessoal` (força de trabalho por classe/escolaridade), `cargos-funcoes` (cargos em comissão e funções de confiança), `previsao-aposentadoria`, `senadores`. Listas nominais: `estagiarios` (ativos), `pensionistas`, `lotacoes` (setores), `cargos` (nomes de cargos). Retorna `{ tabela, count, total, aviso?, registros[] }` — registros agregados (nos quantitativos) ou nominais (nas listas), conforme a `tabela`, limitados por `limite` (padrão 100, máx 2000); `count` 0 e lista vazia quando a tabela não tem registros. O `filtro` textual opcional casa contra qualquer campo do registro. Para o cadastro nominal de servidores efetivos/comissionados use `senado_servidores`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_contratos (Contratos do Senado) - Busca contratos administrativos do Senado por fornecedor, CNPJ, ano, número, objeto ou mão de obra (base completa baixada e filtrada no Worker; busca parcial sem acento em objeto/fornecedor/número). Retorna `{ count, total, contratos }`, onde cada item traz `id`, `numero`, `objeto`, `empresa {nome, cnpj}`, `subEspecie`, `dataAssinatura`, `vigencia` e `unidadeGestora`. Atenção: a fonte NÃO publica o valor do contrato (nenhum campo monetário aqui nem nas seções de detalhe; apenas a seção `aditivos` de `senado_contratacao_detalhe` traz `valor`, referente ao termo aditivo) — não gaste chamadas procurando valor. A lista mistura subespécies (CT = contratos, AC = acordos de cooperação, TD = termos de doação etc.); distinga pelo campo `subEspecie` retornado. Limitado a `limite` itens (padrão 50, máx 500), com `aviso` quando há truncamento. Use o `id` retornado em `senado_contratacao_detalhe` para itens, pagamentos, garantias ou aditivos. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_contratacao_detalhe (Detalhar contratação) - Detalha uma seção específica de uma contratação já identificada pelo `id`. `tipo` indica a natureza do registro: `contratos` (contrato firmado; padrão), `atas_registro_preco` (compromisso de preços para compras futuras) ou `notas_empenho` (reserva orçamentária do gasto). `secao` escolhe o aspecto: `itens`, `pagamentos`, `garantias` (qualquer `tipo`), `aditivos` (só `contratos`) ou `acionamentos` (só `atas_registro_preco`). Retorna `{ id, tipo, secao, count, total, itens }` com os registros brutos da seção (campos conforme a API administrativa), limitados a `limite` (padrão 100, máx 500) — `count < total` indica truncagem; seção sem registros retorna `count` 0 e `itens` vazio; combinações `secao`×`tipo` inválidas (ex.: `aditivos` fora de contratos) retornam erro. Atenção: a fonte NÃO publica o valor do contrato em nenhuma seção; apenas `aditivos` traz `valor`, referente ao termo aditivo (às vezes nulo) — não procure valor monetário em itens/pagamentos/garantias. Obtenha o `id` via `senado_contratos` ou `senado_contratacoes_lista` — para localizar a contratação (não detalhá-la) use aquelas ferramentas. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_licitacoes (Licitações do Senado) - Busca licitações do Senado por número exato (ex: `19/2018`) ou texto do objeto. Retorna `{ count, total, licitacoes }` com os registros brutos da API administrativa, limitados a `limite` (padrão 50, máx 500). Exige ao menos `numero` ou `objeto` (sem filtro retorna erro). Para o contrato resultante de uma licitação, use `senado_contratos`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_terceirizados (Terceirizados) - Lista colaboradores terceirizados do Senado, filtráveis (busca parcial, sem acento) por nome, empresa contratada ou lotação. Retorna `{ count, total, terceirizados }`, cada item com `nome`, `cpf`, `situacao`, `empresa`, `lotacao` e `numeroContrato`. A lista completa é baixada e filtrada no Worker; resultados limitados a `limite` (padrão 50, máx 500), com `aviso` ao truncar. Para a empresa contratante e seus contratos, use `senado_empresas_contratadas`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_empresas_contratadas (Empresas contratadas) - Busca empresas que contratam com o Senado por nome (mín. 3 caracteres) ou CNPJ/CPF (busca parcial). Retorna `{ count, total, empresas }`, cada item com `id`, `nome`, `cnpj`, `contratos` (até 30 números) e `totalContratos`. Exige `nome` ou `cnpj` (a base completa é grande); limitado a `limite` (padrão 20, máx 100). Use o `id`/número de contrato em `senado_contratos` ou `senado_contratacao_detalhe` para o detalhamento. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_contratacoes_lista (Listar contratações) - Lista, conforme `tipo`, atas de registro de preço, notas de empenho ou menores aprendizes do Senado, com filtro textual opcional aplicado no Worker sobre todos os campos. Retorna `{ tipo, count, total, registros }`; para `atas_registro_preco`/`notas_empenho` cada registro segue o formato de contrato (`id`, `numero`, `objeto`, `empresa`, `subEspecie`, `vigencia`...), enquanto `menores_aprendizes` vêm como registros brutos da API (campos não normalizados). Ordenação por `ordem` sobre a sequência de id do upstream: `desc` (padrão) = mais recentes primeiro, `asc` = mais antigos primeiro; `offset` pula registros para paginar a cauda. Limitado a `limite` (padrão 50, máx 500), com `aviso` ao truncar; `tipo` sem registros retorna lista vazia. Para aprofundar uma ata/empenho, use o `id` em `senado_contratacao_detalhe`. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_suprimento_fundos (Suprimento de fundos) - Suprimento de fundos do Senado (adiantamentos a supridos): relação anual de supridos, atos de concessão, empenhos, movimentações ou transações de cartão corporativo, conforme `tipo`. Retorna `{ ano, tipo, count, total, registros }` (snake_case da API administrativa), filtrável por `filtro` textual e limitado por `limite` (padrão 100, máx 500); ao truncar, inclui `aviso`. Para maior/menor/média/mediana/distribuição/ranking ('quem mais recebeu', 'fornecedor com maior gasto', 'valor mediano') use `estatisticas=true` (só nos tipos `transacoes`, `empenhos`, `atos-concessao` — os demais não têm coluna de valor): SEM `agruparPor` = distribuição das linhas (min/máx/média/mediana/percentis) + top/bottom; COM `agruparPor` = grupos ranqueados por soma decrescente (grupos[0]=maior). A coluna de valor analisada é escolhida automaticamente conforme o `tipo`; o resultado já traz o rótulo legível dela em `campoAnalisado`. Registros sem valor são excluídos das estatísticas. Em atos de concessão, cada beneficiário é identificado pelo NOME (cruzado com o cadastro de supridos) e pode-se usar `agruparPor='suprido'` para ranquear por beneficiário. Informe o `ano` (>=2010); use os mesmos códigos administrativos vistos em `senado_contratacoes_lista` ou `senado_execucao_orcamentaria` para cruzar gastos. Endpoint: https://senado.sidneybissoli.com/mcp
- senado_execucao_orcamentaria (Execução orçamentária do Senado) - Execução orçamentária do Senado: despesas (dotação, empenhado, liquidado, pago; desde 2013) ou receitas próprias (previstas e arrecadadas; desde 2012). Para maior/menor/média/mediana/distribuição/ranking ('quanto o Senado pagou/arrecadou com X', 'maior grupo de despesa') use `estatisticas=true`: SEM `agruparPor` = distribuição das linhas (min/máx/média/mediana/percentis) + top/bottom; COM `agruparPor` = grupos ranqueados por soma decrescente (grupos[0]=maior). A coluna de valor analisada é escolhida automaticamente conforme o `tipo`; o resultado já traz o rótulo legível dela em `campoAnalisado`. Retorna `{ tipo, modo, ano, totalLinhas, ... }`: nos modos agregados, `agregado[]` com `{ chave, ...valores }` ordenado por valor; em `detalhe`, `despesas[]`/`receitas[]` limitado por `limite` (padrão 100, com `aviso` ao truncar). Use `tipo=despesas` com `modo` por-ano/por-acao/por-grupo/por-fonte e `tipo=receitas` com por-origem; filtre por `ano` para reduzir o volume antes de pedir `detalhe`. Única ferramenta de orçamento interno do Senado; não confundir com `senado_orcamento_parlamentar` (emendas/ofícios parlamentares ao orçamento da União). Endpoint: https://senado.sidneybissoli.com/mcp
- senado_estrutura_organizacional (Estrutura organizacional) - Estrutura organizacional (organograma) do Senado Federal até o nível de serviço. Dada uma `unidade` (sigla como 'DGER' ou nome como 'Diretoria-Geral'), retorna `{ unidade, caminho[], totalSubordinadas, subordinadas[] }`: `caminho` são os órgãos superiores (da cúpula até o superior imediato) e `subordinadas` são TODAS as unidades da subárvore (secretarias, coordenações, serviços e núcleos), cada uma com `sigla`, `nome` e `nivel` (profundidade relativa). Use para responder 'o que está sob a DGER', 'quais secretarias/serviços pertencem a X' ou para entender a hierarquia administrativa. Para CONTAR ou LISTAR servidores sob uma unidade, use `senado_servidores` com `subordinadasA`. Fonte: portal institucional (a API de dados abertos não publica a árvore completa). Endpoint: https://senado.sidneybissoli.com/mcp

## Resources
- senado://guia - Guia de uso do Senado BR MCP Visão geral do servidor e qual ferramenta usar para cada objetivo. MIME type: text/markdown
- senado://catalogo - Catálogo de ferramentas Lista das 67 ferramentas agrupadas por domínio. MIME type: text/markdown
- senado://glossario - Glossário do Senado Siglas e termos do processo legislativo e da administração do Senado. MIME type: text/markdown
- senado://tabelas/tipos-materia - Tabela: tipos de matéria Siglas, nomes e descrições dos tipos de proposição legislativa. MIME type: application/json
- senado://tabelas/ufs - Tabela: unidades federativas As 27 UFs do Brasil (sigla e nome). MIME type: application/json

## Prompts
- senado_gastos_senador - Gastos do senador (CEAPS) Guia o passo a passo para analisar as despesas da cota parlamentar (CEAPS) de um senador num ano, usando senado_listar_senadores e senado_ceaps. Arguments: senador, ano
- senado_tramitacao_materia - Tramitação de uma matéria Guia o passo a passo para obter a situação atual e o histórico de tramitação de uma proposição, usando senado_buscar_materias e senado_obter_materia. Arguments: sigla, numero, ano
- senado_votos_senador - Como votou um senador Guia o passo a passo para listar os votos nominais de um senador num período, usando senado_listar_senadores e senado_votacoes_senador. Arguments: senador, periodo
- senado_panorama_ecidadania - Panorama do e-Cidadania Guia o passo a passo para consolidar consultas (consenso/polarização), ideias e eventos populares do portal e-Cidadania.

## Metadata
- Owner: io.github.SidneyBissoli
- Version: 3.4.0
- Runtime: Npm
- Transports: STDIO, HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 8, 2026
- Source: https://registry.modelcontextprotocol.io
