MCP server - Polish tax interpretations (KIS/MF) via EUREKA (eureka.mf.gov.pl)
Four tools with complete schemas and descriptions, but descriptions are generic and lack LLM-optimized guidance. All tools are read-only search/retrieval operations. Naming is clear (verb_noun pattern). Schemas are well-formed with proper types and constraints. However, descriptions lack actionable context (when to use, what to do next, dependencies). Parameter descriptions are present but minimal. No error recovery guidance. Output schemas not documented. Missing tool annotations (readOnlyHint present in metadata but not in schema).
Retrieve full interpretation document by ID_INFORMACJI
List all interpretation categories (dictionary: id -> name) for use in category_ids filter
Search Polish tax interpretations with phrase and filters (signature, category, date range)
Search for interpretation by exact signature (e.g. 0112-KDIL3.4012.367.2026.2.AK)
Tool descriptions lack LLM-optimized guidance. Descriptions are 30-60 chars, below the 50-200 char baseline for A+ tools. Missing context: when to use each tool, what to do with results, dependencies between tools (e.g., 'Call list_categories first to get valid category_ids for search filter').
Output schemas not documented. LLMs cannot plan downstream operations or extract required fields. search() returns EurekaSearchResult[] with fields like ID_INFORMACJI, KATEGORIA_INFORMACJI, SYG, DT_WYD, TEZA, STATUS_INFORMACJI, but this structure is not visible in tool definition, only in internal code comments.
No error recovery guidance. Tools can fail (HTTP 500 on malformed requests, timeout after 40s, invalid JSON). Error responses do not guide LLM on retry strategy, user-fixable issues, or alternatives. E.g., 'Invalid signature format' should suggest 'Use search() with query parameter instead.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2025-06-18+ | v2 |
Parameter descriptions are minimal (5-20 chars). 'Search phrase', 'Interpretation ID', 'Interpretation signature' lack format guidance. E.g., signature description should state format: '11-char signature (e.g., 0112-KDIL3.4012.367.2026.2.AK)' to prevent LLM hallucination of invalid formats.
Tool annotations missing from schema. Risk metadata (READ_ONLY) is in server metadata but not in tool schema as readOnlyHint. This prevents clients from rendering UI hints or enforcing safety policies.