sejm-mcp
sejm-mcp is a read-only MCP server that answers plain-language questions about the Polish Sejm and Polish law using official api.sejm.gov.pl data, always returning source links.
Deputies: find MPs by name, club or district; profiles with the Sejm's own voting statistics (attendance, missed votes, justified absences), expired mandates, club and committee memberships.
Votings: search by topic/date, get results with threshold-based verdicts, club breakdown as of the voting day, an MP's vote, full roll-call lists, and all of an MP's votes in one day.
Sittings: list sittings, agendas, per-sitting votings (optionally mapped to agenda points), who spoke, full transcript text, and recordings/streams.
Interpellations and written questions: search by author, recipient, title or date; see 21-day deadline status, longest delays, and read the letter or ministerial reply (including PDF content).
Legislation: track bills and legislative processes, their stages and final vote, Senate/President stages (veto, Constitutional Tribunal), and read prints page by page (PDF/DOCX/DOC, OCR for scans).
Law (ELI): search Dziennik Ustaw and Monitor Polski acts, check validity and entry into force, list amendments and references, and read a whole act or a single article.
Committees and other bodies: committees and subcommittees with composition, committee sittings with agendas, bilateral parliamentary groups, and Sejm terms since 1991.
Fallback: raw JSON queries to the Sejm API or ELI when no dedicated tool fits.
Every answer carries api.sejm.gov.pl source URLs; it only reads public Sejm data, stores nothing but a local file/OCR cache, and flags partial results (e.g. timeouts, pagination).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sejm-mcp Jak głosował poseł Tusk nad ustawą budżetową na 2024 rok?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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? ( | nic |
Kim jest ten poseł? ( | imię i nazwisko |
Jak głosował poseł? ( | imię i nazwisko, ustawę |
Na jakim etapie jest ustawa? ( | słowa z tytułu albo numer druku |
Jak głosowały kluby? ( | numer posiedzenia i numer głosowania |
Czy ta ustawa już obowiązuje? ( | 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 TyGdy 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
Kliknij go dwa razy albo przeciągnij do okna Claude Desktop.
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-mcpZ 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-mcpW 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 |
| Szuka posła po nazwisku, klubie, okręgu |
| Dane posła i statystyka głosowań według Sejmu |
| Kluby i koła, ich skład |
| Komisje sejmowe, skład, komisje posła |
| Polsko-zagraniczne grupy parlamentarne |
| Kadencje Sejmu od 1991 roku |
| Posiedzenia Sejmu z datami: domyślnie 10 ostatnich i najbliższe, |
| Porządek obrad posiedzenia |
| Głosowania posiedzenia z wynikami; |
| Głosowania po temacie i dacie |
| Wynik, próg, kluby, głos posła |
| Głosy posła w jednym dniu |
| Interpelacje i zapytania z terminem odpowiedzi |
| Jedno pismo: terminy, odpowiedzi, treść |
| Projekty ustaw i uchwał po tytule |
| Etapy prac nad projektem |
| Projekty wniesione do Sejmu |
| Druk sejmowy z plikami |
| Pełny tekst druku strona po stronie, spis artykułów, skany i OCR za zgodą |
| Druki po tytule i dacie |
| Posiedzenia komisji |
| Kto zabierał głos danego dnia |
| Treść wystąpienia ze stenogramu |
| Nagrania posiedzeń |
| Akty prawne po tytule i roku |
| Czy akt obowiązuje, od kiedy, co go zmieniło |
| Tekst aktu albo artykułu w aktualnym brzmieniu |
| Słowniki bazy aktów prawnych |
| 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ądarceTrzy pomysły na start (wklej jako prompt):
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)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)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
Błąd w odpowiedzi albo pomysł: zgłoszenie na GitHubie.
Poprawka w kodzie: pull request, najpierw CONTRIBUTING.md.
Współpraca i media: leniwyposel.pl/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 toolsaktAkt prawny: status, wejście w życie, zmianyARead-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 sejmowyARead-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 posiedzeniuARead-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łaARead-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 dniaARead-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 bilateralneARead-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 SejmuARead-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 poselskieARead-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ładARead-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 SejmuARead-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śćARead-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 SejmuARead-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 sejmowychARead-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: etapyARead-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łaARead-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 prawnychARead-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)ARead-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 sejmowychARead-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ńARead-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ńARead-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 legislacyjnychARead-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 SejmuARead-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 sejmowegoARead-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ńARead-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 prawnegoARead-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 stenogramuARead-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 SejmuARead-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 SejmuARead-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łaARead-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
Scored across 29 tools
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.
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.
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.
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
Related MCP Connectors
Verified Polish open data for AI agents: debt, budget, 460 MPs, votings, judiciary search, RAG.
Polish Sejm (term 10) votes, MPs, bills, legislative processes and interpellations, with sources.
Polish statutes (Dziennik Ustaw, ELI) and court rulings (SAOS) for AI agents. Runs on Apify.
EU laws, live legislative procedures, calendar, EPRS and policy guides for any AI assistant.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables 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.1323MIT
- AlicenseAqualityDmaintenanceEnables searching Polish parliamentary prints and retrieving the full legislative process history, including links to final legal acts, via the official Sejm API.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search and retrieve Polish statutes, provisions, and EU law cross-references with verified citations, supporting legal research and compliance checks.50 npmApache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables 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.-