An MCP server that provides tools for interacting with Google Chat spaces, messages, and members through the Google Chat API
This Google Chat MCP server provides 9 well-named tools with clear action verbs (list_, get_, send_, delete_, upload_). Descriptions are present and mostly adequate (averaging ~120 chars, within production baseline of 194). All tools have input schemas with type definitions and parameter descriptions. However, output schemas are not documented, LLMs cannot predict what fields will be returned. Parameter descriptions lack actionable constraints (e.g., page_size has a max of 1000 but this is mentioned only in the description text, not enforced via schema limits). Error handling is not visible in the provided code, and destructive operations (delete_message, upload_attachment) lack any confirmation/dry-run pattern. Resource names use opaque IDs (spaces/AAAA1234, messages/BBBB5678) without accepting human-friendly alternatives, users say 'send to Engineering' not 'send to spaces/AAAA1234'. Tools are well-composed (each has a single responsibility), but chaining is unclear because responses aren't shown. Security is good: credentials handled via OAuth2 token injection (not exposed as parameters). Overall: solid foundations, but output documentation and error guidance are missing.
Delete a message from Google Chat
Get details of a specific member in a Google Chat space
Get a specific message from Google Chat
Get details of a specific Google Chat space
List members of a Google Chat space
List messages in a Google Chat space
Output schemas not documented. LLMs cannot predict returned fields, forcing them to guess what data is available after each call. This breaks chaining and increases hallucination risk.
Destructive operation (delete_message) lacks confirmation step or dry-run pattern. Agents can permanently delete messages without safeguards, one prompt injection or reasoning error causes data loss.
Opaque resource identifiers (spaces/AAAA1234, messages/BBBB5678) required as parameters. Users say 'send to Engineering', not 'send to spaces/AAAA1234'. No human-friendly identifier support (channel name, display name) forces extra lookup calls.
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 | 46 | - | v1 |
List all Google Chat spaces (rooms and DMs) accessible by the service account
Send a text message to a Google Chat space
Upload a file attachment to a Google Chat space
Parameter constraints not formalized in schema. page_size descriptions mention max=1000, but this is not enforced via JSON Schema minItems/maxItems. LLMs may pass invalid values (e.g., page_size=999999) causing API errors.
Error handling not visible in provided code. No recovery guidance for LLMs when operations fail (e.g., 'message not found', 'permission denied'). Without actionable error messages, agents cannot self-correct.
Tool descriptions lack dependency hints. No guidance on when to call list_spaces vs get_space, or whether list_messages should be called before get_message. LLMs may call tools in suboptimal order.