An MCP server for managing meeting room availability and bookings with support for both STDIO and SSE transports
Both tools have minimal descriptions (10-20 chars, well below the 50-200 char baseline for LLM-optimized tools). Schemas are present with proper JSON Schema structure and typed parameters, but descriptions are generic and lack actionable context. No error handling guidance, no parameter constraints (enums), and no output schema documentation. Tool names follow verb_noun convention (list_, book_) but descriptions do not explain WHEN to use each tool or what happens on failure. Parameters lack detail beyond Chinese labels. No indication of idempotency, side effects, or recovery paths.
book meeting room
list idle meeting rooms
Descriptions are too short (10-20 chars) and lack actionable context. 'list idle meeting rooms' does not explain when to call it, what it returns, or how to use results. Baseline is 50-200 chars with WHAT/WHEN/WHY.
No output schema documented. Callers cannot know what fields to expect from list_idle_meeting_rooms (returns list of strings?) or book_meeting_room (success/failure format?). LLMs must guess structure.
No error handling guidance. book_meeting_room randomly fails (50% failure rate) but returns unstructured text. No indication of retryability, user-fixable vs fatal errors, or recovery steps.
Parameter descriptions are in Chinese only ('开始时间', '结束时间', '会议室ID'). No format constraints (e.g., ISO 8601 for times, room ID format). LLMs cannot infer valid input format.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | <=2025-11-25 | v2 |
No idempotency or side-effect declaration. book_meeting_room modifies state (reserves a room) but description does not warn that retries may double-book. No confirmation or dry-run pattern.