Skip to main content
Glama
Polish Academic MCP

Polish Academic MCP

by asterixix

Polish Academic MCP

npm version npm downloads

Serwer MCP pozwala asystentom AI przeszukiwać polskie bazy naukowe, publiczne i kulturowe, m.in. Bibliotekę Nauki, Katalog Biblioteki Narodowej, repozytoria uczelni, GUS, ISAP i archiwa. W repozytorium dostępnych jest 143 narzędzia z 66 źródeł. Kluczy API wymagają tylko trzy narzędzia PBN.

Serwer działa na Twoim komputerze: aplikacja AI uruchamia go sama w tle, a serwer łączy się bezpośrednio z bazami, bez pośredniczących usług.

MCP (Model Context Protocol) to otwarty standard, dzięki któremu asystenci AI mogą korzystać z zewnętrznych narzędzi i baz danych.


Szybki start (bez programowania)

1. Zainstaluj Node.js. Wejdź na nodejs.org, pobierz wersję LTS i zainstaluj ją jak zwykły program (wszystkie opcje domyślne).

2. Uruchom kreator. Otwórz terminal:

  • Windows: menu Start → wpisz „PowerShell” → Enter,

  • macOS: Cmd+Spacja → wpisz „Terminal” → Enter,

  • Linux: Ctrl+Alt+T,

a potem wklej i zatwierdź Enterem:

npx -y polish-academic-mcp setup

Kreator sam znajdzie zainstalowane aplikacje AI, zapyta, które bazy włączyć, i dopisze serwer do ich ustawień (z kopią zapasową poprzednich). Przed zapisem zamknij te aplikacje.

3. Uruchom aplikację AI ponownie (całkowicie: zamknij ją też z zasobnika systemowego lub paska menu) i zapytaj na przykład:

Wyszukaj w Bibliotece Nauki artykuły o odnawialnych źródłach energii z 2024 roku.

Coś nie działa? Uruchom npx -y polish-academic-mcp doctor, a potem zajrzyj do rozwiązywania problemów.

Instalacja jednym kliknięciem

Jeśli masz już Node.js:

Dodaj do Cursora Zainstaluj w VS Code Zainstaluj w VS Code Insiders

Przyciski dodają serwer z pełną listą narzędzi. W aplikacjach z limitem narzędzi można wybrać grupy baz lub tryb routera.

Quick start (English)

Install Node.js LTS, then run npx -y polish-academic-mcp setup. The wizard detects your AI apps and adds the server to their MCP config (with a backup). Restart the app. Use --sources=nauka,prawo (or the POLISH_ACADEMIC_SOURCES env var) to expose only tools from selected sources, and npx -y polish-academic-mcp doctor to diagnose problems.


Related MCP server: Academic MCP Server

Obsługiwane aplikacje

Aplikacja

Jak dodać serwer

Uwagi

Claude Desktop

kreator setup

po zapisie zamknij Claude całkowicie i otwórz ponownie

Claude Code

kreator setup albo claude mcp add --scope user polish-academic -- npx -y polish-academic-mcp

na Windows (poza WSL): -- cmd /c npx -y polish-academic-mcp

Cursor

kreator setup lub przycisk powyżej

limit ok. 40 narzędzi łącznie: wybierz 1–2 grupy

VS Code (GitHub Copilot)

kreator setup lub przycisk powyżej

limit 128 narzędzi łącznie ze wszystkich serwerów

Windsurf

kreator setup

limit 100 narzędzi łącznie ze wszystkich serwerów

Cline, Roo Code

kreator setup

LM Studio

kreator setup

przy małych modelach włącz 1 grupę baz

AnythingLLM Desktop

kreator setup

narzędzia działają w trybie @agent

Gemini CLI, OpenAI Codex CLI, opencode, GitHub Copilot CLI

kreator setup

Zed, Continue, Goose, Hermes Agent, OpenClaw, Jan, Perplexity (macOS), Msty, Cherry Studio

npx -y polish-academic-mcp setup --print <id> wypisze gotową instrukcję

id: zed, continue, goose, hermes, openclaw, jan, perplexity, generic

Open WebUI

przez most mcpo: setup --print open-webui

Open WebUI obsługuje natywnie tylko MCP po HTTP

ChatGPT, Claude.ai, Perplexity (konektory zdalne)

wdrożenie Cloudflare w cloud/ — OAuth 2.1 pod /mcp

limit: 100 wywołań MCP / miesiąc — szczegóły: docs/CLOUDFLARE.md

Szczegółowe instrukcje dla każdej aplikacji (pliki konfiguracyjne, ręczna konfiguracja, weryfikacja): docs/CLIENTS.md. Jeśli konfigurację ma wykonać agent AI, daj mu docs/AGENT-GUIDE.md.

Wersja chmurowa (Cloudflare Workers + Pages)

Oprócz lokalnego npx możesz wdrożyć zdalne środowisko z katalogu cloud/:

  • serwer MCP HTTP z OAuth 2.1 (ORCID, email+hasło, passkey) pod /mcp,

  • limit: 100 zapytań narzędzi / miesiąc (MCP),

  • strony /connectors, /privacy, /terms pod oficjalne konektory Claude, ChatGPT i Perplexity.

Instrukcja wdrożenia i sekrety: docs/CLOUDFLARE.md.

Opcje kreatora

npx -y polish-academic-mcp setup                          # interaktywnie
npx -y polish-academic-mcp setup --list                   # obsługiwane aplikacje i ścieżki plików
npx -y polish-academic-mcp setup --client cursor --sources nauka --yes   # bez pytań
npx -y polish-academic-mcp setup --dry-run                # pokaż zmiany, nic nie zapisuj
npx -y polish-academic-mcp setup --pin                    # przypnij bieżącą wersję (zob. Aktualizacje)
npx -y polish-academic-mcp setup --print zed              # konfiguracja do wklejenia ręcznie
npx -y polish-academic-mcp uninstall                      # usuń serwer z aplikacji
npx -y polish-academic-mcp doctor                         # diagnostyka

Kreator zachowuje inne serwery i ustawienia w plikach (także Twoje zmienne we wpisie serwera, np. klucze PBN, przy ponownym uruchomieniu), przed każdą zmianą robi kopię (*.bak-<data>) i nie rusza plików z komentarzami (JSONC); dla nich wypisuje wpis do wklejenia. Na Windows zapisuje polecenie cmd /c npx …, a przy Node.js zainstalowanym przez nvm, fnm lub volta pełną ścieżkę do npx. Dzięki temu aplikacje okienkowe znajdą Node.js.


Wybór baz

Domyślny tryb lokalny wystawia narzędzia każdej bazy osobno. Jeśli klient ma ograniczoną pojemność, dodaj --mode=router do argumentów serwera lub ustaw POLISH_ACADEMIC_MODE=router. Klient zobaczy trzy narzędzia (list_sources, search, get_record). W obu trybach można ograniczyć źródła.

Grupa

Zawartość

Narzędzia

nauka

Biblioteka Nauki, Katalog Biblioteki Narodowej, RCIN, repozytoria uczelni, RODBuK, RePOD, POL-on, PBN, Ludzie Nauki, BazTOL, katalog ŚUM, PPM, arXiv, CORE, Open Research Europe, F1000Research

42

dane

Bank Danych Lokalnych GUS, dane.gov.pl, NIW, IMGW, Otwarte Dane Miasta Krakowa, MSIP Kraków, Strategia Krakowa — Bank Informacji o Mieście i Metropolii

23

prawo

ISAP (akty prawne), SAOS (orzeczenia), Biblioteka Sejmowa, KRS

12

normy

PKN, katalog norm WIEDZA

3

kultura

Wolne Lektury, zbiory filmowe i fotograficzne, biblioteki cyfrowe, Archiwa Państwowe, archiwa społeczne i bazy genealogiczne

63

Kreator setup pyta o grupy. Ręcznie ustawisz je zmienną POLISH_ACADEMIC_SOURCES w sekcji env serwera:

{
  "mcpServers": {
    "polish-academic": {
      "command": "npx",
      "args": ["-y", "polish-academic-mcp"],
      "env": { "POLISH_ACADEMIC_SOURCES": "nauka,prawo" }
    }
  }
}

albo argumentem: "args": ["-y", "polish-academic-mcp", "--sources=nauka,prawo"]. Możesz łączyć grupy z pojedynczymi bazami (nauka,isap) i wykluczać (nauka,-pbn). Pełna lista identyfikatorów: npx -y polish-academic-mcp --list-sources. Nieznane nazwy są pomijane z ostrzeżeniem w logu, a pusty wybór włącza wszystko, więc literówka nie wyłączy serwera.


Wszystkie bazy i narzędzia

Narzędzie

Baza danych

Opis

bn_search_publications

Biblioteka Nauki

Wyszukiwanie pełnotekstowe (API JSON portalu — frazy, tytuły, abstrakty)

bn_search_articles

Biblioteka Nauki

Listowanie rekordów OAI-PMH (ListRecords) po datach i/lub zbiorze czasopisma — bez zapytań słownych

bn_get_article

Biblioteka Nauki

Pobranie metadanych pojedynczego artykułu po ID (OAI-PMH GetRecord)

katalog_bn_search

Katalog Biblioteki Narodowej

Wyszukiwanie opisów bibliograficznych książek, czasopism, map i innych materiałów

katalog_bn_get_record

Katalog Biblioteki Narodowej

Pobranie rekordu bibliograficznego z polami MARC 21 po identyfikatorze zwróconym przez wyszukiwanie

ank_search

Archiwum Narodowe w Krakowie

Wyszukiwanie w spisie Zbiory online po nazwie lub numerze zespołu

ank_get_fonds

Archiwum Narodowe w Krakowie

Pozycje zespołu i odsyłacze do kopii cyfrowych

bcuwr_search

Biblioteka Cyfrowa UWr

Wyszukiwanie starodruków, rękopisów, map i regionaliów

bcuwr_get_record

Biblioteka Cyfrowa UWr

Metadane Dublin Core po identyfikatorze wydania

karta_list_records

Ośrodek KARTA

Przegląd metadanych OAI-PMH według kolekcji i daty aktualizacji

karta_get_record

Ośrodek KARTA

Odczyt metadanych rekordu po identyfikatorze OAI

niw_opp_search

Wykaz OPP NIW

Wyszukiwanie po nazwie w aktualnym wykazie OPP uprawnionych do otrzymania 1,5% podatku

krs_get_organization

Otwarte API KRS

Dane organizacji z rejestru S po numerze KRS

rcin_search

RCIN — Repozytorium Cyfrowe Instytutów Naukowych

OAI-PMH ListRecords (metadane obiektów; opcjonalnie zakres dat / zbiór OAI)

rcin_get_record

RCIN

OAI-PMH GetRecord po ID lub oai:rcin.org.pl:…

ruj_search

RUJ — Repozytorium UJ

Wyszukiwanie publikacji z Repozytorium Jagiellońskiego

ruj_get_item

RUJ

Pobranie metadanych pozycji po UUID

agh_search

AGH — Repozytorium AGH

Wyszukiwanie prac i publikacji AGH w Krakowie

agh_get_item

AGH

Pobranie metadanych pozycji po UUID

amu_search

AMU — Repozytorium UAM

Wyszukiwanie publikacji Uniwersytetu Adama Mickiewicza w Poznaniu

amu_get_item

AMU

Pobranie metadanych pozycji po UUID

uafm_search

UAFM — Repozytorium UAFM

Wyszukiwanie publikacji Uniwersytetu Andrzeja Frycza Modrzewskiego w Krakowie

uafm_get_item

UAFM

Pobranie metadanych pozycji po UUID

icm_search

ICM — Otwarte Dane Badawcze UW

Wyszukiwanie danych badawczych ICM UW

icm_get_item

ICM

Pobranie metadanych pozycji po UUID

rodbuk_search

RODBuK

Wyszukiwanie zbiorów danych badawczych uczelni krakowskich

repod_search

RePOD

Wyszukiwanie polskich otwartych danych badawczych

repod_get_dataset

RePOD

Pobranie metadanych zbioru danych po DOI

arxiv_search

arXiv

Wyszukiwanie preprintów (składnia arXiv: ti:, au:, cat:)

arxiv_get_paper

arXiv

Pobranie metadanych i streszczenia preprintu po identyfikatorze arXiv

core_search

CORE

Wyszukiwanie publikacji open access z repozytoriów na świecie (opcjonalny CORE_API_KEY)

core_get_work

CORE

Pobranie metadanych i pełnego tekstu pracy po identyfikatorze CORE

ore_search

Open Research Europe

Wyszukiwanie artykułów na platformie Komisji Europejskiej (strona wyszukiwania, bez API JSON)

ore_get_article

Open Research Europe

Pobranie metadanych i streszczenia artykułu po numerze ORE

f1000_search

F1000Research

Wyszukiwanie artykułów open access z otwartym recenzowaniem (strona wyszukiwania, bez API JSON)

f1000_get_article

F1000Research

Pobranie metadanych i streszczenia artykułu po numerze, np. 13-1145

dane_search

dane.gov.pl

Wyszukiwanie danych otwartych z portalu rządowego

dane_get_dataset

dane.gov.pl

Pobranie szczegółów zbioru danych po ID

polon_search

POL-on / RAD-on

Zbiory otwarte: uczelnie, pracownicy, projekty, publikacje, kursy (JSON, token strony)

pbn_search_publications

PBN — Polska Bibliografia Naukowa

Wyszukiwanie publikacji (JSON; wymaga PBN_APP_ID + PBN_APP_TOKEN)

pbn_search_persons

PBN

Wyszukiwanie osób / ORCID (JSON; te same nagłówki co wyżej)

pbn_get_publication

PBN

Metadane publikacji po id obiektu (JSON)

bdl_search_subjects

BDL — Bank Danych Lokalnych (GUS)

Wyszukiwanie tematów (subjectów) po fragmencie nazwy (API v1)

bdl_search_variables

BDL / GUS

Wyszukiwanie zmiennych statystycznych (cech)

bdl_search_units

BDL / GUS

Wyszukiwanie jednostek terytorialnych (TERYT itd.)

bdl_get_variable

BDL / GUS

Metadane jednej zmiennej po id liczbowym

bdl_get_data_by_variable

BDL / GUS

Wartości dla jednej zmiennej po jednostkach (np. województwa)

bdl_get_data_by_unit

BDL / GUS

Wartości dla jednej jednostki i wskazanych zmiennych

imgw_synop

IMGW-PIB

Aktualne odczyty ze stacji synoptycznych (pogodowych)

imgw_hydro

IMGW-PIB

Aktualne odczyty z wodowskazów i stacji hydrologicznych

imgw_meteo

IMGW-PIB

Aktualne odczyty ze stacji meteorologicznych

imgw_warnings

IMGW-PIB

Aktywne ostrzeżenia meteorologiczne i hydrologiczne

krakow_od_search

Otwarte Dane Miasta Krakowa

Wyszukiwanie we wszystkich 45 zbiorach UMK (12 kategorii) — wyszukiwarka portalu i pełny katalog

krakow_od_get_dataset

Otwarte Dane Miasta Krakowa

Karta zbioru: metadane, tabele REST API api.um.krakow.pl, Swagger, przykładowe wiersze, linki ArcGIS Hub

krakow_od_fetch_api

Otwarte Dane Miasta Krakowa (WSO2)

Dane JSON {value:[...]} bezpośrednio z 42 API OD-* na api.um.krakow.pl (katalog devportal v3)

krakow_msip_search

MSIP Kraków

Katalog danych i usług (179 zbiorów) oraz Geoportal metadanych (863 rekordy, JSON/XML)

krakow_msip_get_dataset

MSIP Kraków

Karta zbioru przestrzennego: pliki SHP/DXF/JSON ZIP, usługi WMS/WFS, metadane ISO 19115

krakow_msip_list_services

MSIP Kraków (ArcGIS REST)

Foldery i usługi MapServer/FeatureServer: msip3.um.krakow.pl (12.1) i msip.um.krakow.pl (10.81)

krakow_msip_query_layer

MSIP Kraków (ArcGIS REST)

Zapytanie atrybutowe query do warstwy MapServer (EPSG:2178), np. dzielnice, demografia, transport ZTP

krakow_strategia_search

Strategia Krakowa

Wyszukiwarka portalu Rozwój Krakowa i indeks Banku Informacji o Mieście i Metropolii

krakow_strategia_get_article

Strategia Krakowa — Bank Informacji

Treść artykułu/raportu, załączniki PDF/XLS (plikimpi.krakow.pl), wersja PDF (getPdf)

krakow_strategia_list_bank

Strategia Krakowa — Bank Informacji

Spis raportów o stanie Gminy/Miasta, Kraków w liczbach, Barometr, prognozy demograficzne, 16 dziedzin zarządzania

pkn_search

PKN — Polski Komitet Normalizacyjny

Wyszukiwarka treści strony www.pkn.pl (Drupal / Solr, HTML)

wiedza_search_norms

WIEDZA — PKN

Wyszukiwarka norm (Liferay; sesja + POST, HTML)

wiedza_get_standard

WIEDZA

Karta pojedynczej normy po numerze katalogowym (HTML)

blz_search

Baza Legalnych Źródeł (Legalna Kultura)

WordPress REST /wp/v2/listings — źródła kultury cyfrowej (JSON)

blz_get_listing

Baza Legalnych Źródeł

Pojedyncze źródło po ID (JSON)

blz_listing_categories

Baza Legalnych Źródeł

Taksonomia listing_cat (Filmy, Muzyka, Biblioteki…) — ID do blz_search

baztol_search

BazTOL — brama zasobów PUT

Wyszukiwanie pełnotekstowe (HTML; katalog nieaktualizowany od 2022)

baztol_browse_domain

BazTOL

Przeglądanie po dziedzinie (id z menu)

baztol_get_resource

BazTOL

Szczegóły zasobu po ID (HTML)

nac_news_rss

NAC — Narodowe Archiwum Cyfrowe

Kanał RSS aktualności instytucji (XML)

nac_site_search

NAC

Wyszukiwarka WordPress REST (?rest_route=/wp/v2/search; posty/strony; JSON)

nac_get_post

NAC

Pojedynczy wpis blogowy po id (JSON)

nac_get_page

NAC

Pojedyncza strona statyczna po id (JSON)

sum_aleph_find

Katalog Biblioteki ŚUM (Aleph)

X-Services op=find — zapytanie WWW (wrd=, wti=…; XML; możliwy błąd SRU po stronie serwera)

sum_aleph_present

Katalog ŚUM / Aleph

X-Services op=present — rekord(y) MARC/XML (set_no, set_entry)

ludzie_search

Ludzie Nauki

Wyszukiwanie profili naukowców (nazwisko, dziedzina, paginacja)

ludzie_semantic_search

Ludzie Nauki

Wyszukiwanie semantyczne / pełnotekstowe po frazie

ludzie_get_scientist

Ludzie Nauki

ORCID, stopnie/tytuły, słowa kluczowe dla profilu po ID

pauart_search

PAUart — PAU

Wyszukiwanie katalogu dzieł (Collectio / PAU)

pauart_get_artwork

PAUart

Metadane pojedynczego dzieła po ID z katalogu

isap_search_acts

ISAP — ELI API Sejmu

Wyszukiwanie aktów prawnych (tytuł, słowa kluczowe ISAP, daty, DU/MP itd.)

isap_get_act

ISAP / ELI

Metadane pojedynczego aktu po ELI, np. DU/2026/370

bs_sejm_search

Biblioteka Sejmowa — OPAC

Wyszukiwanie słowne (func=find-b); zwraca HTML listy (np. bis01, pos01)

bs_sejm_get_item

Biblioteka Sejmowa

Karta bibliograficzna (func=item-global) po doc_library + doc_number — HTML

saos_search_judgments

SAOS

Wyszukiwanie orzeczeń (fraza all, daty, sygnatura, sąd, typ orzeczenia)

saos_get_judgment

SAOS / API przeglądania

Pełne orzeczenie po id liczbowym z wyszukiwarki

saos_dump_services

SAOS / API pobierania

Lista endpointów hurtowego pobierania (dump)

saos_dump_common_courts

SAOS — dump

Słownik sądów powszechnich (stronicowanie)

saos_dump_sc_chambers

SAOS — dump

Słownik izb SN (stronicowanie)

saos_dump_judgments

SAOS — dump

Hurtowe orzeczenia (filtry dat / synchronizacja; duże odpowiedzi)

saos_dump_enrichments

SAOS — dump

Etykiety modułu wzbogacania (stronicowanie)

wolnelektury_list_taxonomy

Wolne Lektury

Słowniki: autorzy, epoki, gatunki, rodzaje, motywy, kolekcje (slugi)

wolnelektury_filter_books

Wolne Lektury

Lista utworów po filtrach (autor/epoka/gatunek/rodzaj); nie woła /api/books/ w całości

wolnelektury_get_book

Wolne Lektury

Metadane i linki do plików po slugu utworu

wolnelektury_get_collection

Wolne Lektury

Kolekcja tematyczna + lista książek w kolekcji

ninateka_search

Ninateka — FINA VOD

Wyszukiwanie materiałów po słowie kluczowym (JSON API frontu; platform=BROWSER)

ninateka_get_vod

Ninateka

Metadane pojedynczego materiału po id liczbowym z wyszukiwarki (JSON)

gapla_search

Gapla — galeria plakatu filmowego FINA

Wyszukiwanie plakatów (szukaj.html — tytuł / autor / reżyseria; HTML)

gapla_get_poster

Gapla

Strona pojedynczego plakatu po id (plakat/{id}.html — HTML)

fototeka_search

Fototeka — FN INA

Wyszukiwanie fotosów i zdjęć (wyszukiwarka.html — tytuł / osoba / reżyseria / słowa kluczowe; HTML, paginacja pageNumber / howmany)

fototeka_get_photo

Fototeka

Strona pojedynczego zdjęcia po id (/pl/foto/view/{id}.html — HTML)

filmpolski_search

FilmPolski.pl (PWSFTviT)

Wyszukiwarka bazy filmu (index.php?szukaj=&rodzaj= — HTML parsowane do JSON: osoby, filmy; tryby fragment / początek / dokładnie)

filmpolski_get_item

FilmPolski.pl

Karta rekordu po id (index.php/{id}) — tekst z elementu <article> filmu lub osoby (obcięty)

fototekaslaska_search

Fototeka Śląska (MWO Opole)

Wyszukiwanie zdjęć (WordPress GET ?s=&t=&y=; HTML z .search-list → JSON: slug, URL, podpis, miniatura)

fototekaslaska_get_photo

Fototeka Śląska

Strona rekordu /galeria/{slug}/ — tytuł, nr katalogowy, URL zdjęcia, opis i tabela (tekst)

fn_repo_search

Repozytorium FN

Wyszukiwanie Solr (HTML — kafelki wyników; brak publicznego JSON API)

fn_repo_get_node

Repozytorium FN

Karta rekordu po id węzła Drupal (/?q=pl/node/{id} — HTML)

fn_repo_film_index

Repozytorium FN

Indeks tytułów po pierwszej literze (A–Ż / INNE — HTML)

fn_repo_browse_kind

Repozytorium FN

Przegląd: fabularne / dokumentalne / animacje / magazyn (HTML)

dokumenty_slaska_get_page

Dokumenty Śląska

Pobranie pojedynczej strony statycznej po ścieżce względnej (indeks …, dokument …, podkatalogi — HTML)

dokumenty_slaska_medieval_catalog

Dokumenty Śląska

Lista JSON ścieżek do głównej serii dokumentów średniowiecznych (okresy do 1333 r.) — pomoc nawigacyjna

Zbiory archiwalne i organizacje

  • Archiwum Narodowe w Krakowie prowadzi spis zespołów z odsyłaczami do kopii cyfrowych. W routerze podaj sources: ["ank"] i np. query: "29/33". Użyj get_record z id: "ank:29/33", aby zebrać odsyłacze zespołu.

  • W KARCIE przeglądaj kolekcje przez search z operation: "karta_list_records" i filters: {set: "KARTADigitalLibrary:BCOK:AOP"} dla Archiwów Społecznych. karta_get_record przyjmuje identyfikator OAI lub jego końcowy numer.

  • Wykaz NIW obejmuje OPP uprawnione do 1,5% podatku, czyli część sektora NGO. Numer z niw_opp_search można przekazać do krs_get_organization lub użyć w routerze, np. get_record z id: "krs:0000030897".

Kraków — Otwarte Dane, MSIP i Bank Informacji o Mieście i Metropolii

Trzy źródła grupy dane pokrywają wszystkie publicznie dostępne dane Miasta Krakowa:

  • Otwarte Dane Miasta Krakowa (krakow_od_*): 45 zbiorów w 12 kategoriach (m.in. bezrobocie i oferty pracy GUP, cudzoziemcy i zameldowani w 18 dzielnicach, statystyki demograficzne od 1995 r., żłobki/przedszkola/szkoły, parki miejskie i kieszonkowe, zarejestrowane pojazdy, ruch turystyczny od 2015 r., Komunikacja Miejska KMK, działalność Biblioteki Kraków, muzeów, teatrów i ośrodków kultury, biegi miejskie). Każdy zbiór z tabelami danych udostępnia REST API na api.um.krakow.pl (WSO2 API Manager, format OData JSON {value:[...]}, eksport JSON/CSV/XLSX, dokumentacja Swagger per tabela); katalog wszystkich 42 API OD-*: https://api.um.krakow.pl/api/am/devportal/v3/apis?limit=100, portal deweloperski: https://api.um.krakow.pl/devportal. Zbiory bez tabel API (np. KMK) linkują warstwy ArcGIS Hub ZTP.

  • MSIP — Miejski System Informacji Przestrzennej (krakow_msip_*): Katalog danych i usług ze 179 zbiorami przestrzennymi (budynki/działki ewidencyjne, adresy i ulice EMUiA, dzielnice, MPZP i decyzje WZ, mapy hałasu, ortofotomapy, zameldowania) z plikami SHP/DXF/JSON (ZIP), usługami WMS/WFS i metadanymi ISO 19115; katalog metadanych Geoportal (863 rekordy, https://msip.um.krakow.pl/geoportal/rest/metadata/search); usługi ArcGIS REST na dwóch serwerach: https://msip3.um.krakow.pl/server/rest/services (ArcGIS Server 12.1, 36 folderów: Demografia, Geodezja, Planowanie, Pobieranie, Transport, Zdrowie, Zabytki…) oraz https://msip.um.krakow.pl/arcgis/rest/services (10.81: Obserwatorium, Metropolia Krakowska, Hosted), z zapytaniami query do warstw (EPSG:2178; folder Pobieranie: Adresy, Budynki, Decyzje_Pnb, Decyzje_Wz, Dzialki, Dzielnice, Ulice, Wybory).

  • Strategia Krakowa — Bank Informacji o Mieście i Metropolii (krakow_strategia_*): Raport o stanie Gminy (od 2018 r., załączniki PDF na plikimpi.krakow.pl), Raport o stanie Miasta, Kraków w liczbach / Krakow in numbers, Biuletyn Statystyczny (BIP), prognozy demograficzne dla Krakowa i MOF do 2050 roku, statystyka eksperymentalna (dojazdy do pracy, sytuacja demograficzna/dochodowa Krakowa, KOM i OSI), badania społeczne (Barometr Krakowski od 2015 r., Badanie Jakości Życia i Jakości Usług Publicznych) oraz 16 dziedzin zarządzania; wyszukiwarka portalu Rozwój Krakowa (POST, sp_port_id=128) i wersja PDF każdego artykułu (getPdf/?dok_id=).

Biblioteka Sejmowa — katalog OPAC

Katalog Biblioteki Sejmowej działa w systemie Aleph (interfejs jak w przeglądarce). Nie udostępnia publicznego API JSON ani dokumentacji SRU dla maszynowego dostępu w stylu REST — narzędzia bs_sejm_search i bs_sejm_get_item wołają te same adresy co formularz WWW (func=find-b — lista wyników, func=item-global — pełna karta rekordu) i zwracają surowe HTML.

Typowy przepływ: bs_sejm_search z parametrem local_base (np. bis01 — katalog główny, bis05 — artykuły z czasopism, pos01 — nagrania z posiedzeń, tek01 — teksty konstytucji) → z HTML listy wyników odczytaj z linków item-global wartości doc_library i doc_number → bs_sejm_get_item. Pełna lista baz jest na stronie startowej katalogu.

Uwaga: to nie jest to samo co api.sejm.gov.pl — akty prawne i metadane ISAP obsługują osobne narzędzia isap_* (ELI API).

Fototeka, FilmPolski, Fototeka Śląska i Dokumenty Śląska

Fototeka (Filmoteka Narodowa — INA) nie publikuje osobnego REST/OpenAPI. Wyniki wyszukiwania są serwowane jako HTML (/pl/strona/wyszukiwarka.html z parametrami key, search_type, pageNumber, howmany). fototeka_get_photo zwraca stronę rekordu (/pl/foto/view/{id}.html). Wewnętrzny endpoint ajax.html (JSON z fragmentami HTML) wymaga pełnego formularza sesji i nie jest używany w narzędziu.

FilmPolski.pl — Internetowa Baza Filmu Polskiego; brak publicznego API JSON. Wyszukiwanie to GET na index.php (szukaj, rodzaj: fragment / początek / dokładnie). Osoby w bazie są jako „nazwisko, imię” (w trybie dokładnie wymagany jest przecinek). Narzędzia parsują HTML do zwartego JSON (filmpolski_search) i zwracają tekst z głównego artykułu rekordu (filmpolski_get_item). Regulamin serwisu ogranicza kopiowanie całej bazy — używaj krótkich fragmentów i podawaj źródło.

Fototeka Śląska (Muzeum Wsi Opolskiego) działa na WordPressie — istnieje ogólne /wp-json/, ale typ wpisów galerii nie ma publicznego endpointu wp/v2/... dla pojedynczych rekordów. Wyszukiwanie jak na stronie głównej: GET z s (fraza), t (tytuł / miejscowość / powiat / opis / nr katalogowy), opcjonalnie y (okres historyczny), paged (strona). fototekaslaska_search bierze tylko blok .search-list, żeby nie mieszać wyników z sekcją „Ostatnio dodane”. fototekaslaska_get_photo pobiera /galeria/{slug}/. Prawa do zdjęć pozostają po stronie muzeum — bez masowego pobierania plików.

Dokumenty Śląska to statyczna witryna (pliki indeks … / dokument … i podkatalogi) — brak API i centralnej wyszukiwarki. dokumenty_slaska_get_page pobiera jeden zasób po bezpiecznej ścieżce względnej; dokumenty_slaska_medieval_catalog to stała lista JSON ścieżek głównej serii średniowiecznej (nawigacja, nie zapytanie full-text).

NAC i katalog ŚUM (Aleph)

Narodowe Archiwum Cyfrowe — strona instytucji na WordPressie: narzędzia nac_* używają kanału RSS (/feed/) oraz WordPress REST przez fallback ?rest_route=/wp/v2/... (często stabilniejszy niż /wp-json/... przy ochronach WAF). Zdigitalizowane materiały archiwalne są w serwisie Szukaj w Archiwach (informacje NAC) — brak tam publicznego, udokumentowanego API do przeszukiwania katalogu; często działa też ochrona przed botami (Incapsula).

Katalog Biblioteki Śląskiego Uniwersytetu Medycznego to OPAC Aleph (Ex Libris). Interfejs maszynowy: Aleph X-Services pod https://katalog.sum.edu.pl/X (odpowiedzi XML), zgodnie z dokumentacją Ex Libris. sum_aleph_find woła op=find (np. request=wrd=…); na instalacji może pojawić się komunikat o braku konfiguracji bramki SRU — wtedy wyszukiwanie przez X-Server wymaga naprawy po stronie biblioteki. sum_aleph_present (op=present, format marc itd.) służy do pobrania rekordów z numeru zestawu i pozycji.

Większość baz oferuje otwarty dostęp do odczytu bez obowiązkowych kluczy API. Wyjątki: narzędzia WIEDZA (wiedza_*) nie buforują odpowiedzi (sesja Liferay); PKN www (pkn_search) ma krótszy TTL cache niż repozytoria akademickie. BDL (GUS) działa anonimowo, ale możesz ustawić zmienną środowiskową BDL_CLIENT_ID (nagłówek X-ClientId), jeśli masz klucz z Portalu API GUS — wtedy wyższe limity wywołań po stronie GUS. Dokumentacja REST: https://bdl.stat.gov.pl/api/v1/ (OpenAPI: …/swagger/doc/swagger.json).

PBN (wymagane dostępy): aby włączyć narzędzia pbn_search_publications, pbn_search_persons i pbn_get_publication, musisz mieć aktywny dostęp do API PBN i ustawić co najmniej PBN_APP_ID + PBN_APP_TOKEN (opcjonalnie PBN_USER_TOKEN). Dostęp i rejestracja aplikacji: OpenAPI PBN oraz Centrum pomocy PBN.


Rozwiązywanie problemów

Najpierw uruchom npx -y polish-academic-mcp doctor. Sprawdza wersję Node.js, połączenie z bazami i to, które aplikacje mają skonfigurowany serwer.

Objaw

Co zrobić

spawn npx ENOENT, „command not found”, serwer ma czerwony status

Node.js nie jest zainstalowany albo aplikacja okienkowa go nie widzi (częste przy nvm/fnm/volta na macOS). Zainstaluj LTS z nodejs.org i uruchom ponownie setup, który zapisze pełną ścieżkę do npx.

Windows: serwer nie startuje

Użyj polecenia cmd z argumentami ["/c", "npx", "-y", "polish-academic-mcp"] (kreator robi to sam).

„Server disconnected” / „transport closed” przy pierwszym uruchomieniu

Pierwsze uruchomienie pobiera pakiet (kilka–kilkadziesiąt sekund). Poczekaj i uruchom aplikację ponownie.

Narzędzia nie pojawiają się

Zamknij aplikację całkowicie (także z zasobnika / paska menu) i otwórz ponownie. Sprawdź limit narzędzi aplikacji i ogranicz bazy.

Model nie używa narzędzi

W LM Studio, AnythingLLM i Jan włącz narzędzia w czacie lub tryb agenta i wybierz model obsługujący wywołania narzędzi (tool calling).

Błąd tylko jednej bazy

Serwis mógł być chwilowo niedostępny (np. repozytorium UAFM, wyszukiwarka SAOS). Pozostałe bazy działają niezależnie.

Sieć firmowa z proxy

Wbudowany fetch w Node.js domyślnie ignoruje proxy. W aktualnych Node.js 22/24 dodaj do env serwera "NODE_USE_ENV_PROXY": "1" oraz "HTTPS_PROXY": "http://proxy:port".

Po zmianie wersji Node.js serwer przestał działać

Uruchom ponownie npx -y polish-academic-mcp setup (doctor pokaże nieaktualną ścieżkę).

Logi. Komunikaty serwera trafiają do logów aplikacji, np. Claude Desktop: ~/Library/Logs/Claude/mcp-server-polish-academic.log (macOS) lub %APPDATA%\Claude\logs\ (Windows). Aby zobaczyć każde zapytanie HTTP do baz (adres bez wartości parametrów, status, czas), dodaj do env serwera "POLISH_ACADEMIC_DEBUG": "1".

Aktualizacje. Przy wpisie npx -y polish-academic-mcp (bez numeru wersji) npx przy starcie aplikacji sprawdza, czy jest nowsza wersja, i ją pobiera. Jeśli wolisz aktualizować świadomie (np. w pracowni lub firmie), przypnij wersję: npx -y polish-academic-mcp setup --pin zapisze polish-academic-mcp@<wersja>. Aktualizacja to wtedy npx -y polish-academic-mcp@<nowa-wersja> setup --pin po sprawdzeniu nowej wersji.

Odinstalowanie. npx -y polish-academic-mcp uninstall usuwa wpis z aplikacji (z kopią zapasową pliku).


Zmienne środowiskowe

Wszystkie są opcjonalne. Ustawia się je w sekcji env wpisu serwera w konfiguracji aplikacji.

Zmienna

Działanie

POLISH_ACADEMIC_SOURCES

włączone grupy lub bazy, np. nauka,prawo (zob. Wybór baz)

PBN_APP_ID, PBN_APP_TOKEN

dostęp do API PBN (narzędzia pbn_*); przyznawany instytucjom przez PBN

PBN_USER_TOKEN

token użytkownika PBN dla operacji wymagających kontekstu użytkownika

BDL_CLIENT_ID

klucz API GUS BDL: wyższe limity zapytań

CORE_API_KEY

klucz API CORE: wyższe limity zapytań (core_*); bez klucza obowiązuje niski limit anonimowy

POLISH_ACADEMIC_DEBUG

1 = log każdego zapytania HTTP na stderr: adres bez wartości parametrów, status, czas (widoczny w logach aplikacji)


Dla programistów

git clone https://github.com/asterixix/polish-academic-mcp.git
cd polish-academic-mcp
npm install
npm run build
npm test            # testy kontraktowe, konfiguracji klientów i polityki sieciowej
npm run dev         # serwer stdio z src/index.ts
npm run smoke:tools # test na żywo wszystkich narzędzi (wymaga internetu)

Lokalny build podłączysz do aplikacji poleceniem node i ścieżką bezwzględną do dist/index.js. Do ręcznych testów przyda się MCP Inspector: npx @modelcontextprotocol/inspector node dist/index.js.

Aplikacja AI (Claude, Cursor, VS Code…)
       │  stdio JSON-RPC
       ▼
src/index.ts   CLI (setup, doctor, --sources) + StdioServerTransport
src/server.ts  createServer(): rejestruje wybrane źródła z src/sources.ts
src/tools/*    jeden plik na bazę; odpowiedzi to surowe dane ze źródła
src/cache.ts   cache w pamięci, limit 30 s, jedna ponowna próba przy błędach sieci

Jak dodać nową bazę: AGENTS.md. Zasady współpracy: CONTRIBUTING.md.


Polityka prywatności (Privacy Policy)

Niniejsza sekcja określa zasady prywatności dla lokalnego serwera MCP (polish-academic-mcp, repozytorium: https://github.com/asterixix/polish-academic-mcp) oraz zdalnego konektora chmurowego dostępnego pod adresem https://pamcp.pl (wymóg katalogów Anthropic Claude, OpenAI ChatGPT oraz Perplexity). Pełna wersja online jest dostępna pod adresem https://pamcp.pl/privacy (oraz regulamin pod https://pamcp.pl/terms, dokumentacja konektora pod https://pamcp.pl/connectors).

  1. Praktyki zbierania danych (Data Collection Practices):

    • Serwer lokalny (npx polish-academic-mcp): działa w całości na komputerze użytkownika i nie zbiera, nie przechowuje ani nie przesyła żadnych danych osobowych, telemetrii ani identyfikatorów sesji do autora pakietu.

    • Zdalny konektor chmurowy (https://pamcp.pl/mcp): stosuje minimalizację danych (Privacy by Design). Narzędzia przyjmują wyłącznie parametry wyszukiwania (frazy, identyfikatory rekordów, sygnatury aktów). Serwer nie pobiera historii czatu klienta, nie zbiera lokalizacji GPS ani danych wrażliwych (PHI, PCI DSS, numerów PESEL/SSN, haseł). Dla potrzeb autoryzacji OAuth 2.1 przetwarzany jest wyłącznie adres e-mail (lub ORCID iD / klucz publiczny passkey WebAuthn), kryptograficzny skrót SHA-256 tokenu OAuth oraz licznik przydziału zapytań.

  2. Wykorzystanie i przechowywanie (Usage and Storage):

    • Dane konta i autoryzacji w wersji chmurowej służą wyłącznie do uwierzytelniania OAuth 2.1 (PKCE S256), realizacji zapytań w trybie tylko do odczytu (readOnlyHint: true, destructiveHint: false) oraz egzekwowania limitów zapytań w bazie Cloudflare D1.

    • Odpowiedzi z publicznych API są tymczasowo buforowane (cache) w pamięci RAM (lokalnie) lub Cloudflare KV (w chmurze) bez powiązania z tożsamością użytkownika.

  3. Udostępnianie podmiotom trzecim (Third-Party Sharing):

    • Nie sprzedajemy ani nie udostępniamy danych osobowych podmiotom trzecim ani sieciom reklamowym.

    • Zapytania wyszukiwawcze (bez danych konta użytkownika) są wysyłane bezpośrednio do publicznych interfejsów API 51 polskich instytucji naukowych, statystycznych, prawnych i archiwalnych (m.in. Biblioteka Nauki, GUS BDL, Sejm ELI / ISAP, SAOS, Wolne Lektury, Archiwa Państwowe).

    • W wersji chmurowej podmiotem przetwarzającym infrastrukturę jest Cloudflare, Inc., a przy logowaniu przez ORCID — ORCID, Inc.

  4. Okres przechowywania (Data Retention):

    • Dane konta: do momentu usunięcia konta na żądanie użytkownika.

    • Kody autoryzacyjne OAuth: 10 minut; tokeny dostępowe: 1 godzina; tokeny odświeżające: 30 dni lub do odwołania.

    • Cache publicznych odpowiedzi API: od 1 do 24 godzin.

  5. Dane kontaktowe (Contact Information):


Licencja

MIT

Available Tools

85 tools
agh_get_itemA

Retrieve full metadata for a single item in the AGH University of Krakow Repository by its UUID. The UUID is found in the 'uuid' field of agh_search results. Returns Dublin Core metadata including title, authors, abstract, type, date, DOI, and handle URL.

Inputs: uuid (required).

amu_get_itemA

Retrieve full metadata for a single item in the Adam Mickiewicz University Repository by its UUID. The UUID is found in the 'uuid' field of amu_search results.

Inputs: uuid (required).

baztol_browse_domainB

Browse BazTOL by subject domain (same categories as the portal sidebar). Domain ids: 24 Architektura, 25 Automatyka, 26 Biotechnologia, 27 Budownictwo, 28 Chemia, 29 Elektronika i Telekomunikacja, 30 Elektrotechnika i Energetyka, 31 Fizyka i Astronomia, 32 Geodezja i Kartografia, 33 Górnictwo i Geologia, 34 Informatyka, 35 Inżynieria i Ochrona Środowiska, 36 Inżynieria Materiałowa, 37 Matematyka, 38 Mechanika, 39 Oceanologia i Oceanotechnika, 40 Transport, 41 Zarządzanie, 42 Źródła ogólne. Returns HTML.

Inputs: domain_id (required), page.

baztol_get_resourceA

Fetch one BazTOL resource description page (HTML) by numeric id. Ids appear in result lists as links /baztol_czytelnik/baztol?id=….

Inputs: resource_id (required).

bdl_get_data_by_unitB

Fetch values for one territorial unit for one or more variables (numeric variable ids). Requires at least one variable id. Optional year list and paging. API: GET /data/by-unit/{unit-id} with repeated var-id query params.

Inputs: unit_id (required), variable_ids (required), years, aggregate_id, +3 more.

bdl_get_data_by_variableA

Fetch statistical values for one variable across territorial units (e.g. all voivodeships). Set unit_level (BDL level id) and optionally unit_parent_id to scope results; year filters which periods are returned. Pagination is 0-based. API: GET /data/by-variable/{var-id}.

Inputs: variable_id (required), years, unit_level, unit_parent_id, +4 more.

bdl_get_variableA

Fetch metadata for one BDL variable by numeric id (from bdl_search_variables results). API: GET /variables/{id}.

Inputs: variable_id (required), lang.

bdl_search_subjectsA

Search BDL (GUS) thematic subjects by name fragment. Use to discover subject IDs before listing variables or drilling into the tree. API: GET /subjects/search. Pagination is 0-based. Returns JSON (subject id, name, children ids, levels).

Inputs: name (required), page, page_size, sort, +1 more.

bdl_search_unitsA

Search BDL territorial units (voivodeships, counties, powiat, gmina, etc.) by name fragment. Optional level and year filters. Use returned unit id with bdl_get_data_by_unit. API: GET /units/search. Pagination is 0-based.

Inputs: name, levels, years, page, +3 more.

bdl_search_variablesA

Search BDL statistical variables (characteristics). Filter by name text (N1…N5), subject-id, level, and years. Use results' numeric id with bdl_get_data_by_variable or bdl_get_data_by_unit. API: GET /variables/search. Pagination is 0-based.

Inputs: name, subject_id, level, years, +4 more.

blz_get_listingC

Fetch one source (listing) by numeric WordPress post ID from Baza Legalnych Źródeł. Returns raw JSON.

Inputs: listing_id (required).

blz_listing_categoriesB

List taxonomy terms for listing_cat (categories like Filmy, Muzyka, Biblioteki, Muzea). Use term id as listing_cat in blz_search. Raw JSON from WordPress REST.

Inputs: page, per_page, parent.

bn_get_articleA

Fetch the full metadata record for a single article from Biblioteka Nauki by its numeric ID. Defaults to jats format which includes abstract, keywords, affiliations, and references.

Inputs: article_id (required), metadata_format.

bn_search_articlesA

OAI-PMH ListRecords harvest for Biblioteka Nauki — NOT full-text keyword search. Use this to list records by optional date range (from_date/until_date) and/or OAI set (journal id from ListSets), or to page with resumption_token. There is no query string in OAI-PMH; for keyword/topic search use bn_search_publications. Returns raw XML. metadata_format=oai_dc (Dublin Core) or jats (abstracts, keywords, references).

Inputs: from_date, until_date, set, metadata_format, +2 more.

bn_search_publicationsA

Full-text search in Biblioteka Nauki (Polish open-access articles, books, chapters). Uses the public JSON search API (same as the website). Prefer this tool when the user gives keywords, topics, author names, or titles. For harvesting by date range or OAI journal set without keywords, use bn_search_articles (OAI-PMH XML) instead. Returns JSON with hits, snippets (mainTitleSnippets, fullTextSnippets), and totalResults.

Inputs: query (required), page, page_size, sort_field, +5 more.

bs_sejm_get_itemA

Fetch one Sejm Library OPAC bibliographic record as HTML (func=item-global). Pass doc_library and doc_number exactly as in item-global links from bs_sejm_search results (e.g. doc_library=BIS01, doc_number=000179010). sub_library is usually BS for main stacks — copy from the link if different. Stable per record (unlike session-bound full-set-set links); suitable for caching.

Inputs: doc_library (required), doc_number (required), sub_library, year, +1 more.

dane_get_datasetA

Get full details for a specific dataset on dane.gov.pl by its numeric ID, including all downloadable resources (CSV, XLSX, JSON, API links, etc.). The dataset_id is the integer id field returned by dane_search.

Inputs: dataset_id (required).

dokumenty_slaska_get_pageA

Fetch a single page from the Dokumenty Śląska static site (medieval Silesian documents, regesta, seals, iconography). There is no public search API — content is static HTML; use indeks*.html for tables of contents and dokument*.html for full compilations where the menu provides them. Pass a relative path such as "indeks 1200.html", "kamenz/index.html", or "bibliografia.html". Spaces in filenames are OK. Returns raw HTML (iso-8859-2 on most pages). Follow links from the response to load further pages.

Inputs: path (required).

dokumenty_slaska_medieval_catalogA

Returns a fixed JSON list of relative paths for the main medieval document series on dokumentyslaska.pl (menu „Dokumenty”: periods up to 1333). Use dokumenty_slaska_get_page with indeks* paths for a table of contents and dokument* for the full running text for that period. This is not a database query — only a navigation aid; other collections (monasteries, chronicles, etc.) use different folders — discover paths from the homepage HTML.

Inputs: no named parameters.

filmpolski_get_itemA

Fetch one FilmPolski.pl record by numeric id (from filmpolski_search links index.php/{id}). Returns plain text extracted from the main (film or person), truncated for LLM context. Full page is HTML; this tool strips markup. Obey copyright/database notices on the site.

Inputs: item_id (required).

fn_repo_browse_kindB

Browse by production kind: fiction (fabularne), documentary, animation/experimental, or magazine — same entries as the top menu. Returns HTML (not JSON).

Inputs: kind (required), lang.

fn_repo_film_indexA

Browse the film catalog by first letter of title (A–Z, Polish letters, or INNE). Returns HTML list linking to /?q=pl/node/… — same as the site “katalog filmów”.

Inputs: letter (required), lang.

fn_repo_get_nodeA

Fetch one repository page by Drupal node id (numeric), as in /?q=pl/node/8937. Returns HTML (metadata, description, video embeds, person links).

Inputs: node_id (required), lang.

fototeka_get_photoA

Fetch the Fototeka HTML page for a single photo by numeric id (path /pl/foto/view/{id}.html). Ids appear in search results and collection links on fototeka.fn.org.pl. Returns raw HTML (metadata, description, related links) — not the full-resolution image file.

Inputs: photo_id (required).

fototekaslaska_get_photoA

Fetch one Fototeka Śląska photo page by URL slug (path /galeria/{slug}/). Returns title, optional catalog line, main image URL, and plain text from the description/table. Respect museum copyright and terms; do not bulk-download image files without permission.

Inputs: slug (required).

gapla_get_posterA

Fetch one Gapla poster detail page as HTML by numeric id (from gapla_search links plakat/ID/…). URL pattern: /plakat/{id}.html — slug in the public URL is optional for retrieval. Returns raw HTML (metadata, credits, image links); no separate JSON API.

Inputs: poster_id (required).

icm_get_itemA

Retrieve full metadata for a single item in the ICM Open Research Data Repository (open.icm.edu.pl) by its UUID. The UUID is found in the 'uuid' field of icm_search results.

Inputs: uuid (required).

imgw_hydroA

Retrieve current hydrological (river gauge) station readings from IMGW-PIB (danepubliczne.imgw.pl). Returns JSON with water level, flow rate, ice phenomena, and alarm level status for all active hydrological stations in Poland. Data is refreshed roughly every hour.

Inputs: no named parameters.

imgw_meteoA

Retrieve current meteorological station readings from IMGW-PIB (danepubliczne.imgw.pl). Returns JSON with temperature, precipitation, snow cover, wind, and related measurements for all active meteorological stations in Poland. Data is refreshed roughly every hour.

Inputs: no named parameters.

imgw_synopA

Retrieve current synoptic (weather) station readings from IMGW-PIB (danepubliczne.imgw.pl). Returns JSON with temperature, wind speed, humidity, pressure, precipitation, and more for all active synoptic stations in Poland, or for a single station when station_id or station_name is provided. Data is refreshed roughly every hour. station_id: numeric SYNOP station identifier (e.g. 12500 for Jelenia Góra). station_name: station name without Polish diacritic characters (e.g. 'jeleniagora'). Providing both station_id and station_name — station_id takes precedence.

Inputs: station_id, station_name.

imgw_warningsA

Retrieve active meteorological and/or hydrological warnings issued by IMGW-PIB (danepubliczne.imgw.pl). Returns JSON with current alert levels, affected regions, hazard descriptions, and validity periods. type: 'meteo' for weather warnings (storms, frost, heat, wind, etc.), 'hydro' for flood and hydrological warnings, or 'all' for both (default).

Inputs: type.

isap_get_actA

Fetch one legal act from ISAP by ELI identifier (same numbering as in search results). Example ELI: DU/2026/370 — Dziennik Ustaw, year 2026, position 370. Returns JSON with title, texts (PDF file names), references.

Inputs: eli (required).

isap_search_actsA

Search Polish legal acts indexed in ISAP via the Sejm ELI JSON API (European Legislation Identifier). Use title for full-text-in-title search; keywords match ISAP keyword tags (not arbitrary prose). Filter by publisher (e.g. DU = Dziennik Ustaw), year, type (e.g. Ustawa, Rozporządzenie), in_force, dates. Returns raw JSON with items[].ELI, title, displayAddress, texts, references. See https://api.sejm.gov.pl/eli/openapi/

Inputs: title, keyword, year, publisher, +14 more.

ludzie_get_scientistA

Fetch public detail for one Ludzie Nauki profile: ORCID, academic degrees/titles (POLON), and top keywords. profile_id is the profileId field from ludzie_search or ludzie_semantic_search. Returns a compact JSON object; see profileUrl for the human-readable page.

Inputs: profile_id (required).

nac_get_pageB

Fetch a single static page from nac.gov.pl as WordPress REST JSON (/wp/v2/pages/{id}).

Inputs: page_id (required).

nac_get_postA

Fetch a single blog post from nac.gov.pl as WordPress REST JSON (/wp/v2/posts/{id}).

Inputs: post_id (required).

nac_news_rssA

Fetch the NAC institutional news RSS 2.0 feed (aktualności, WordPress). Returns raw XML. This is not the digitized archival catalogue — that lives on szukajwarchiwach.gov.pl (no stable public REST API for programmatic search).

Inputs: no named parameters.

ninateka_get_vodA

Get full JSON metadata for one Ninateka item by numeric id (from ninateka_search items[].id). Includes description, categories, images, type (VOD, EPISODE, SERIAL, …) when present. Does not return streaming URLs or DRM — metadata only.

Inputs: vod_id (required), platform.

pauart_get_artworkA

Fetch one artwork record from PAUart by its catalogue id (e.g. AN_KIII_150_16476). Returns compact metadata (title, inventory, tags, preview path). Use ids returned by pauart_search.

Inputs: artwork_id (required).

pbn_get_publicationB

Fetch extended publication metadata by PBN Mongo object id (GET /v1/publications/id/{id}). Requires PBN_APP_ID and PBN_APP_TOKEN.

Inputs: publication_id (required).

pbn_search_personsC

Search persons in PBN via POST /v1/search/persons (researchers, ORCID). Requires PBN_APP_ID and PBN_APP_TOKEN. Returns JSON (MetadataDTO).

Inputs: first_name, last_name, orcid, object_id, +2 more.

pbn_search_publicationsB

Search publications in Polska Bibliografia Naukowa (PBN) via POST /v1/search/publications. Requires PBN_APP_ID and PBN_APP_TOKEN. Returns JSON (MetadataDTO). Filter by title, DOI, ISBN, ISSN, year range, type (BOOK, ARTICLE, …), authors, pagination (page/size).

Inputs: title, doi, isbn, issn, +8 more.

rcin_get_recordA

Fetch a single RCIN object via OAI-PMH GetRecord. Pass record_id as the numeric id from browse/search URLs, or full OAI id oai:rcin.org.pl:NNNNN.

Inputs: record_id (required), metadata_format.

repod_get_datasetA

Get metadata for a specific dataset in RePOD by its DOI. Choose datacite for standard metadata, schema.org for JSON-LD, dcterms for Dublin Core XML, or dataverse_json for the full native record.

Inputs: doi (required), format.

ruj_get_itemA

Retrieve full metadata for a single item in the Jagiellonian University Repository by its UUID. The UUID is found in the 'uuid' field of ruj_search results.

Inputs: uuid (required).

saos_dump_common_courtsA

SAOS dump: paginated list of common courts (names, codes, divisions). Use small page_size; responses are large. Cache TTL 24h.

Inputs: page_size, page_number.

saos_dump_enrichmentsB

SAOS dump: paginated list of enrichment tags from the SAOS enrichment module (labels for judgments).

Inputs: page_size, page_number.

saos_dump_judgmentsA

SAOS bulk dump of judgments (full records per row — can be very large). Prefer narrow judgment_start_date/judgment_end_date and page_size 10–20. since_modification_date: incremental sync (ISO local: yyyy-MM-dd'T'HH:mm:ss.SSS). with_generated: include SAOS enrichment module fields. Not a replacement for saos_search_judgments (different use case: mirror/sync).

Inputs: page_size, page_number, judgment_start_date, judgment_end_date, +2 more.

saos_dump_sc_chambersB

SAOS dump: paginated list of Supreme Court chambers and divisions.

Inputs: page_size, page_number.

saos_dump_servicesA

SAOS bulk dump API entry: lists hypermedia links to dump sub-services (commonCourts, judgments, scChambers, enrichments, deletedJudgments). For searching judgments without mirroring the full database prefer saos_search_judgments. Docs: https://www.saos.org.pl/help/index.php/dokumentacja-api/api-pobierania-danych

Inputs: no named parameters.

saos_get_judgmentA

Fetch one SAOS judgment by numeric id (from search results items[].id or /api/search/judgments). Returns full JSON including textContent, judges, courtCases, legalBases, referencedRegulations.

Inputs: judgment_id (required).

saos_search_judgmentsA

Search Polish court judgments in SAOS (System Analizy Orzeczeń Sądowych). Use all for full-text / metadata phrase (SAOS query language: https://www.saos.org.pl/help/index.php/search-query-language). Filter by dates, case number (exact full signature), court ids/codes, judge name, legal base text, judgment types (DECISION, SENTENCE, …). Returns JSON with items[].id, href, textContent snippets, court metadata. For full text use saos_get_judgment with id.

Inputs: all, page_size, page_number, sorting_field, +24 more.

sum_aleph_findA

Search the SUM (ŚUM Katowice) Aleph catalogue via X-Server op=find (returns XML). Parameter request uses Aleph WWW query prefixes, e.g. wrd=kardiologia, wti=title words, wau=author (see Ex Libris X-Services introduction). If the response contains SRU gate configuration file is missing, the server is broken for find until the library configures the SRU gate — sum_aleph_present may still work for sets.

Inputs: request (required), local_base.

sum_aleph_presentA

Fetch catalogue records from the SUM Aleph X-Server op=present (XML, typically MARC in <oai_marc>). Use set_no and set_entry from a prior find result set in the same session when search works; or indices as returned by the OPAC (8-digit zero-padded entry numbers are common). Format: marc (default) or other Aleph-supported format string for this installation.

Inputs: set_no (required), set_entry (required), format.

uafm_get_itemA

Retrieve full metadata for a single item in the University of Applied Sciences in Nowy Sącz Repository by its UUID. The UUID is found in the 'uuid' field of uafm_search results.

Inputs: uuid (required).

wiedza_get_standardA

Pobiera stronę szczegółów pojedynczej normy na WIEDZA po dokładnym numerze katalogowym (jak w linku z wyników wyszukiwania). Zwraca surowy HTML. Wymaga sesji; nie używa KV cache.

Inputs: standard_number (required), locale.

wiedza_search_normsB

Wyszukiwarka norm na portalu WIEDZA (wiedza.pkn.pl) — Liferay, odpowiedź to surowy HTML z listą wyników. Wymaga dwóch żądań (sesja + POST); nie używa KV cache. Użyj dokładnego numeru normy z wyniku w wiedza_get_standard.

Inputs: locale, standard_number, title, title_english, +14 more.

wolnelektury_filter_booksA

List books matching combined filters (AND). API does not expose full-text search; this is the supported way to narrow the catalog. Paths are built as /api/authors/.../epochs/.../genres/.../kinds/.../books/ (see https://wolnelektury.pl/api/). Set parent_only=true to use parent_books/ (top-level works only, no sub-volumes). Requires at least one filter. Filtering only by kind_slug can return a large JSON (~1MB+); prefer adding author or epoch when possible.

Inputs: author_slug, epoch_slug, genre_slug, kind_slug, +1 more.

wolnelektury_get_bookA

Fetch one book from Wolne Lektury by URL slug (e.g. lalka, pan-tadeusz). Returns JSON: title, authors, epochs, genres, download links (epub, pdf, …), children volumes, optional fragment preview. Discover slugs via wolnelektury_list_taxonomy and wolnelektury_filter_books or from wolnelektury.pl catalog URLs.

Inputs: slug (required).

wolnelektury_get_collectionA

Fetch one thematic collection by slug (metadata + embedded books list). Use wolnelektury_list_taxonomy with kind=collections to list collection slugs and titles.

Inputs: slug (required).

wolnelektury_list_taxonomyA

List reference data for discovery: authors, epochs, genres, kinds, themes, or collections (names, slugs, hrefs). Use slugs with wolnelektury_filter_books or wolnelektury_get_book / wolnelektury_get_collection. Responses are cached 24h; themes/collections are ~100KB.

Inputs: kind (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 85 tools

    Disambiguation3/5

    The tool set covers many distinct Polish academic resources, but there is significant overlap in functionality across different repositories (e.g., multiple '*_search' and '*_get_item' tools for different universities). While each tool is tied to a specific source, an agent could easily confuse similar tools like 'agh_search' and 'amu_search' since they perform identical operations on different repositories. The descriptions help differentiate them, but the sheer number of similar tools creates ambiguity.

    Naming Consistency4/5

    Most tools follow a consistent 'prefix_verb_noun' naming pattern (e.g., 'agh_search', 'bdl_get_variable', 'saos_dump_judgments'), which is predictable and readable. There are minor deviations, such as 'polon_search' lacking a prefix and 'wolnelektury_filter_books' using a longer prefix, but overall the naming is coherent and follows a clear convention across the set.

    Tool Count2/5

    With 85 tools, the count is excessive for a single server, making it overwhelming and difficult to navigate. While the server aims to cover many Polish academic resources, the tools could be consolidated (e.g., generic repository search/get tools with parameters) rather than having separate tools for each institution. This bloated count reduces usability and coherence.

    Completeness4/5

    The tool set provides broad coverage of Polish academic domains, including repositories, legal sources, statistical data, and cultural archives. Most areas offer search and retrieval capabilities, with few obvious gaps. However, some tools lack update or delete operations (e.g., no tools to modify data), but this is reasonable given the read-only nature of many public APIs. Overall, the surface is comprehensive for its intended purpose.

    Maintenance

    ActivityMaintained
    ResponsivenessOutdated data

    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
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to search across multiple academic databases (PubMed, arXiv, bioRxiv, medRxiv, Semantic Scholar) through a unified interface. Supports advanced filtering, metadata retrieval, PDF downloads, and comprehensive research workflows with citation analysis.
      5
      -
    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables searching for academic papers and preprints across multiple platforms including Semantic Scholar, arXiv, PubMed, and CrossRef. It provides access to research records, DOI lookups, and journal metadata through a unified interface deployed on Cloudflare Workers.
      2
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Provides access to Poland's national open data portal (Otwarte Dane) through natural language queries, enabling users to search and retrieve datasets from dane.gov.pl.
      308 npm
      MIT