Local MCP server for Polish NFZ waiting lists and medical service search.
Three well-named, verb-prefixed tools (search_queues, search_benefits, list_provinces) with clear, detailed descriptions (150 - 250 chars each). All tools have complete JSON Schema input definitions with typed properties and descriptions. Parameters are well-constrained (enums for case, regex validation for province, limits enforced). Output is simplified and structured (JSON). However, output schemas are not formally documented in the tool definitions, LLMs must infer structure from descriptions. Error handling is present but minimal (ValueError exceptions without recovery guidance). No tool annotations (readOnlyHint, idempotentHint). Missing documentation of pagination behavior and response field mappings.
Return the mapping of 2-digit province codes to voivodeship names used by NFZ.
Search the NFZ benefit dictionary — the official service names that `search_queues` accepts. Use this to discover the exact wording before searching queues.
Search NFZ waiting lists (kolejki) for a medical service in a province. Returns the first-available date and average wait time reported by each provider. `benefit` is a partial (case-insensitive) match on the official service name — use `search_benefits` first if unsure. `case`: 1 = stabilny (routine), 2 = pilny (urgent).
Output schemas not formally documented. Tool descriptions mention JSON structure but do not declare return types in a machine-readable format. LLMs must infer field names and types from description text alone.
Error handling lacks recovery guidance. Validation errors (e.g., invalid province code) raise ValueError with a message but do not suggest next steps (e.g., 'Call list_provinces to see valid codes'). Errors should guide the LLM toward recovery.
No tool annotations. Tools lack readOnlyHint, idempotentHint, or destructiveHint. All three tools are read-only and idempotent, but this is not declared in the tool definition, forcing LLMs to infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Pagination not documented. search_queues and search_benefits accept 'limit' and 'page' parameters but do not document total count, next_cursor, or whether results are truncated. Agents cannot reliably iterate through large result sets.
list_provinces description is generic. 'Return the mapping of 2-digit province codes to voivodeship names used by NFZ' does not explain when to call it (e.g., 'Call this first to discover valid province codes for search_queues'). Discovery tools should guide multi-step planning.