MCP server providing access to Google Workspace APIs including Gmail, Calendar, Drive, Docs, Sheets, Slides, and Tasks
25 tools with basic schemas and descriptions, but significant quality gaps. All tools have descriptions (10-50 chars, mostly generic), and input schemas are present with type definitions. However, descriptions lack LLM-optimized guidance on WHEN to use each tool, dependencies between tools, and error recovery paths. Many parameters lack constraints (enums, ranges). Output schemas are not documented. No tool annotations (readOnlyHint/destructiveHint). Composition issues: manage_events, manage_slides, manage_tasks use action enums that should be separate tools. Parameter naming inconsistencies (e.g., 'account' optional everywhere but never explained). No pagination guidance despite list tools. Error handling absent from visible code.
Add a comment to a Google Doc
Add content to slides
Check calendar availability for a time period
Compose, draft, or send emails
Create a folder in Google Drive
Create a new Google Doc
Edit content in a Google Doc
Get details about a Google Drive file
Action-enum anti-pattern: manage_events, manage_calendars, manage_slides, manage_spreadsheet, manage_tasks, manage_gmail_labels all use 'action' parameter with string enum. Should split into separate tools (create_event, update_event, delete_event, etc.) per pattern:tool single-responsibility principle.
Descriptions are generic and lack LLM-optimized guidance. Most are 30-50 chars (e.g., 'Manage Gmail labels and message labels'). Missing: WHEN to use, dependencies, error recovery, and constraints. Baseline for A+ tools is 50-200 chars with actionable context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Get presentation and slide data
Get spreadsheet data and metadata
List files in Google Drive
List, create, and manage calendars
Create, list, and manage calendar events
Manage Gmail labels and message labels
Create and manage presentations and slides
Create and manage spreadsheets
List and create task lists
Create, list, and manage tasks
Update, append, or clear sheet values
Read a Gmail message
Read content from a Google Doc
Search for files in Google Drive
Search Gmail messages
Share a Google Drive file with others
Upload a file to Google Drive
No output schemas documented. Tools return data but LLMs cannot plan downstream calls without knowing response structure. E.g., search_gmail_messages returns what fields? Does it include message_id for read_gmail_message? Missing: documented return types for all 25 tools.
No parameter constraints (enums, ranges, patterns). E.g., 'role' in share_drive_file accepts 'reader|commenter|writer' but no enum defined. 'max_results' unbounded. LLMs will hallucinate invalid values. Missing: JSON Schema enums, minLength, maxLength, pattern, minimum, maximum.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes. E.g., delete_event should be marked destructiveHint=true; read_gmail_message should be readOnlyHint=true. Missing: tool annotation metadata in all 25 tool definitions.