MCP server that exposes library room booking functionality as tools, allowing users to check available rooms, view reservations, and book room slots
Four tools with basic schemas and descriptions, but significant gaps in parameter documentation and error guidance. Tool names follow verb_noun convention (check_*, reserve_*), which is good. However, descriptions are minimal (10-50 chars), parameter descriptions are missing or vague, and output schemas are undocumented. The reserve_slot tool has TODOs indicating incomplete validation logic. Error handling returns generic strings rather than structured, actionable guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk differences.
Check available rooms for all available days.
Check available rooms for a specific day.
Check reserved slots for the user.
Reserve a room slot for specific date and time.
Parameter descriptions missing or incomplete. 'day' param lacks format detail; 'start_time' and 'end_time' use non-standard 'HH.MM' format (should be 'HH:MM') with no validation guidance. LLMs cannot infer constraints from names alone.
Output schemas undocumented. Tools return formatted strings, but LLMs need to know the structure (fields, types, pagination). No documentation of what fields are in the response or how to chain results to downstream tools.
Error handling returns generic strings without recovery guidance. Errors like 'Invalid date' or 'LOGIN_FAILED' lack actionable next steps. LLMs cannot determine if errors are retryable, user-fixable, or fatal.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | <=2025-11-25 | v2 |
Tool descriptions too brief (10-50 chars). 'Check available rooms for a specific day' lacks context on when to use this vs check_all_available_rooms, what data is returned, or prerequisites (login required?).
reserve_slot has unfinished validation (TODO comments). room_id validation missing; start_time/end_time format validation incomplete. Agents will pass invalid values without clear error feedback.