MCP Server for Google API Integration enabling Claude Desktop to interact with Gmail and Google Calendar
Server has 7 tools with basic schemas and descriptions, but significant gaps limit production readiness. Tool naming is mostly clear (get_*, search_*, send_*, create_*), but descriptions are generic and lack LLM-optimization guidance. Parameter descriptions exist but are minimal (10-30 chars). Critical issues: no output schemas documented, no error handling guidance, no pagination support despite max_results params, and duplicate/overlapping tools (get_latest_emails vs get_recent_emails both do the same thing). Security concern: credentials handled via file I/O rather than environment injection. No tool annotations (readOnlyHint, destructiveHint). Schemas present but sparse, missing constraints, enums, and validation rules.
Create a new event in Google Calendar.
Get upcoming calendar events from Google Calendar.
Get the full content of a specific email by ID.
Get the latest emails from Gmail inbox.
Get recent emails from Gmail.
Search for emails in Gmail using a query string.
Send an email through Gmail.
Duplicate tools with identical functionality: get_latest_emails and get_recent_emails both retrieve recent emails with same parameters. LLM cannot disambiguate; consolidate into single tool.
No output schemas documented. Tool descriptions state what they do but never specify return structure. LLMs cannot plan downstream calls or extract fields without knowing response shape.
No error handling guidance. Tools lack recovery hints (e.g., 'If auth fails, check credentials.json exists'). Errors will be raw API responses with no actionable next steps for LLM.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
No pagination support despite max_results params. Tools accept max_results (1-10) but provide no offset/cursor or total_count. Large result sets will be truncated silently.
No tool annotations. send_email and create_calendar_event are destructive/write operations but lack destructiveHint annotation. get_* tools lack readOnlyHint. Agents cannot infer safety properties.