sejm-mcp
Sejm polonês e direito polonês (ELI) para assistentes de IA: deputados, votações, interpelações, projetos de lei. Somente leitura.
Documentação
Polski · English
Pergunte ao assistente de IA sobre deputados, votações, interpelações e a legislação vigente.
A resposta vem dos dados oficiais do Sejm da República da Polônia, com link para a fonte.
Exemplos • Instalação • Como ler as respostas • O que ele não sabe fazer • Privacidade • Início rápido • Contato • English
O que você pode perguntar
Pergunte normalmente, em português. O assistente verificará os dados no Sejm por conta própria.
- "Como meu deputado votou no projeto de lei orçamentária de 2024?"
- "O Sejm rejeitou o veto do presidente à lei sobre o mercado de criptoativos?"
- "Quantas votações a deputada X faltou e quantos desses dias o Sejm considerou justificados?"
- "Quais interpelações ao ministro da Saúde estão com resposta atrasada?"
- "Em que etapa está o projeto de lei sobre ...?"
- "O que o Sejm vai discutir na próxima sessão?"
- "A lei orçamentária de 2026 já está em vigor e desde quando?"
- "O que diz o art. 52 do Código do Trabalho?"
- "O que muda o art. 1 do projeto do impresso 2457? Mostre a página no arquivo."
Funciona com deputados, bancadas, comissões, votações, interpelações e perguntas, projetos de lei, sessões, transcrições e transmissões, além de atos jurídicos do Diário Oficial (Dziennik Ustaw) e do Monitor Polski.
Perguntas prontas
O servidor também tem seis perguntas prontas (prompts MCP). O cliente as mostra como comandos,
por exemplo, no Claude Code após digitar / (/mcp__sejm__posel), e no Claude Desktop
no botão "+". Cada uma diz ao assistente quais ferramentas usar e que ele deve fornecer um link
para a fonte.
| Pergunta | O que você informa |
|---|---|
Sobre o que o Sejm vota hoje? (glosowania_dzis) | nada |
Quem é esse deputado? (posel) | nome e sobrenome |
Como o deputado votou? (glos_posla) | nome e sobrenome, a lei |
Em que etapa está a lei? (etap_ustawy) | palavras do título ou número do impresso |
Como as bancadas votaram? (kluby_w_glosowaniu) | número da sessão e número da votação |
Essa lei já está em vigor? (czy_obowiazuje) | nome do ato ou endereço, ex.: DU/1974/141 |
Instalação
O servidor roda no seu computador. Além do Claude Desktop, é necessário
Node.js versão 22 ou superior; o comando npx -y sejm-mcp baixa
e executa automaticamente a versão mais recente.
npx -y sejm-mcp # serwer MCP na stdio; zwykle uruchamia go Twój klient, nie Ty
Quando a API do Sejm não responde, este servidor também não responderá. Nesse caso, você pode usar a versão hospedada, que responde a partir de uma cópia noturna do banco de dados: https://mcp.leniwyposel.pl/mcp
Os números sobre deputados (ex.: ausências) vêm diretamente das estatísticas do Sejm e podem diferir dos números do leniwyposel.pl, que usa regras próprias descritas em https://leniwyposel.pl/faq/#inne-niz-w-sejmie (verificações de quórum, janelas de mandato).
Claude Desktop
- Baixe o arquivo
sejm-mcp.mcpb. - Clique duas vezes nele ou arraste-o para a janela do Claude Desktop.
- Clique em Instalar.
Nada mais precisa ser instalado: o Claude Desktop tem seu próprio Node.js. Em uma nova conversa, pergunte qualquer coisa da lista acima.
Claude Code
claude mcp add sejm -- npx -y sejm-mcp
Com a opção --scope user, o servidor estará disponível em todos os seus projetos.
Cursor
Clique no botão Cursor no topo da página ou adicione uma entrada em ~/.cursor/mcp.json
(para um único projeto: .cursor/mcp.json no diretório dele):
{
"mcpServers": {
"sejm": {
"command": "npx",
"args": ["-y", "sejm-mcp"]
}
}
}
VS Code
Clique no botão VS Code no topo da página ou digite no terminal:
code --add-mcp '{"name":"sejm","command":"npx","args":["-y","sejm-mcp"]}'
Para um único projeto, basta o arquivo .vscode/mcp.json:
{
"servers": {
"sejm": {
"type": "stdio",
"command": "npx",
"args": ["-y", "sejm-mcp"]
}
}
}
Windsurf
Adicione uma entrada em ~/.codeium/windsurf/mcp_config.json (ou no Windsurf: Settings → Cascade →
MCP Servers → View raw config) e atualize a lista de servidores:
{
"mcpServers": {
"sejm": {
"command": "npx",
"args": ["-y", "sejm-mcp"]
}
}
}
Outros programas e configuração manual
Qualquer programa que execute servidores MCP locais (Zed, LM Studio, Goose e outros) aceitará a mesma entrada do Cursor e do Windsurf.
Claude Desktop sem o arquivo .mcpb: Settings → Developer → Edit Config. O arquivo fica em
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou
%APPDATA%\Claude\claude_desktop_config.json (Windows). Após salvar, reinicie o programa.
No Windows, se o servidor não iniciar, substitua o comando por
"command": "cmd", "args": ["/c", "npx", "-y", "sejm-mcp"].
No Claude Code, também funciona um plugin com instruções curtas sobre como responder com base
nos resultados: /plugin marketplace add leniwyposel/sejm-mcp, depois /plugin install sejm@sejm-mcp.
Docker
Sem Node.js, em um contêiner (você mesmo cria a imagem a partir do repositório):
docker build -t sejm-mcp https://github.com/leniwyposel/sejm-mcp.git
claude mcp add sejm -- docker run -i --rm sejm-mcp
Em outros clientes, digite "command": "docker", "args": ["run", "-i", "--rm", "sejm-mcp"].
A leitura automática de digitalizações (OCR) também funciona no contêiner. Os impressos baixados
ficam em /tmp do contêiner e desaparecem quando ele é fechado.
Celular e navegador
Por enquanto, não. O sejm-mcp roda no computador, e os aplicativos móveis e versões de navegador dos assistentes se conectam apenas a servidores na internet.
Como ler as respostas
- Toda resposta tem uma fonte. O assistente recebe os endereços dos dados do Sejm dos quais a resposta foi gerada. Em assuntos importantes, clique e verifique.
- Bancada do dia da votação. Vale a bancada em que o deputado estava naquele dia, não a atual.
- Comparecimento segundo o Sejm. Votações perdidas e justificativas são estatísticas do próprio Sejm, sem recálculos.
- Verificação de quórum não é votação. O Sejm verifica o quórum de duas formas: pelo botão "presente" ou pedindo para pressionar qualquer botão. O segundo registro é salvo como votação (ex.: 23.04.2025, 33/5: 145 a favor, 47 contra, 237 abstenções), embora a transcrição diga "Constato quórum". O servidor conhece cinco desses casos com citação da transcrição e os apresenta como "quórum constatado: N presentes". Pressionar na verificação é presença, e não pressionar não conta como ausência nas votações (a estatística do Sejm faz o mesmo cálculo).
- Resultado com base no limite. No veto do presidente e em outras votações que exigem maioria especial, o veredito vem do limite (ex.: 3/5), e não de "a favor" ser maior que "contra".
- Prazo de resposta à interpelação é contado a partir da entrega ao ministro, separadamente para cada destinatário. Prorrogação não é resposta.
- Os dados são atualizados. Cada pergunta vai direto ao Sejm.
- O impresso cita o arquivo e a página. O texto do impresso chega página por página; em cada
página, o assistente recebe o número do impresso, o nome do arquivo (ex.:
2457.pdf), o número da página e um link que abre o PDF nessa página. Peça o link se ele não for fornecido. - Leitura automática não é texto oficial do Sejm. Parte dos impressos são digitalizações sem camada de texto. O servidor pode lê-los automaticamente (OCR, no seu computador; com mais de 10 páginas de uma vez, ele pergunta antes, pois demora) e sempre marca esse texto como "leitura automática, possíveis erros". Verifique números e nomes dessa página no original.
Quando algo der errado
O assistente é obrigado a informar isso no início da resposta, em palavras simples. O que significa:
- "Resultado incompleto". Parte dos dados não chegou: faltou tempo (algumas perguntas exigem dezenas de consultas ao Sejm), o Sejm não retornou algum trecho ou o arquivo PDF era longo demais. O número é então um limite inferior ("pelo menos"). Faça a mesma pergunta novamente: o que já foi baixado fica armazenado por 60 segundos, então uma segunda tentativa rápida geralmente completa o restante. A mesma frase aparece quando a resposta excede 28 mil caracteres: o servidor encurta a lista e informa como obter o restante (próxima parte, limite menor, intervalo de datas mais curto).
- "Mostrados 30 de 69". Nada foi perdido, é apenas a primeira parte de uma lista longa. Peça a continuação.
- O Sejm não responde ou está com falha (erros 500, 502, 503, 504, sem conexão). Não é culpa sua: os dados estão no Sejm, só que agora não é possível baixá-los. Tente novamente em alguns minutos ou use a versão hospedada (https://mcp.leniwyposel.pl/mcp), que responde a partir de uma cópia noturna do banco de dados.
- "O Sejm não tem esse recurso" (erro 404). Na maioria das vezes, número errado de sessão, documento ou impresso, legislatura errada (a atual é a X, desde 2023) ou algo que ainda não existe. Verifique o número ou peça ao assistente para pesquisá-lo primeiro.
- Muitas consultas (erro 429). O Sejm limita temporariamente o número de perguntas. O servidor já tentou novamente; aguarde um minuto.
- Endereço rejeitado. O servidor baixa apenas dados de api.sejm.gov.pl. Outros sites não serão abertos.
O que ele não sabe fazer
- Conhece apenas o que o Sejm publica. O que não está no registro (ex.: quem substituiu quem nos assentos parlamentares, como um senador votou) não será apresentado como fato.
- Lê PDF em três lugares: respostas dos ministros a interpelações e perguntas, textos de atos jurídicos e impressos parlamentares (também DOCX e DOC). Tabelas vêm achatadas em texto simples. Uma digitalização na resposta de um ministro ou em um ato vira link; uma digitalização em um impresso é lida automaticamente pelo servidor mediante solicitação. Registros de reuniões de comissões viram link para PDF.
- Arquivo de impresso de até 20 MB é baixado sem perguntar. O Sejm geralmente não informa o tamanho antecipadamente, então o servidor conta os bytes durante o download: quando o arquivo ultrapassa 20 MB, ele interrompe e pergunta se deseja baixar tudo (com o motivo informado). Para o mesmo arquivo, pergunta uma vez por execução. Arquivos acima de 200 MB não são baixados de forma alguma.
- Não avalia deputados nem cria rankings. Apresenta fatos; as conclusões são suas.
- O assistente de IA ainda pode errar ao transcrever números. A fonte existe justamente para você verificar.
Privacidade
- Roda no seu computador e se conecta exclusivamente a
api.sejm.gov.pl. Suas perguntas não vão nem para nós nem para o serviço leniwyposel.pl. - Apenas lê dados do Sejm. Não lê seus arquivos nem executa programas.
- No disco, salva apenas os impressos baixados, o texto extraído deles, os resultados da leitura
automática (OCR) e o texto de atos jurídicos lido do PDF na base ELI (até o ELI mostrar uma versão
mais recente do ato), para não refazer isso uma segunda vez. Eles ficam no diretório temporário:
~/Library/Caches/sejm-mcp(macOS),~/.cache/sejm-mcp(Linux),%LOCALAPPDATA%\sejm-mcp\Cache(Windows); outro pode ser indicado pela variávelSEJM_MCP_SCHOWEK. O diretório ocupa no máximo cerca de 500 MB: acima disso, o servidor apaga os arquivos menos usados. Ele pode ser excluído a qualquer momento. - A leitura automática de digitalizações (Tesseract com dados do idioma polonês) está no pacote e funciona sem internet: o arquivo do impresso não sai do seu computador.
- Sem contas, chaves, anúncios ou telemetria.
Detalhes técnicos e relato de problemas: SECURITY.md.
Ferramentas
O assistente escolhe sozinho a ferramenta para cada pergunta. Lista para curiosos:
29 ferramentas
| Ferramenta | O que faz | |---|---| | `znajdz_posla` | Busca um deputado por nome, partido, distrito | | `profil_posla` | Dados do deputado e estatísticas de votações segundo o Sejm | | `kluby` | Partidos e grupos parlamentares, sua composição | | `komisje` | Comissões do Sejm, composição, comissões do deputado | | `grupy_bilateralne` | Grupos parlamentares polaco-estrangeiros | | `kadencje` | Mandatos do Sejm desde 1991 | | `lista_posiedzen` | Sessões do Sejm com datas: por padrão, as 10 últimas e as próximas, `wszystkie: true` mandato inteiro, `od`/`do` período | | `porzadek_posiedzenia` | Ordem do dia da sessão | | `glosowania_posiedzenia` | Votações da sessão com resultados; `porzadek: true` organiza-as por pontos da ordem do dia (`odPunktu` para o restante) | | `szukaj_glosowan` | Votações por tema e data | | `glosowanie` | Resultado, quórum, partidos, voto do deputado | | `glosy_posla_w_dniu` | Votos do deputado em um único dia | | `szukaj_pism` | Interpelações e perguntas com prazo de resposta | | `pismo` | Um único documento: prazos, respostas, conteúdo | | `szukaj_procesow` | Projetos de lei e resoluções por título | | `proces` | Etapas do trabalho no projeto | | `szukaj_projektow` | Projetos apresentados ao Sejm | | `druk` | Impresso do Sejm com arquivos | | `tekst_druku` | Texto completo do impresso página por página, índice de artigos, digitalizações e OCR com permissão | | `szukaj_drukow` | Impressos por título e data | | `posiedzenia_komisji` | Reuniões de comissões | | `wypowiedzi_posiedzenia` | Quem falou em determinado dia | | `tresc_wypowiedzi` | Conteúdo do discurso da ata | | `transmisje` | Gravações das sessões | | `szukaj_aktow` | Atos jurídicos por título e ano | | `akt` | Se o ato está em vigor, desde quando, o que o alterou | | `tresc_aktu` | Texto do ato ou artigo na redação atual | | `slownik_eli` | Dicionários da base de atos jurídicos | | `zapytanie_surowe` | Outros dados da API do Sejm |
Licença
Apache 2.0: você pode usar, modificar e distribuir o sejm-mcp para qualquer finalidade, inclusive comercial, desde que mantenha as informações sobre a licença e os autores (arquivo NOTICE). A licença também inclui a concessão de direitos de patente. Criado pela equipe Leniwy Poseł.
Dados
Os dados vêm das APIs públicas da Chancelaria do Sejm da República da Polônia (api.sejm.gov.pl, incluindo a base de atos jurídicos ELI); o projeto não é afiliado à Chancelaria do Sejm. Ao publicar algo com base neles, indique a fonte, por exemplo, "Fonte: Chancelaria do Sejm da República da Polônia, api.sejm.gov.pl", de preferência com o endereço do registro que o assistente recebe em cada resposta.
O sejm-mcp conecta-se apenas a api.sejm.gov.pl. A versão hospedada em leniwyposel.pl/dla-developerow pode adicionar compilações do Leniwy Poseł; essas são disponibilizadas sob a licença CC BY 4.0, com indicação da fonte "Leniwy Poseł, leniwyposel.pl".
Início rápido para desenvolvedores
Três minutos para a primeira resposta:
claude mcp add sejm -- npx -y sejm-mcp # Claude Code
npx -y @modelcontextprotocol/inspector npx -y sejm-mcp # podgląd narzędzi w przeglądarce
Três ideias para começar (cole como prompt):
- Rastreador de lei. "Encontre o projeto de lei sobre …, mostre as etapas do trabalho no Sejm e resuma o que
o art. 1 altera. Para cada frase, forneça o impresso, o arquivo e a página." (
szukaj_procesow,proces,tekst_druku) - Votações da sessão em uma única tabela. "Liste as votações da última sessão do Sejm:
tema, resultado, maioria exigida e como os partidos votaram. Retorne JSON para um gráfico."
(
lista_posiedzen,glosowania_posiedzenia,glosowanie) - Respostas atrasadas de ministros. "Quais interpelações ao ministro … aguardam resposta
há mais de 21 dias desde a entrega? Forneça números e links." (
szukaj_pism,pismo)
Cada resposta traz o endereço do registro em api.sejm.gov.pl, para que seu aplicativo possa vincular à fonte. Lembre-se dos limites em CONTRIBUTING.md: fatos do registro, sem rankings ou avaliações de deputados.
Contato
- Erro na resposta ou ideia: relato no GitHub.
- Correção no código: pull request, primeiro CONTRIBUTING.md.
- Colaboração e mídia: leniwyposel.pl/kontakt.
Relatos e pull requests são bem-vindos; regras em CONTRIBUTING.md.
Foto no cabeçalho: Piotr VaGla Waglowski, domínio público.
English
A versão em inglês deste README: README.en.md.