Polish Academic MCP
Allows retrieving scientific dataset metadata from the RePOD repository using Digital Object Identifiers (DOI).
Click on "Install 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., "@Polish Academic MCPfind recent research articles about renewable energy in Poland"
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.
Polish Academic MCP
Lokalny serwer MCP (Model Context Protocol) dla polskich baz naukowych, publicznych i kulturowych. Pakiet działa przez stdio (Node.js), więc można go podpiąć bezpośrednio do klientów MCP (Claude Desktop, Cursor i inne).
MCP (Model Context Protocol) to otwarty standard pozwalający modelom językowym (Claude, GPT, Bielik.AI itp.) na wywoływanie zewnętrznych narzędzi i API w ustandaryzowany sposób.
Aktualna konstrukcja projektu
Lokalny serwer
stdio(Node.js), uruchamiany zdist/index.js.Brak warstw OAuth, token mintingu i rate-limitingu z wcześniejszej wersji cloudflare'owej.
Cache in-memory w runtime lokalnym.
Dystrybucja jako npm package + bundle MCPB (
manifest.json).
Jeśli korzystasz z publicznie hostowanej instancji MCP (nie tej lokalnej z repo), polityka telemetryczna zależy od operatora tej instancji.
Dostępne bazy danych i narzędzia
Narzędzie | Baza danych | Opis |
| Wyszukiwanie pełnotekstowe (API JSON portalu — frazy, tytuły, abstrakty) | |
| Biblioteka Nauki | Listowanie rekordów OAI-PMH ( |
| Biblioteka Nauki | Pobranie metadanych pojedynczego artykułu po ID (OAI-PMH |
| OAI-PMH | |
| RCIN | OAI-PMH |
| Wyszukiwanie publikacji z Repozytorium Jagiellońskiego | |
| RUJ | Pobranie metadanych pozycji po UUID |
| Wyszukiwanie prac i publikacji AGH w Krakowie | |
| AGH | Pobranie metadanych pozycji po UUID |
| Wyszukiwanie publikacji Uniwersytetu Adama Mickiewicza w Poznaniu | |
| AMU | Pobranie metadanych pozycji po UUID |
| Wyszukiwanie publikacji Uniwersytetu Andrzeja Frycza Modrzewskiego w Krakowie | |
| UAFM | Pobranie metadanych pozycji po UUID |
| Wyszukiwanie danych badawczych ICM UW | |
| ICM | Pobranie metadanych pozycji po UUID |
| Wyszukiwanie zbiorów danych badawczych uczelni krakowskich | |
| Wyszukiwanie polskich otwartych danych badawczych | |
| RePOD | Pobranie metadanych zbioru danych po DOI |
| Wyszukiwanie danych otwartych z portalu rządowego | |
| dane.gov.pl | Pobranie szczegółów zbioru danych po ID |
| Zbiory otwarte: uczelnie, pracownicy, projekty, publikacje, kursy (JSON, token strony) | |
| Wyszukiwanie publikacji (JSON; wymaga | |
| PBN | Wyszukiwanie osób / ORCID (JSON; te same nagłówki co wyżej) |
| PBN | Metadane publikacji po id obiektu (JSON) |
| Wyszukiwanie tematów (subjectów) po fragmencie nazwy (API v1) | |
| BDL / GUS | Wyszukiwanie zmiennych statystycznych (cech) |
| BDL / GUS | Wyszukiwanie jednostek terytorialnych (TERYT itd.) |
| BDL / GUS | Metadane jednej zmiennej po id liczbowym |
| BDL / GUS | Wartości dla jednej zmiennej po jednostkach (np. województwa) |
| BDL / GUS | Wartości dla jednej jednostki i wskazanych zmiennych |
| Aktualne odczyty ze stacji synoptycznych (pogodowych) | |
| IMGW-PIB | Aktualne odczyty z wodowskazów i stacji hydrologicznych |
| IMGW-PIB | Aktualne odczyty ze stacji meteorologicznych |
| IMGW-PIB | Aktywne ostrzeżenia meteorologiczne i hydrologiczne |
| Wyszukiwarka treści strony www.pkn.pl (Drupal / Solr, HTML) | |
| Wyszukiwarka norm (Liferay; sesja + POST, HTML) | |
| WIEDZA | Karta pojedynczej normy po numerze katalogowym (HTML) |
| Baza Legalnych Źródeł (Legalna Kultura) | WordPress REST |
| Baza Legalnych Źródeł | Pojedyncze źródło po ID (JSON) |
| Baza Legalnych Źródeł | Taksonomia |
| Wyszukiwanie pełnotekstowe (HTML; katalog nieaktualizowany od 2022) | |
| BazTOL | Przeglądanie po dziedzinie (id z menu) |
| BazTOL | Szczegóły zasobu po ID (HTML) |
| Kanał RSS aktualności instytucji (XML) | |
| NAC | Wyszukiwarka WordPress REST ( |
| NAC | Pojedynczy wpis blogowy po id (JSON) |
| NAC | Pojedyncza strona statyczna po id (JSON) |
| Katalog Biblioteki ŚUM (Aleph) | X-Services |
| Katalog ŚUM / Aleph | X-Services |
| Wyszukiwanie profili naukowców (nazwisko, dziedzina, paginacja) | |
| Ludzie Nauki | Wyszukiwanie semantyczne / pełnotekstowe po frazie |
| Ludzie Nauki | ORCID, stopnie/tytuły, słowa kluczowe dla profilu po ID |
| Wyszukiwanie katalogu dzieł (Collectio / PAU) | |
| PAUart | Metadane pojedynczego dzieła po ID z katalogu |
| Wyszukiwanie aktów prawnych (tytuł, słowa kluczowe ISAP, daty, DU/MP itd.) | |
| ISAP / ELI | Metadane pojedynczego aktu po ELI, np. |
| Wyszukiwanie słowne ( | |
| Biblioteka Sejmowa | Karta bibliograficzna ( |
| Wyszukiwanie orzeczeń (fraza | |
| SAOS / API przeglądania | Pełne orzeczenie po id liczbowym z wyszukiwarki |
| SAOS / API pobierania | Lista endpointów hurtowego pobierania (dump) |
| SAOS — dump | Słownik sądów powszechnich (stronicowanie) |
| SAOS — dump | Słownik izb SN (stronicowanie) |
| SAOS — dump | Hurtowe orzeczenia (filtry dat / synchronizacja; duże odpowiedzi) |
| SAOS — dump | Etykiety modułu wzbogacania (stronicowanie) |
| Słowniki: autorzy, epoki, gatunki, rodzaje, motywy, kolekcje (slugi) | |
| Wolne Lektury | Lista utworów po filtrach (autor/epoka/gatunek/rodzaj); nie woła |
| Wolne Lektury | Metadane i linki do plików po slugu utworu |
| Wolne Lektury | Kolekcja tematyczna + lista książek w kolekcji |
| Wyszukiwanie materiałów po słowie kluczowym (JSON API frontu; | |
| Ninateka | Metadane pojedynczego materiału po id liczbowym z wyszukiwarki (JSON) |
| Wyszukiwanie plakatów ( | |
| Gapla | Strona pojedynczego plakatu po id ( |
| Wyszukiwanie fotosów i zdjęć ( | |
| Fototeka | Strona pojedynczego zdjęcia po id ( |
| FilmPolski.pl (PWSFTviT) | Wyszukiwarka bazy filmu ( |
| FilmPolski.pl | Karta rekordu po id ( |
| Fototeka Śląska (MWO Opole) | Wyszukiwanie zdjęć (WordPress GET |
| Fototeka Śląska | Strona rekordu |
| Wyszukiwanie Solr (HTML — kafelki wyników; brak publicznego JSON API) | |
| Repozytorium FN | Karta rekordu po id węzła Drupal ( |
| Repozytorium FN | Indeks tytułów po pierwszej literze (A–Ż / INNE — HTML) |
| Repozytorium FN | Przegląd: fabularne / dokumentalne / animacje / magazyn (HTML) |
| Pobranie pojedynczej strony statycznej po ścieżce względnej ( | |
| Dokumenty Śląska | Lista JSON ścieżek do głównej serii dokumentów średniowiecznych (okresy do 1333 r.) — pomoc nawigacyjna |
| — (lokalnie) | Ewaluacja odpowiedzi modelu względem rekordu źródłowego (RQ2) |
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 z Workerów; 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 w KV (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.
Related MCP server: Law Scrapper MCP
Wymagania
Node.js 18+
npm
Instalacja i uruchomienie lokalne
# 1. Sklonuj repozytorium
git clone https://github.com/asterixix/polish-academic-mcp.git
cd polish-academic-mcp
# 2. Zainstaluj zależności
npm install
# 3. Zbuduj projekt
npm run build
# 4. Uruchom serwer MCP
npm startTryb deweloperski:
npm run devUruchomienie bez lokalnego builda (globalnie przez npm registry):
npx -y polish-academic-mcpPodłączenie klientów MCP (konfiguracja npx)
Poniżej znajdziesz aktualne, praktyczne konfiguracje dla najpopularniejszych hostów MCP. Ten pakiet działa jako lokalny serwer stdio, więc podstawowy wariant to:
{
"command": "npx",
"args": ["-y", "polish-academic-mcp"]
}0) Wymagania wspólne
Zainstaluj Node.js 18+.
Upewnij się, że
npxdziała w terminalu (npx --version).W klientach GUI (Desktop) sprawdź, czy aplikacja widzi
npxwPATH.
1) Claude Code (CLI)
Najprościej przez komendę:
claude mcp add --transport stdio polish-academic-mcp -- npx -y polish-academic-mcpSprawdzenie:
claude mcp listUwaga dla Windows (poza WSL):
claude mcp add --transport stdio polish-academic-mcp -- cmd /c npx -y polish-academic-mcp2) Claude Desktop
Claude Desktop promuje obecnie Desktop Extensions (.mcpb), ale ręczna konfiguracja mcpServers nadal jest spotykana.
Przykład:
{
"mcpServers": {
"polish-academic-mcp": {
"command": "npx",
"args": ["-y", "polish-academic-mcp"]
}
}
}Typowe lokalizacje pliku konfiguracji:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.jsonLinux: zależnie od sposobu instalacji desktopowej (zwykle katalog konfiguracyjny aplikacji Claude)
3) ChatGPT
W ChatGPT (Apps/Connectors oraz Responses API) oficjalnie używa się zdalnych MCP (HTTP/SSE), nie lokalnego stdio uruchamianego przez npx bezpośrednio w aplikacji.
To oznacza, że dla tego pakietu masz 2 ścieżki:
Używaj go lokalnie w klientach obsługujących
stdio(Claude Code,Gemini CLI,LM Studio,AnythingLLM,Cursor).Jeśli koniecznie chcesz ChatGPT: wystaw serwer jako zdalny endpoint MCP (HTTP/SSE), a potem podłącz URL w ChatGPT.
4) Gemini (Gemini CLI)
Gemini CLI obsługuje MCP przez mcpServers w settings.json oraz komendy gemini mcp ....
Przykład settings.json:
{
"mcpServers": {
"polish-academic-mcp": {
"command": "npx",
"args": ["-y", "polish-academic-mcp"]
}
}
}Lub przez CLI:
gemini mcp add polish-academic-mcp npx -y polish-academic-mcp5) LM Studio
Od LM Studio 0.3.17 dostępne są lokalne i zdalne MCP. Konfiguracja używa formatu mcp.json (zgodnego z notacją Cursor).
Przykład mcp.json:
{
"mcpServers": {
"polish-academic-mcp": {
"command": "npx",
"args": ["-y", "polish-academic-mcp"]
}
}
}6) AnythingLLM (Desktop / Docker)
AnythingLLM czyta konfigurację z plugins/anythingllm_mcp_servers.json (w katalogu storage AnythingLLM).
Przykład:
{
"mcpServers": {
"polish-academic-mcp": {
"command": "npx",
"args": ["-y", "polish-academic-mcp"]
}
}
}Uwaga: AnythingLLM uruchamia MCP-y przy wejściu w „Agent Skills” lub wywołaniu agenta (niekoniecznie od razu przy starcie aplikacji).
7) Perplexity
Perplexity publikuje oficjalny własny serwer MCP (np. https://mcp.perplexity.ai/mcp) do użycia w klientach MCP.
Jeśli celem jest uruchomienie tego pakietu (polish-academic-mcp) bezpośrednio „wewnątrz Perplexity”, publiczna dokumentacja Perplexity skupia się obecnie na korzystaniu z endpointów MCP, a nie na lokalnym stdio przez npx jako w klasycznych klientach desktopowych.
8) Inne klienty (Cursor, Windsurf, Cline, Open WebUI itd.)
W większości przypadków działa standardowy wpis mcpServers:
{
"mcpServers": {
"polish-academic-mcp": {
"command": "npx",
"args": ["-y", "polish-academic-mcp"]
}
}
}Jeśli klient wspiera tylko zdalne MCP, potrzebny będzie endpoint HTTP/SSE zamiast lokalnego stdio.
Źródła (oficjalne / referencyjne)
OpenAI Developers (MCP and Connectors):
https://developers.openai.com/api/docs/guides/tools-connectors-mcpOpenAI Developers (Building MCP servers for ChatGPT Apps):
https://developers.openai.com/api/docs/mcpClaude Code docs (MCP):
https://code.claude.com/docs/en/mcpClaude Help Center (Claude Desktop + local MCP):
https://support.claude.com/en/articles/10949351-getting-started-with-model-context-protocol-mcp-on-claude-for-desktopGemini CLI docs (MCP servers):
https://geminicli.com/docs/tools/mcp-server/LM Studio docs (Use MCP Servers):
https://lmstudio.ai/docs/app/mcpAnythingLLM docs (overview):
https://docs.anythingllm.com/mcp-compatibility/overviewAnythingLLM docs (desktop):
https://docs.anythingllm.com/mcp-compatibility/desktopAnythingLLM docs (docker):
https://docs.anythingllm.com/mcp-compatibility/dockerPerplexity MCP URL (referencje integracyjne):
https://mcp.perplexity.ai/mcp
Troubleshooting (Claude: "Server transport closed unexpectedly")
Jeśli po initialize połączenie się zamyka:
Użyj bezpośrednio
node+ ścieżki absolutnej dodist/index.js(nienpx).Upewnij się, że build istnieje:
npm run build.Sprawdź, czy Claude widzi poprawny Node w swoim środowisku PATH.
Odczytaj stderr serwera:
stdin endstdin close
Wpisy stdin end/close zwykle oznaczają, że host zamknął stdin procesu MCP.
Zmienne środowiskowe
Opcjonalne zmienne używane przez wybrane narzędzia:
BDL_CLIENT_IDWEB3FORMS_ACCESS_KEYPBN_APP_IDPBN_APP_TOKENPBN_USER_TOKEN
Architektura techniczna (obecna)
Klient MCP (Claude/Cursor/itp.)
│ stdio JSON-RPC
▼
Node runtime (src/index.ts)
├── StdioServerTransport
├── createServer(env)
└── tools/* (rejestracja narzędzi źródłowych)Kluczowe decyzje projektowe:
Lokalny, prosty transport stdio.
Brak middleware OAuth/rate-limit (usunięte z wersji cloudflare).
Odpowiedzi z narzędzi zwracane w formacie przyjaznym MCP.
In-memory cache dla runtime lokalnego.
Development
npm run lint
npm run buildWskazówki dla chętnych do pomocy:
CONTRIBUTING.mdAGENTS.md
Licencja
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/asterixix/polish-academic-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server