MCP server implementation for Google Calendar integration
Single tool implementation with clear naming (create_event) and complete input schema. Tool description is concise and action-oriented (49 chars). Input schema is fully specified with proper JSON Schema structure including all nested object definitions. However, lacks output schema documentation and parameter descriptions are minimal (10-20 chars each), below the baseline of 72 chars. No error handling guidance, no recovery paths, and no mention of prerequisites or side effects. Tool validates required params (summary, start_time, end_time) but provides no actionable error messages to guide LLM recovery.
Create a calendar event with specified details
Output schema not documented. LLMs cannot infer what create_event returns (HTML link, event ID, confirmation message structure). This blocks downstream tool composition and context planning.
Parameter descriptions are generic and under 20 characters. E.g., 'Event title', 'Start time (ISO format)'. Missing guidance on what formats are accepted, timezone handling, and constraints. LLMs cannot validate input before calling.
No error recovery guidance in tool description. If Google Calendar API fails (auth error, invalid time format, quota exceeded), error handler returns raw exception message with no guidance. LLM cannot determine: is this retryable? Should I ask the user? Missing classification and recovery suggestions.
No mention of destructive/idempotent nature in tool definition. create_event modifies state (writes to Google Calendar). Tool annotation missing, LLMs cannot determine if retry is safe or if it risks duplicate events. No idempotency guarantees documented.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 53 | - | v1 |
Timezone hardcoded to 'Asia/Seoul' in implementation but not surfaced to LLM. Users in other timezones will have events created in wrong time. Should either accept timezone parameter or document the constraint in tool description.
Google credentials (CLIENT_ID, CLIENT_SECRET, REFRESH_TOKEN) correctly injected via environment variables, good. However, if REFRESH_TOKEN is missing, tool still accepts calls and silently fails. Error message says 'public/limited API calls may work' but then createCalendarEvent will fail at runtime. Should either block the tool or return clearer guidance.