Google Workspace MCP Server - provides access to Gmail, Google Calendar, Google Drive, Google Docs, Google Sheets, Google Slides, and Google Chat through the Model Context Protocol
Server has 14 well-defined tools with explicit registration, clear descriptions, and Zod schemas. However, several tools lack complete parameter documentation, some descriptions are generic, and error handling is minimal. Output schemas are not documented. The server demonstrates solid baseline quality but falls short of production-grade patterns in parameter validation, error recovery, and response shaping.
Clears the authentication credentials, forcing a re-login on the next request.
Manually triggers the token refresh process.
Appends text to the end of a Google Doc.
Creates a new Google Doc. Can be blank or with Markdown content.
Extracts the document ID from a Google Workspace URL.
Finds Google Docs by searching for a query in their title. Supports pagination.
No output schemas documented for any tool. LLMs cannot predict response structure, forcing them to reason about downstream field mappings and risking extraction errors.
Error handling minimal, no guidance for recovery. Tools do not return actionable errors (e.g., 'Document not found. Try docs.find() first' vs bare 404). Agents cannot self-correct.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 32 | - | v1 |
Retrieves the text content of a Google Doc.
Inserts text at the beginning of a Google Doc.
Moves a document to a specified folder.
Replaces all occurrences of a given text with new text in a Google Doc.
Creates a new folder in Google Drive.
Finds a folder by name in Google Drive.
Retrieves values from a Google Sheet.
Retrieves the text content of a Google Slides presentation.
Three tools use generic verbs that don't clearly distinguish single vs. multiple results: 'find' (docs.find, drive.findFolder) vs. 'search'. LLM may confuse which tool returns paginated results and which returns a single match.
docs.find and sheets.getValues lack result limits. Returning 10K documents or sheet rows exhausts context window and degrades LLM reasoning. No enforcement visible in code.
Parameter descriptions sometimes ambiguous: 'presentationId' in slides.getText says 'ID or URL' but doesn't specify which URL format, risking format mismatches. 'range' in sheets.getValues has example but no validation rules stated.
Several descriptions are under 80 characters, providing minimal LLM context for tool selection. Examples: drive.findFolder (36 chars), slides.getText (52 chars), sheets.getValues (53 chars). Baseline is 194 chars; these omit prerequisites, when-to-use guidance, and dependencies.
No pagination response structure documented (pageToken, nextCursor). docs.find accepts pageToken parameter but no spec on how to use returned token or what happens at last page.
No idempotence guarantees stated for write operations. If an agent retries docs.insertText due to a network failure, will the text be inserted twice? No specification prevents duplicate side effects.