mcp-camara

cristianoaredes/mcp-camara

3.2

If you are the rightful owner of mcp-camara and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The MCP Câmara dos Deputados server provides access to comprehensive legislative information from the Brazilian Chamber of Deputies, enabling integration with various AI assistants and platforms.

Tools
5
Resources
0
Prompts
0

MCP Câmara dos Deputados 🇧🇷

npm version npm downloads TypeScript Cloudflare Workers License: MIT

🏛️ Servidor Model Context Protocol (MCP) para acesso aos Dados Abertos da Câmara dos Deputados do Brasil — Integre informações legislativas completas diretamente em Claude Desktop, Cursor, Windsurf, Continue.dev e outros assistentes de IA.

🚀 Implantação multiplataforma: Pacote NPM, Cloudflare Workers, Smithery.

Português |


Português

🇧🇷 Servidor MCP para consulta de dados legislativos da Câmara dos Deputados do Brasil. Acesse informações sobre deputados, proposições, votações, comissões, partidos e eventos legislativos em minutos através de Claude Desktop, Cursor, Windsurf, Continue.dev e qualquer cliente compatível com MCP.

⚡ Instalação Rápida

npm install -g @aredes.me/mcp-camara

Ou execute diretamente com NPX:

npx @aredes.me/mcp-camara

Via Smithery (1 clique)

npx -y @smithery/cli install @aredes.me/mcp-camara --client claude

🔌 Configuração por IDE / Cliente MCP

🤖 Claude Desktop

{
  "mcpServers": {
    "camara": {
      "command": "npx",
      "args": ["@aredes.me/mcp-camara"]
    }
  }
}

Localização: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)

🎯 Cursor IDE

{
  "mcpServers": {
    "camara": {
      "command": "npx",
      "args": ["@aredes.me/mcp-camara"]
    }
  }
}

🏄 Windsurf IDE

{
  "mcpServers": {
    "camara": {
      "command": "npx",
      "args": ["@aredes.me/mcp-camara"]
    }
  }
}

🔄 Continue.dev

{
  "mcpServers": [
    {
      "name": "camara",
      "command": "npx",
      "args": ["@aredes.me/mcp-camara"]
    }
  ]
}

🤖 ChatGPT MCP

Para usar com ChatGPT, configure o servidor Cloudflare Workers como endpoint remoto:

  1. Deploy no Cloudflare Workers: npm run workers:deploy:prod
  2. Configure no ChatGPT:
    • URL do servidor: https://mcp-camara.your-subdomain.workers.dev
    • O ChatGPT detectará automaticamente os endpoints OAuth e MCP
  3. Configure API Key (opcional, via environment variables no Workers)

APIs REST disponíveis:

  • GET /deputados/{id} - Consulta dados de deputado
  • GET /proposicoes/{id} - Consulta dados de proposição
  • GET /votacoes/{id} - Consulta dados de votação
  • GET /eventos/{id} - Consulta dados de evento

✅ Teste rápido:

Pode buscar informações sobre o deputado com ID 220593?

🛠️ Ferramentas Disponíveis

👥 Deputados (15 ferramentas)

Obtenha informações completas sobre deputados federais brasileiros:

  • 🔍 deputados_listar — Lista deputados com filtros (nome, partido, UF, legislatura)
  • 📋 deputados_obter — Detalhes completos incluindo biografia e contato
  • 💰 deputados_despesas — Despesas e reembolsos com detalhamento completo
  • 🎤 deputados_discursos — Discursos em plenário e intervenções parlamentares
  • 📅 deputados_eventos — Participação em eventos e registros de presença
  • 📊 deputados_frentes — Frentes parlamentares e bancadas temáticas
  • 🏛️ deputados_orgaos — Participação em órgãos e comissões
  • 📜 deputados_profissoes — Lista de profissões declaradas por deputados
  • 📄 deputados_ocupacoes — Ocupações profissionais
  • 🎓 deputados_historico — Histórico legislativo e mandatos
  • 📸 deputados_foto — URL da fotografia oficial
  • 🗳️ deputados_mesa — Cargos ocupados na Mesa Diretora
  • 📋 deputados_liderancas — Posições de liderança
  • 🏅 deputados_cargos — Cargos atuais e anteriores
  • 📊 deputados_votacoes — Registro de votações e posicionamentos

📜 Proposições (10 ferramentas)

Acesse propostas legislativas, projetos de lei e emendas:

  • 🔍 proposicoes_listar — Lista proposições com filtros avançados (tipo, ano, autor, situação)
  • 📋 proposicoes_obter — Detalhes completos incluindo texto integral e situação
  • 👥 proposicoes_autores — Autores e coautores de proposições
  • 📄 proposicoes_relacionadas — Proposições relacionadas e dependências
  • 🗳️ proposicoes_votacoes — Todas as votações de uma proposição
  • 📝 proposicoes_tramitacoes — Histórico de tramitação e situação atual
  • 🏛️ proposicoes_temas — Classificação temática
  • 📎 proposicoes_arquivos — Documentos e arquivos anexados
  • 🔗 proposicoes_referencias — Referências legais e citações
  • 📊 proposicoes_tipos — Tipos de propostas legislativas

🗳️ Votações (4 ferramentas)

  • 🔍 votacoes_listar — Lista votações
  • 📋 votacoes_obter — Detalhes de uma votação
  • 👥 votacoes_votos — Votos individuais
  • 📊 votacoes_orientacoes — Orientações de bancadas

🏛️ Comissões (5 ferramentas)

  • 🔍 orgaos_listar — Lista comissões e órgãos
  • 📋 orgaos_obter — Detalhes de uma comissão
  • 👥 orgaos_membros — Membros da comissão
  • 📅 orgaos_eventos — Eventos da comissão
  • 🗳️ orgaos_votacoes — Votações da comissão

🎯 Partidos (6 ferramentas)

Analise partidos políticos e blocos parlamentares:

  • 🔍 partidos_listar — Lista todos os partidos políticos registrados
  • 📋 partidos_obter — Detalhes do partido incluindo ideologia e liderança
  • 👥 partidos_membros — Membros atuais e filiações partidárias
  • 🤝 blocos_listar — Lista blocos parlamentares e coligações
  • 📋 blocos_obter — Composição e partidos membros do bloco
  • 🏛️ partidos_liderancas — Posições de liderança partidária

📅 Eventos (7 ferramentas)

Acompanhe o calendário e atividades legislativas:

  • 🔍 eventos_listar — Lista todos os eventos legislativos com filtros de data e tipo
  • 📋 eventos_obter — Informações detalhadas incluindo local e participantes
  • 🏛️ eventos_orgaos — Eventos organizados por comissões ou órgãos específicos
  • 👥 eventos_deputados — Eventos com participação de deputado específico
  • 📜 eventos_pauta — Pauta e itens de discussão do evento
  • 📝 eventos_situacoes — Situação do evento (agendado, em andamento, concluído, cancelado)
  • 🎯 eventos_tipos — Tipos de eventos legislativos

📚 Dados de Referência (15 ferramentas)

Acesse tabelas de referência e sistemas de classificação:

  • 🏛️ referencias_legislaturas — Lista todas as legislaturas com períodos
  • 🎯 referencias_situacoes_deputado — Códigos de situação de deputados (ativo, licenciado, etc.)
  • 📊 referencias_situacoes_evento — Classificações de situação de eventos
  • 🗳️ referencias_situacoes_proposicao — Códigos de situação de proposições
  • 📋 referencias_tipos_proposicao — Tipos de propostas legislativas (PL, PEC, etc.)
  • 🏛️ referencias_tipos_orgao — Tipos de órgãos legislativos
  • 📅 referencias_tipos_evento — Classificações de tipos de eventos
  • 🗳️ referencias_tipos_votacao — Tipos e procedimentos de votação
  • 🎓 referencias_escolaridades — Níveis de escolaridade
  • 🌍 referencias_ufs — Estados e territórios brasileiros
  • 🏙️ referencias_municipios — Municípios por estado
  • 📊 referencias_situacoes_orgao — Códigos de situação de comissões
  • 🎯 referencias_situacoes_membro — Códigos de situação de membros
  • 📜 referencias_cargos_orgao — Tipos de cargos em comissões
  • 🏅 referencias_tipos_lideranca — Tipos de posições de liderança

🧪 Testes em Linha de Comando

Servidor HTTP + SSE local

npm run build
MCP_TRANSPORT=http MCP_HTTP_PORT=3000 node build/lib/bin/mcp-camara.js

Em outro terminal:

# Listar ferramentas
curl http://localhost:3000/mcp -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

# Buscar deputado
curl http://localhost:3000/deputados/220593

# Listar proposições
curl http://localhost:3000/mcp -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "proposicoes_listar", "arguments": {"siglaTipo": "PL", "ano": 2024}}}'

Health check rápido

curl -i http://localhost:3000/health

🌐 Deploy Web (Opcional)

Opções de Hospedagem

Cloudflare Workers: Implante como API globalmente distribuída (serverless)

VPS/Cloud Server: Hospede em servidor dedicado para controle total

Cloudflare Workers (Serverless)
# 1. Instalar dependências
npm install

# 2. Build do projeto
npm run build

# 3. Criar namespaces KV
npm run workers:kv:create

# 4. Deploy para desenvolvimento
npm run workers:deploy:dev

# 5. Deploy para produção
npm run workers:deploy:prod

Recursos do Workers:

  • 🔗 REST API: /deputados/{id} · /proposicoes/{id} · /votacoes/{id} · /eventos/{id}
  • 🤖 OpenAPI: /openapi.json
  • 📊 Health: /health
  • 🔐 API Key Authentication: Protegido contra abuso (opcional)
  • Rate Limiting: Configurável via KV
  • 💾 Cache: LRU cache com TTL configurável

Smithery: smithery.yaml para deploy single-click.

🚀 Para ChatGPT MCP

# 1. Deploy no Cloudflare
npm run build
npm run workers:deploy:prod

# 2. Configure no ChatGPT:
# - Server URL: https://your-subdomain.workers.dev
# - O ChatGPT detectará automaticamente OAuth + MCP endpoints

🔒 Segurança (Cloudflare Workers)

API Key Authentication:

  • Protegidos: Endpoints REST (/deputados/*, /proposicoes/*, /votacoes/*, /eventos/*)
  • Não protegidos: Protocolo MCP (/mcp, /sse) - para compatibilidade com AI assistants
# Configure API key
wrangler secret put MCP_API_KEY

# Use via headers (apenas para endpoints REST):
curl -H "X-API-Key: your-key" https://your-worker.workers.dev/deputados/220593
# ou
curl -H "Authorization: Bearer your-key" https://your-worker.workers.dev/deputados/220593

# Endpoints MCP não precisam de autenticação:
curl -X POST https://your-worker.workers.dev/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

Rate Limiting:

  • Configurável via environment variables
  • KV-based para escalabilidade
  • Desativável com MCP_DISABLE_RATE_LIMIT=true
VPS/Cloud Server

Deploy to Hostinger VPS

Para deploy em servidor VPS (Node.js nativo):

# Clone o repositório
git clone https://github.com/cristianoaredes/mcp-camara.git
cd mcp-camara

# Instale dependências
npm install

# Build
npm run build

# Configure variáveis de ambiente
export MCP_TRANSPORT=http
export MCP_HTTP_PORT=3000

# Execute o servidor
node build/lib/bin/mcp-camara.js

Opções de VPS recomendadas:

Configuração com PM2 (recomendado):

# Instalar PM2
npm install -g pm2

# Iniciar com PM2
MCP_TRANSPORT=http MCP_HTTP_PORT=3000 pm2 start build/lib/bin/mcp-camara.js --name mcp-camara

# Configurar para iniciar no boot
pm2 startup
pm2 save

📚 Documentação

  • — Variáveis de ambiente e configurações
  • — Casos práticos e exemplos
  • — Referência completa de ferramentas
  • — Guia de implantação
  • — Documentação do servidor HTTP
  • — Server-Sent Events
  • — Problemas comuns

💼 Casos de Uso

  • 📊 Análise Legislativa — Acompanhe proposições, votações e atividade parlamentar
  • 🔍 Pesquisa Política — Investigue histórico de deputados e partidos
  • 📰 Jornalismo de Dados — Extraia dados para reportagens investigativas
  • 🎓 Pesquisa Acadêmica — Analise comportamento legislativo e padrões de votação
  • 👥 Transparência Pública — Monitore gastos e atividades de deputados
  • 🤖 Chatbots Cívicos — Crie assistentes para informação legislativa

🤝 Contribuição

Contribuições são bem-vindas! Por favor, leia para detalhes sobre nosso código de conduta e processo de submissão de pull requests.

📄 Licença & Créditos

👨‍💻 Autor

Cristiano Aredes
Cristiano Aredes
LinkedIn · cristiano@aredes.me

Made with ❤️ for transparency and civic engagement 🇧🇷