Comprehensive MCP server for Google Workspace integration - 90+ tools across Gmail, Drive, Docs, Sheets, Slides, Calendar, Forms, Chat, Photos, and Contacts with Code Mode tool discovery and OAuth 2.1 + PKCE authentication
The server demonstrates moderate definition quality with clear tool naming conventions and documented input schemas. However, significant gaps exist: tool descriptions lack LLM-optimization guidance (50-200 char baseline), parameter descriptions are generic and lack actionable constraints, output schemas are not documented, and error handling strategies are absent. The three tools follow verb_noun naming (search_, get_, manage_) which is positive. However, the manage_drive_files tool violates single-responsibility principle by combining move, copy, rename, and delete operations. Parameter descriptions are present but minimal, they state WHAT parameters do but lack guidance on when to use them, valid value ranges (e.g., page_size default and bounds), and how to format inputs. Search_docs and get_doc_content lack pagination information despite potentially returning large result sets. No output schema documentation is visible in the provided source. Error handling is not specified, LLMs have no recovery guidance if a search fails or a document is inaccessible.
Retrieves content of a Google Doc or a Drive file (like .docx) identified by document_id. Native Google Docs: Fetches content via Docs API. Office files (.docx, etc.) stored in Drive: Downloads via Drive API and extracts text.
Unified tool for Google Drive file management: move, copy, rename, or delete files
Searches for Google Docs by name using Drive API (mimeType filter).
manage_drive_files combines four distinct operations (move, copy, rename, delete) into one tool, violating single-responsibility principle. LLMs must reason about enum values and conditional parameter applicability.
No output schemas documented. LLMs cannot infer return structure (e.g., what fields does search_docs return? Is it an array of document objects with id, name, mimeType?). This breaks composition and forces agents to guess.
Parameter descriptions lack actionable constraints. 'page_size: Maximum number of results' doesn't state default (10) or bounds (valid range?). 'user_google_email' doesn't specify format (alice@example.com?) or how to resolve from display names.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 58 | - | v1 |
search_docs lacks pagination guidance. If results exceed page_size, is there a next_cursor, offset, or total_count? Large result sets need pagination to avoid context explosion.
No error handling or recovery guidance. Tool descriptions don't explain what happens on failure (user not found, doc inaccessible, permission denied) or how agents should respond.
manage_drive_files has conditional parameter logic that is under-documented. 'target_folder_id is required for move' is stated but 'rename requires new_name' and 'delete accepts permanent flag' are not clearly separated per operation in descriptions.
Tool descriptions are 50-169 chars, below the LLM-optimization baseline of 50-200 chars with rich context. They state WHAT but lack WHEN and WHY, agents cannot select between similar tools confidently.