Google Chat MCP Server
Provides tools for interacting with Google Chat, enabling AI agents to send messages to spaces, list spaces, and search message history.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Chat MCP Server Post 'Lunch is at noon' to the #random space"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Chat MCP Server
An MCP server that exposes Google Chat as tools for an LLM client (Claude Desktop, Claude Code, etc.): sending messages, listing spaces, and searching message history.
Tools
Tool | Description |
| Post a message to a space, optionally inside an existing thread. |
| List spaces the configured account can see. |
| List recent messages in a space, newest first. |
| Substring-search a space's recent messages (client-side, since the Chat API has no full-text search endpoint). |
Related MCP server: google-mcp
Setup
Create a Google Cloud project and enable the Google Chat API.
Create a service account and download its JSON key.
To use
list_spaces/list_messages/search_messages, enable domain-wide delegation for the service account in your Google Workspace admin console, granting the scopes insrc/google_chat_mcp/auth.py.send_messagealone works with a bare service account registered as a Chat app.Copy
.env.exampleto.envand fill in the path to your key file (and the user to impersonate, if needed).
uv sync
cp .env.example .env # then edit itRunning
uv run google-chat-mcpClaude Desktop / Claude Code config
{
"mcpServers": {
"google-chat": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/google-chat-mcp", "run", "google-chat-mcp"],
"env": {
"GOOGLE_CHAT_SERVICE_ACCOUNT_FILE": "/absolute/path/to/service-account.json",
"GOOGLE_CHAT_IMPERSONATED_USER": "someone@yourdomain.com"
}
}
}
}Project layout
auth.py— builds an authenticated Google Chat API client from a service account key, with optional domain-wide-delegation impersonation.chat_client.py— thin wrapper over thechatv1 REST API (send, list, search).server.py— MCP tool definitions built on the official Python SDK.
Available Tools
4 toolslist_messagesA
List recent messages in a Google Chat space, newest first.
Args:
space: Resource name of the space, e.g. "spaces/AAAAAAAAAAA".
page_size: Max number of messages to return.
page_token: Token from a previous call to fetch the next page.
filter_expr: Optional Chat API filter, e.g.
'createTime > "2024-01-01T00:00:00Z"'.
Inputs: space (required), page_size, page_token, filter_expr.
list_spacesA
List Google Chat spaces the configured account can see.
Args:
page_size: Max number of spaces to return (1-1000).
page_token: Token from a previous call to fetch the next page.
Inputs: page_size, page_token.
search_messagesA
Search for messages in a space containing a text substring.
Args:
space: Resource name of the space, e.g. "spaces/AAAAAAAAAAA".
query: Case-insensitive substring to search for in message text.
page_size: Number of messages to fetch per page while scanning.
Inputs: query (required), space (required), page_size.
send_messageA
Send a text message to a Google Chat space.
Args:
space: Resource name of the space, e.g. "spaces/AAAAAAAAAAA".
text: Message body.
thread_key: Optional thread key to reply within an existing thread.
Inputs: text (required), space (required), thread_key.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
send_message, list_spaces, and search_messages are clearly distinct. list_messages and search_messages overlap somewhat in retrieving messages from a space, but their parameters and stated purposes make the intended difference reasonably clear.
All tool names follow a consistent verb_noun snake_case pattern: send_message, list_spaces, list_messages, and search_messages. The naming is predictable and makes the action and target resource immediately obvious.
Four tools is a well-scoped size for a focused Google Chat MCP server. Each tool covers a clear use case without unnecessary redundancy or overwhelming surface area.
The server covers sending and reading messages plus listing spaces, but it lacks message update/delete operations and has no way to create or retrieve a single space. This leaves notable lifecycle gaps for message management, though basic chat workflows are usable.
Maintenance
Related MCP Connectors
Messaging tools for AI agents: send messages, manage chats, groups and channels.
Workspace messaging: conversations, contacts, agents, and connected lines through scoped OAuth.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Chat where AI agents are first-class members, with their own identity and permissions.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceConnects Claude to Google Chat for searching messages, spaces, and DMs, automatically resolving user IDs to real display names.MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Google Chat through MCP, allowing listing spaces and messages, searching messages, and sending messages. Supports local and remote transports.34 npmApache 2.0
- -licenseNot gradedqualityDmaintenanceEnables AI assistants to read and send messages in Google Chat spaces using service account authentication.-
- AlicenseNot gradedqualityCmaintenanceEnables reading and searching Google Chat spaces, messages, threads, and members, with optional message sending.110 npmMIT