MCP server for the Scheduling Agent, exposing meeting scheduling and slot retrieval tools. Part of an A2A (Agent-to-Agent) multi-agent system with support for MongoDB-backed scheduling, memory management, and LangGraph-based agent orchestration.
Four tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. Tool names follow verb_noun convention (schedule_meeting, get_free_slots, get_booked_slots, get_knowledge). Descriptions exist but are brief (34-72 chars, below the 194-char baseline). Input schemas present with type declarations, but parameter descriptions are minimal or missing context. No output schemas documented. No error handling guidance. No tool annotations (readOnlyHint/destructiveHint). Missing idempotency and recovery patterns.
Retrieves all booked meeting slots within a specified date range.
Retrieves all free (unbooked) meeting slots within a specified date range.
Retrieve knowledge from the support agent.
Schedules a new meeting. Checks for existing unbooked exact slots first. Then checks for overlaps with any booked meetings. If no conflicts, creates and books a new meeting slot.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., meeting_id, slot_id, knowledge_content). Baseline: 100% of A+ tools document return types.
Parameter descriptions are minimal or missing context. 'query' in get_knowledge lacks guidance on format, scope, or examples. 'start_date' and 'end_date' lack timezone or format clarification beyond 'date-time'. Baseline: 100% of A+ tools have param descriptions.
No error handling guidance. If schedule_meeting fails due to overlap, the LLM receives no recovery hint (e.g., 'Call get_free_slots to find available times'). No categorization of retryable vs. fatal errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
No tool annotations. schedule_meeting (WRITE) lacks destructiveHint. get_free_slots and get_booked_slots (READ_ONLY) lack readOnlyHint. Agents cannot infer safety or retry semantics.
schedule_meeting description does not explicitly state it modifies state (creates/books a meeting). Agents need to know which calls are irreversible. Baseline: state-modifying tools must declare this.