MCP server for Krajowa Izba Odwolawcza (KIO) rulings from orzeczenia.uzp.gov.pl
Server demonstrates solid tool design with clear naming (verb_noun pattern), comprehensive parameter descriptions, and structured error handling via KIOError codes. All 6 tools have descriptions and input schemas with type definitions. However, output schemas are not explicitly documented in the visible code, and some parameter descriptions lack format constraints (e.g., date_from/date_to format hints, pzp_article format examples). Tool composition is clean, each tool has a single responsibility. The INSTRUCTIONS section is exceptionally detailed and guides LLM behavior well, but this is procedural guidance rather than schema documentation. Parameter validation rules are documented in INSTRUCTIONS but not in schema descriptions themselves, which reduces discoverability.
Skrot szukania po artykule PZP (np. 'art. 226 ust. 1 pkt 5'). Filtr server-side UZP wymaga formatu art. {nr} ust. {n} pkt {n}; przy zerowym wyniku tool automatycznie schodzi do wyszukiwania frazowego.
Declares coverage of this connector: what data families it exposes, how they are sourced, and what known gaps exist.
Pobiera pelne orzeczenie KIO po sygnaturze lub internal_id
URL do PDF orzeczenia. NIE pobiera bytes (zbyt ciezkie dla MCP). Zwraca pdf_url + signature + internal_id + issue_date.
Najnowsze orzeczenia z ostatnich `days` dni (default 30, max 100 wynikow). Sortowane malejaco po dacie po stronie UZP.
Wyszukuje orzeczenia KIO w bazie o
Output schemas not documented in visible code. Tools return structured responses (OrzeczenieSummary, PdfUrlResponse, SearchResult) but LLMs cannot see field definitions, types, or required fields. This forces LLMs to infer output structure and risks misuse of returned data.
Date parameters (date_from, date_to) lack format constraints in schema descriptions. Description says 'YYYY-MM-DD' in text but schema has no pattern or format field. LLMs may pass invalid formats (e.g., '2024/01/15' or '15-01-2024').
kio_coverage tool has minimal description ('Declares coverage...') and empty input schema. No documentation of what fields it returns or when to call it. Reduces discoverability.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2025-06-18+ | v2 |
Parameter 'sort' in kio_search accepts enum values (rank, date_asc, date_desc) but schema does not declare enum constraint, only description text lists options. LLMs may hallucinate invalid sort values.
Error handling is well-structured (KIOError codes documented in INSTRUCTIONS) but error responses are not shown in visible code. Cannot verify that tool implementations return actionable recovery guidance as specified in the rubric.