Skip to main content
Glama

Co możesz zapytać

Pytaj zwyczajnie, po polsku. Asystent sam sprawdzi dane w Sejmie.

  • „Jak głosował mój poseł nad ustawą budżetową na 2024 rok?”

  • „Czy Sejm odrzucił weto prezydenta do ustawy o rynku kryptoaktywów?”

  • „Ile głosowań opuściła posłanka X i ile z tych dni Sejm uznał za usprawiedliwione?”

  • „Na które interpelacje do ministra zdrowia odpowiedź się spóźnia?”

  • „Na jakim etapie jest projekt ustawy o …?”

  • „Czym Sejm zajmie się na najbliższym posiedzeniu?”

  • „Czy ustawa budżetowa na 2026 rok już obowiązuje i od kiedy?”

  • „Co mówi art. 52 Kodeksu pracy?”

  • „Co zmienia art. 1 projektu z druku 2457? Pokaż stronę w pliku.”

Działa z posłami, klubami, komisjami, głosowaniami, interpelacjami i zapytaniami, projektami ustaw, posiedzeniami, stenogramami i transmisjami, a także z aktami prawnymi z Dziennika Ustaw i Monitora Polskiego.

Related MCP server: mcp-sejm-proces

Gotowe pytania

Serwer ma też sześć gotowych pytań (MCP prompts). Klient pokazuje je jako polecenia, np. w Claude Code po wpisaniu / (/mcp__sejm__posel), a w Claude Desktop pod przyciskiem „+”. Każde mówi asystentowi, których narzędzi użyć i że ma podać link do źródła.

Pytanie

Co podajesz

Nad czym dziś głosuje Sejm? (glosowania_dzis)

nic

Kim jest ten poseł? (posel)

imię i nazwisko

Jak głosował poseł? (glos_posla)

imię i nazwisko, ustawę

Na jakim etapie jest ustawa? (etap_ustawy)

słowa z tytułu albo numer druku

Jak głosowały kluby? (kluby_w_glosowaniu)

numer posiedzenia i numer głosowania

Czy ta ustawa już obowiązuje? (czy_obowiazuje)

nazwę aktu albo adres, np. DU/1974/141

Instalacja

Serwer działa na Twoim komputerze. Poza Claude Desktop potrzebny jest Node.js w wersji 22 lub nowszej; polecenie npx -y sejm-mcp samo pobierze i uruchomi najnowszą wersję.

npx -y sejm-mcp     # serwer MCP na stdio; zwykle uruchamia go Twój klient, nie Ty

Gdy API Sejmu nie odpowiada, ten serwer też nie odpowie. Wtedy możesz użyć wersji hostowanej, która odpowiada z nocnej kopii bazy: https://mcp.leniwyposel.pl/mcp

Liczby o posłach (np. nieobecności) pochodzą wprost ze statystyk Sejmu i mogą różnić się od liczb na leniwyposel.pl, które stosuje własne reguły opisane na https://leniwyposel.pl/faq/#inne-niz-w-sejmie (apele o kworum, okna mandatów).

Claude Desktop

  1. Pobierz plik sejm-mcp.mcpb.

  2. Kliknij go dwa razy albo przeciągnij do okna Claude Desktop.

  3. Kliknij Zainstaluj.

Nic więcej nie trzeba instalować: Claude Desktop ma własny Node.js. W nowej rozmowie zapytaj o cokolwiek z listy powyżej.

Claude Code

claude mcp add sejm -- npx -y sejm-mcp

Z opcją --scope user serwer będzie dostępny we wszystkich Twoich projektach.

Cursor

Kliknij przycisk Cursor u góry strony albo dopisz wpis do ~/.cursor/mcp.json (dla jednego projektu: .cursor/mcp.json w jego katalogu):

{
  "mcpServers": {
    "sejm": {
      "command": "npx",
      "args": ["-y", "sejm-mcp"]
    }
  }
}

VS Code

Kliknij przycisk VS Code u góry strony albo wpisz w terminalu:

code --add-mcp '{"name":"sejm","command":"npx","args":["-y","sejm-mcp"]}'

Dla jednego projektu wystarczy plik .vscode/mcp.json:

{
  "servers": {
    "sejm": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "sejm-mcp"]
    }
  }
}

Windsurf

Dopisz wpis do ~/.codeium/windsurf/mcp_config.json (albo w Windsurfie: Settings → Cascade → MCP Servers → View raw config) i odśwież listę serwerów:

{
  "mcpServers": {
    "sejm": {
      "command": "npx",
      "args": ["-y", "sejm-mcp"]
    }
  }
}

Każdy program, który uruchamia lokalne serwery MCP (Zed, LM Studio, Goose i inne), przyjmie ten sam wpis co Cursor i Windsurf.

Claude Desktop bez pliku .mcpb: Ustawienia → Developer → Edit Config. Plik leży w ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) albo %APPDATA%\Claude\claude_desktop_config.json (Windows). Po zapisaniu uruchom program ponownie.

Na Windowsie, jeśli serwer się nie uruchamia, zamień polecenie na "command": "cmd", "args": ["/c", "npx", "-y", "sejm-mcp"].

W Claude Code działa też wtyczka z krótką instrukcją, jak odpowiadać na podstawie wyników: /plugin marketplace add leniwyposel/sejm-mcp, potem /plugin install sejm@sejm-mcp.

Docker

Bez Node.js, w kontenerze (obraz budujesz sam z repozytorium):

docker build -t sejm-mcp https://github.com/leniwyposel/sejm-mcp.git
claude mcp add sejm -- docker run -i --rm sejm-mcp

W innych klientach wpisz "command": "docker", "args": ["run", "-i", "--rm", "sejm-mcp"]. Odczyt maszynowy skanów (OCR) działa też w kontenerze. Pobrane druki leżą wtedy w /tmp kontenera i znikają po jego zamknięciu.

Telefon i przeglądarka

Na razie nie. sejm-mcp działa na komputerze, a aplikacje mobilne i przeglądarkowe wersje asystentów łączą się tylko z serwerami w internecie.

Jak czytać odpowiedzi

  • Każda odpowiedź ma źródło. Asystent dostaje adresy danych Sejmu, z których powstała odpowiedź. Przy ważnych sprawach kliknij i sprawdź.

  • Klub z dnia głosowania. Liczy się klub, w którym poseł był tego dnia, a nie dzisiejszy.

  • Frekwencja według Sejmu. Opuszczone głosowania i usprawiedliwienia to statystyka samego Sejmu, bez przeliczeń.

  • Apel o kworum to nie głosowanie. Sejm sprawdza kworum na dwa sposoby: przyciskiem „obecny” albo prośbą o naciśnięcie dowolnego przycisku. Ten drugi rejestr zapisuje jak głosowanie (np. 23.04.2025, 33/5: 145 za, 47 przeciw, 237 wstrzymań), choć stenogram mówi „Stwierdzam kworum”. Serwer zna pięć takich przypadków z cytatem ze stenogramu i podaje je jako „kworum stwierdzone: N obecnych”. Naciśnięcie na apelu to obecność, a brak naciśnięcia nie wlicza się do nieobecności w głosowaniach (tak samo liczy statystyka Sejmu).

  • Wynik z progu. Przy wecie prezydenta i innych głosowaniach wymagających szczególnej większości werdykt wynika z progu (np. 3/5), a nie z tego, czy „za” było więcej niż „przeciw”.

  • Termin odpowiedzi na interpelację liczy się od doręczenia ministrowi, osobno dla każdego adresata. Prolongata to nie odpowiedź.

  • Dane są świeże. Każde pytanie idzie prosto do Sejmu.

  • Druk cytuje plik i stronę. Tekst druku przychodzi strona po stronie; przy każdej stronie asystent dostaje numer druku, nazwę pliku (np. 2457.pdf), numer strony i link, który otwiera PDF na tej stronie. Poproś o link, jeśli go nie podał.

  • Odczyt maszynowy to nie tekst Sejmu. Część druków to skany bez warstwy tekstowej. Serwer może je odczytać maszynowo (OCR, na Twoim komputerze; przy ponad 10 stronach naraz najpierw zapyta, bo to potrwa) i zawsze oznacza taki tekst „odczyt maszynowy, możliwe błędy”. Liczby i nazwiska z takiej strony sprawdź w oryginale.

Gdy coś pójdzie nie tak

Asystent ma obowiązek powiedzieć Ci to na początku odpowiedzi, prostymi słowami. Co to znaczy:

  • „Wynik niepełny”. Część danych nie dotarła: zabrakło czasu (niektóre pytania wymagają dziesiątek zapytań do Sejmu), Sejm nie oddał jakiegoś kawałka albo plik PDF był za długi. Liczba jest wtedy dolną granicą („co najmniej”). Zadaj to samo pytanie jeszcze raz: to, co już pobrano, serwer pamięta przez 60 sekund, więc szybkie drugie podejście zwykle dokończy resztę. To samo zdanie pojawia się, gdy odpowiedź przekroczyła 28 tys. znaków: serwer skraca wtedy listę i podaje, jak dostać resztę (kolejna porcja, mniejszy limit, krótszy przedział dat).

  • „Pokazano 30 z 69”. Nic nie zginęło, to tylko pierwsza porcja długiej listy. Poproś o dalszą część.

  • Sejm nie odpowiada albo ma awarię (błędy 500, 502, 503, 504, brak połączenia). To nie Twoja wina: dane w Sejmie są, tylko teraz nie da się ich pobrać. Spróbuj za kilka minut albo użyj wersji hostowanej (https://mcp.leniwyposel.pl/mcp), która odpowiada z nocnej kopii bazy.

  • „Sejm nie ma takiego zasobu” (błąd 404). Najczęściej zły numer posiedzenia, pisma albo druku, zła kadencja (bieżąca to X, od 2023 r.) albo rzecz, której jeszcze nie ma. Sprawdź numer albo poproś asystenta, żeby go najpierw wyszukał.

  • Za dużo zapytań (błąd 429). Sejm chwilowo ogranicza liczbę pytań. Serwer już ponawiał; odczekaj minutę.

  • Adres odrzucony. Serwer pobiera wyłącznie dane z api.sejm.gov.pl. Innych stron nie otworzy.

Czego nie umie

  • Zna tylko to, co publikuje Sejm. Czego nie ma w rejestrze (np. kto kogo zastąpił w ławach poselskich, jak głosował senator), tego nie poda jako faktu.

  • PDF czyta w trzech miejscach: odpowiedzi ministrów na interpelacje i zapytania, teksty aktów prawnych i druki sejmowe (także DOCX i DOC). Tabele przychodzą spłaszczone do zwykłego tekstu. Skan w odpowiedzi ministra albo w akcie zostaje linkiem; skan w druku serwer odczyta maszynowo na prośbę. Zapisy posiedzeń komisji zostają linkiem do PDF.

  • Plik druku do 20 MB pobiera bez pytania. Sejm zwykle nie podaje rozmiaru z góry, więc serwer liczy bajty w trakcie pobierania: gdy plik przekroczy 20 MB, przerywa i pyta, czy pobrać całość (z podanym powodem). Na ten sam plik pyta raz na uruchomienie. Pliku ponad 200 MB nie pobierze wcale.

  • Nie ocenia posłów i nie układa rankingów. Podaje fakty, wnioski należą do Ciebie.

  • Asystent AI wciąż może się pomylić przy przepisywaniu liczb. Źródło jest po to, żeby to sprawdzić.

Prywatność

  • Działa na Twoim komputerze i łączy się wyłącznie z api.sejm.gov.pl. Twoje pytania nie trafiają ani do nas, ani do serwisu leniwyposel.pl.

  • Tylko czyta dane Sejmu. Nie czyta Twoich plików i nie uruchamia programów.

  • Na dysku zapisuje wyłącznie pobrane druki, tekst z nich odczytany, wyniki odczytu maszynowego (OCR) i tekst aktów prawnych odczytany z PDF w bazie ELI (do czasu, aż ELI pokaże nowszą wersję aktu), żeby nie robić tego drugi raz. Leżą w katalogu podręcznym: ~/Library/Caches/sejm-mcp (macOS), ~/.cache/sejm-mcp (Linux), %LOCALAPPDATA%\sejm-mcp\Cache (Windows); inny wskażesz zmienną SEJM_MCP_SCHOWEK. Katalog zajmuje najwyżej ok. 500 MB: ponad to serwer kasuje najdawniej używane pliki. Można go w każdej chwili skasować.

  • Odczyt maszynowy skanów (Tesseract z danymi języka polskiego) jest w paczce i działa bez sieci: plik druku nie wychodzi z Twojego komputera.

  • Bez kont, kluczy, reklam i telemetrii.

Szczegóły techniczne i zgłaszanie problemów: SECURITY.md.

Narzędzia

Asystent sam wybiera narzędzie do pytania. Lista dla ciekawych:

Narzędzie

Co robi

znajdz_posla

Szuka posła po nazwisku, klubie, okręgu

profil_posla

Dane posła i statystyka głosowań według Sejmu

kluby

Kluby i koła, ich skład

komisje

Komisje sejmowe, skład, komisje posła

grupy_bilateralne

Polsko-zagraniczne grupy parlamentarne

kadencje

Kadencje Sejmu od 1991 roku

lista_posiedzen

Posiedzenia Sejmu z datami: domyślnie 10 ostatnich i najbliższe, wszystkie: true cała kadencja, od/do okres

porzadek_posiedzenia

Porządek obrad posiedzenia

glosowania_posiedzenia

Głosowania posiedzenia z wynikami; porzadek: true układa je pod punktami porządku obrad (odPunktu dla dalszej części)

szukaj_glosowan

Głosowania po temacie i dacie

glosowanie

Wynik, próg, kluby, głos posła

glosy_posla_w_dniu

Głosy posła w jednym dniu

szukaj_pism

Interpelacje i zapytania z terminem odpowiedzi

pismo

Jedno pismo: terminy, odpowiedzi, treść

szukaj_procesow

Projekty ustaw i uchwał po tytule

proces

Etapy prac nad projektem

szukaj_projektow

Projekty wniesione do Sejmu

druk

Druk sejmowy z plikami

tekst_druku

Pełny tekst druku strona po stronie, spis artykułów, skany i OCR za zgodą

szukaj_drukow

Druki po tytule i dacie

posiedzenia_komisji

Posiedzenia komisji

wypowiedzi_posiedzenia

Kto zabierał głos danego dnia

tresc_wypowiedzi

Treść wystąpienia ze stenogramu

transmisje

Nagrania posiedzeń

szukaj_aktow

Akty prawne po tytule i roku

akt

Czy akt obowiązuje, od kiedy, co go zmieniło

tresc_aktu

Tekst aktu albo artykułu w aktualnym brzmieniu

slownik_eli

Słowniki bazy aktów prawnych

zapytanie_surowe

Inne dane z API Sejmu

Licencja

Apache 2.0: możesz używać, zmieniać i rozpowszechniać sejm-mcp w dowolnym celu, także komercyjnym, pod warunkiem zachowania informacji o licencji i o autorach (plik NOTICE). Licencja obejmuje też udzielenie praw patentowych. Tworzy zespół Leniwego Posła.

Dane

Dane pochodzą z publicznych API Kancelarii Sejmu RP (api.sejm.gov.pl, także baza aktów prawnych ELI); projekt nie jest związany z Kancelarią Sejmu. Publikując coś na ich podstawie, podaj źródło, np. „Źródło: Kancelaria Sejmu RP, api.sejm.gov.pl”, najlepiej z adresem rekordu, który asystent dostaje przy każdej odpowiedzi.

sejm-mcp łączy się tylko z api.sejm.gov.pl. Wersja hostowana z leniwyposel.pl/dla-developerow może dodawać zestawienia Leniwego Posła; te udostępniamy na licencji CC BY 4.0, z podaniem źródła „Leniwy Poseł, leniwyposel.pl”.

Szybki start dla programistów

Trzy minuty do pierwszej odpowiedzi:

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

Trzy pomysły na start (wklej jako prompt):

  1. Tracker ustawy. „Znajdź projekt ustawy o … , pokaż etapy prac w Sejmie i streść, co zmienia art. 1. Przy każdym zdaniu podaj druk, plik i stronę.” (szukaj_procesow, proces, tekst_druku)

  2. Głosowania posiedzenia w jednej tabeli. „Wypisz głosowania ostatniego posiedzenia Sejmu: temat, wynik, wymagana większość i jak głosowały kluby. Zwróć JSON do wykresu.” (lista_posiedzen, glosowania_posiedzenia, glosowanie)

  3. Spóźnione odpowiedzi ministrów. „Które interpelacje do ministra … czekają na odpowiedź dłużej niż 21 dni od doręczenia? Podaj numery i linki.” (szukaj_pism, pismo)

Każda odpowiedź niesie adres rekordu w api.sejm.gov.pl, więc Twoja aplikacja może linkować do źródła. Pamiętaj o granicach z CONTRIBUTING.md: fakty z rejestru, bez rankingów i ocen posłów.

Kontakt

Zgłoszenia i pull requesty są mile widziane; zasady w CONTRIBUTING.md.

Zdjęcie w nagłówku: Piotr VaGla Waglowski, domena publiczna.


English

The English version of this README: README.en.md.

Available Tools

29 tools
aktAkt prawny: status, wejście w życie, zmianyA
Read-onlyIdempotent

Jeden akt z bazy ELI: czy obowiązuje, od kiedy (wejście w życie), kiedy ogłoszony, kto wydał, słowa kluczowe, druki sejmowe i powiązania z innymi aktami (akty zmieniające, uchylające, wykonawcze, teksty jednolite, orzeczenia TK). Pole eli z narzędzia proces to właśnie adres dla tego narzędzia. Przy obwieszczeniu o tekście jednolitym stanPrawnyNa to dzień, według którego sporządzono tekst. Pole tekst dotyczy tylko tego aktu; format najnowszego tekstu jednolitego podaje najnowszyTekstJednolity.html. Liczbę powiązań każdego rodzaju masz w polu odpowiedz i powiazania[].liczba; nie pobieraj listy, żeby je policzyć. Aktualne brzmienie ustawy zmienianej wiele razy jest w najnowszym tekście jednolitym (pole najnowszyTekstJednolity) i w zmianach ogłoszonych po nim. Ostatnią nowelizację podaje ten akt z powiazania="Akty zmieniające", nie wyszukiwanie po tytule. Podpis prezydenta, weto i skierowanie do TK są w rejestrze procesów: pole drukiSejmowe[].proces podaj do narzędzia proces.

Inputs: adres (required), powiazania, powiazaniaLimit, powiazaniaPrzesuniecie. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

drukDruk sejmowyA
Read-onlyIdempotent

Jeden druk sejmowy: tytuł, daty, powiązane procesy, adresy plików (PDF, DOCX) i druki dodatkowe (drukiDodatkowe, np. 2874-001 „ocena skutków regulacji”, opinie) z datami doręczenia i plikami. Daty: dataDokumentu to dzień sporządzenia dokumentu przez autora (NIE dzień wpływu do Sejmu); doreczono to dzień doręczenia druku posłom. Na pytanie „kiedy wpłynął do Sejmu” nie podawaj dataDokumentu: rejestr zapisuje wpływ jako etap procesu „Projekt wpłynął do Sejmu” (pole wszczeto w narzędziu proces), a przy sprawach przeniesionych z poprzedniej kadencji wpływ, sporządzenie i doręczenie potrafią dzielić lata (druk 164: dokument 24.03.2022, wpływ 25.03.2022, doręczenie 16.01.2024); wtedy podaj, która to data.

Inputs: numer (required), kadencja. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

glosowania_posiedzeniaGłosowania na posiedzeniuA
Read-onlyIdempotent

Głosowania jednego posiedzenia (lub jednego jego dnia) z werdyktem liczonym z progu, plus bilans: ile przyjęto, ile odrzucono, ile było apeli o kworum i wyborów z listy. Na pytanie „ile głosowań / ile przyjęto na posiedzeniu” wołaj BEZ parametru data (np. z limit 1): bilans obejmuje wtedy całe posiedzenie; nie sumuj bilansów dziennych. Lista idzie porcjami (domyślnie i najwyżej 30; przy bardzo długich tytułach porcja kurczy się, żeby wynik nie przekroczył ok. 20 tys. znaków): resztę pobierasz z przesuniecie RÓWNYM nastepnePrzesuniecie, nie przesuniecie+limit. Bez kadencji, z datą spoza bieżącej kadencji, kadencję wyznacza data. Z porzadek=true zamiast listy po kolei: porządek obrad z głosowaniami pod każdym punktem (każde głosowanie z werdyktem, punkty bez głosowań też), a na końcu „Pozostałe głosowania” (wnioski formalne, apele o kworum, głosowania bez numeru punktu). Szczegóły i rozbicie na kluby daje narzędzie glosowanie.

Inputs: posiedzenie (required), data, limit, kadencja, +3 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

glosowanieGłosowanie: wynik, kluby, głos posłaA
Read-onlyIdempotent

Jedno głosowanie ze szczegółami: werdykt z progu, wymagana większość, rozbicie na kluby według przynależności Z DNIA GŁOSOWANIA, opcjonalnie głos jednego posła i lista imienna (cała izba zgrupowana: głos → klub → posłowie; wiersz po wierszu dla jednego klubu z parametrem klub). Przy wyborze z listy kluby[] mają kartOddanych i nieobecni. Przy wyborze z listy zwraca kandydatów i liczbę głosów. Przy poprawce Senatu Sejm głosuje wniosek o jej ODRZUCENIE (bezwzględna większość): gdy wniosek nie przejdzie, poprawka jest PRZYJĘTA, a głos „przeciw” to głos za poprawką (pole rozstrzygniecie). Jak poseł głosował w serii głosowań jednego dnia (np. nad wszystkimi poprawkami Senatu): glosy_posla_w_dniu, jedno wywołanie zamiast wielu.

Inputs: numer (required), posiedzenie (required), klub, poselId, +2 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

glosy_posla_w_dniuJak głosował poseł danego dniaA
Read-onlyIdempotent

Wszystkie głosy jednego posła w jednym dniu posiedzenia, z tematem, punktem porządku obrad i rozstrzygnięciem przy poprawkach Senatu i wecie. Jak poseł głosował w serii głosowań jednego dnia (np. nad wszystkimi poprawkami Senatu): to narzędzie, jedno wywołanie, a nie glosowanie po kolei. Dni posiedzeń daje lista_posiedzen albo profil_posla z dni=true.

Inputs: id (required), data (required), posiedzenie (required), kadencja. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

grupy_bilateralneParlamentarne grupy bilateralneA
Read-onlyIdempotent

Polsko-zagraniczne grupy parlamentarne (np. Polsko-Ukraińska): lista z wyszukiwaniem po nazwie albo jedna grupa z członkami (posłowie i senatorowie).

Inputs: id, fraza, kadencja, dawniCzlonkowie. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

kadencjeKadencje SejmuA
Read-onlyIdempotent

Wszystkie kadencje Sejmu RP od 1991 roku: numer, daty początku i końca, która trwa, ile druków. Przydaje się, gdy pytanie dotyczy dawnych lat.

Inputs: no named parameters. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

klubyKluby i koła poselskieA
Read-onlyIdempotent

Bez parametru: kluby i koła w Sejmie danej kadencji z liczbą członków (stan na dziś) i rodzajem (klub, koło, niezrzeszeni). Z parametrem klub: jeden klub z pełną nazwą, kontaktem, logo i dzisiejszym składem z funkcjami (przewodniczący, wiceprzewodniczący, sekretarz…) i datą wejścia każdego posła do klubu. Skrót potoczny („PSL”) albo część nazwy dopasowuje do skrótu z rejestru („PSL-TD”), gdy jest jednoznaczny. Bez parametru klub także ostatnie wejścia posłów do klubów (pole ostatnieZmiany: kto, do którego klubu, od kiedy), czyli „kto ostatnio zmienił klub”.

Inputs: klub, kadencja. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

komisjeKomisje sejmowe i ich składA
Read-onlyIdempotent

Bez parametrów: wszystkie komisje kadencji (kod, nazwa, rodzaj: stała, nadzwyczajna, śledcza). Z kodem: jedna komisja z zakresem działania i obecnym składem (przewodniczący, zastępcy, członkowie z klubami), datą powołania i podkomisjami (nazwa, stała czy nadzwyczajna, data rozwiązania). Kod podkomisji (np. "INF01N", "ASW02S") daje jedną podkomisję: nazwę, komisję macierzystą, daty powołania i rozwiązania, skład. Z poselId: w jakich komisjach zasiada poseł i z jaką funkcją. Posiedzenia komisji daje posiedzenia_komisji.

Inputs: kod, poselId, kadencja, dawniCzlonkowie. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

lista_posiedzenPosiedzenia SejmuA
Read-onlyIdempotent

Posiedzenia Sejmu danej kadencji: numer, daty, stan (zakończone, trwa, zaplanowane) i liczba głosowań w każdym dniu. Podaje też numer ostatniego zakończonego posiedzenia. Bez od/do lista ma 10 ostatnich posiedzeń i najbliższe (sumy w polu sumy dalej obejmują całą kadencję); całą kadencję daje wszystkie=true, a konkretny okres od/do. Porządek obrad z głosowaniami pod każdym punktem: glosowania_posiedzenia z porzadek=true.

Inputs: do, od, kadencja, planowane, +1 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

pismoInterpelacja lub zapytanie: szczegóły i treśćA
Read-onlyIdempotent

Jedno pismo: adresaci z terminem i stanem każdego, odpowiedzi z adresem PDF, a na życzenie treść pisma lub odpowiedzi jako zwykły tekst (w porcjach). Przy kilku adresatach podaje, czyja jest odpowiedź (z podpisu albo jako oznaczony wniosek) i co wynika z samej liczby odpowiedzi. Odpowiedź, której treść jest tylko w załączniku PDF (tak jest prawie zawsze), serwer czyta z PDF po podaniu odpowiedzKlucz; skanu bez warstwy tekstowej nie odczyta i wtedy podaje adres PDF. Wynik bywa niepełny (brak czasu, awaria Sejmu, limit): wtedy ma pole wynikCzesciowy i powiedz to użytkownikowi na początku odpowiedzi.

Inputs: numer (required), rodzaj (required), od, fraza, +3 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

porzadek_posiedzeniaPorządek obrad posiedzenia SejmuA
Read-onlyIdempotent

Porządek obrad posiedzenia Sejmu jako tekst: bez numeru bieżące albo najbliższe posiedzenie („czym Sejm zajmie się na najbliższym posiedzeniu”), z numerem dowolne posiedzenie kadencji (dla zakończonych to porządek zrealizowany).

Inputs: od, kadencja, posiedzenie. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

posiedzenia_komisjiPosiedzenia komisji sejmowychA
Read-onlyIdempotent

Posiedzenia komisji: (1) z parametrem data (bez kodu) wszystkie komisje jednego dnia albo przedziału do 7 dni; (2) z kodem komisji wszystkie jej posiedzenia w kadencji, od najnowszych, zawężane datami od/do (albo data/do), razem ze wspólnymi z innymi komisjami; (3) z kodem i numerem jedno posiedzenie z pełnym porządkiem. Na pytanie „ile posiedzeń odbyła komisja X w miesiącu” użyj (2) z od/do i podaj pole razem: to liczba posiedzeń (osobnych numerów), a nie dni; dwa posiedzenia tego samego dnia to dwa posiedzenia. Każde posiedzenie ma godziny, salę, porządek obrad, link do transmisji i do zapisu przebiegu (PDF). Kody komisji daje narzędzie komisje (np. "ZDR" zdrowia, "FPB" finansów publicznych, "ASW" administracji i spraw wewnętrznych). Wynik bywa niepełny (brak czasu, awaria Sejmu, limit): wtedy ma pole wynikCzesciowy i powiedz to użytkownikowi na początku odpowiedzi.

Inputs: do, od, data, limit, +4 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

procesProces legislacyjny: etapyA
Read-onlyIdempotent

Jeden proces legislacyjny z pełną listą etapów w kolejności rejestru: skierowania, czytania, sprawozdania komisji (wniosekKomisji, wnioskiMniejszosci), głosowania z wynikiem, stanowisko Senatu (czy wniósł poprawki), autopoprawki (inneDokumenty), a po Sejmie etapy Prezydenta: podpis, weto, skierowanie do Trybunału Konstytucyjnego (pola podpisPrezydenta, weto, trybunal i etapy). Pole glosowanieKoncowe to głosowanie nad całością projektu (posiedzenie, numer): podaj je do narzędzia glosowanie z poselId, żeby sprawdzić głos posła. Pole eli (np. DU/2026/62) to adres opublikowanego aktu dla narzędzia akt (czy obowiązuje, od kiedy); dataOgloszenia to dzień ogłoszenia w dzienniku. Numer procesu to zwykle numer druku, który go rozpoczął.

Inputs: numer (required), kadencja. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

profil_poslaProfil posłaA
Read-onlyIdempotent

Dane posła z rejestru: klub, okręg wyborczy, liczba głosów zdobytych w wyborach do Sejmu (glosowWWyborach), data i miejsce urodzenia, wykształcenie, zawód, data ślubowania, a przy wygasłym mandacie data i powód wygaśnięcia. Do tego statystyka głosowań według Sejmu (/MP/{id}/votings/stats): ile głosowań było, w ilu wziął udział, ile opuścił i ile z opuszczonych dni Sejm uznał za usprawiedliwione. To liczby Sejmu, nie nasze wyliczenie. Z parametrem dni=true dochodzi rozbicie na dni posiedzeń, z posiedzenia=true suma na każde posiedzenie, a z od/do (daty włącznie) suma statystyki za ten okres (pole zakres), np. rok 2025: od=2025-01-01, do=2025-12-31. Klub to przynależność DZIŚ; klub z konkretnego dnia daje glosowanie z poselId (pole klubWDniuGlosowania). Numer posła obowiązuje w jednej kadencji: w innej kadencji ten sam numer to inna osoba, więc szukaj posła w tej kadencji przez znajdz_posla.

Inputs: id (required), do, od, dni, +2 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

slownik_eliSłowniki bazy aktów prawnychA
Read-onlyIdempotent

Dopuszczalne wartości do wyszukiwania aktów: rodzaje aktów, statusy, instytucje, słowa kluczowe (ok. 2500), rodzaje powiązań, wydawcy z liczbą aktów; oraz podpowiedzi słów z tytułów (tytuly z frazą). Użyj, zanim podasz słowo kluczowe albo rodzaj do szukaj_aktow.

Inputs: slownik (required), fraza. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

szukaj_aktowSzukaj aktów prawnych (Dziennik Ustaw, Monitor Polski)A
Read-onlyIdempotent

Wyszukuje opublikowane akty prawne w bazie ELI Kancelarii Sejmu: ustawy, rozporządzenia, obwieszczenia, uchwały. Po słowach z tytułu (w przypadku zależnym, np. "o Krajowej Radzie Sądownictwa"; rdzeń też działa), słowach kluczowych, roku, rodzaju i tym, czy akt obowiązuje. O obowiązywaniu dziś mówi pole obowiazuje (statusWELI to surowy status ELI). Daty od/do są włączne. Ustawy idą przed obwieszczeniami o tekstach jednolitych. Adres z wyniku (np. DU/2019/914) podaj do narzędzia akt. Wyszukiwanie po tytule gubi nowelizacje zawarte w ustawach o innych tytułach (np. ustawa o finansach publicznych zmienia też ustawę o PIT). Liczbę i listę nowelizacji danej ustawy, także ostatnią, daje narzędzie akt z jej adresem i powiazania="Akty zmieniające" (pole ogloszono przy każdej pozycji i rozkład po latach ogłoszenia). Wynik bywa niepełny (brak czasu, awaria Sejmu, limit): wtedy ma pole wynikCzesciowy i powiedz to użytkownikowi na początku odpowiedzi.

Inputs: do, od, rok, fraza, +11 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

szukaj_drukowSzukaj druków sejmowychA
Read-onlyIdempotent

Druki sejmowe kadencji (projekty, sprawozdania komisji, opinie, autopoprawki, informacje) po słowach z tytułu i dacie, od najnowszych. Daty od/do są włącznie i domyślnie dotyczą doręczenia posłom (wedlugDaty="doreczenia"); "dokumentu" filtruje po dacie sporządzenia. Fraza z numerem druku („autopoprawka 2865”) pokazuje druki związane z tym numerem. Druki dodatkowe (np. 2874-001) liczy razemDodatkowych, listę daje dodatkowe=true. Wynik mieści się w ok. 20 tys. znaków; resztę daje przesuniecie=nastepnePrzesuniecie. Szczegóły i pliki jednego druku daje druk, przebieg: proces.

Inputs: do, od, fraza, limit, +4 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

szukaj_glosowanSzukaj głosowańA
Read-onlyIdempotent

Wyszukuje głosowania po słowie w tytule i temacie (wyszukiwarka rejestru Sejmu), a przy kilku trafieniach dobiera głosowania z tymi słowami w opisie; opcjonalnie w przedziale dat lub na jednym posiedzeniu. Domyślnie najnowsze najpierw. Tytuły są w dopełniaczu i bez skrótów: szukaj "ustawy budżetowej na rok 2024", "Krajowej Radzie Sądownictwa", nie "budżetowa 2024" ani "KRS"; rdzeń słowa też działa ("budżet", "podatk"). Fraza z nazwiskiem posła (np. „Mejza immunitet”) szuka tego nazwiska w TYTUŁACH głosowań (wnioski o uchylenie immunitetu, sprawy z oskarżenia prywatnego); jak dany poseł głosował, daje glosowanie z poselId albo glosy_posla_w_dniu, nie to narzędzie. Pytanie „jak głosował poseł nad ustawą X”: szukaj tu po tytule ustawy i opisie „całość projektu”, albo przez szukaj_procesow → proces (pole glosowanieKoncowe); sprawdź, czy data, tytuł i druk zgadzają się z pytaniem, zanim wybierzesz głosowanie: kilka ustaw ma identyczny tytuł i różni się tylko numerem druku. Uwaga: ustawa „o zmianie ustawy budżetowej” albo „o szczególnych rozwiązaniach służących realizacji ustawy budżetowej” to INNE ustawy niż sama ustawa budżetowa. Pytanie o ustawę: bierz głosowanie z opisem „całość projektu ustawy”; „całość projektu uchwały” to uchwała, nie ustawa. Nazw potocznych („lex TVN”, „ustawa kagańcowa”, „nowelizacja”) nie ma w tytułach: szukaj przedmiotem ustawy („radiofonii i telewizji”) z datą od/do. Daty od/do z innej kadencji wybierają tę kadencję. Wynik mieści się w ok. 20 tys. znaków; resztę daje przesuniecie=nastepnePrzesuniecie. Wynik bywa niepełny (brak czasu, awaria Sejmu, limit): wtedy ma pole wynikCzesciowy i powiedz to użytkownikowi na początku odpowiedzi.

Inputs: do, od, fraza, limit, +4 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

szukaj_pismSzukaj interpelacji i zapytańA
Read-onlyIdempotent

Wyszukuje interpelacje albo zapytania pisemne w rejestrze Sejmu: po autorze (numer posła), adresacie, słowie w tytule, dacie. Każde pismo dostaje stan liczony z terminu 21 dni (odpowiedziano, w terminie, po terminie, bez terminu) i listę adresatów, u których termin minął (poTerminieU). Z parametrem adresat stan i opóźnienie dotyczą TYLKO tego adresata, nie pozostałych. Na pytanie „które najbardziej się spóźniają” użyj sortuj="opoznienie"; domyślnie lista idzie od najnowszych pism. Wynik bywa niepełny (brak czasu, awaria Sejmu, limit): wtedy ma pole wynikCzesciowy i powiedz to użytkownikowi na początku odpowiedzi.

Inputs: rodzaj (required), do, od, fraza, +7 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

szukaj_procesowSzukaj procesów legislacyjnychA
Read-onlyIdempotent

Wyszukuje procesy legislacyjne (projekty ustaw i uchwał) po frazie w tytule ALBO w opisie projektu, rodzaju dokumentu, stanie i dacie. Fraza może być potoczna („składka zdrowotna przedsiębiorcy”, „depenalizacja aborcji”): tytuły nowelizacji są jednakowe, temat jest w opisie; pole trafienie mówi, gdzie ją znaleziono, a opis przy wyniku odróżnia projekty o tym samym tytule. Pytasz o ustawę? Dodaj rodzajDokumentu="projekt ustawy". Parametr stan liczy procesy w danym stanie w całej kadencji (np. "skierowana do TK", "zawetowana", "u Prezydenta", "opublikowana", "w toku"): tego wymagają pytania „ile ustaw…”. Daty od/do (włącznie) domyślnie łapią proces, którego KTÓRAKOLWIEK data leży w zakresie: wszczęcie, zamknięcie w Sejmie albo ostatnia zmiana w rejestrze (ustawa wszczęta w 2024, a uchwalona w 2025, jest w 2025); wedlugDaty zawęża do jednej. Wynik mieści się w ok. 20 tys. znaków; resztę daje przesuniecie=nastepnePrzesuniecie. Głosowanie końcowe i etapy daje narzędzie proces. Wynik bywa niepełny (brak czasu, awaria Sejmu, limit): wtedy ma pole wynikCzesciowy i powiedz to użytkownikowi na początku odpowiedzi.

Inputs: do, od, stan, fraza, +6 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

szukaj_projektowProjekty wniesione do SejmuA
Read-onlyIdempotent

Rejestr projektów ustaw i uchwał wniesionych do Sejmu: kto wniósł (posłowie, Rada Ministrów, Prezydent, Senat, komisja, obywatele), data wpływu, numer druku, opis projektu, czy był w konsultacjach publicznych. Fraza szuka w tytule ALBO w opisie (tytuły nowelizacji są jednakowe). Pole stan ma tylko trzy wartości rejestru: aktywny (nie wycofany), wycofany, nie nadano biegu; etap (uchwalony, opublikowany) podaje pole uchwalony/publikacja albo narzędzie proces po numerze druku. Daty od/do to data WPŁYWU; o datę doręczenia posłom pytaj szukaj_drukow.

Inputs: do, od, stan, fraza, +8 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

tekst_drukuTekst druku sejmowegoA
Read-onlyIdempotent

Pełny tekst druku sejmowego (projekt ustawy, uzasadnienie, OSR, opinie) strona po stronie, z pliku PDF, DOCX albo DOC, ze spisem treści (działy, rozdziały, artykuły, uzasadnienie) i numerami stron. Duży druk pokazuje porcjami: najpierw spis i pierwsze strony, potem strony="11-20" albo artykul="52". Plik pobiera z api.sejm.gov.pl raz i trzyma na dysku użytkownika: do 20 MB bez pytania, większy dopiero za zgodą użytkownika. Strony bez warstwy tekstowej (skany) są oznaczone; odczyt maszynowy daje ocr=true (wynik oznaczony jako odczyt maszynowy). Parametr fraza: zamiast stron same trafienia w całym pliku z kontekstem i stroną do cytowania (pokazano, nastepneOd jako od do dalszych). Cytując albo streszczając druk, zawsze podaj numer druku, nazwę pliku i numer strony (przy Wordzie numer części i artykuł) oraz link z pola cytowanie.url; zaproponuj użytkownikowi otwarcie oryginału („Otworzyć plik, żeby sprawdzić?”). Nie parafrazuj treści druku bez wskazania pliku i strony.

Inputs: numer (required), od, ocr, plik, +7 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

transmisjeNagrania i transmisje posiedzeńA
Read-onlyIdempotent

Nagrania posiedzeń Sejmu, komisji i innych wydarzeń w Sejmie z linkami do odtwarzacza: z jednego dnia (data), z przedziału dat, jednej komisji (kod) albo po słowie w tytule. Dzisiejsze transmisje: dzis=true.

Inputs: do, od, data, dzis, +5 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

tresc_aktuTreść aktu prawnegoA
Read-onlyIdempotent

Tekst aktu z bazy ELI jako zwykły tekst: cały w porcjach po 12 tys. znaków, jeden artykuł (artykul: "52", "52a", "764^5") albo jedna jednostka (fragment: id ze spisu). Ze spis=true zwraca spis artykułów i rozdziałów z ich id. Długie akty (kodeksy) czytaj artykułami, nie w całości. Każda odpowiedź podaje tytuł, rodzaj i oznaczenie aktu (pole akt): sprawdź, że to ten akt, o który pytano. Indeksy górne są zachowane (Art. 764⁵, § 2¹). Gdy akt albo jego najnowszy tekst jednolity ma tekst tylko w PDF, czyta tekst z PDF (pole zPdf; bez spisu jednostek, artykuł wycięty po nagłówku „Art. N.”); skanu bez warstwy tekstowej nie odczyta. Wynik bywa niepełny (brak czasu, awaria Sejmu, limit): wtedy ma pole wynikCzesciowy i powiedz to użytkownikowi na początku odpowiedzi.

Inputs: adres (required), od, spis, fraza, +3 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

tresc_wypowiedziTreść wypowiedzi ze stenogramuA
Read-onlyIdempotent

Treść jednej wypowiedzi ze stenogramu Sejmu jako zwykły tekst, w porcjach po 12 tys. znaków. Wypowiedź prowadzącego obrady („Marszałek”) to często cały dzień, ponad 100 tys. znaków: szukaj w niej parametrem fraza, zamiast czytać porcjami.

Inputs: data (required), numer (required), posiedzenie (required), od, +2 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

wypowiedzi_posiedzeniaKto mówił na posiedzeniu SejmuA
Read-onlyIdempotent

Spis wypowiedzi z jednego dnia posiedzenia Sejmu: numer, mówca, funkcja, godziny, czy mówca był sprawozdawcą komisji, czy wypowiedź była wygłoszona. Na pytanie „kto najczęściej zabierał głos” użyj zestawienie=true: liczba wypowiedzi na mówcę, osobno wygłoszone i niewygłoszone (złożone do protokołu), bez pobierania całego spisu. Z filtrem mowca (do 10 wypowiedzi) i z tylkoSprawozdawcy (pierwszych 40) przy każdej jest punkt porządku obrad, którego dotyczyła; czego serwer nie zdąży przeczytać, ma null i uwagę. Treść daje tresc_wypowiedzi. Filtr mowca szuka po nazwisku mówcy, nie po temacie; sprawozdawców pokazuje tylkoSprawozdawcy=true. Starsze dni rejestr oddaje wolno (nawet kilkanaście sekund). Wynik bywa niepełny (brak czasu, awaria Sejmu, limit): wtedy ma pole wynikCzesciowy i powiedz to użytkownikowi na początku odpowiedzi.

Inputs: posiedzenie (required), data, limit, mowca, +4 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

zapytanie_suroweSurowe zapytanie do API SejmuA
Read-onlyIdempotent

Pobiera dowolny zasób JSON spod https://api.sejm.gov.pl/sejm/ (np. "term10/committees", "term10/bills", "term10/videos/2024-04-24") albo spod /eli/ (ścieżka zaczyna się od "eli/", np. "eli/acts/DU/2026/62/references"). Używaj tylko wtedy, gdy żadne inne narzędzie nie pasuje. Odpowiedź jest surowa: bez werdyktów i bez reguł liczenia, więc nie licz z niej frekwencji ani wyników głosowań samodzielnie. Istniejące zasoby API Sejmu (po "termN/"): MP, MP/{id}, MP/{id}/votings/stats, clubs, clubs/{id} (członkowie z joinDate, datą wejścia do klubu), committees, committees/{kod} (także podkomisja, np. committees/INF01N: skład, appointmentDate, dismissalDate), committees/{kod}/members, committees/{kod}/sittings, proceedings, proceedings/{nr}, proceedings/{nr}/{RRRR-MM-DD}/transcripts (lista wypowiedzi dnia), votings, votings/{pos}, votings/{pos}/{nr}, votings/search, interpellations, writtenQuestions, prints, prints/{nr}, processes, processes/{nr}, bills, videos, videos/{RRRR-MM-DD}, bilateralGroups. ELI: eli/acts/search, eli/acts/{DU|MP}/{rok}/{poz}, …/references, …/struct, eli/changes/acts, eli/types, eli/keywords, eli/references. Nie ma zasobów z płcią posłów ani z demografią, ani z listą prezydium Sejmu (kto jest marszałkiem, pokazuje głosowanie nad wyborem: szukaj_glosowan z frazą „Wybór Marszałka Sejmu”).

Inputs: sciezka (required), od, parametry. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

znajdz_poslaZnajdź posłaA
Read-onlyIdempotent

Szuka posłów danej kadencji po imieniu lub nazwisku (bez względu na polskie znaki), klubie lub numerze okręgu. Zwraca numer posła (id), którego wymagają inne narzędzia. Klub to przynależność DZIŚ, nie w dniu dawnego głosowania. Przy pośle, którego mandat wygasł, wynik podaje posłów jego okręgu ślubujących później (pole slubowaliPozniejWOkregu), a przy pośle, który ślubował w trakcie kadencji, mandaty wygasłe wcześniej w jego okręgu (wygasliWczesniejWOkregu). Każdy poseł ma glosowWWyborach; sortuj="glosy" układa listę od największej liczby głosów (np. okreg + sortuj="glosy" to ranking okręgu). tylkoWygasle=true: tylko posłowie z wygasłym mandatem, z liczbą według powodu.

Inputs: klub, fraza, limit, okreg, +5 more. Returns: uwagi, zrodla, kalendarz, wynikCzesciowy

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 29 tools

    Disambiguation4/5

    There are several families of similar tools (szukaj_drukow / szukaj_projektow / szukaj_procesow for legislative documents; szukaj_glosowan / glosowania_posiedzenia / glosowanie for votings; pismo / szukaj_pism), but the descriptions go out of their way to delineate scope and explicitly say when to use which sibling (e.g. print vs. bill register vs. process; day-of-vote vs. single vote). Only a few boundaries (three document-search tools) could still be confused, keeping it just short of perfect.

    Naming Consistency4/5

    All names are consistently Polish snake_case, with a mostly predictable pattern of szukaj_X for searches, X for single-item lookups, and domain nouns for list endpoints. Minor deviations: verbs mix szukaj_* and znajdz_* for search/retrieval, and some list tools are bare nouns without a list_ prefix.

    Tool Count3/5

    29 tools sits just above the heavy threshold, though the domain (Sejm prints, processes, votings, committees, MPs, transcripts, broadcasts, ELI acts) is genuinely large and most tools earn their place. There is minor redundancy among the three legislative-document search tools and the raw-query escape hatch, so it feels slightly over-scoped rather than tightly scoped.

    Completeness4/5

    Coverage is broad and lifecycle-oriented: search+detail for prints, bills, processes, votes, MPs, committees, and acts, plus transcript content, broadcasts, an ELI vocabulary helper, and a raw API fallback for gaps. Minor gaps remain (e.g. no first-class Senate-side or demographic endpoints, acknowledged and routed through zapytanie_surowe), so it is strong but not exhaustive.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enables AI-powered legal research and analysis of Polish legal acts from the Sejm API. Provides comprehensive search, document retrieval, metadata analysis, and content access for legal documents from Dziennik Ustaw and Monitor Polski.
      13
      23
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables searching Polish parliamentary prints and retrieving the full legislative process history, including links to final legal acts, via the official Sejm API.
      3
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables AI clients to search, retrieve and cite over 600 Polish statutes and regulations from the Journal of Laws in full text, including the wording of a provision as of any date, in-force status checked against the ELI register, related provisions, annexes and tables. Access is read-only via a hosted endpoint with e-mail sign-in, optional free trial queries, and paid plans.
      -