Google Chat MCP Server

Spaces, DMs, message history, and posting for Workspace chat.

$ uvx workspace-mcp --tools chat runs only the Google Chat MCP tools — combine services as needed

The Chat service gives an assistant a real presence in your team’s conversation history: list_spaces enumerates spaces and DMs, get_messages pulls a space’s history for context, and search_messages finds the thread where a decision actually happened.

On the write side, send_message posts into spaces and create_reaction handles the lightweight acknowledgments that keep an agent from feeling like a bulldozer in a human channel.

What you can ask

  • “Post the deploy summary to the releases space”
  • “Search engineering chat for the decision about the API rename last month”
  • “Pull the attachments from yesterday’s incident thread”

All 6 Google Chat MCP tools

Tiers control how many tools the server registers: start lean with --tool-tier core and step up to extended or complete when a workflow needs more. Parameters and examples for every tool are in the API reference.

get_messages Core Retrieve messages in a space.
send_message Core Send messages to spaces.
search_messages Core Search chat history.
create_reaction Core Add emoji reactions to messages.
list_spaces Extended List spaces and DMs.
download_chat_attachment Extended Download chat attachments.

OAuth scopes

The server requests only the scopes for the services you enable. In read-only mode it requests just the readonly variants and skips registering write tools entirely.

  • chat.messages.readonly read and search messages
  • chat.messages send messages and reactions
  • chat.spaces.readonly list spaces and DMs

Google Chat MCP questions

Does Google Chat work with a personal @gmail.com account?
No — this is a Google API limitation, not a server one. The Chat API is only available to Google Workspace accounts, so the Chat service requires a Workspace domain even though the other eleven services work fine on consumer accounts.
Can the assistant find old conversations, or only read recent ones?
search_messages queries chat history by keyword across spaces, and get_messages retrieves a specific space’s message log — between them, "find where we decided X" is a tool call, not an archaeology project.
What happens to files people shared in chat?
download_chat_attachment retrieves them, so an agent summarizing an incident thread can also collect the screenshots and logs that were posted into it.