Model Context Protocol server providing access to Google Workspace services including Gmail, Calendar, Sheets, Docs, Drive, and Contacts
Google Workspace MCP server has 10 well-structured tools with complete input schemas and descriptions. Naming is verb-noun consistent (calendar_event_*, contacts_*). Descriptions are present and moderately detailed (50-100 chars typical). However, output schemas are not documented in the provided code, which is a significant gap for production use. All tools have proper parameter typing and descriptions. Error handling patterns are not visible in the code samples provided. No tool annotations (readOnlyHint/destructiveHint/idempotentHint) are declared despite clear risk categorization being documented in this evaluation. The server demonstrates good baseline quality but lacks the polish of A-grade tools.
Create a calendar event
Delete a calendar event
Get calendar event details
List upcoming calendar events
Update a calendar event
Create a new contact
Get a specific contact by resource name
Output schemas not documented in code. LLMs cannot infer what fields are returned, breaking downstream tool composition and forcing guesswork. Every tool should document return type structure (fields, types, presence guarantees).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) declared despite clear risk categorization (READ_ONLY, WRITE, DESTRUCTIVE). These annotations help LLMs reason about safety and composition. Add tool annotations aligned with declared risk levels.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 42 | - | v1 |
List contacts from Google Contacts
Search contacts by name, email, or other fields
Update an existing contact
Error handling and recovery guidance not visible in code samples. Tools should return structured error responses with actionable next steps (retry, ask user, call alternative tool). E.g., 'Event not found (404). Try calendar_event_list() to find available events.'
Tool descriptions are 50-100 chars; good baseline but could be more precise about WHEN to use each tool and what distinguishes it from similar tools. E.g., calendar_event_list description should explain: 'Fetch upcoming events. Use time_min/time_max to filter by date range, query to search by title/description.' Current: 'List upcoming calendar events'.
No pagination guidance in calendar_event_list description. The max_results parameter exists but description doesn't explain behavior if result set is larger, or whether there's a next-page cursor. For contacts_list, page_token is documented but calendar tools lack pagination metadata.
contacts_search max_results capped at 30, contacts_list at 1000, but calendar_event_list has no documented limit. Unbounded result sets risk context window exhaustion. Document realistic limits based on API and explicitly cap in descriptions.