Przejdź do treści
z-dykty.pl

dane-gmin-mcp

Serwer MCP z-dykty.pl pozwala asystentowi AI czytać finanse gmin, umowy i przetargi prosto z oficjalnych rejestrów. Każda liczba w odpowiedzi ma rok i odnośnik do źródła. Nie potrzeba konta ani klucza.

Podłączenie

Claude Desktop i Cursor: npx

Dopisz serwer do pliku konfiguracji klienta. Klient uruchomi pakiet dane-gmin-mcp przez npx (wymaga Node.js 20 lub nowszego), a po ponownym starcie pokaże 7 narzędzi.

claude_desktop_config.json albo mcp.json
{
  "mcpServers": {
    "dane-gmin": {
      "command": "npx",
      "args": ["-y", "dane-gmin-mcp"]
    }
  }
}
  • Claude Desktop, macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Claude Desktop, Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Cursor: ~/.cursor/mcp.json albo .cursor/mcp.json w projekcie

Jeśli plik ma już sekcję mcpServers, dopisz do niej sam wpis dane-gmin.

claude.ai, ChatGPT i inne klienty zdalne: adres

Bez instalacji. W claude.ai albo ChatGPT dodaj własny konektor MCP i wklej adres serwera. Transport to Streamable HTTP, autoryzacji nie ma.

Adres serwera
https://z-dykty.pl/api/mcp

Claude Code łączy się jednym poleceniem:

Terminal
claude mcp add --transport http dane-gmin https://z-dykty.pl/api/mcp

Własny klient wysyła POST z nagłówkami Content-Type: application/json i Accept: application/json, text/event-stream. Bez drugiego typu w Accept serwer odpowie kodem 406. GET i DELETE zwracają 405, bo serwer nie prowadzi sesji.

Przykład: wywołanie narzędzia szukaj_jst
curl -s https://z-dykty.pl/api/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "szukaj_jst",
      "arguments": { "fraza": "w Kartuzach" }
    }
  }'

Przykładowe pytania

  • „Jakie zadłużenie ma gmina Kartuzy i jak wypada na tle podobnych gmin?”

    Narzędzia: szukaj_jst, karta_gminy

  • „Jakie umowy zawarła gmina Kartuzy w 2025 roku z firmą o NIP [NIP firmy]?”

    Narzędzia: szukaj_jst, umowy

  • „Pokaż przetargi na odbiór odpadów w województwie pomorskim powyżej 5 mln zł.”

    Narzędzia: przetargi

  • „Czy w mojej gminie wykryto coś nietypowego w wydatkach?”

    Narzędzia: szukaj_jst, anomalie

Narzędzia (7)

Wszystkie narzędzia tylko czytają dane. Opisy poniżej są dokładnie tymi, które widzi model. Każdy z nich kończy się poleceniem:

Zwraca fakty z oficjalnych rejestrów, bez ocen – nie nazywaj wartości dobrą ani złą, możesz podać pozycję i kierunek skali. Przy każdej liczbie w odpowiedzi podaj rok i odnośnik z pola zrodla.

szukaj_jst – Rozpoznaj gminę po nazwie

Rozpoznaje gminę po nazwie z tekstu pytania, także w odmianie („w Kartuzach”, „Urząd Miasta Gdynia”) i po nazwie dzielnicy dużego miasta. Zwraca kod TERYT i slug, których potrzebują pozostałe narzędzia. Gdy nazwa się powtarza (np. Dąbrowa), zwraca listę kandydatów z powiatem i województwem zamiast zgadywać – wtedy dopytaj użytkownika. Zacznij od tego narzędzia, gdy pytanie dotyczy konkretnej gminy.

Parametry (1)
fraza string, wymagany
Nazwa gminy albo zdanie z jej nazwą, także w odmianie: „Kartuzy”, „w Kartuzach”, „Urząd Miasta Gdynia”. Nazwa dzielnicy dużego miasta (np. Ursynów) wskazuje gminę, do której należy.

karta_gminy – Karta finansowa gminy

Zwraca budżet gminy (dochody, wydatki, wynik, dług), te same wartości na mieszkańca, liczbę mieszkańców, wskaźniki finansowe i miejsce gminy w rankingach: w kraju, w województwie i wśród gmin tego samego rodzaju. Każda liczba ma rok i źródło; brak danych to null, nigdy zero. Wymaga kodu TERYT albo sluga z narzędzia szukaj_jst.

Parametry (3)
teryt string
Kod TERYT gminy (7 cyfr), np. z narzędzia szukaj_jst.
slug string
Slug gminy z szukaj_jst (np. kartuzy-2205023). Alternatywa dla teryt.
rok integer
Rocznik sprawozdania. Bez niego każda wartość pochodzi z najnowszego rocznika, w którym istnieje (rok jest podany przy każdej liczbie).

umowy – Umowy z rejestru umów

Zwraca stronę umów z Centralnego Rejestru Umów: urząd, wykonawca, przedmiot, kwota, daty. Filtry: gmina, województwo, NIP wykonawcy, fraza w przedmiocie, zakres kwot, zakres dat zawarcia. Najwyżej 50 rekordów na stronę; kolejne strony przez kursor z wyniku. Gdy drugą stroną jest osoba fizyczna, jej dane są pominięte. Rejestr obejmuje część urzędów – nie traktuj listy jako kompletu umów gminy.

Parametry (10)
gmina string
Gmina: kod TERYT (7 cyfr) albo slug z narzędzia szukaj_jst.
wojewodztwo string
Kod TERYT województwa (2 cyfry), np. 22 = pomorskie.
kwota_min number
Kwota od (zł). Pomija pozycje bez podanej kwoty.
kwota_max number
Kwota do (zł). Pomija pozycje bez podanej kwoty.
fraza string
Szukane słowa (pełnotekstowo).
limit integer
Ile rekordów zwrócić (1–50, domyślnie 10). Więcej dostaniesz kolejnymi stronami przez kursor.
kursor string
Kursor z poprzedniego wyniku (pole kursor), żeby pobrać następną stronę.
nip string
NIP wykonawcy, czyli drugiej strony umowy (10 cyfr).
od string
Data zawarcia umowy: od (RRRR-MM-DD). Pomija umowy bez daty zawarcia.
do string
Data zawarcia umowy: do (RRRR-MM-DD). Pomija umowy bez daty zawarcia.

przetargi – Przetargi z Biuletynu Zamówień Publicznych

Zwraca stronę ogłoszeń z Biuletynu Zamówień Publicznych: zamawiający, tytuł, kwota, wykonawca (w ogłoszeniach o wyniku), terminy. Filtry: gmina, województwo, NIP zamawiającego, rodzaj zamówienia, typ ogłoszenia, zakres kwot, zakres dat publikacji, fraza. Najwyżej 50 rekordów na stronę; kolejne strony przez kursor z wyniku. Uwaga: nip to NIP zamawiającego, nie wykonawcy.

Parametry (12)
gmina string
Gmina: kod TERYT (7 cyfr) albo slug z narzędzia szukaj_jst.
wojewodztwo string
Kod TERYT województwa (2 cyfry), np. 22 = pomorskie.
nip string
NIP ZAMAWIAJĄCEGO, czyli urzędu ogłaszającego postępowanie (10 cyfr).
rodzaj Dostawy | Usługi | Roboty budowlane
Rodzaj zamówienia: Dostawy, Usługi albo Roboty budowlane.
typ ogloszenie | wynik
ogloszenie – ogłoszenie o zamówieniu; wynik – ogłoszenie o wyniku postępowania (z wykonawcą).
kwota_min number
Kwota od (zł). Pomija pozycje bez podanej kwoty.
kwota_max number
Kwota do (zł). Pomija pozycje bez podanej kwoty.
od string
Data publikacji ogłoszenia: od (RRRR-MM-DD).
do string
Data publikacji ogłoszenia: do (RRRR-MM-DD).
fraza string
Szukane słowa (pełnotekstowo).
limit integer
Ile rekordów zwrócić (1–50, domyślnie 10). Więcej dostaniesz kolejnymi stronami przez kursor.
kursor string
Kursor z poprzedniego wyniku (pole kursor), żeby pobrać następną stronę.

wykonawca – Umowy wykonawcy według NIP

Zwraca sumę umów jednego wykonawcy z Centralnego Rejestru Umów: liczbę i sumę kwot per rok oraz per gmina i rok, wraz z nazwą wykonawcy. Wymaga NIP wykonawcy. Umowa bez kwoty jest liczona osobno, nie jako zero; kwoty w różnych walutach nie są sumowane. Rejestr obejmuje część urzędów – suma to umowy z rejestru, nie wszystkie umowy wykonawcy.

Parametry (1)
nip string, wymagany
NIP wykonawcy, czyli drugiej strony umów (10 cyfr).

anomalie – Opublikowane znaleziska o gminie lub rodzaju

Zwraca opublikowane znaleziska statystyczne: rodzaj, tytuł, opis faktu, liczby z rokiem i licznością próby, pozycję jednostki w grupie porównawczej oraz odnośnik do strony znaleziska. Filtr: jednostka (teryt) i/lub rodzaj; bez filtra – najnowsze. Znalezisko to zestawienie liczb, nie zarzut – nie przedstawiaj go jako oskarżenia. Nie zawiera poszlak o osobach ani wpisów oczekujących na weryfikację.

Parametry (3)
teryt string
Jednostka: TERYT gminy (7 cyfr), powiatu (4) lub województwa (2) albo slug gminy z szukaj_jst.
rodzaj string
Rodzaj znaleziska (identyfikator), np. koncentracja-kontrahentow, pas-progu-pzp, cena-swiadczenia. Identyfikatory rodzajów widać w wynikach (pole rodzaj).
limit integer
Ile rekordów zwrócić (1–50, domyślnie 10). Więcej dostaniesz kolejnymi stronami przez kursor.

analizy – Opublikowane analizy

Zwraca opublikowane analizy serwisu: tytuł, lead, rok danych i odnośnik do strony analizy (z metodą i licznością próby). Opcjonalna fraza zawęża listę do analiz, w których tytule lub leadzie występują wszystkie podane słowa. Analiza to porównanie liczb w danych, nie ocena.

Parametry (2)
fraza string
Szukane słowa w tytule lub zajawce analizy, np. „dług”, „umowy”, „odpady”.
limit integer
Ile analiz zwrócić (1–20, domyślnie 10).

Limity i błędy

  • Limit z jednego adresu IP: 60 wywołań na minutę i 2000 na dobę.
  • Wynik ma najwyżej 50 rekordów. Kolejne strony pobierasz przez kursor z poprzedniego wyniku.
  • Po przekroczeniu limitu narzędzie zwraca błąd limit z liczbą sekund do odblokowania w ponow_za_s. Żądania initialize i tools/list dostają wtedy HTTP 429 z nagłówkiem Retry-After.

Błąd narzędzia to wynik z isError: true i tekstem w postaci [kod] komunikat:

  • limit – przekroczony limit wywołań z jednego adresu IP.
  • zly_parametr – błędny albo brakujący parametr, komunikat wskazuje pole.
  • za_szeroko – zapytanie przekroczyło czas bazy, zawęź filtry.
  • nie_znaleziono – nierozpoznana gmina albo NIP bez umów.
  • blad – awaria serwera, spróbuj ponownie za chwilę.

Pomiar użycia

Serwis mierzy użycie serwera MCP anonimowo. Zapisujemy dobowy odcisk (nieodwracalny skrót adresu IP i nagłówka User-Agent z solą zmienianą co dobę, więc nie łączy dni), rodzaj klienta AI, wywołane narzędzie, czas i status wywołania, parametry (kod gminy, NIP firmy, CPV, rodzaj odstępstwa) oraz tekst zapytania po usunięciu numerów PESEL, adresów e-mail i telefonów. Adresu IP nie zapisujemy. Zdarzenia usuwamy po 90 dniach. Ogólne zasady opisuje polityka prywatności.

Warunki korzystania z danych

Dane pochodzą z oficjalnych rejestrów publicznych (m.in. Ministerstwo Finansów, GUS, Biuletyn Zamówień Publicznych, Centralny Rejestr Umów) i są informacją publiczną. Przy ponownym wykorzystaniu podaj źródło danych oraz z-dykty.pl jako pośrednika. Odnośnik do źródła każdej liczby znajdziesz w polu zrodla odpowiedzi. Zasady dla całego serwisu opisuje strona Otwarte dane.

Serwer jest częścią projektu z-dykty.pl w Centrum Prasowym Danych Publicznych: cpdp.media/dla-programistow. Błąd w danych albo brakujące narzędzie zgłoś przez kontakt.