MCP server for Google Workspace services including Calendar, Gmail, Docs, Sheets, and Slides
This server has mixed quality across its 6 tools. Naming is mostly correct (verb_noun pattern) and descriptions are present for all tools. However, schemas show significant inconsistencies: some tools have detailed input schemas (create_calendar_event, send_email) while others are minimal (get_mcp_configuration, list_calendars with empty property objects). Output schemas are not documented anywhere in the provided code. Error handling is absent, no guidance on what to do if an event creation fails, if a user is not found, or how to recover from API errors. Parameter descriptions are adequate but some lack constraints (e.g., 'timezone' accepts any string with no enum or validation hint). The server accepts human-friendly identifiers (calendar_id defaults to 'primary', attendees as email addresses) which is good, but lacks pagination/limit documentation for list_calendar_events despite claiming max_results=10 default. The metadata field in create_calendar_event is well-structured but underutilized.
Create a new event in Google Calendar
Show current MCP configuration and enabled services
List calendar events with optional filtering
List all available calendars
Search for emails in Gmail
Send email messages via Gmail API - ALWAYS use this tool when user explicitly asks to send, compose, email, or mail something to someone
Output schemas completely undocumented. No tool describes what fields it returns, their types, or structure. This forces LLMs to guess what data is available and breaks downstream tool chaining (e.g., create_calendar_event may return an event_id, but this is never stated).
Minimal input schemas for discovery tools (get_mcp_configuration, list_calendars). Both show empty 'properties' objects. While technically valid for parameterless tools, this is below production quality, there is no textual schema documentation either.
No error handling guidance. Descriptions do not explain what happens if an event overlaps with a holiday (force_holiday_booking flag exists but no error description), if an attendee email is invalid, or if the user lacks calendar write permission. LLMs have no recovery path.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Timezone parameter accepts free-form strings with no enum or validation. Description says 'e.g., America/Toronto' which is an example, LLMs may hallucinate invalid timezones like 'America/Fake' without an enum constraint.
list_calendar_events lacks pagination details. It accepts max_results (default 10) but does not document whether results are truncated, if there is a next_cursor field, or how to fetch subsequent pages. Large result sets could blow the context window.
search_emails query parameter is free-form with minimal guidance. Description says 'Gmail search query (e.g., from:john@example.com subject:meeting)' but does not explain Gmail query syntax or valid operators. LLMs must infer from the example.