Comprehensive, highly performant Google Workspace Streamable HTTP & SSE MCP Server for Calendar, Gmail, Docs, Sheets, Slides & Drive
The server presents 6 tools spanning Google Workspace APIs (Apps Script, Chat). Tool definitions are present with names, descriptions, and input schemas visible. However, several quality gaps exist: (1) Parameter descriptions are generic and lack constraint details (e.g., 'page_size' has a default but no min/max bounds stated in description); (2) Output schemas are not documented in the tool definitions themselves, the rubric requires visible output schema documentation; (3) Descriptions are present but relatively terse (avg ~80 chars, below the 194-char production baseline) and lack WHEN/WHY context for tool selection; (4) Security risk classifications are present (READ_ONLY, WRITE) but not integrated into descriptions; (5) The 'service' and 'chat_service' parameters with type 'object' suggest server-side injection (good), but this pattern is not explicitly documented in parameter descriptions. Per-tool analysis reveals consistent patterns: all 6 tools have naming quality (verb_noun structure), descriptions (but underdeveloped), and input schemas (but incomplete constraint documentation). Tools 1-5 are READ_ONLY read operations; tool 6 (send_message) is WRITE and critical for safety. Error handling and recovery guidance are not visible in tool definitions.
Retrieves messages from a Google Chat space.
Retrieves the source code content of a specific file in an Apps Script project.
Retrieves complete project details including all source files.
Lists Google Apps Script projects accessible to the user. Uses Drive API to find Apps Script files.
Lists Google Chat spaces (rooms and direct messages) accessible to the user.
Sends a message to a Google Chat space, or edits a message already sent there.
Output schemas not documented in tool definitions. Rubric requires 'Document the output schema. LLMs need to know what fields to expect.' None of the 6 tools expose return type documentation or response field definitions in their schemas.
Parameter constraint documentation incomplete. 'page_size' and 'page_token' parameters lack explicit min/max bounds, enum values, or format constraints in descriptions. Rubric: 'Specify minimum and maximum for numeric parameters.' Example: page_size should document '1 - 100' or equivalent in description text.
Tool descriptions lack WHEN/WHY context. Descriptions are task-focused but do not explain when to select this tool over alternatives, prerequisites, or dependency hints. Rubric baseline: avg description 194 chars (p10=34, p90=392); these tools avg ~80 chars. Example: 'list_script_projects' should explain 'Call this first to discover available Apps Script projects before retrieving specific project details.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 71 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 69 | - | v1 |
Injected service parameters ('service', 'chat_service', 'people_service' typed as 'object') lack documentation. Rubric requires parameter descriptions explaining what each controls. These service parameters should clarify in their descriptions: 'Injected via server-side configuration; end-users do not provide this.' This prevents LLM confusion about whether to pass credentials.
send_message tool lacks error handling and confirmation guidance. As a WRITE operation (destructive), rubric requires: 'Irreversible operations should support a dry-run or confirmation step.' Tool description does not mention error recovery (e.g., 'If space_id is invalid, error will indicate valid space IDs') or clarify idempotency (thread_key suggests idempotent updates, but this is not stated).
Parameter relationships undocumented. send_message has three related parameters (space_id, thread_key, thread_name) and a conditional one (message_name for edits). Rubric: 'When one parameter's valid values depend on another, document this.' Example: 'Either space_id (for new messages) or message_name (to edit) is required; thread_name implies space_id.'
Pagination guidance incomplete. list_script_projects and list_spaces accept page_size and page_token but do not document: total count, next_cursor presence, or stopping conditions. Rubric: 'Tools returning lists should accept page/offset and limit parameters and return a total count or next_cursor.'