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

sejm-mcp od Leniwego Posła: Sejm i prawo w Twoim asystencie AI. W tle kopuła sali posiedzeń Sejmu.

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.

Pobierz dla Claude Desktop Zainstaluj w Cursorze Zainstaluj w VS Code

Listed on mcpservers.org sejm-mcp w katalogu Glama

Exemplos • Instalação • Como ler as respostas • O que ele não sabe fazer • Privacidade • Início rápido • Contato • English

Animacja: pytanie po polsku, czy Sejm odrzucił weto prezydenta do ustawy o rynku kryptoaktywów. Asystent wywołuje narzędzia sejm-mcp szukaj_glosowan i glosowanie, odpowiada: nie, weto zostało utrzymane, 241 za przy wymaganych 266 (3/5), i podaje źródło api.sejm.gov.pl/sejm/term10/votings/64/15.

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.

PerguntaO 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

  1. Baixe o arquivo sejm-mcp.mcpb.
  2. Clique duas vezes nele ou arraste-o para a janela do Claude Desktop.
  3. 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ável SEJM_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):

  1. 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)
  2. 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)
  3. 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

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.