MCP server for Google Calendar integration providing calendar and event management capabilities
Server has 4 tools with basic verb-noun naming (list_*, create_*, delete_*). All tools have descriptions (10-50 chars), but most are too brief to guide LLM selection effectively. Input schemas are present with type definitions and parameter descriptions, but lack critical constraints (enums, ranges, validation rules). Output schemas are undocumented, LLMs cannot predict return structure. Error handling is absent; no recovery guidance or actionable error messages. create_event and delete_event lack required parameter validation and confirmation patterns for destructive operations. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels.
Create a new event in the specified calendar.
Delete an event from the specified calendar.
List all calendars the user has access to.
List the next events from the specified calendar.
No output schemas documented. LLMs cannot predict return structure (list vs dict, field names, nested objects). Forces agents to guess and parse unstructured responses.
Destructive tool (delete_event) lacks confirmation pattern and error handling. No dry-run, no recovery guidance. Agents can delete events without safeguards.
Tool descriptions too brief (40-55 chars). Do not explain WHEN to use each tool, dependencies, or prerequisites. 'List the next events' omits timezone handling, filtering logic, and pagination behavior.
create_event requires start_time and end_time as ISO strings with no validation, format hints, or error recovery. LLMs frequently miscalculate ISO 8601 dates. No timezone parameter despite UTC hardcoding.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Clients cannot distinguish safe reads from destructive writes. delete_event should be marked destructive; list_* should be marked read-only.