senado-br-mcp
MCP Server para dados abertos do Senado Federal Brasileiro - legisladores, projetos de lei, votações, comissões
Documentação
⚠️ Obsoleto — este repositório foi movido
Este servidor não é mais mantido aqui. O servidor MCP do Senado Brasileiro agora está em senado-br-mcp-cloudflare — 66 ferramentas com proveniência de nível 1, disponível tanto hospedado (
https://senado.sidneybissoli.com/mcp, sem configuração) quanto via npm/stdio (npx senado-br-mcp, v3.x). O pacote npmsenado-br-mcpagora publica esse servidor (v3.2.1+); as versões< 3.0.0aqui estão obsoletas. Por favor, migre — este repositório está arquivado.
Servidor MCP do Senado Brasil
Servidor MCP para dados abertos do Senado Federal do Brasil (parlamentares, proposições, votações, comissões).
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.
Veja em ação
Pergunte ao seu assistente, em português simples:
- "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
As respostas vêm ao vivo das APIs oficiais de dados abertos do Senado — dados reais com proveniência, não números adivinhados a partir de dados de treinamento.
Recursos
- 33 ferramentas para acesso a dados do Senado
- Dados em tempo real da API oficial
- Integração com e-Cidadania: dados de participação cidadã via web scraping
- Respostas JSON estruturadas
- Tratamento de erros com sugestões acionáveis
- TypeScript com segurança total de tipos
- Dois modos de acesso: stdio (npm) e HTTP remoto
Duas Formas de Uso
| Modo | Instalação | Melhor Para |
|---|---|---|
| stdio/npm | npx senado-br-mcp | Usuários técnicos, uso local |
| HTTP remoto | Nenhuma necessária | Usuários não técnicos, acesso em nuvem |
Ambos os modos fornecem acesso às mesmas 33 ferramentas.
Opção 1: stdio/npm (Local)
Instalação
Usando npx (Recomendado):
npx senado-br-mcp
Instalação Global:
npm install -g senado-br-mcp
senado-br-mcp
A partir do Código-Fonte:
git clone https://github.com/SidneyBissoli/senado-br-mcp.git
cd senado-br-mcp
npm install
npm run build
npm start
Configuração do Claude Desktop
Adicione ao seu 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"]
}
}
}
Opção 2: HTTP Remoto (Nuvem)
Nenhuma instalação necessária. Conecte-se diretamente via URL.
Configuração do Claude Desktop
Nas configurações do Claude Desktop, vá em "Adicionar Conector Personalizado" e insira:
- Nome: senado-br-mcp
- URL:
https://senado-br-mcp.up.railway.app/mcp
Endpoints
| Endpoint | Descrição |
|---|---|
GET / | Informações do servidor e documentação |
GET /health | Verificação de integridade |
GET /stats | Estatísticas de uso |
POST /mcp | Endpoint do protocolo MCP |
Limite de Taxa
O servidor HTTP tem um limite mensal de requisições para permanecer no nível gratuito:
- Alertas são enviados em 50%, 80% e 100% do uso
- Quando o limite for atingido, use a versão npm
- O limite é redefinido no 1º dia de cada mês
Ferramentas Disponíveis
Senadores
| Ferramenta | Descrição |
|---|---|
senado_listar_senadores | Lista senadores em exercício ou por legislatura. Filtros: estado (UF), partido |
senado_obter_senador | Obtém informações detalhadas sobre um senador (biografia, mandatos, comissões) |
senado_buscar_senador_por_nome | Busca senadores por nome |
senado_votacoes_senador | Lista como um senador votou. Filtros: ano, intervalo de datas |
Matérias Legislativas
| Ferramenta | Descrição |
|---|---|
senado_buscar_materias | Busca proposições por tipo (PEC, PL, PLP, MPV), número, ano, palavra-chave, autor |
senado_obter_materia | Obtém detalhes da proposição (resumo, autor, situação, relator) |
senado_tramitacao_materia | Obtém o histórico processual da proposição |
senado_textos_materia | Obtém textos da proposição (original, substitutivo, final) com URLs de download |
senado_votos_materia | Obtém resultados de votação de uma proposição |
Votações
| Ferramenta | Descrição |
|---|---|
senado_listar_votacoes | Lista votações em plenário por ano. Filtros: mês, intervalo de datas |
senado_obter_votacao | Obtém detalhes da votação com votos nominais por senador |
senado_votacoes_recentes | Obtém votações recentes (últimos N dias) |
Comissões
| Ferramenta | Descrição |
|---|---|
senado_listar_comissoes | Lista comissões. Filtros: tipo (permanente, temporária, CPI), ativa |
senado_obter_comissao | Obtém detalhes da comissão (presidente, vice-presidente, finalidade) |
senado_membros_comissao | Lista membros da comissão com funções |
senado_reunioes_comissao | Lista reuniões da comissão com pauta |
Agenda
| Ferramenta | Descrição |
|---|---|
senado_agenda_plenario | Obtém a programação da sessão plenária com pauta de votação |
senado_agenda_comissoes | Obtém a programação de reuniões de comissão |
Consulta/Auxiliares
| Ferramenta | Descrição |
|---|---|
senado_legislatura_atual | Obtém informações da legislatura atual (número, período, datas) |
senado_tipos_materia | Lista tipos válidos de proposições (PEC, PL, PLP, MPV, etc.) |
senado_partidos | Lista partidos com contagem de senadores |
senado_ufs | Lista estados com contagem de senadores |
e-Cidadania (Participação Cidadã)
Ferramentas para acessar dados do e-Cidadania — a plataforma de participação cidadã do Senado.
Consultas Públicas
| Ferramenta | Descrição |
|---|---|
senado_ecidadania_listar_consultas | Lista consultas públicas com votação cidadã em proposições pendentes |
senado_ecidadania_obter_consulta | Obtém detalhes da consulta, incluindo votos, autor e comentários |
senado_ecidadania_consultas_polarizadas | Obtém consultas polarizadas (~50/50 votos) — útil para identificar questões divisivas |
senado_ecidadania_consultas_consensuais | Obtém consultas consensuais (>85% em uma direção) — identifica amplo acordo |
Ideias Legislativas
| Ferramenta | Descrição |
|---|---|
senado_ecidadania_listar_ideias | Lista ideias legislativas propostas por cidadãos |
senado_ecidadania_obter_ideia | Obtém detalhes da ideia, incluindo descrição completa e conversão em proposição |
senado_ecidadania_ideias_populares | Obtém ideias legislativas mais apoiadas |
Eventos Interativos
| Ferramenta | Descrição |
|---|---|
senado_ecidadania_listar_eventos | Lista eventos interativos (audiências, sabatinas, transmissões ao vivo) |
senado_ecidadania_obter_evento | Obtém detalhes do evento, incluindo pauta, convidados e link de vídeo |
senado_ecidadania_eventos_populares | Obtém eventos com mais comentários e perguntas de cidadãos |
Ferramentas de Análise
| Ferramenta | Descrição |
|---|---|
senado_ecidadania_sugerir_tema_enquete | Análise assistida por IA para sugerir temas para enquetes mensais com base em métricas de participação |
Nota: As ferramentas do e-Cidadania usam web scraping com limite de taxa e cache. Se o site do e-Cidadania estiver temporariamente indisponível, as ferramentas de API (senadores, proposições, votações) permanecem operacionais.
Exemplos de Uso
Listar senadores de São Paulo
Use senado_listar_senadores with uf: "SP"
Buscar Emendas Constitucionais em 2024
Use senado_buscar_materias with sigla: "PEC", ano: 2024
Obter votações recentes
Use senado_votacoes_recentes with dias: 7
Encontrar um senador por nome
Use senado_buscar_senador_por_nome with nome: "Randolfe"
Obter membros da comissão CCJ
Use senado_membros_comissao with sigla: "CCJ"
Obter consultas públicas polarizadas
Use senado_ecidadania_consultas_polarizadas with minimoVotos: 5000
Obter ideias cidadãs mais apoiadas
Use senado_ecidadania_ideias_populares with limite: 5
Encontrar eventos interativos futuros
Use senado_ecidadania_listar_eventos with status: "agendado"
Formato de Resposta
Todas as ferramentas retornam respostas JSON estruturadas:
Resposta de Sucesso
{
"success": true,
"data": { ... },
"metadata": {
"fonte": "Senado Federal - Dados Abertos",
"dataConsulta": "2024-01-15T10:30:00Z",
"endpoint": "/senador/lista/atual"
}
}
Resposta de Erro
{
"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"
}
}
Desenvolvimento
Pré-requisitos
- Node.js 18+
- npm
Configuração
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
Modo de Desenvolvimento
# stdio mode
npm run dev
# HTTP server mode
npm run dev:server
Verificação de Tipos
npm run typecheck
Testar com o MCP Inspector
npm run inspect
Auto-Hospedagem do Servidor HTTP
Você pode hospedar sua própria instância do servidor HTTP.
Local
npm run build:server
npm run start:server
# Server runs on http://localhost:3000
Railway
- Faça um fork deste repositório
- Conecte o Railway ao seu GitHub
- Implante (detecta automaticamente a configuração do
railway.json) - Defina as variáveis de ambiente:
MONTHLY_REQUEST_LIMIT(padrão: 10000)ALERT_WEBHOOK_URL(opcional, para notificações)
Variáveis de Ambiente
| Variável | Descrição | Padrão |
|---|---|---|
PORT | Porta do servidor | 3000 |
MONTHLY_REQUEST_LIMIT | Limite mensal de requisições | 10000 |
ALERT_WEBHOOK_URL | Webhook para alertas | - |
LOG_LEVEL | Nível de registro | info |
Fontes de Dados
API Oficial
- API: Senado Federal - Dados Abertos
- Documentação: https://legis.senado.leg.br/dadosabertos/docs/
- Formato: JSON
- Autenticação: Nenhuma (dados públicos)
e-Cidadania (Web Scraping)
- Site: e-Cidadania
- Conteúdo: Consultas públicas, ideias legislativas, eventos interativos
- Método: Raspagem de HTML com limite de taxa (1 req/seg) e cache (15min-24h)
- Fallback: Se o e-Cidadania estiver indisponível, as ferramentas de API continuam funcionando
Tipos de Matéria
| Código | Nome | Descrição |
|---|---|---|
| PEC | Proposta de Emenda à Constituição | Emenda Constitucional |
| PL | Projeto de Lei | Projeto de Lei Ordinária |
| PLP | Projeto de Lei Complementar | Projeto de Lei Complementar |
| MPV | Medida Provisória | Medida Provisória |
| PDL | Projeto de Decreto Legislativo | Projeto de Decreto Legislativo |
| PRS | Projeto de Resolução do Senado | Projeto de Resolução do Senado |
| PLC | Projeto de Lei da Câmara | Projeto de Lei da Câmara dos Deputados |
Licença
MIT
Autor
Sidney da Silva Pereira Bissoli
Repositório
https://github.com/SidneyBissoli/senado-br-mcp
Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
Histórico de Versões
1.1.0
- Adicionada integração com e-Cidadania (11 novas ferramentas)
- Infraestrutura de web scraping com limite de taxa e cache
- Análise de consultas públicas (polarizadas/consensuais)
- Acompanhamento de ideias legislativas
- Monitoramento de eventos interativos
- Ferramenta de sugestão de temas para enquetes
1.0.0
- Lançamento inicial
- 22 ferramentas para acesso a dados do Senado
- Ferramentas de senadores, proposições, votações, comissões, agenda e consulta