MCP server for Google Calendar integration, allowing creation and listing of calendar events
Single tool with reasonable parameter schema and description, but lacks critical production details. The tool name 'create_calendar_event' follows verb-noun convention well. Description is adequate (183 chars) but doesn't explain error cases, state consequences, or prerequisites. Parameter schema is present with type definitions (string) and individual descriptions, but missing important constraints like date/time format validation guidance, required field status clarity, and what constitutes success/failure return states. Output documentation is vague ('Event details dictionary if successful, else None'), doesn't specify the actual structure of the returned dictionary. No error handling guidance for common failure modes (invalid time ranges, busy conflicts, auth failures). The tool modifies state (WRITE risk) but lacks confirmation or dry-run pattern. Composite prompt and resource handlers are present but those are not tools per the scoring framework.
Tool to create an event in Google Calendar. Parameters: - summary: Event title - date: Date in 'YYYY-MM-DD' format - start_time: Start time in 'HH:MM' 24-hour format - end_time: End time in 'HH:MM' 24-hour format - description: Optional description Returns: - Event details dictionary if successful, else None
Output schema not documented. Description states 'Event details dictionary if successful, else None' but does not specify the actual structure (field names, types, nested objects). LLMs cannot plan downstream tool calls without knowing what fields are returned.
No error handling guidance. The tool can fail in multiple ways (invalid date format, time range conflicts, auth failure, calendar API errors) but the description does not explain what LLM should do if a call fails. No recovery hints provided.
State-modifying tool (WRITE) lacks confirmation or dry-run option. Agents can accidentally create duplicate events or events at wrong times. No warning that this operation is irreversible without deletion.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | 2025-06-18+ | v2 |
| 2026-03-09 | D | 52 | - | v1 |
Parameter descriptions lack format validation rules. 'date' is described as 'YYYY-MM-DD format' but the description does not say whether past dates are allowed, what happens with invalid input, or whether timezone is assumed. 'start_time' and 'end_time' do not explain what happens if start_time >= end_time.
Required vs optional parameters not clearly marked in schema. 'description' defaults to empty string, so it is optional, but the JSON schema does not use 'required' array to make this explicit. This forces LLMs to infer optionality from default values.
No guidance on tool selection. Description does not explain when to use this vs manual calendar entry, or what dependencies exist (e.g., Google Calendar auth must be configured, calendar must be accessible). Agents lack context for deciding whether to call this tool.