An MCP server to interact with Google Calendar
Four tools with complete schemas and descriptions, but quality is uneven. Naming follows verb_noun convention (list_, create_, delete_, update_). Descriptions are present but generic, most lack context on WHEN to use the tool or what happens on failure. Parameters are typed and mostly described, but lack constraints (enums, ranges, patterns). Output schemas are not documented. Error handling is absent from visible code. The server delegates to a services module, so actual error behavior is opaque.
Creates a calendar event using the provided details.
Deletes an event from the calender.
Retrieve a list of calendar events based on specified filters. This function queries the calendar for events that match the given criteria. All filter parameters are optional and can be used in combination to narrow down the results.
Updates an event by replacing specified fields with new values. Any fields not included in the request will retain their existing values.
delete_event description is only 33 characters ('Deletes an event from the calender.'), below 20-char floor for actionable guidance. LLM cannot determine consequences or recovery steps.
No output schemas documented for any tool. Callers cannot predict response structure, forcing LLMs to guess field names and types. Breaks tool chaining.
timeMin/timeMax descriptions state 'ISO 8601 formatted lower/upper time bound (exclusive)' but then contradict: 'lower time bound (exclusive) for filtering events by end time' is confusing. Clarify: does timeMin filter by start or end?
No error handling guidance visible. If create_event fails (invalid timezone, overlapping event, auth failure), LLM has no recovery path. Descriptions do not mention prerequisites (e.g., 'requires valid Google Calendar credentials').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | <=2025-11-25 | v2 |
timeZone parameter in create_event and update_event lacks validation guidance. Description says 'IANA Time Zone Database name' but does not specify format, examples, or what happens if invalid. LLM may pass 'UTC+5' instead of 'Asia/Karachi'.