Skip to main content
Glama
asterixix

Polish Academic MCP

by asterixix

Polish Academic MCP

npm version npm downloads

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 z dist/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

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)

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

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

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 `<article id="film

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

eval_response

— (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_numberbs_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 start

Tryb deweloperski:

npm run dev

Uruchomienie bez lokalnego builda (globalnie przez npm registry):

npx -y polish-academic-mcp

Podłą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

  1. Zainstaluj Node.js 18+.

  2. Upewnij się, że npx działa w terminalu (npx --version).

  3. W klientach GUI (Desktop) sprawdź, czy aplikacja widzi npx w PATH.

1) Claude Code (CLI)

Najprościej przez komendę:

claude mcp add --transport stdio polish-academic-mcp -- npx -y polish-academic-mcp

Sprawdzenie:

claude mcp list

Uwaga dla Windows (poza WSL):

claude mcp add --transport stdio polish-academic-mcp -- cmd /c npx -y polish-academic-mcp

2) 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.json

  • Windows: %APPDATA%/Claude/claude_desktop_config.json

  • Linux: 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:

  1. Używaj go lokalnie w klientach obsługujących stdio (Claude Code, Gemini CLI, LM Studio, AnythingLLM, Cursor).

  2. 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-mcp

5) 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-mcp

  • OpenAI Developers (Building MCP servers for ChatGPT Apps): https://developers.openai.com/api/docs/mcp

  • Claude Code docs (MCP): https://code.claude.com/docs/en/mcp

  • Claude Help Center (Claude Desktop + local MCP): https://support.claude.com/en/articles/10949351-getting-started-with-model-context-protocol-mcp-on-claude-for-desktop

  • Gemini CLI docs (MCP servers): https://geminicli.com/docs/tools/mcp-server/

  • LM Studio docs (Use MCP Servers): https://lmstudio.ai/docs/app/mcp

  • AnythingLLM docs (overview): https://docs.anythingllm.com/mcp-compatibility/overview

  • AnythingLLM docs (desktop): https://docs.anythingllm.com/mcp-compatibility/desktop

  • AnythingLLM docs (docker): https://docs.anythingllm.com/mcp-compatibility/docker

  • Perplexity MCP URL (referencje integracyjne): https://mcp.perplexity.ai/mcp


Troubleshooting (Claude: "Server transport closed unexpectedly")

Jeśli po initialize połączenie się zamyka:

  1. Użyj bezpośrednio node + ścieżki absolutnej do dist/index.js (nie npx).

  2. Upewnij się, że build istnieje: npm run build.

  3. Sprawdź, czy Claude widzi poprawny Node w swoim środowisku PATH.

  4. Odczytaj stderr serwera:

    • stdin end

    • stdin 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_ID

  • WEB3FORMS_ACCESS_KEY

  • PBN_APP_ID

  • PBN_APP_TOKEN

  • PBN_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 build

Wskazówki dla chętnych do pomocy:

  • CONTRIBUTING.md

  • AGENTS.md

  • docs/CLIENTS.md — konfiguracja per klient MCP (Claude Desktop, Cursor, LM Studio, AnythingLLM, Perplexity, Open WebUI, OpenClaw, Hermes Agent, Cline, Continue, Roo Code).

  • docs/AGENT-GUIDE.md — prompt dla agentów AI, którzy mają skonfigurować serwer samodzielnie.


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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesItem UUID from agh_search results, e.g. 3fa85f64-5717-4562-b3fc-2c963f66afa6

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses the return format (Dublin Core metadata with specific fields) and the UUID source, but doesn't mention error handling, rate limits, authentication needs, or whether this is a read-only operation (though implied by 'Retrieve').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. First sentence states purpose and parameter, second describes return values. Every element earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read operation with no output schema, the description provides good coverage: purpose, parameter context, and return format. However, it lacks error scenarios or behavioral constraints that would be helpful given no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the UUID parameter. The description adds value by explaining where to find the UUID ('uuid' field of agh_search results) and providing context about its purpose, but doesn't add syntax details beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and resource 'full metadata for a single item in the AGH University of Krakow Repository', specifying it's by UUID. It distinguishes from sibling 'agh_search' by focusing on single-item retrieval rather than search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: use when you have a UUID from 'agh_search results'. However, it doesn't explicitly state when NOT to use this tool or name alternatives beyond the implied 'agh_search' for finding UUIDs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesItem UUID from amu_search results, e.g. 3fa85f64-5717-4562-b3fc-2c963f66afa6

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It clearly indicates this is a read operation ('Retrieve'), which is helpful. However, it doesn't disclose other behavioral traits like error handling, rate limits, authentication needs, or what 'full metadata' includes. The description adds basic context but leaves significant behavioral aspects unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The first sentence states the core purpose with all essential elements. The second sentence provides crucial usage guidance and sibling relationship. Every word serves a clear purpose, and information is front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with one well-documented parameter and no output schema, the description is mostly complete. It covers purpose, usage context, and parameter source. The main gap is lack of information about return values (what 'full metadata' includes), which would be helpful given no output schema. However, for this complexity level, it's reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents the single 'uuid' parameter. The description adds minimal value by mentioning UUIDs come from 'amu_search results', which provides context but doesn't add semantic details beyond what the schema provides. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Retrieve full metadata'), target resource ('a single item in the Adam Mickiewicz University Repository'), and method ('by its UUID'). It explicitly distinguishes from sibling 'amu_search' by mentioning UUIDs come from that tool's results, providing clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('for a single item by UUID') and when not to use it (implied: not for searching or multiple items). It names the alternative tool ('amu_search') and specifies the prerequisite relationship ('UUID is found in the 'uuid' field of amu_search results'), giving complete usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_idYesSubject domain id (24–42)
pageNoPage number — 1-based (20 results per page)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that the tool 'Returns HTML' and mentions pagination indirectly via the parameter list, but doesn't describe important behavioral aspects like whether this is a read-only operation, potential rate limits, authentication needs, error conditions, or what the HTML output contains. The description adds minimal behavioral context beyond basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose in the first sentence. The domain ID list is necessary but lengthy; however, it's structured clearly. No wasted sentences, though the HTML return statement could be integrated more smoothly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter tool with no annotations and no output schema, the description provides adequate basic information about what the tool does and the domain options. However, it lacks details about the HTML output format, error handling, and comparison with sibling tools. The completeness is minimal but viable given the tool's apparent simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds value by providing the complete list of domain IDs with their names (24-42), which gives semantic meaning beyond the schema's 'Subject domain id (24–42)'. However, it doesn't add information about the 'page' parameter beyond what's in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Browse BazTOL by subject domain' with the specific resource being 'BazTOL' and action being 'browse'. It distinguishes from sibling tools like 'baztol_search' by focusing on domain-based browsing rather than keyword searching. However, it doesn't explicitly mention what 'BazTOL' is (though context suggests a resource collection).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning 'same categories as the portal sidebar' and listing domain IDs, suggesting this tool is for domain-specific exploration. However, it doesn't explicitly state when to use this versus alternatives like 'baztol_search' or 'baztol_get_resource', nor does it mention any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

baztol_get_resourceA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
resource_idYesResource id from search/browse results

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the output format (HTML) and the source of IDs, which is helpful behavioral context. However, it doesn't mention potential error conditions, authentication requirements, rate limits, or whether the operation is idempotent/safe. For a read operation with no annotations, this is adequate but leaves gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently conveys purpose, parameter context, and output format. Every word earns its place, with no redundancy or unnecessary elaboration. It's front-loaded with the core action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with one fully documented parameter and no output schema, the description provides sufficient context: it states what the tool does, when to use it, the output format, and parameter semantics. The main gap is the lack of behavioral details like error handling or performance characteristics, but given the tool's simplicity, this is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single parameter 'resource_id' as an integer >0 from search/browse results. The description adds value by explaining where these IDs appear ('result lists as links `/baztol_czytelnik/baztol?id=…`'), providing practical context beyond the schema's technical definition. With only one parameter, this is strong compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch'), resource type ('BazTOL resource description page'), and format ('HTML'), and distinguishes it from sibling tools by specifying it retrieves a single resource by numeric ID rather than searching or browsing. It explicitly mentions where IDs come from ('result lists as links'), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: when you have a numeric resource ID from search/browse results. It implicitly distinguishes from sibling tools like 'baztol_search' or 'baztol_browse_domain' by focusing on single-resource retrieval rather than list operations. However, it doesn't explicitly state when NOT to use it or name specific alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
unit_idYesTerritorial unit id from bdl_search_units (e.g. TERYT-style code)
variable_idsYesOne or more variable ids
yearsNoCalendar years to include
aggregate_idNoAggregation level id (default 1)
pageNoPage index — 0-based
page_sizeNoRows per page
langNoResponse languagepl

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the HTTP method (GET) and endpoint structure, which implies a read-only operation, but doesn't explicitly state this or discuss other behavioral aspects like rate limits, authentication requirements, error conditions, or what the response format looks like. The description provides basic operational context but misses important behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise with two sentences that cover the core functionality and API details. The first sentence clearly states what the tool does, and the second provides technical implementation context. There's no unnecessary verbiage, though the API endpoint detail might be more technical than needed for an AI agent's understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (data format, structure), doesn't mention error handling or constraints beyond the basic parameter requirements, and doesn't provide context about the data domain or typical use cases. The API endpoint reference is helpful but doesn't compensate for the missing behavioral and output information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents all 7 parameters thoroughly. The description adds minimal value by mentioning 'Optional year list and paging' which corresponds to 'years', 'page', and 'page_size' parameters, but doesn't provide additional semantic context beyond what's in the schema descriptions. This meets the baseline expectation when schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch values') and target ('for one territorial unit for one or more variables'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'bdl_get_data_by_variable' or 'bdl_get_variable', which appear to be related data-fetching tools in the same domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some usage context by stating 'Requires at least one variable id' and mentioning optional parameters, but it doesn't explicitly guide when to use this tool versus alternatives like 'bdl_get_data_by_variable'. The API endpoint reference adds technical context but not comparative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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}.

ParametersJSON Schema
NameRequiredDescriptionDefault
variable_idYesVariable id
yearsNoCalendar years to include (repeat year= in API); omit for all available
unit_levelNoBDL territorial level (e.g. 2 = voivodeship) — use BDL /levels or metadata if unsure
unit_parent_idNoParent territorial unit id to restrict children (e.g. a voivodeship code)
aggregate_idNoAggregation level id (default 1)
pageNoPage index — 0-based
page_sizeNoRows per page
langNoResponse languagepl

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses key behavioral traits: it's a fetch/read operation (implied by 'Fetch'), mentions pagination behavior ('Pagination is 0-based'), and reveals it's an API call ('API: GET /data/by-variable/{var-id}'). However, it doesn't cover rate limits, authentication needs, error conditions, or response format details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose. All sentences earn their place by adding context about parameter usage and API details. However, the final API reference could be more integrated with the preceding content rather than appended as a separate note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters, no annotations, and no output schema, the description provides adequate but incomplete context. It covers the core purpose and some behavioral aspects but lacks details about response format, error handling, and comprehensive usage scenarios. The 100% schema coverage helps, but more behavioral context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds minimal value beyond the schema - it mentions unit_level and unit_parent_id for scoping, year filtering, and pagination being 0-based, but these are already covered in parameter descriptions. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch statistical values'), target resource ('for one variable across territorial units'), and scope ('e.g. all voivodeships'), distinguishing it from sibling tools like bdl_get_variable or bdl_search_variables which likely handle metadata rather than actual data values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('Set unit_level... and optionally unit_parent_id to scope results; year filters which periods are returned'), but doesn't explicitly mention when to use alternatives like bdl_get_data_by_unit or other search tools. The guidance is practical but lacks sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bdl_get_variableA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
variable_idYesVariable id (integer)
langNoResponse languagepl

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the operation as a 'fetch' (implying read-only) and specifies the API method (GET), which suggests safe retrieval. However, it lacks details on error handling, rate limits, authentication needs, or response format, leaving gaps in behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and front-loaded, consisting of a single sentence that directly states the purpose and usage context. Every word earns its place, with no wasted information or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (fetch operation with 2 parameters), no annotations, and no output schema, the description is minimally adequate. It covers the core purpose and usage context but lacks details on behavioral aspects (e.g., response structure, errors) that would enhance completeness for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema fully documents both parameters. The description adds no additional parameter semantics beyond what the schema provides (e.g., it doesn't explain the significance of 'variable_id' or 'lang' choices). Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch metadata') and resource ('one BDL variable by numeric id'), and distinguishes it from sibling tools by specifying the source of the ID ('from bdl_search_variables results'). It also mentions the API endpoint, providing technical context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool: after obtaining a variable ID from 'bdl_search_variables'. However, it does not explicitly state when not to use it or name alternatives (e.g., 'bdl_search_variables' for searching, 'bdl_get_data_by_variable' for data retrieval), which prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFragment of subject name (Polish or English labels depending on lang)
pageNoPage index — 0-based
page_sizeNoResults per page (max 100)
sortNoSort order (optional)
langNoResponse languagepl

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the search is name-based ('by name fragment'), it's a read operation (implied by 'Search'), it uses pagination ('Pagination is 0-based'), and it specifies the return format ('Returns JSON (subject id, name, children ids, levels)'). However, it doesn't mention potential limitations like rate limits or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in three sentences: purpose, usage guidance, and technical details. Each sentence earns its place by providing essential information without redundancy. The front-loaded purpose statement immediately clarifies the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with no annotations and no output schema, the description provides good coverage: it explains the purpose, usage context, key behavioral aspects (pagination, return format), and references the API endpoint. However, it doesn't fully describe the JSON structure details or potential error cases, leaving some gaps in operational understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents all 5 parameters thoroughly. The description adds minimal value beyond the schema, mentioning only that the 'name' parameter is a 'fragment of subject name' and that pagination is '0-based' (which is already in the schema). It doesn't provide additional context about parameter interactions or usage patterns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Search BDL (GUS) thematic subjects by name fragment') and resource ('thematic subjects'), distinguishing it from sibling tools like bdl_search_units and bdl_search_variables. It explicitly mentions the goal of discovering subject IDs before other operations, providing clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('Use to discover subject IDs before listing variables or drilling into the tree'), providing clear context and purpose. It distinguishes this from other subject-related operations by framing it as a discovery step, though it doesn't name specific alternative tools for similar searches.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFragment of unit name (e.g. city or voivodeship name)
levelsNoTERYT-level filters (e.g. 2 for voivodeship — confirm with BDL /levels metadata if needed)
yearsNoYears for which the unit definition should exist
pageNoPage index — 0-based
page_sizeNoResults per page (max 100)
sortNoSort order (optional)
langNoResponse languagepl

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it specifies the API method (GET), pagination behavior (0-based), and that results can be used with another specific tool. However, it doesn't mention rate limits, authentication requirements, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly front-loaded with the core purpose in the first sentence, followed by usage guidance and technical details. Every sentence earns its place with no wasted words, making it highly efficient for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with 7 parameters and no output schema, the description provides good context about what the tool returns (unit IDs for use with another tool) and how pagination works. However, without an output schema, it doesn't describe the structure of search results, which would be helpful for a complex search operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'optional level and year filters' and 'pagination is 0-based' (which the schema also covers). Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Search') and resource ('BDL territorial units') with specific examples (voivodeships, counties, etc.). It distinguishes from sibling tools by specifying this searches units by name fragment, unlike bdl_search_subjects or bdl_search_variables which search different entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('Search BDL territorial units... by name fragment') and provides a clear alternative for what to do with results ('Use returned unit id with bdl_get_data_by_unit'). It also mentions optional filters (level and year) and pagination details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoText matched in N1…N5 fields (e.g. Polish variable label fragment)
subject_idNoParent subject id from bdl_search_subjects or BDL tree (e.g. P1312)
levelNoTerritorial / variable level filter when applicable
yearsNoLimit to variables available for these calendar years
pageNoPage index — 0-based
page_sizeNoResults per page (max 100)
sortNoSort order (optional)
langNoResponse languagepl

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully describes key behavioral traits: the search functionality, pagination behavior (0-based), and the relationship to other tools. However, it doesn't mention rate limits, authentication requirements, or error handling, which would be helpful for a complete behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and well-structured in just two sentences. The first sentence covers purpose and main filters, the second covers usage of results and technical details (API endpoint and pagination). Every word earns its place with no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with 8 parameters, 100% schema coverage, but no output schema, the description provides good contextual completeness. It explains the tool's purpose, usage guidelines, and key behavioral aspects (pagination). However, without an output schema, it doesn't describe the structure of search results, which would help the agent understand what to expect from the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds some context about filtering by 'name text (N1…N5), subject-id, level, and years' but doesn't provide additional semantic meaning beyond what's already in the parameter descriptions. This meets the baseline expectation when schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Search') and resource ('BDL statistical variables (characteristics)'), and distinguishes it from siblings by mentioning that results' numeric IDs are used with specific sibling tools (bdl_get_data_by_variable and bdl_get_data_by_unit). This provides clear differentiation from other search tools in the list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool (to search variables) and provides clear alternatives for what to do with the results (use with bdl_get_data_by_variable or bdl_get_data_by_unit). It also mentions the specific API endpoint (GET /variables/search), which provides implementation context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blz_get_listingC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
listing_idYesListing ID from search results (field id).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the return format ('raw JSON') but doesn't disclose other behavioral traits like error handling, rate limits, authentication needs, or whether it's a read-only operation. This is inadequate for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states the purpose and return format without unnecessary details. It could be slightly improved by front-loading key information more explicitly, but it's generally well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic action and return format but lacks details on usage guidelines and behavioral transparency, which are needed for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the 'listing_id' parameter fully. The description adds no additional meaning beyond what the schema provides, such as examples or constraints, resulting in the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch') and resource ('one source (listing) by numeric WordPress post ID from Baza Legalnych Źródeł'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'blz_search' or 'blz_listing_categories', which would require a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as 'blz_search' or other sibling tools. It mentions the resource but lacks context about prerequisites, timing, or comparisons, leaving usage unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage of terms (1-based).
per_pageNoTerms per page.
parentNoOnly terms with this parent ID (0 = top-level only if supported). Omit for all.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions the output format ('Raw JSON from WordPress REST') but doesn't disclose behavioral traits like pagination behavior (implied by parameters but not described), rate limits, authentication needs, or whether it's a read-only operation. The description is minimal beyond stating the basic function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It front-loads the core purpose and includes essential usage notes without redundancy, making it appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 3 parameters with full schema coverage, the description is adequate but has clear gaps. It covers the basic purpose and output format but lacks details on behavioral context, error handling, or integration with sibling tools beyond a brief mention. For a read operation with pagination, more guidance on usage would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents the three parameters (page, per_page, parent). The description adds no parameter-specific information beyond what's in the schema, such as details on how 'parent' interacts with taxonomy hierarchy. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('taxonomy terms for listing_cat'), with specific examples of categories. It distinguishes this from sibling tools by mentioning the term `id` is used in `blz_search`, but doesn't explicitly differentiate from other listing tools like `wolnelektury_list_taxonomy`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating the term `id` should be used in `blz_search`, providing some context. However, it doesn't explicitly say when to use this tool versus alternatives like `blz_search` or other taxonomy tools, nor does it mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
article_idYesNumeric article ID as shown in search results, e.g. 1968869
metadata_formatNojats — full structured metadata (recommended); oai_dc — Dublin Core.jats

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context about the default format (jats) and what it includes (abstract, keywords, etc.), but does not mention potential limitations like rate limits, authentication needs, or error handling. It adequately describes the core behavior but lacks operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero waste: the first states the purpose and key input, the second explains the default behavior and its advantages. It is front-loaded with essential information and efficiently structured, earning its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides a clear purpose and some behavioral context but lacks details on return values, error cases, or operational constraints. It is adequate for a simple fetch tool but could be more complete to fully guide an agent without structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds marginal value by explaining the default format (jats) and its benefits ('includes abstract, keywords, affiliations, and references'), but does not provide additional syntax or usage details beyond what the schema specifies. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch'), resource ('full metadata record for a single article from Biblioteka Nauki'), and key identifier ('by its numeric ID'), distinguishing it from sibling tools like 'bn_search_articles' which searches rather than fetches a specific item. It provides a complete purpose statement without being tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by specifying it's for fetching a single article by ID, suggesting it should be used when you have a specific article ID from search results. However, it does not explicitly state when not to use it or name alternatives like 'bn_search_articles' for finding articles without an ID, which prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
from_dateNoEarliest publication date, format YYYY-MM-DD
until_dateNoLatest publication date, format YYYY-MM-DD
setNoOAI set identifier to scope results to a journal or discipline.
metadata_formatNooai_dc — Dublin Core (smaller, faster); jats — full structured metadata.oai_dc
resumption_tokenNoToken returned in a previous response for fetching the next page.
minimize_piiNoWhen true, redacts ORCID/email/phone/PESEL-like patterns for privacy-sensitive use cases.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: the tool returns 'raw XML', explains the two metadata formats (oai_dc vs jats) and their trade-offs, and mentions pagination via 'resumption_token'. However, it doesn't cover rate limits, authentication needs, or error handling, which would be helpful for a harvesting tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in three sentences: first clarifies purpose and distinction from sibling, second explains usage scenarios, third details output format and metadata options. Every sentence earns its place with zero waste, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a harvesting tool with 6 parameters, 100% schema coverage, and no output schema, the description is mostly complete. It covers purpose, usage guidelines, output format (raw XML), and metadata options. However, without annotations, it could benefit from mentioning rate limits or authentication requirements, which are common for API-based harvesting tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema: it mentions 'optional date range' and 'OAI set (journal id from ListSets)', but doesn't provide additional syntax or format details. The baseline of 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs an 'OAI-PMH ListRecords harvest for Biblioteka Nauki' and explicitly distinguishes it from 'full-text keyword search', naming the sibling tool 'bn_search_publications' for that purpose. It specifies the verb (harvest/list), resource (records), and scope (Biblioteka Nauki).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('to list records by optional date range and/or OAI set, or to page with resumption_token') and when not to use it ('NOT full-text keyword search'), with a clear alternative named ('bn_search_publications'). It also clarifies the absence of a query string in OAI-PMH.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch phrase (Polish or English). Maps to the portal field generalSearchString — titles, abstracts, full text where indexed.
pageNoPage number (1-based).
page_sizeNoResults per page (max 50).
sort_fieldNoscore — relevance; publishedDate — publication date.score
sort_directionNoSort direction.DESC
publication_typesNoRestrict to publication kinds: ARTICLE (journals), SIMPLE_BOOK / COLLECTIVE_WORK / CHAPTER (books). Omit to search all.
published_date_fromNoOptional lower bound YYYY-MM-DD (inclusive).
published_date_toNoOptional upper bound YYYY-MM-DD (inclusive).
open_resourcesNoWhen true, prefer diamond-open / openly licensed resources (portal flag).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool 'Uses the public JSON search API (same as the website)' and 'Returns JSON with hits, snippets (mainTitleSnippets, fullTextSnippets), and totalResults,' which provides useful behavioral context about the API source and return format. However, it doesn't mention rate limits, authentication needs, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in three sentences: purpose, usage guidelines, and return format. Each sentence adds distinct value without redundancy, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with 9 parameters and no output schema, the description provides good context: purpose, usage guidelines, API source, and return format. It doesn't explain error cases or pagination details, but given the schema's thorough parameter documentation, this is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, such as explaining query syntax or publication_type nuances. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs 'Full-text search in Biblioteka Nauki (Polish open-access articles, books, chapters)' with specific resources mentioned. It distinguishes from sibling 'bn_search_articles' by specifying 'Prefer this tool when the user gives keywords, topics, author names, or titles' versus 'For harvesting by date range or OAI journal set without keywords' for the alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('Prefer this tool when the user gives keywords, topics, author names, or titles') and when to use an alternative ('For harvesting by date range or OAI journal set without keywords, use bn_search_articles (OAI-PMH XML) instead'). This directly addresses sibling tool differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_libraryYesDocument library code from the hit list link, e.g. BIS01, BIS05, POS01
doc_numberYesNine-digit document number from the hit list (e.g. 000179010)
sub_libraryNoSub-library code from the link, often BSBS
yearNoUsually leave empty; pass if the link includes a year parameter
volumeNoUsually leave empty; pass if the link includes volume

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the tool returns HTML format, explains parameter sourcing from search results, clarifies the stability of the results ('Stable per record'), and mentions caching suitability. However, it doesn't address potential error conditions, rate limits, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with three sentences that each serve distinct purposes: stating the core functionality, explaining parameter usage, and describing behavioral characteristics. Every sentence earns its place with no wasted words, and the most critical information appears first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters, 100% schema description coverage, but no output schema, the description provides good contextual completeness. It explains the HTML return format, parameter sourcing, result stability, and caching suitability. The main gap is the lack of information about the output structure or format details, which would be helpful since there's no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds some contextual value by explaining that parameters should be copied from 'item-global links from bs_sejm_search results' and that 'sub_library is usually BS for main stacks', but doesn't provide significant additional semantic information beyond what's already in the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Fetch') and resource ('one Sejm Library OPAC bibliographic record as HTML'), and explicitly distinguishes it from sibling tools by referencing 'bs_sejm_search results' and contrasting with 'session-bound full-set-set links'. This provides clear differentiation from other tools in the list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: 'Pass doc_library and doc_number exactly as in item-global links from bs_sejm_search results' and 'sub_library is usually BS for main stacks — copy from the link if different'. It also provides context about when not to use alternatives: 'Stable per record (unlike session-bound full-set-set links); suitable for caching' which helps distinguish it from other potential approaches.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesNumeric dataset ID from dane_search results

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the output includes 'all downloadable resources' and API links, which adds useful context about return behavior. However, it lacks details on error handling, rate limits, or authentication needs, leaving gaps for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the purpose and includes essential details without waste. Every part earns its place by specifying the action, resource, and parameter context efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is mostly complete. It covers purpose, usage context, and output details. However, without annotations or output schema, it could benefit from more behavioral transparency, such as error cases or response format specifics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the dataset_id parameter. The description adds value by clarifying that the ID is 'the integer id field returned by dane_search', providing context beyond the schema's basic description. With only one parameter, this extra semantic detail is helpful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'full details for a specific dataset on dane.gov.pl', specifying it includes downloadable resources like CSV, XLSX, JSON, and API links. It distinguishes from its sibling 'dane_search' by focusing on individual dataset retrieval rather than searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by stating the dataset_id comes from 'dane_search results', indicating when to use this tool after a search. However, it does not explicitly mention when not to use it or name alternatives beyond the implied sibling relationship.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path from site root, e.g. indeks 1200.html, dokument 1201-1230.html, bibliografia.html, kamenz/index.html

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does an excellent job disclosing key behavioral traits: it explains the static nature of the content, provides specific file naming conventions, mentions encoding (iso-8859-2), describes the return format (raw HTML), and explains how to navigate to related content. The only minor gap is not explicitly stating this is a read-only operation, though 'Fetch' strongly implies it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and front-loaded: the first sentence establishes the core purpose, subsequent sentences provide essential context and constraints, and every sentence earns its place with specific, actionable information. There is zero wasted verbiage while maintaining complete clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no annotations and no output schema, this description provides exceptional completeness. It covers the tool's purpose, when to use it, behavioral characteristics, parameter semantics, encoding information, return format, and navigation strategy. Given the complexity of accessing a static site with specific conventions, this description leaves no significant gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the baseline is 3. The description adds significant value by explaining the context of the path parameter: it provides concrete examples ('indeks 1200.html', 'kamenz/index.html'), clarifies that spaces in filenames are acceptable, and explains what types of files serve what purposes (indeks*.html for tables of contents, dokument*.html for compilations). This goes well beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch a single page') and resource ('Dokumenty Śląska static site'), with explicit mention of content types (medieval Silesian documents, regesta, seals, iconography). It distinguishes this tool from its only sibling (dokumenty_slaska_medieval_catalog) by specifying this is for fetching HTML pages rather than catalog data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('There is no public search API — content is static HTML'), when to use specific file patterns ('use indeks*.html for tables of contents and dokument*.html for full compilations'), and how to navigate content ('Follow links from the response to load further pages'). It clearly establishes this as the primary access method for this static site.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It effectively describes key traits: it returns a fixed JSON list (not dynamic), serves as a navigation aid (not a query), and has limitations (covers only specific periods and collections). However, it doesn't mention potential errors, response format details, or performance aspects like rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured. It uses three sentences: the first states the purpose, the second provides usage guidelines, and the third clarifies limitations. Each sentence adds essential information without redundancy, making it front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple, no parameters) and lack of annotations or output schema, the description is mostly complete. It explains the purpose, usage, and limitations. However, it doesn't detail the exact structure of the returned JSON list or error handling, which could be helpful for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100%. The description appropriately notes there are no inputs by not discussing parameters, which is sufficient. A baseline of 4 is applied since no parameters exist, and the description doesn't need to compensate for any gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Returns a fixed JSON list of relative paths for the main medieval document series on dokumentyslaska.pl (menu „Dokumenty”: periods up to 1333).' It specifies the exact resource (medieval document series paths) and distinguishes it from sibling tools like dokumenty_slaska_get_page, which is used for different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives. It states: 'Use dokumenty_slaska_get_page with indeks* paths for a table of contents and dokument* for the full running text for that period.' It also clarifies exclusions: 'This is not a database query — only a navigation aid; other collections (monasteries, chronicles, etc.) use different folders — discover paths from the homepage HTML.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYesNumeric record id from a filmpolski index.php/{id} URL

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it returns plain text extracted from HTML (strips markup), truncates for LLM context, and mentions copyright/database notice obligations. It doesn't specify error handling or rate limits, but covers the essential transformation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly packed sentences with zero waste. Each sentence adds critical information: what the tool does, how it transforms the output, and legal considerations. Perfectly front-loaded with the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with no output schema, the description is quite complete. It explains the transformation (HTML to plain text), truncation behavior, and legal context. Could potentially mention error cases or response format, but covers the essential context well given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents the single parameter. The description adds marginal value by mentioning the parameter comes 'from filmpolski_search links index.php/{id}', but doesn't provide additional semantic context beyond what's in the schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('fetch one FilmPolski.pl record'), resource ('by numeric id'), and distinguishes it from siblings by specifying it's for single-item retrieval versus the filmpolski_search tool for searching. It explicitly mentions the source URL pattern and output format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('by numeric id from filmpolski_search links'), implying it should be used after obtaining IDs from the search sibling. However, it doesn't explicitly state when NOT to use it or name alternative tools beyond the implied filmpolski_search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesfeature = fabularne, doc = dokumentalne, animation = animacje, magazine = magazyn.
langNoLanguage prefix.pl

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool returns HTML (not JSON), which is a key behavioral trait not evident from the schema. However, it lacks details on potential side effects (e.g., if it's read-only, which is implied but not stated), error handling, or performance considerations like rate limits, leaving gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, stating the core functionality in the first clause and adding important behavioral details (HTML output) in a second sentence. There's no wasted text, though it could be slightly more structured by explicitly separating purpose from constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no annotations, no output schema), the description is partially complete. It covers the purpose and output format (HTML), but lacks details on error cases, what the HTML contains, or how it integrates with sibling tools. Without annotations or output schema, more context would help the agent use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with both parameters ('kind' and 'lang') well-documented in the schema itself (including enums and descriptions). The description adds no additional parameter semantics beyond what the schema provides, such as explaining the relationship between 'kind' values and the listed categories. This meets the baseline score of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Browse by production kind' with specific categories (fiction, documentary, animation/experimental, magazine) and mentions it returns HTML. It distinguishes itself from sibling tools like 'fn_repo_search' by focusing on browsing by kind rather than general search, though it doesn't explicitly contrast with 'fn_repo_film_index' or 'fn_repo_get_node'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by stating 'same entries as the top menu,' suggesting this tool is for structured browsing akin to a website's navigation. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'fn_repo_search' or 'fn_repo_film_index,' leaving the agent to infer based on the browsing vs. searching distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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”.

ParametersJSON Schema
NameRequiredDescriptionDefault
letterYesIndex key: A–Z, Ą, Ć, E, Ł, Ń, Ó, Ś, Ź, Ż, or - (hyphen) for “INNE”.
langNoLanguage prefix.pl

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool returns HTML lists with links to specific URLs, which is useful behavioral context. However, it doesn't mention potential limitations like pagination, error handling, or performance characteristics. The description adds value beyond the schema but doesn't fully cover all behavioral traits a user might need.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences that are front-loaded with the core purpose. Every sentence earns its place: the first explains what the tool does and its parameters, the second clarifies the output format and real-world equivalent. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is reasonably complete. It covers the purpose, parameter context, and output format. However, without an output schema, it could benefit from more detail about the HTML structure or error cases. The mention of the equivalent site helps, but some behavioral aspects remain unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add any additional parameter semantics beyond what's in the schema (e.g., it doesn't explain the significance of 'INNE' or language choice). Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Browse the film catalog by first letter of title') and resource ('film catalog'), and distinguishes it from siblings by mentioning it returns HTML links similar to the site 'katalog filmów'. It explicitly mentions the letter range (A-Z, Polish letters, or INNE), which differentiates it from general search tools like fn_repo_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by stating it's for browsing by first letter and returns HTML lists, but it doesn't explicitly say when to use this tool versus alternatives like fn_repo_search or fn_repo_browse_kind. It mentions the site 'katalog filmów' as a reference, which provides some contextual guidance but lacks explicit when/when-not instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idYesDrupal node id from search result links.
langNoLanguage prefix for the node path.pl

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return format ('Returns HTML') and hints at content ('metadata, description, video embeds, person links'), which adds context. However, it lacks details on error handling, performance, or authentication needs, leaving gaps in behavioral understanding for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first clause and efficiently uses two sentences to cover action, parameters, and output. Every sentence adds value without redundancy, making it appropriately concise and well-structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no annotations and no output schema, the description provides basic context on purpose and return format but lacks details on error cases, rate limits, or full behavioral traits. For a simple read operation with two parameters, it is adequate but incomplete, as it doesn't fully compensate for the missing structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds minimal value by referencing the node ID in context ('as in /?q=pl/node/8937'), which provides a usage example, but does not elaborate beyond what the schema provides. Given the high coverage, a baseline of 3 is appropriate, but the example slightly enhances understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch one repository page'), identifies the resource ('by Drupal node id'), and distinguishes it from sibling tools like 'fn_repo_search' and 'fn_repo_browse_kind' by specifying it retrieves a single page rather than searching or browsing. It also mentions the return format ('Returns HTML'), which helps differentiate its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying it fetches a single page by node ID, suggesting it should be used when you have a specific numeric ID from search results. However, it does not explicitly state when to use this tool versus alternatives like 'fn_repo_search' or provide exclusions or prerequisites, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
photo_idYesNumeric photo id from a fototeka.pl/foto/view/{id} URL

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states what the tool returns (raw HTML with metadata) and what it doesn't return (full-resolution image file), which is valuable context. However, it doesn't mention potential error conditions, rate limits, authentication requirements, or response format details beyond 'raw HTML'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences with zero waste. The first sentence states the core functionality, the second provides important clarifications about what is and isn't returned. Every word serves a purpose and the information is front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read operation with no output schema, the description is reasonably complete. It explains what the tool does, what it returns, and distinguishes it from search operations. However, without annotations or output schema, it could benefit from more detail about error handling or response structure, though the core functionality is well-covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the single parameter well-documented in the schema. The description adds minimal value beyond the schema by mentioning where IDs come from ('search results and collection links on fototeka.fn.org.pl'), but doesn't provide additional semantic context about parameter usage or constraints beyond what's already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Fetch') and resource ('Fototeka HTML page for a single photo'), and distinguishes it from sibling tools by specifying it retrieves a single photo by ID rather than performing searches or getting different types of items. It explicitly mentions what it returns ('raw HTML with metadata, description, related links') and what it doesn't return ('not the full-resolution image file').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: 'by numeric id' from specific sources ('search results and collection links on fototeka.fn.org.pl'). It also distinguishes from alternatives by specifying this is for single photo retrieval rather than search operations, with a clear sibling tool 'fototeka_search' available for search functionality.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesURL segment after /galeria/ e.g. dzieci-przed-domem from fototekaslaska_search

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses important behavioral aspects: returns specific data fields (title, catalog line, image URL, plain text), respects copyright/terms, and warns against bulk-downloading. However, it doesn't mention error conditions, rate limits, authentication needs, or response format details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. First sentence covers purpose, parameters, and return values. Second sentence adds important behavioral context (copyright). Every word earns its place and information is front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read operation with no output schema, the description is reasonably complete. It covers what the tool does, what it returns, parameter context, and important usage constraints. The main gap is lack of output format details, but given the tool's simplicity, this is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents the single 'slug' parameter. The description adds minimal value beyond the schema by mentioning the slug comes 'from fototekaslaska_search' and the URL pattern, but doesn't provide additional syntax or format details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch'), resource ('one Fototeka Śląska photo page'), and mechanism ('by URL slug'), distinguishing it from sibling tools like fototekaslaska_search. It specifies the exact URL pattern (/galeria/{slug}/) and what data is returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning the slug comes 'from fototekaslaska_search' and provides copyright warnings. However, it doesn't explicitly state when to use this tool versus alternatives like fototeka_get_photo or other get_item tools in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
poster_idYesNumeric poster id from search results

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by specifying the return format ('raw HTML'), what's included ('metadata, credits, image links'), and clarifying there's 'no separate JSON API.' However, it doesn't mention potential error cases, rate limits, authentication needs, or whether this is a read-only operation (though 'fetch' implies reading). The description adds useful context but lacks comprehensive behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences with zero waste. The first sentence states the core functionality and parameter source, while the second provides implementation details (URL pattern) and output characteristics. Every word contributes to understanding the tool's operation and constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read operation with no output schema, the description provides good completeness. It covers the purpose, parameter semantics, return format, and implementation details. However, without annotations or output schema, it could benefit from more behavioral context like error handling or response structure. The description compensates well for the lack of structured metadata but doesn't fully bridge all gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the schema already fully documents the single parameter. The description adds valuable semantic context by explaining where the poster_id comes from ('from gapla_search links plakat/ID/…') and how it relates to the URL pattern. This provides practical guidance beyond the schema's technical validation rules, though it doesn't add syntax or format details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('fetch', 'returns') and resources ('Gapla poster detail page as HTML', 'raw HTML'). It distinguishes from sibling tools by specifying it retrieves individual poster details by ID, unlike gapla_search which presumably searches for posters. The description explicitly mentions the URL pattern and what the tool returns, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: to fetch a single poster detail page by numeric ID, specifically IDs obtained from gapla_search links. It mentions the URL pattern and that the slug is optional, giving practical usage hints. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the many sibling tools, though the connection to gapla_search is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesItem UUID from icm_search results, e.g. 3fa85f64-5717-4562-b3fc-2c963f66afa6

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It clearly describes the read-only nature ('Retrieve') and specifies the data source (ICM Open Research Data Repository). However, it doesn't disclose behavioral traits like rate limits, authentication requirements, error conditions, or response format details, leaving gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with two tightly focused sentences. The first sentence establishes purpose and scope, while the second provides crucial usage guidance. Every word earns its place with zero redundancy or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read operation with no output schema, the description provides strong purpose clarity and usage guidelines. However, without annotations or output schema, it lacks details about response format, error handling, and behavioral constraints. The description is complete enough for basic use but leaves operational questions unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing complete documentation of the single 'uuid' parameter. The description adds marginal value by reinforcing the UUID comes from 'icm_search results' and specifying the repository context, but doesn't provide additional semantic details beyond what's already in the schema. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Retrieve full metadata') and resource ('a single item in the ICM Open Research Data Repository') with precise scope ('by its UUID'). It explicitly distinguishes from sibling 'icm_search' by noting the UUID comes from that tool's results, establishing clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('Retrieve full metadata for a single item... by its UUID') and when not to (implied: use icm_search for finding items). It names the alternative tool ('icm_search') and specifies the prerequisite relationship ('UUID is found in the 'uuid' field of icm_search results'), giving complete usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's a read-only retrieval operation (implied by 'retrieve'), returns JSON with specific data fields (water level, flow rate, etc.), covers all active stations in Poland, and notes the data refresh rate (~hourly). It lacks details on error handling or rate limits, but covers core operational aspects well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first clause, followed by additional details in two clear sentences. Every sentence adds value: the first states what it does and returns, the second specifies data freshness. There is no wasted text or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple retrieval with no parameters), no annotations, and no output schema, the description is mostly complete: it explains the purpose, data format, scope, and refresh rate. It lacks details on output structure (e.g., JSON schema) or error cases, but for a zero-parameter tool, this is sufficient though not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description adds no parameter-specific information, which is appropriate since no parameters exist, but it doesn't detract from the schema's completeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('retrieve', 'returns') and resources ('current hydrological station readings', 'all active hydrological stations in Poland'). It distinguishes itself from sibling tools like imgw_meteo, imgw_synop, and imgw_warnings by specifying it deals with hydrological data rather than meteorological, synoptic, or warning data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('retrieve current hydrological station readings'), and the data source and refresh rate are specified. However, it does not explicitly state when not to use it or name alternatives among siblings (e.g., imgw_meteo for weather data), which prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the data source (danepubliczne.imgw.pl), return format (JSON with specific measurement types), scope (all active meteorological stations in Poland), and refresh rate (roughly every hour). It doesn't mention error handling or authentication needs, but covers the essential operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise and front-loaded: the first sentence states the core purpose, the second adds details about return format and scope, and the third provides refresh information. Every sentence earns its place with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no annotations, no output schema), the description is nearly complete. It explains what data is returned, from where, for what geographic scope, and how frequently it's updated. The only minor gap is the lack of output schema, but the description adequately describes the return content (JSON with specific measurements).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, focusing instead on what the tool does without inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('retrieve', 'returns') and resources ('current meteorological station readings from IMGW-PIB', 'JSON with temperature, precipitation, snow cover, wind, and related measurements'). It distinguishes itself from siblings like imgw_hydro, imgw_synop, and imgw_warnings by specifying it provides station readings rather than hydrological data, synoptic data, or warnings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: to get current meteorological station readings for Poland, refreshed roughly every hour. It doesn't explicitly state when not to use it or name alternatives, but the specificity of the data (station readings vs. hydro/synop/warnings) implies differentiation from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
station_idNoNumeric synoptic station ID, e.g. '12500'. Overrides station_name if both given.
station_nameNoStation name without Polish diacritics, e.g. 'jeleniagora', 'warszawa', 'krakow'.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses important behavioral traits: the data format (JSON), the scope of data (all active stations or single station), the refresh frequency (roughly every hour), and the precedence rule for parameters. It doesn't mention error handling, rate limits, or authentication requirements, but covers key operational aspects well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by details on parameters and behavior. Every sentence earns its place by providing essential information without redundancy. The structure flows logically from general to specific.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 optional parameters, no output schema, no annotations), the description is mostly complete. It covers purpose, usage, key behaviors, and parameter semantics. However, it doesn't describe the JSON structure of the return data (e.g., fields like temperature, wind speed), which would be helpful since there's no output schema. For a data retrieval tool, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds some value by reiterating the precedence rule and providing examples (e.g., '12500 for Jelenia Góra', 'jeleniagora'), but doesn't add significant meaning beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('retrieve'), resource ('current synoptic weather station readings'), and source ('IMGW-PIB'). It distinguishes this tool from its sibling tools (like imgw_hydro, imgw_meteo, imgw_warnings) by specifying it returns synoptic station data with specific weather parameters, not hydrological, meteorological, or warning data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool: to get weather readings for all active synoptic stations in Poland or for a single station when station_id or station_name is provided. It explains the precedence rule if both parameters are given. However, it doesn't explicitly state when NOT to use it or mention alternatives among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoWarning type: 'meteo' (weather), 'hydro' (hydrological), or 'all' for both.all

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully describes key behavioral traits: it retrieves active warnings (not historical), returns JSON format, and specifies the content structure (alert levels, affected regions, hazard descriptions, validity periods). It doesn't mention rate limits, authentication needs, or potential errors, but provides substantial operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: the first states the core purpose and return format, the second explains the parameter options with concrete examples. Every sentence adds value with zero wasted words, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 1 parameter with full schema coverage, no annotations, and no output schema, the description provides strong context about what the tool does, when to use it, and what it returns. It could be slightly more complete by mentioning the data source URL (danepubliczne.imgw.pl) earlier or potential limitations, but it covers the essential operational aspects well for this complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage, so the baseline is 3. The description adds meaningful semantic context beyond the schema by explaining what 'meteo' and 'hydro' warnings specifically include (e.g., 'storms, frost, heat, wind' for meteo, 'flood and hydrological' for hydro), and clarifies that 'all' is the default behavior. This enhances understanding of parameter choices.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('retrieve active meteorological and/or hydrological warnings'), the resource ('issued by IMGW-PIB'), and distinguishes it from sibling tools like imgw_hydro and imgw_meteo by explaining it can fetch both types or either individually. It goes beyond just restating the name to explain the actual function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides when-to-use guidance by explaining the three type options: 'meteo' for weather warnings, 'hydro' for flood/hydrological warnings, or 'all' for both (default). This gives clear context for selecting between this tool and its specialized siblings (imgw_hydro, imgw_meteo).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
eliYesELI id, e.g. "DU/2026/370" (publisher/year/position).

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses the return format ('JSON with title, texts (PDF file names), references') which is valuable behavioral information. However, it doesn't mention error conditions, rate limits, authentication needs, or whether this is a read-only operation (though 'fetch' implies it).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in three sentences: purpose statement, parameter example with explanation, and return format. Every sentence adds value with zero wasted words. It's appropriately sized for a single-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple fetch tool with 1 parameter (100% schema coverage) and no output schema, the description provides good context: purpose, parameter semantics with example, and return format. It could be more complete by mentioning error cases or authentication, but covers the essential usage scenario adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the 'eli' parameter well. The description adds meaningful context by explaining ELI structure with a concrete example ('DU/2026/370 — Dziennik Ustaw, year 2026, position 370') and connecting it to search results, which helps the agent understand the parameter's purpose beyond the schema's technical description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch one legal act'), resource ('from ISAP'), and identifier type ('by ELI identifier'). It distinguishes from sibling 'isap_search_acts' by specifying retrieval of a single item rather than searching. The example ELI format reinforces the specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have an ELI identifier from search results, but doesn't explicitly state when to use this vs. alternatives like 'isap_search_acts' or other legal database tools. It provides context about the ELI format being the same as in search results, which helps with workflow understanding.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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/

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoWords to find in the act title.
keywordNoISAP keyword tag(s)—comma-separated; matches controlled vocabulary tags (e.g. szkolnictwo, podatki), not free text.
yearNoCalendar year of the act in the journal (e.g. 2025).
publisherNoPublisher code, e.g. "DU" (Dziennik Ustaw), "MP" (Monitor Polski).
typeNoAct type, e.g. "Ustawa", "Rozporządzenie", "Obwieszczenie".
positionNoPosition number in the journal (poz.).
volumeNoVolume (journal volume).
in_forceNoWhen true, only acts currently in force (API: inForce=1).
date_fromNoAnnouncement date from (yyyy-MM-dd).
date_toNoAnnouncement date to (yyyy-MM-dd).
date_effect_fromNoEntry-into-force date from (yyyy-MM-dd).
date_effect_toNoEntry-into-force date to (yyyy-MM-dd).
pub_date_fromNoPromulgation date from (yyyy-MM-dd).
pub_date_toNoPromulgation date to (yyyy-MM-dd).
limitNoMax results (API default 500; capped at 100 here).
offsetNo0-based offset for pagination.
sort_byNoSort field (see ELI API).publisher
sort_dirNoSort direction.asc

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses key behavioral traits: it's a search operation (implied read-only), returns raw JSON with specific fields, and includes a rate limit hint ('capped at 100 here'). It also clarifies that 'keyword' matches controlled vocabulary tags, not free text. However, it doesn't mention authentication needs, error handling, or pagination details beyond offset.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by key usage notes and return format, ending with a reference link. Every sentence earns its place: the first defines the tool, the second clarifies parameter semantics, the third lists filterable fields, and the fourth specifies output and API docs. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (18 parameters, no annotations, no output schema), the description is reasonably complete. It covers purpose, key parameter nuances, return format, and API reference. However, it doesn't detail the JSON structure of 'items[]' (e.g., field descriptions) or error scenarios, which could be helpful for a tool with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 18 parameters thoroughly. The description adds minimal value beyond the schema: it clarifies that 'title' is for full-text-in-title search and 'keyword' matches ISAP tags, but doesn't explain other parameters like date ranges or sorting. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Search Polish legal acts indexed in ISAP via the Sejm ELI JSON API') and resource ('Polish legal acts'), distinguishing it from siblings like 'isap_get_act' which likely retrieves a single act. It specifies the search mechanism and data source, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool: for searching legal acts via the ELI API with specific filters. It distinguishes usage of 'title' vs. 'keyword' parameters, but does not explicitly mention when not to use it or name alternatives (e.g., 'isap_get_act' for retrieving a single act). The guidance is helpful but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idYesProfile id from ludzie_search / ludzie_semantic_search (e.g. jhMVc1vG5Yz).

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that it fetches 'public detail' (implying read-only access), describes the return format ('compact JSON object'), and mentions an alternative human-readable page via profileUrl. However, it doesn't mention potential limitations like rate limits, error conditions, or authentication requirements for a public API.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: the first states the purpose and key data elements, the second provides usage guidance and output format. Every element serves a clear purpose with zero wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read operation with no annotations and no output schema, the description is reasonably complete. It explains what data is returned, provides usage context, and mentions the human-readable alternative. However, without an output schema, it could benefit from more detail about the structure of the 'compact JSON object' being returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents the single parameter. The description adds value by explaining where the profile_id comes from ('from ludzie_search or ludzie_semantic_search') and providing context about its format ('e.g. jhMVc1vG5Yz'), though this example is also in the schema. With 0 parameters requiring additional semantics beyond schema coverage, baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch public detail'), target resource ('one Ludzie Nauki profile'), and key data elements (ORCID, academic degrees/titles, top keywords). It distinguishes this tool from its siblings ludzie_search and ludzie_semantic_search by focusing on retrieving detailed information for a single profile rather than searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: to get details for a single profile identified by profile_id from ludzie_search or ludzie_semantic_search. It provides clear alternatives by naming the sibling tools that should be used for searching rather than fetching individual profiles.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nac_get_pageB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesNumeric page id from nac_site_search

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the data format (WordPress REST JSON) but lacks critical behavioral details: it does not specify if this is a read-only operation, potential error conditions (e.g., invalid page_id), rate limits, authentication needs, or what the output looks like. The description is minimal and leaves key operational aspects unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It is front-loaded with the core action and resource, and every part (fetch, static page, source, format, endpoint) contributes essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It does not cover behavioral aspects like safety (read-only vs. mutation), error handling, or output structure, which are crucial for a tool with no structured metadata. While concise, it fails to provide sufficient context for reliable agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter 'page_id' documented as 'Numeric page id from nac_site_search'. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. However, with high schema coverage, the baseline is 3, as the schema adequately describes the single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch'), the resource ('a single static page'), the source ('from nac.gov.pl'), and the format ('as WordPress REST JSON'). It also distinguishes from sibling tools by specifying the exact API endpoint ('/wp/v2/pages/{id}'), making it distinct from generic search or other page-fetching tools in the list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing a page_id from nac_site_search, which is only implied by the parameter description), nor does it differentiate from similar tools like nac_get_post or other get_item tools in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nac_get_postA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYesNumeric post id from nac_site_search or URLs

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the data source (nac.gov.pl) and output format (WordPress REST JSON), which is useful. However, it lacks details on error handling, authentication needs, rate limits, or whether it's a read-only operation (though 'Fetch' implies reading).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the key information: action, resource, source, and output format. There is no wasted verbiage, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with one well-documented parameter and no output schema, the description is adequate but minimal. It covers the basics but could benefit from more behavioral context (e.g., error cases, response structure) since annotations are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with 'post_id' well-documented as a numeric ID from specific sources. The description adds context by mentioning the WordPress endpoint ('/wp/v2/posts/{id}'), which clarifies the parameter's role in the API call, providing value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch') and resource ('a single blog post from nac.gov.pl'), specifying it returns WordPress REST JSON from a specific endpoint. It doesn't explicitly differentiate from sibling tools like 'nac_get_page' or 'nac_site_search', but the focus on a single post by ID provides implicit distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by mentioning the source (nac.gov.pl) and endpoint format, and the parameter description suggests 'post_id' comes from 'nac_site_search or URLs'. However, it doesn't explicitly state when to use this tool versus alternatives like 'nac_get_page' or 'nac_site_search', leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the output format ('raw XML') and source characteristics ('aktualności, WordPress'), but doesn't mention potential rate limits, authentication requirements, or error behaviors. It provides basic operational context but lacks comprehensive behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly packed sentences with zero waste. First sentence states purpose and output, second provides critical exclusion context. Every word earns its place, and the most important information (what it does) comes first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, parameterless RSS fetch tool with no output schema, the description provides sufficient context about what it returns (raw XML) and what it's not (archival catalogue). It could benefit from mentioning typical response structure or error cases, but covers the essential operational context well given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0 parameters and 100% schema description coverage, the baseline would be 4. The description appropriately doesn't discuss parameters since none exist, and instead focuses on what the tool does and returns, which is correct for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch'), resource ('NAC institutional news RSS 2.0 feed'), and format ('raw XML'), distinguishing it from siblings by explicitly contrasting with archival catalogues on other platforms. It provides precise scope and output format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when NOT to use this tool ('This is not the digitized archival catalogue — that lives on szukajwarchiwach.gov.pl'), providing clear alternative context and preventing misuse. It defines the tool's specific domain versus other data sources.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
vod_idYesNumeric id from search results
platformNoKeep BROWSER for the public APIBROWSER

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively indicates this is a read-only operation ('Get full JSON metadata') and specifies the scope of returned data. However, it lacks details on error handling, rate limits, authentication needs, or response format beyond 'JSON metadata,' leaving some behavioral aspects unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by clarifying details. Every sentence earns its place by specifying inclusions, exclusions, and data sources without redundancy. It is appropriately sized and efficiently structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is largely complete. It covers purpose, usage context, and data scope well. However, without an output schema, it could benefit from more detail on the structure of the returned JSON metadata to fully guide the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds minimal value beyond the schema by mentioning 'numeric id (from ninateka_search items[].id)' for 'vod_id', but does not provide additional syntax, format, or usage details. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get full JSON metadata'), target resource ('one Ninateka item'), and key identifier ('by numeric id'). It explicitly distinguishes this tool from potential siblings by specifying what it includes ('description, categories, images, type') and excludes ('Does not return streaming URLs or DRM — metadata only'), making its purpose distinct and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: after obtaining an ID from 'ninateka_search items[].id' and when only metadata is needed. However, it does not explicitly mention when not to use it (e.g., for streaming URLs) or name specific alternative tools, though the exclusion of streaming/DRM implies alternatives exist for those purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
artwork_idYesArtwork _id from pauart_search results, e.g. AN_KIII_150_16476

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses the return format ('compact metadata (title, inventory, tags, preview path)'), which is helpful. However, it doesn't mention error handling, rate limits, authentication needs, or whether the operation is idempotent, leaving behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by return details and usage guidance in just two sentences. Every word earns its place with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, 100% schema coverage, no output schema), the description is mostly complete. It covers purpose, parameter usage, and return format. However, without annotations or output schema, it could benefit from more behavioral details like error cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single parameter 'artwork_id' with examples. The description adds minimal value by restating the parameter usage but doesn't provide additional semantics beyond what the schema offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Fetch'), resource ('one artwork record from PAUart'), and key identifier ('by its catalogue id'). It distinguishes from sibling 'pauart_search' by specifying this retrieves a single record rather than searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context by stating 'Use ids returned by pauart_search,' which implicitly guides when to use this tool versus its sibling. However, it doesn't explicitly state when NOT to use it or mention alternative tools for different scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
publication_idYesPublication object id from search results.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context about authentication requirements and the endpoint path (GET /v1/publications/id/{id}), which helps the agent understand operational constraints. However, it doesn't describe response format, error handling, rate limits, or whether this is a read-only operation (though 'Fetch' implies reading).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences that each serve a clear purpose: stating the tool's function and specifying authentication requirements. It's front-loaded with the core purpose. There's minimal waste, though it could be slightly more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 1 parameter with full schema coverage but no annotations and no output schema, the description provides adequate but incomplete context. It covers authentication and endpoint details but lacks information about return values, error cases, or how this differs from sibling tools. For a simple lookup tool, this is minimally viable but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents the single parameter. The description doesn't add any meaningful parameter semantics beyond what's in the schema (which explains it's a 'Publication object id from search results'). Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch extended publication metadata') and resource ('by PBN Mongo object id'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'pbn_search_publications' or 'pbn_search_persons', which would require a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions authentication requirements ('Requires PBN_APP_ID and PBN_APP_TOKEN') but provides no guidance on when to use this tool versus alternatives like 'pbn_search_publications' or other publication-related tools. There's no explicit when/when-not context or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
first_nameNoFirst name.
last_nameNoLast name.
orcidNoORCID id.
object_idNoPBN person object id.
pageNoResult page index (0-based).
sizeNoPage size.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the HTTP method (POST) and return type (JSON MetadataDTO), but lacks details on rate limits, error handling, pagination behavior beyond parameters, or whether it's read-only/destructive. This is insufficient for a search tool with authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. It could be slightly more structured (e.g., separating authentication from return details), but it avoids redundancy and wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with authentication needs and no output schema, the description is incomplete. It doesn't explain the return format (MetadataDTO structure), error cases, or how results are ordered/filtered. Given the complexity and lack of annotations, more behavioral context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds no additional parameter semantics beyond implying search via first/last name, ORCID, or object ID, which is already clear from the schema. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Search persons') and target resource ('in PBN'), specifying it searches for researchers via ORCID. However, it doesn't explicitly differentiate from sibling tools like 'pbn_search_publications' or other search tools, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions authentication requirements ('Requires PBN_APP_ID and PBN_APP_TOKEN') but provides no guidance on when to use this tool versus alternatives (e.g., other PBN tools or general search tools in the sibling list). There's no mention of prerequisites, exclusions, or comparative use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoPublication title fragment.
doiNoDOI.
isbnNoISBN.
issnNoISSN.
yearNoSingle publication year.
year_fromNoYear range lower bound.
year_toNoYear range upper bound.
typeNoPublication type.
authorsNoAuthor name strings (AND semantics per API).
object_idNoPBN object id if known.
pageNoResult page index (0-based).
sizeNoPage size (max 100).

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions authentication requirements ('Requires PBN_APP_ID and PBN_APP_TOKEN') and the return format ('Returns JSON (MetadataDTO)'), which adds useful context. However, it doesn't describe pagination behavior, rate limits, error handling, or whether this is a read-only operation, leaving significant gaps for a search tool with 12 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: one stating the purpose and endpoint, another listing filter capabilities. It's appropriately sized with no redundant information. However, it could be slightly more front-loaded by moving the filter list to a separate line for better scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters, search functionality) and lack of both annotations and output schema, the description is moderately complete. It covers authentication, return format, and filterable fields, but doesn't explain the response structure (MetadataDTO), pagination behavior, or error cases. For a search tool without output schema, more detail about expected results would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 12 parameters thoroughly. The description lists filterable fields ('Filter by title, DOI, ISBN, ISSN, year range, type, authors, pagination') which aligns with the schema but adds minimal semantic value beyond what's already in parameter descriptions. The baseline score of 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search publications in Polska Bibliografia Naukowa (PBN)'. It specifies the verb ('Search') and resource ('publications'), and mentions the target system (PBN). However, it doesn't explicitly differentiate from sibling tools like 'pbn_search_persons' or 'pbn_get_publication', which would be needed for a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'pbn_search_persons' for searching authors or 'pbn_get_publication' for retrieving specific publications, nor does it specify prerequisites beyond authentication requirements. Usage context is implied but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
record_idYesNumeric content id or full OAI identifier, e.g. 204728 or oai:rcin.org.pl:204728
metadata_formatNoMetadata schema (default oai_dc).oai_dc

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It describes the protocol (OAI-PMH GetRecord) and acceptable ID formats, which adds useful context. However, it doesn't disclose important behavioral traits like error handling, response format, authentication requirements, or rate limits that would be helpful for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise - a single sentence that efficiently communicates the tool's purpose, protocol, and parameter usage. Every word earns its place with zero wasted information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with good schema coverage but no output schema, the description provides adequate basic context. However, it lacks information about return values, error conditions, or any special behavioral considerations that would help an agent use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents both parameters thoroughly. The description adds some value by explaining the two acceptable formats for record_id (numeric id or full OAI id), but doesn't provide additional semantic context beyond what's in the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch a single RCIN object via OAI-PMH GetRecord'), identifies the resource ('RCIN object'), and distinguishes it from sibling tools like 'rcin_search' by specifying it retrieves a single record rather than performing searches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when to use this tool (to fetch a single record by ID) and implicitly contrasts with search tools in the sibling list. However, it doesn't explicitly state when NOT to use it or name specific alternative tools for different scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
doiYesDataset DOI without the doi: prefix, e.g. 10.18150/ABCDEF
formatNoMetadata export formatdatacite

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It describes the action (metadata retrieval) and format options, but doesn't disclose behavioral traits like rate limits, authentication needs, error handling, or what the output looks like (though no output schema exists). It's adequate but lacks depth on operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently conveys purpose and key usage details without any wasted words. It's front-loaded with the core action and resource, making it highly concise and effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only metadata retrieval tool with 2 parameters (100% schema coverage) but no annotations or output schema, the description is minimally complete. It covers the what and how, but lacks details on output format, error cases, or integration context that would help an agent use it more effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds minimal value beyond the schema by mentioning the format options, but doesn't provide additional semantic context like DOI formatting examples or use cases for each format. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get metadata') and resource ('for a specific dataset in RePOD by its DOI'), distinguishing it from the sibling 'repod_search' tool which presumably searches rather than retrieves a specific dataset. It's precise about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool (to get metadata for a specific dataset by DOI) and offers guidance on format choices, but it doesn't explicitly state when NOT to use it or mention alternatives like 'repod_search' for broader queries. The format guidance is helpful but not a full alternative analysis.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesItem UUID from ruj_search results, e.g. 3fa85f64-5717-4562-b3fc-2c963f66afa6

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It effectively communicates that this is a read-only operation ('Retrieve') and specifies the input source, but lacks details on error handling, rate limits, authentication needs, or response format. It adds some behavioral context but is incomplete for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently conveys the tool's purpose, usage context, and parameter source without any redundant information. It is front-loaded with the core action and appropriately sized for its complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is adequate but minimal. It covers the basic purpose and usage context but lacks details on behavioral traits like error responses or metadata structure, which could be helpful despite the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents the 'uuid' parameter. The description adds minimal value by reiterating that the UUID comes from 'ruj_search' results, but does not provide additional semantics beyond what the schema already states. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Retrieve full metadata'), target resource ('a single item in the Jagiellonian University Repository'), and method ('by its UUID'). It explicitly distinguishes from sibling 'ruj_search' by noting the UUID source, making the purpose unambiguous and distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: after obtaining a UUID from 'ruj_search' results. However, it does not explicitly state when not to use it or mention alternatives like other 'get_item' tools (e.g., 'agh_get_item'), leaving some ambiguity in sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

saos_dump_common_courtsA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoItems per request (10–100).
page_numberNoZero-based page.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It effectively discloses key behavioral traits: the tool is paginated, responses are large (implying performance considerations), and it has a 24-hour cache TTL. This covers important operational aspects beyond basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by practical guidance and caching note. Every sentence earns its place with no wasted words, making it highly efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with no annotations and no output schema, the description is quite complete. It covers purpose, pagination behavior, performance considerations, and caching. The main gap is lack of detail on output format, but given the tool's relative simplicity, this is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both parameters. The description adds marginal value by emphasizing 'Use small page_size' as a recommendation, but does not provide additional semantic context beyond what the schema already states about page_size and page_number.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('dump' implying list/retrieve) and resource ('common courts'), and specifies the content ('names, codes, divisions'). It distinguishes from siblings like 'saos_dump_judgments' or 'saos_dump_sc_chambers' by focusing on common courts specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for usage ('Use small page_size; responses are large') and mentions caching behavior ('Cache TTL 24h'), which helps guide when to use it. However, it does not explicitly state when not to use it or name specific alternatives among the many sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

saos_dump_enrichmentsB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoItems per request (10–100).
page_numberNoZero-based page.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions pagination, which is useful, but lacks details on authentication needs, rate limits, error handling, or what the output looks like (e.g., format of enrichment tags). For a tool with no annotations, this leaves significant gaps in understanding its operational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads key information: 'SAOS dump: paginated list of enrichment tags from the SAOS enrichment module (labels for judgments).' It avoids redundancy and waste, clearly stating the tool's core function without unnecessary elaboration. Every word earns its place, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 parameters, no nested objects) and 100% schema coverage, the description is adequate but incomplete. It lacks output schema information, which isn't required to explain return values, but with no annotations, it should provide more behavioral context (e.g., what the list contains, any limitations). It meets minimum viability but has clear gaps in transparency and guidelines.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with clear documentation for page_size and page_number. The description adds no additional parameter semantics beyond implying pagination, which is already evident from the schema. According to the rules, with high schema coverage (>80%), the baseline score is 3, as the schema does the heavy lifting and the description doesn't compensate with extra insights.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'paginated list of enrichment tags from the SAOS enrichment module (labels for judgments).' It specifies the verb ('paginated list'), resource ('enrichment tags'), and source ('SAOS enrichment module'), distinguishing it from other SAOS tools like saos_dump_judgments or saos_search_judgments. However, it doesn't explicitly differentiate from all siblings, such as saos_dump_common_courts, which may have similar paginated list functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over other SAOS tools like saos_search_judgments or saos_get_judgment, nor does it specify prerequisites or exclusions. The agent must infer usage from the tool name and description alone, which is insufficient for optimal selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoItems per request (10–100).
page_numberNoZero-based page.
judgment_start_dateNoLower bound judgment date yyyy-MM-dd (judgmentStartDate).
judgment_end_dateNoUpper bound judgment date yyyy-MM-dd (judgmentEndDate).
since_modification_dateNoOnly judgments modified after this instant (sinceModificationDate), format yyyy-MM-dd'T'HH:mm:ss.SSS.
with_generatedNoInclude data from SAOS enrichment module (withGenerated).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does well: it warns about potential large data size ('can be very large'), advises on performance optimization ('Prefer narrow...'), explains the purpose of 'since_modification_date' for incremental sync, and clarifies the 'with_generated' parameter. It lacks details on error handling or rate limits, but covers key behavioral aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and well-structured: it starts with the core purpose, immediately provides critical usage tips, explains key parameters in context, and ends with a clear distinction from sibling tools. Every sentence adds value with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, no annotations, and no output schema, the description does well: it covers purpose, usage guidelines, and key behavioral traits. However, it lacks details on output format (e.g., structure of returned judgments) and error scenarios, which would be helpful given the complexity. It's mostly complete but has minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds some context: it explains 'since_modification_date' as 'incremental sync' and 'with_generated' as 'include SAOS enrichment module fields,' but doesn't provide additional syntax or format details beyond the schema. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'SAOS bulk dump of judgments (full records per row — can be very large).' It specifies the verb ('dump'), resource ('judgments'), and scope ('bulk' with 'full records per row'), distinguishing it from sibling tools like 'saos_search_judgments' by emphasizing it's for 'mirror/sync' rather than search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool vs. alternatives: 'Prefer narrow judgment_start_date/judgment_end_date and page_size 10–20' for performance, and 'Not a replacement for saos_search_judgments (different use case: mirror/sync).' It also advises on incremental sync with 'since_modification_date' and includes context for 'with_generated'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

saos_dump_sc_chambersB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoItems per request (10–100).
page_numberNoZero-based page.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions pagination, which is useful, but doesn't describe what the list contains (e.g., fields, structure), how results are ordered, error handling, or any constraints like rate limits or authentication needs. For a list tool with no annotations, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads key information (SAOS dump, paginated list, resource). There's no wasted text, and it's appropriately sized for a simple list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 parameters, no annotations, no output schema), the description is minimally adequate. It covers the basic purpose and pagination but lacks details on output format, usage context, and behavioral traits. For a list tool, this is acceptable but leaves room for improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters (page_size and page_number). The description adds no additional parameter semantics beyond what's in the schema, such as explaining what 'chambers and divisions' means in the context of pagination. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as a 'paginated list of Supreme Court chambers and divisions,' specifying both the action (list) and resource (chambers/divisions). It distinguishes from many siblings by focusing on SAOS and chambers/divisions, though it doesn't explicitly differentiate from 'saos_dump_common_courts' or other SAOS dump tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention when this tool is appropriate, what it's for, or how it differs from other SAOS tools like 'saos_dump_common_courts' or 'saos_dump_judgments.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what the tool returns (hypermedia links to dump sub-services) and provides a documentation URL, but doesn't mention rate limits, authentication requirements, or what format the links are in. The description adds some context but lacks comprehensive behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: the first explains the tool's function, the second provides usage guidance and documentation reference. Every element serves a purpose with no wasted words, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no annotations and no output schema, the description provides good context: it explains what the tool returns (hypermedia links to specific sub-services), when to use it versus alternatives, and includes documentation reference. The main gap is lack of output format details, but overall it's reasonably complete for this tool type.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage. The description appropriately doesn't discuss parameters since none exist, and it focuses on explaining what the tool does rather than parameter details. This meets the baseline expectation for a zero-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: it's a bulk dump API entry that lists hypermedia links to specific dump sub-services (commonCourts, judgments, scChambers, enrichments, deletedJudgments). It uses specific verbs ('lists', 'dump') and distinguishes itself from sibling tools by mentioning saos_search_judgments as an alternative for different use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives: it states 'For searching judgments without mirroring the full database prefer saos_search_judgments.' This clearly defines the boundary between this bulk dump entry point and the search-focused sibling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
judgment_idYesSAOS judgment id (positive integer).

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return format ('full JSON including textContent, judges, courtCases, legalBases, referencedRegulations'), which is helpful, but lacks critical details like whether this is a read-only operation, error handling, rate limits, authentication needs, or performance characteristics. For a tool with zero annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in a single sentence that front-loads the purpose and includes essential details about the parameter source and return format. Every part of the sentence adds value without redundancy, making it appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is adequate but not fully complete. It covers the purpose, parameter context, and return structure, but lacks behavioral details like error cases or operational constraints. For a read operation, this is minimally viable but could be more comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the parameter 'judgment_id' well-documented in the schema as a positive integer. The description adds minimal value beyond the schema by mentioning the ID sources ('from search results items[].id or /api/search/judgments'), but doesn't provide additional syntax or format details. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch one SAOS judgment') and resource ('by numeric id'), distinguishing it from sibling tools like 'saos_search_judgments' which returns multiple results. It precisely defines what the tool does without being vague or tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool ('by numeric id from search results items[].id or /api/search/judgments'), indicating it's for retrieving a single judgment after obtaining an ID. However, it doesn't explicitly state when not to use it or name alternatives like 'saos_search_judgments' for initial searches, though this is somewhat implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoPhrase searched across all judgment fields (metadata and text). See SAOS query language in help.
page_sizeNoResults per page (API allows 10–100).
page_numberNoZero-based page index.
sorting_fieldNoSort field, e.g. DATABASE_ID, JUDGMENT_DATE (see SAOS search API docs).
sorting_directionNoSort direction.
legal_baseNoFree-text search in legal basis field.
referenced_regulationNoSearch in referenced statutory provision text.
law_journal_entry_codeNoDU position as year/entry, e.g. 2024/123.
judge_nameNoJudge name (query language).
case_numberNoExact full case signature (not a substring).
court_typeNoCommon court level (only when filtering common courts).
cc_court_idNoSAOS internal common court id.
cc_court_codeNoSource court code digits, e.g. 15500000 for SA Wrocław.
cc_court_nameNoExact court name including case (e.g. Sąd Apelacyjny we Wrocławiu).
cc_division_idNoSAOS common court division id.
cc_division_codeNoDivision code within one court.
cc_division_nameNoExact division name.
cc_include_dependent_court_judgmentsNoWhen cc_court_id targets an appeal court: include lower-instance judgments from that circuit.
sc_personnel_typeNoSupreme Court bench size: ONE_PERSON, THREE_PERSON, FIVE_PERSON, SEVEN_PERSON, ALL_COURT, ALL_CHAMBER, JOINED_CHAMBERS.
sc_judgment_formNoExact SN judgment form label, e.g. wyrok SN (case-sensitive).
sc_chamber_idNoSAOS Supreme Court chamber id.
sc_chamber_nameNoExact chamber name (case-sensitive).
sc_division_idNoSN chamber division id.
sc_division_nameNoExact SN division name.
judgment_typesNoMatch any of these judgment types (OR).
keywordsNoThematic keywords (common courts); all listed keywords must match (AND). Exact spelling.
judgment_date_fromNoLower bound judgment date yyyy-MM-dd.
judgment_date_toNoUpper bound judgment date yyyy-MM-dd.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the return format ('Returns JSON with items[].id, href, textContent snippets, court metadata') which is helpful, but doesn't cover important aspects like pagination behavior (implied by page parameters but not explained), rate limits, authentication requirements, or error conditions. The description adds value but leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose. It efficiently covers search scope, key parameters, return format, and sibling tool relationship in three sentences. While dense, every sentence adds value and there's no wasted text. The structure moves logically from purpose to usage to output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (28 parameters, no output schema, no annotations), the description provides adequate but incomplete coverage. It explains the purpose, basic usage, and return structure, but doesn't address pagination behavior, error handling, or the relationship between the many filtering parameters. For such a complex search tool with rich filtering options, more contextual guidance would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds some context by mentioning the SAOS query language link and listing filterable fields, but doesn't provide significant additional parameter semantics beyond what's already documented in the comprehensive schema. It gives a high-level overview but the schema does the heavy lifting for parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb ('Search') and resource ('Polish court judgments in SAOS'), and distinguishes from sibling tools by mentioning 'saos_get_judgment' for full text retrieval. It provides concrete scope details about what can be searched (full-text/metadata phrase, dates, case numbers, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides when-to-use guidance: 'Use `all` for full-text / metadata phrase' and 'For full text use saos_get_judgment with id.' It clearly distinguishes this search tool from the retrieval tool for full content, giving the agent clear alternatives based on the user's need.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_baseNoAleph local bibliographic base code (e.g. SUM01; confirm in local Aleph docs)SUM01
requestYesFind request (WWW prefix syntax), e.g. wrd=medycyna or wti=anestezjologia

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it returns XML, uses Aleph WWW query prefixes, and includes important server-side failure handling ('SRU gate configuration file is missing'). It doesn't mention rate limits or authentication requirements, but provides substantial operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with zero waste. The first sentence establishes the core purpose, the second explains parameter syntax with examples, and the third provides crucial error handling guidance. Every sentence earns its place by adding essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with 2 parameters, 100% schema coverage, and no output schema, the description provides excellent context about the search mechanism, parameter usage, and failure scenarios. The only minor gap is the lack of information about the XML response structure, but given the technical nature of the tool and the schema coverage, this is reasonable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds significant value by explaining the 'request' parameter's syntax ('uses Aleph WWW query prefixes') and providing concrete examples ('wrd=kardiologia', 'wti=title words', 'wau=author') that clarify the parameter's purpose beyond the schema's basic description. It also references external documentation ('see Ex Libris X-Services introduction').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Search the SUM (ŚUM Katowice) Aleph catalogue via X-Server `op=find`') and resource ('returns XML'), distinguishing it from sibling tools like 'sum_aleph_present' which serves a different purpose. It provides precise technical context about the search operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool (for searching via X-Server `op=find`) and when not to use it (if the response contains 'SRU gate configuration file is missing'), providing a clear alternative ('sum_aleph_present may still work for sets'). This gives specific guidance on server failure scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
set_noYesResult set number from find (e.g. 000001)
set_entryYesEntry index or range: one value (e.g. 000000001) or from-to (e.g. 000000001,000000005) per Aleph docs
formatNoPresentation format (e.g. marc)marc

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool fetches records in XML format, mentions session dependency for 'find' results, and describes common input formats. However, it doesn't cover important behavioral aspects like error handling, response structure, pagination, or authentication requirements for a tool that presumably reads data from a server.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences. The first sentence establishes purpose and context, while the second provides usage guidance and format details. There's minimal redundancy, though the format information could be slightly more concise. Every sentence earns its place by adding value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description provides adequate but incomplete context. It covers the basic purpose, prerequisites, and parameter usage, but lacks information about return values, error conditions, or system-specific behaviors. Given the technical nature of Aleph X-Server operations and the absence of structured metadata, more behavioral transparency would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds minimal value beyond the schema: it mentions that '8-digit zero-padded entry numbers are common' for set_entry and that format defaults to 'marc', but these details are already implied or explicit in the schema. The baseline of 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Fetch catalogue records from the SUM Aleph X-Server `op=present` (XML, typically MARC in `<oai_marc>`)'. It specifies the verb ('fetch'), resource ('catalogue records'), and source system. However, it doesn't explicitly differentiate from sibling tools like 'sum_aleph_find' beyond mentioning prior results from 'find'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: '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'. This gives specific prerequisites and alternative input sources. It doesn't explicitly state when NOT to use it or name alternative tools for different scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesItem UUID from uafm_search results, e.g. 3fa85f64-5717-4562-b3fc-2c963f66afa6

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It clearly indicates this is a read operation ('Retrieve'), but doesn't disclose behavioral aspects like rate limits, authentication requirements, error conditions, or response format. The description adds some context about UUID sourcing but lacks operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The first sentence states purpose and method, the second provides crucial usage guidance. Every word serves a clear function, and the most important information (what the tool does) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with no output schema, the description covers the essential purpose and usage flow well. It could be more complete by mentioning what 'full metadata' includes or the response format, but given the simplicity of the tool and clear sibling relationship, it's largely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds value by explaining the UUID parameter's source ('found in the 'uuid' field of uafm_search results'), providing practical context beyond the schema's format example. However, it doesn't elaborate on UUID validation or error handling.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Retrieve full metadata'), target resource ('a single item in the University of Applied Sciences in Nowy Sącz Repository'), and method ('by its UUID'). It explicitly distinguishes from sibling tool 'uafm_search' by mentioning the UUID source, providing clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: after obtaining a UUID from 'uafm_search' results. It clearly indicates the alternative tool ('uafm_search') for the prerequisite step, creating a clear usage flow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
standard_numberYesDokładny numer normy z wyniku wyszukiwania, np. "PN-EN ISO 9001:2015-10F" (zwykle z sufiksem wersji).
localeNoJęzyk strony referera (sesja z tej samej ścieżki co wyszukiwarka).pl

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it returns raw HTML, requires a session, and doesn't use KV cache. These are important operational details not inferable from the schema alone. It doesn't mention error handling or response structure, keeping it from a perfect score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences that each earn their place: first states the core functionality, second specifies the return format, third discloses session and caching behavior. No wasted words, front-loaded with the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only fetch tool with 100% schema coverage but no output schema, the description provides good context about what it returns (raw HTML) and operational constraints (session required, no cache). It could mention what the HTML contains or typical use cases, but given the tool's straightforward nature, it's mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, so it meets the baseline of 3. The description's mention of 'dokładnym numerze katalogowym' aligns with but doesn't expand on the schema's 'standard_number' description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Pobiera' - fetches/retrieves), the resource ('stronę szczegółów pojedynczej normy na WIEDZA' - details page of a single standard on WIEDZA), and the method ('po dokładnym numerze katalogowym' - by exact catalog number). It distinguishes from sibling 'wiedza_search_norms' which searches rather than fetches a specific item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: when you have an exact catalog number from search results and need the detailed page. It doesn't explicitly state when NOT to use it or name alternatives, but the context is sufficiently clear given the sibling tools available.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoJęzyk strony wyszukiwarki (ścieżka Liferay: pl / en / ru).pl
standard_numberNoNumer normy (np. PN-EN ISO 9001).
titleNoTytuł normy (język polski).
title_englishNoTytuł w języku angielskim.
contentNoFragment treści normy (wyszukiwanie).
icsNoKlasyfikacja ICS.
sectorNoSektor normalizacji.
technical_committeeNoOrgan techniczny (KT, np. PKN/KT 40).
directiveNoNumer dyrektywy (np. 2009/48/EC).
introductionNoNorma wprowadzająca (np. EN ISO 9001).
publish_fromNoData publikacji od (YYYY-MM-DD).
publish_toNoData publikacji do (YYYY-MM-DD).
withdrawal_fromNoData wycofania od (YYYY-MM-DD).
withdrawal_toNoData wycofania do (YYYY-MM-DD).
title_matchNoSposób dopasowania tytułu: words — słowa; phrase — fraza.words
languageNoWersja językowa: ALL — wszystkie; P — polska; E — angielska; D — niemiecka; F — francuska.ALL
statusNoStatus: all; standard-actual — aktualne; standard-withdrawal — wycofane.all
rows_on_pageNoLiczba wierszy na stronie wyników.50

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool requires two requests (session + POST) and doesn't use KV cache, and returns raw HTML. However, it lacks details on authentication needs, rate limits, error handling, or what the HTML structure contains, which are important for a tool with 18 parameters and no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with key information in two sentences: it states the purpose and portal, notes the output format and request requirements, and provides a usage tip. There's minimal waste, though it could be slightly more structured for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (18 parameters, no annotations, no output schema), the description is adequate but has gaps. It covers the basic purpose and some behavioral traits but lacks details on output interpretation, error cases, or integration with sibling tools beyond 'wiedza_get_standard', making it minimally viable but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 18 parameters thoroughly with descriptions and enums. The description adds no additional parameter semantics beyond implying search functionality, meeting the baseline of 3 where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for standards on the WIEDZA portal (wiedza.pkn.pl) and returns raw HTML with a results list. It specifies the verb 'search' and resource 'norms/standards', but doesn't explicitly differentiate from sibling tools like 'pkn_search' or 'wiedza_get_standard' beyond mentioning the latter for follow-up use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning it requires two requests (session + POST) and doesn't use KV cache, and suggests using 'wiedza_get_standard' with exact standard numbers from results. However, it doesn't explicitly state when to use this tool versus alternatives like 'pkn_search' or other search tools in the sibling list, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
author_slugNoAuthor slug, e.g. boleslaw-prus.
epoch_slugNoLiterary epoch slug, e.g. pozytywizm.
genre_slugNoGenre slug, e.g. powiesc.
kind_slugNoLiterary kind slug, e.g. epika, liryka.
parent_onlyNoUse parent_books/ instead of books/ (omit sub-volumes).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: the AND logic of filters, the API endpoint structure, the parent_only option for top-level works, and the performance warning about large JSON returns. It does not mention error handling or pagination, but covers most critical operational aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: it starts with the core purpose, explains API constraints, provides endpoint details, and ends with practical warnings. Every sentence adds value—no redundancy or fluff—and it's appropriately sized for a tool with five parameters and no annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (filtering with AND logic, multiple parameters) and lack of annotations or output schema, the description does well: it covers purpose, usage, behavioral traits, and performance considerations. It doesn't detail the output format or error cases, but provides sufficient context for effective use in most scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds some context: it explains the parent_only parameter's effect ('top-level works only, no sub-volumes') and advises on filter combinations to avoid large responses. However, it doesn't provide additional syntax or format details beyond what the schema offers, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'List books matching combined filters (AND).' It specifies the verb ('List'), resource ('books'), and scope ('matching combined filters'), distinguishing it from sibling tools like 'wolnelektury_get_book' (single book retrieval) and 'wolnelektury_list_taxonomy' (list taxonomy items).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'Requires at least one filter' (prerequisite), 'API does not expose full-text search; this is the supported way to narrow the catalog' (context and alternative method), and 'Filtering only by kind_slug can return a large JSON (~1MB+); prefer adding author or epoch when possible' (performance optimization advice).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesBook slug from /katalog/lektura/{slug}/ or API href, e.g. lalka.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the return format ('Returns JSON: title, authors, epochs, genres, download links...') and hints at data structure ('children volumes, optional fragment preview'), which is valuable. However, it doesn't mention error handling, rate limits, authentication needs, or whether this is a read-only operation, leaving some behavioral aspects unclear for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first clause, followed by return details and usage guidance. Every sentence adds essential information—no wasted words. It efficiently covers purpose, output, and sibling tool relationships in three concise sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, no nested objects) and lack of output schema, the description does a good job of explaining what the tool does, what it returns, and how to use it with siblings. However, without annotations or output schema, it could benefit from more behavioral details (e.g., error cases, read-only nature) to be fully complete, though it's sufficient for basic use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the parameter 'slug' well-documented in the schema. The description adds minimal value beyond the schema by providing examples ('e.g. lalka, pan-tadeusz') and context about slug sources ('from /katalog/lektura/{slug}/ or API href'), but doesn't explain semantics like format constraints or validation rules. With high schema coverage, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch one book') and resource ('from Wolne Lektury'), distinguishing it from siblings like wolnelektury_filter_books (which filters) and wolnelektury_list_taxonomy (which lists categories). It specifies the retrieval mechanism ('by URL slug') and the scope ('one book'), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides when to use this tool ('Fetch one book... by URL slug') and offers clear alternatives for discovering slugs ('via wolnelektury_list_taxonomy and wolnelektury_filter_books or from wolnelektury.pl catalog URLs'). This gives the agent direct guidance on when to use this tool versus its siblings for different tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesCollection slug from API or site URL.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the tool's behavior as a fetch operation that returns metadata and an embedded books list, but lacks details on error handling, rate limits, authentication needs, or response format. This is adequate for a read-only tool but misses some behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero waste: the first states the purpose and output, the second provides usage guidance. It is front-loaded with essential information and efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple tool with one parameter (100% schema coverage), no output schema, and no annotations, the description is reasonably complete. It covers purpose, usage, and parameter context, but could improve by including more behavioral details like error cases or response structure, which are not critical for this low-complexity tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the schema fully documenting the 'slug' parameter. The description adds minimal value by implying the slug comes from 'API or site URL' and referencing 'wolnelektury_list_taxonomy' for obtaining slugs, but doesn't provide additional syntax or format details beyond the schema's description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Fetch') and resource ('one thematic collection by slug') with explicit scope ('metadata + embedded books list'). It distinguishes from sibling tools by mentioning 'wolnelektury_list_taxonomy' for listing collections, avoiding redundancy with other WolneLektury tools like 'wolnelektury_get_book' or 'wolnelektury_filter_books'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides when to use this tool ('Fetch one thematic collection by slug') and when to use an alternative ('Use wolnelektury_list_taxonomy with kind=collections to list collection slugs and titles'), offering clear guidance on tool selection and prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesWhich taxonomy endpoint to list.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and adds valuable behavioral context: it discloses caching behavior ('Responses are cached 24h') and performance characteristics ('themes/collections are ~100KB'). While it doesn't mention error handling or authentication needs, it provides more than basic operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Perfectly front-loaded with the core purpose in the first clause, followed by usage guidance and behavioral notes. Every sentence earns its place: the first establishes purpose, the second provides usage context, and the third adds important operational details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with no output schema, the description provides excellent context: purpose, usage with siblings, caching, and data size warnings. The only minor gap is lack of output format details (though structure is implied by 'names, slugs, hrefs'), but overall it's highly complete for its complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a well-documented enum parameter. The description adds minimal value beyond the schema by listing the same enum values in parentheses, but doesn't provide additional semantic context about what each taxonomy category represents or when to choose one over another.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('reference data for discovery') with specific categories (authors, epochs, genres, kinds, themes, collections). It distinguishes from siblings by mentioning specific tools (wolnelektury_filter_books, wolnelektury_get_book, wolnelektury_get_collection) that use its output, establishing its role as a metadata provider rather than a book/collection fetcher.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('List reference data for discovery') and provides clear alternatives ('Use slugs with wolnelektury_filter_books or wolnelektury_get_book / wolnelektury_get_collection'), giving direct guidance on how outputs should be utilized with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
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

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    F
    maintenance
    Enables real-time search and retrieval of academic paper information from multiple sources, providing access to paper metadata, abstracts, and full-text content when available, with structured data responses for integration with AI models that support tool/function calling.
    3
    118
    AGPL 3.0
  • 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
    19
    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
    A
    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.

Latest Blog Posts

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