MCP server for HAiServ — exposes iServ timetable and parent-letter data as MCP tools
HAiServ exposes 4 read-only tools with clear verb-noun naming (get_*). All tools have descriptions (avg 156 chars, within 10-1024 baseline). Input schemas are present with type definitions and parameter descriptions. However, output schemas are undocumented, responses are free-form Markdown strings with no structured field definitions. Error handling is minimal: tools return plain-text messages for invalid inputs rather than actionable recovery guidance. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. Parameter validation is basic (enum-like checks for 'week' and 'day') but lacks explicit constraints in schema. The server lacks pagination support for list-like tools (get_parentletters could return many items). Overall: solid naming and descriptions, but missing output documentation, error guidance, and structured responses.
Return the complete timetable for the requested week as a Markdown table.
Fetch and return the full text of a single Elternbrief (parent letter) by its UUID pair.
Return an overview of all Elternbrief (parent letters) from iServ. Lists every available parent letter with its index, read status, date, sender, child name, and subject. Use get_parentletter_detail to fetch the full text of a specific letter.
Return the timetable filtered to a single weekday as a Markdown table.
Output schemas undocumented. All tools return free-form Markdown strings with no structured field definitions. LLMs cannot plan downstream operations or extract specific data reliably.
No pagination support. get_parentletters returns all letters without limit or offset parameters. Large result sets will exhaust context window and degrade LLM reasoning.
Error handling lacks recovery guidance. Invalid inputs return plain-text messages ('Invalid week value...') rather than actionable next steps. LLM cannot self-correct efficiently.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
No tool annotations. All tools are read-only and idempotent, but lack readOnlyHint and idempotentHint annotations. Agents cannot infer safety properties without explicit hints.
Parameter constraints not formalized in schema. 'week' accepts 'current'|'next' and 'day' accepts weekday names, but these are validated in code, not declared as enums in the JSON Schema. LLMs may hallucinate invalid values.