关于 Google Chat MCP
Google Chat MCP 让 AI 应用以自然语言查找空间、阅读和发送消息、管理回应与成员。它以已登录用户身份操作,消息以该用户名义发送,且只能编辑或删除自己的消息和回应。
主要功能
- 01查找空间与私聊
- 02读取消息和讨论串
- 03发送消息并回复讨论串
- 04管理表情回应
- 05查看附件元数据
- 06管理空间成员
适用场景
- 01汇总团队空间当天的讨论
- 02在指定讨论串中发送回复
- 03查看消息的附件名称和类型
- 04添加成员或调整其空间角色
MCP 相关
作为 MCP 服务,它向 MCP 客户端提供 Google Chat 空间、消息、讨论串、回应、附件元数据和成员管理工具。它通过 Google Chat API 与 OAuth 以已登录用户身份操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y mcp-google-chatGOOGLE_CHAT_CLIENT_IDGoogle OAuth2 client id (refresh-token flow).GOOGLE_CHAT_CLIENT_SECRET密钥Google OAuth2 client secret (refresh-token flow). Treat it as a secret.GOOGLE_CHAT_REFRESH_TOKEN密钥Google OAuth2 refresh token, exchanged for access tokens automatically. Treat it as a secret.GOOGLE_CHAT_ACCESS_TOKEN密钥Static OAuth2 access token (~1h lifetime) — alternative to the refresh-token trio, e.g. a service-account (Chat app) token or for testing.GOOGLE_CHAT_OAUTH_PORT密钥Fixed port for the loopback listener of the in-chat login (127.0.0.1 + PKCE). Set it when the client runs over SSH port forwarding; otherwise a free port is picked per login.GOOGLE_CHAT_API_BASEAPI root override.GOOGLE_CHAT_TIMEOUT_MSPer-request timeout in milliseconds.GOOGLE_CHAT_MAX_RETRIESRetries on transient errors (429 always; 5xx/network for reads).本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
20收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
Google Chat MCP
中文 | Русский
A1 Google Chat MCP 可让 AI 应用通过自然语言在 Google Chat 中执行操作。查找合适的空间或私信、了解对话内容、在话题串中回复、使用表情符号回应,并管理空间成员。
它通过你的 Google 账号使用 Google Chat API,并以已登录用户的身份执行操作:消息会以你的名义发送,且只能编辑或删除你自己的消息和回应。它会明确说明 Chat API 的限制,而不会暗示所有聊天任务都能完成。
- 20 种工具。 从聊天中连接、发现空间和私信、读取和发送消息并控制话题串、管理表情回应、读取附件元数据和管理成员。
- 从对话中连接。 说“连接 Google Chat”:服务会引导你完成 OAuth 客户端设置,通过 PKCE 在
127.0.0.1接收 Google 的重定向,并自行保存令牌——无需配置文件,也无需重启。 - 以你自己的身份操作。 消息会以你的名义显示;编辑和删除操作仅限于你自己的消息和回应。
- 发送操作绝不重放。 遇到结果不明确的失败后,服务不会重试写入操作——重放发送操作会导致真实聊天室中出现重复消息。
- 尽量减少 Google 授权范围。 服务会发送你生成的令牌;请根据任务授予授权范围——浏览空间和消息只需只读授权范围。
先从只读问题开始:
显示团队空间今天的消息,并总结讨论结果。
一分钟了解它的工作方式
你: 今天在发布空间讨论了什么?
助手: 列出今天的消息、发送者和话题串。不会更改任何内容。
你: 在部署话题串中回复,说明发布已完成。
助手: 显示目标空间、话题串和拟定文本,然后在发送前请求确认。
你: 确认。
助手: 以你的名义在该话题串中发送回复,不会触碰其他消息。
目录
快速开始
你需要 Node.js 20+,以及一个能够访问 Google Chat 的 Google 账号。安装时不需要凭据——服务会在对话中连接。
- 将服务添加到你的 AI 应用。
- 说“连接 Google Chat”:助手会引导你创建 OAuth 客户端并批准访问,无需编辑配置文件或重启。
- 提出上面的只读问题。
Codex
在应用中: 打开 Settings → MCP servers,选择 Add server,选择 STDIO,输入命令 npx -y mcp-google-chat@latest,然后选择 Save。无需设置环境变量——之后从聊天中连接即可。
通过命令行:
codex mcp add google-chat \
-- npx -y mcp-google-chat@latest
codex mcp list
Claude Code
claude mcp add \
--transport stdio --scope user google-chat \
-- npx -y mcp-google-chat@latest
claude mcp list
Claude Desktop
当前官方路径是 Settings → Extensions。要安装自定义桌面扩展,请打开 Advanced settings → Extension Developer → Install Extension…,选择 .mcpb 文件并按提示操作。
此仓库目前发布的是 npm stdio 包,不包含 .mcpb 捆绑包。对于仍支持本地配置的 Claude Desktop 版本,可使用以下 JSON stdio 配置作为备用方案:
{
"mcpServers": {
"google-chat": {
"command": "npx",
"args": ["-y", "mcp-google-chat@latest"]
}
}
}
在这些版本中,在 macOS 上将其保存到 ~/Library/Application Support/Claude/claude_desktop_config.json,或在 Windows 上保存到 %APPDATA%\Claude\claude_desktop_config.json。
Cursor
在 macOS/Linux 上将以下内容添加到 ~/.cursor/mcp.json,或在 Windows 上添加到 %USERPROFILE%\.cursor\mcp.json:
{
"mcpServers": {
"google-chat": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-chat@latest"]
}
}
}
VS Code
运行 MCP: Open User Configuration 并添加:
{
"servers": {
"google-chat": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-chat@latest"]
}
}
}
使用 MCP: List Servers 检查。
可以让它做什么
跟进对话
- 显示我的空间,并找到与 [email protected] 的私信。
- 今天在发布空间里发布了什么?总结一下决策。
- 显示这条消息所属的整个讨论串。
发布和管理消息
- 向团队空间发送状态更新。
- 在部署讨论串中回复,告知发布已完成。
- 修正我上一条消息中的错别字,或直接删除它。
添加回应并查看附件
- 给公告添加 👍,并显示其他人分别添加了什么回应。
- 删除我对该消息的回应。
- 这条消息附带了哪些文件?显示它们的名称和类型。
管理空间成员
- 这个空间里有哪些人?谁是管理员?
- 将 [email protected] 添加到空间,并将其设为管理员。
- 从空间中移除一位已离职的队友。
Chat 中服务的行为
- 使用 OAuth 刷新凭据时,服务会以已登录用户的身份运行:消息以你的名义发送,编辑和删除操作也只会作用于你自己的消息和回应。更改成员资格还要求你是聊天室管理员。
- 聊天室可以使用纯 ID,但消息、会话串、成员、回应和附件都必须使用 API 返回的完整资源名称来指定——先列出,再对精确名称执行操作。
- 回复通过名称或会话串键指定目标会话串。默认情况下,如果目标无法加入会话串,发送操作会改为新建会话串;你也可以要求它直接失败。
- 以 Chat 应用的身份操作——卡片、应用私信、专用附件端点、强制删除——需要单独配置 Google Cloud;这里唯一的接入方式是通过
GOOGLE_CHAT_ACCESS_TOKEN提供服务账号访问令牌。
Chat API 无法搜索消息文本——消息唯一可用的筛选条件是创建时间和会话串。find_direct_message 可查找现有私信,但不会创建私信;此服务也不会下载或上传文件字节。创建聊天室及其他未覆盖的 API 方法可通过 raw_request 调用。
可能发生的更改
| 操作 | 结果 | 确认边界 |
|---|---|---|
| 读取聊天室、消息、成员、回应和附件元数据 | 读取对话和元数据 | 不会更改 |
| 发送消息 | 以你的名义在真实聊天室中发帖 | 更改对话 |
| 更新消息 | 替换你自己的消息文本 | 更改对话 |
| 添加或移除回应 | 更改你对消息作出的回应 | 更改对话 |
| 删除消息 | 永久移除一条消息 | 具有破坏性 |
| 管理成员资格 | 添加聊天室成员、更改其角色或将其移除 | 可能具有破坏性 |
| 原始 API 请求 | 无需专用工具即可调用 API 方法 | 可能具有破坏性 |
AI 客户端负责控制确认提示。服务会标记读取、写入和具有破坏性的工具,让客户端能区分查看历史内容与发帖。
获取访问权限
Google Chat 需要 OAuth 2.0;仅有 API 密钥不够。有两种接入方式,第一种无需配置文件。
从聊天中连接(推荐)
说“连接 Google Chat”,助手就会引导你完成整个流程:
setup_instructions会显示检查清单:创建或选择 Google Cloud 项目、启用 Google Chat API、配置同意屏幕,并创建 桌面应用 OAuth 客户端。- 下载该客户端的 JSON 文件(“Download JSON”),并将其路径提供给助手——
set_client会将文件设为仅所有者可访问。密钥不会经过对话。 start_login会返回 Google 同意链接。在这台机器上打开链接并批准;授权码会通过 PKCE 返回到127.0.0.1上的一次性监听器,不会经过聊天。finish_login会交换授权码,将令牌保存到~/.config/mcp-google-chat/credentials.json(权限模式为 0600),并通过一次实际的 Chat API 调用验证令牌——因此,如果 Chat API 仍处于关闭状态,会立即发现,而不是等到你第一次真正提问时才发现。
每次调用时都会重新读取令牌,因此连接会立即生效——无需重启 AI 应用。auth_status 会显示当前连接状态,logout 会撤销并删除令牌。登录会请求 chat.spaces.readonly、chat.messages、chat.messages.reactions 和 chat.memberships.readonly;search_spaces 所需的管理员范围不会被请求——如果需要,请使用环境变量接入方式。
环境变量(CI、无人值守安装)
-
创建或选择一个 Google Cloud 项目,并启用 Google Chat API。
-
配置 OAuth 同意屏幕,并创建一个 Desktop app OAuth 客户端。
-
授权你用于聊天的 Google 账号。启用 Use your own OAuth credentials 后,可通过 OAuth 2.0 Playground 获取刷新令牌。
-
仅申请会话所需的作用域。若要读取和发送消息,以下作用域即可:
https://www.googleapis.com/auth/chat.spaces.readonly https://www.googleapis.com/auth/chat.messages.readonly https://www.googleapis.com/auth/chat.messages.create每项任务对应的完整表格——包括编辑和删除自己的消息、添加回应、管理成员,以及管理员搜索——请参阅 docs/TOOLS.md。
测试模式下的 OAuth 刷新令牌可能在七天后过期。如需长期访问,请发布 OAuth 应用,或在 Workspace 网域中使用 Internal app。请将客户端密钥和刷新令牌视为密码。
如需快速建立会话,也可以使用 GOOGLE_CHAT_ACCESS_TOKEN 中的短期令牌,例如通过 gcloud auth print-access-token 获取(需授予 Chat 作用域)。需要仅限应用的功能时,服务账号 Chat 应用令牌也通过同一个变量传递给服务。
配置
所有变量均为可选项;若不设置任何变量,服务会从聊天中连接。
| 变量 | 必需 | 说明 |
|---|---|---|
GOOGLE_CHAT_CLIENT_ID | 否* | OAuth 客户端 ID。 |
GOOGLE_CHAT_CLIENT_SECRET | 否* | OAuth 客户端密钥。 |
GOOGLE_CHAT_REFRESH_TOKEN | 否* | OAuth 刷新令牌。 |
GOOGLE_CHAT_ACCESS_TOKEN | 否* | OAuth 三项变量的短期替代方案;可以是服务账号或 Chat 应用令牌。 |
GOOGLE_CHAT_OAUTH_PORT | 否 | 聊天内登录使用的固定环回端口;通过 SSH 端口转发时很有用。 |
GOOGLE_CHAT_API_BASE | 否 | Google Chat API 基础 URL 覆盖值。 |
GOOGLE_CHAT_TIMEOUT_MS | 否 | 单次请求超时时间;默认值为 60000 毫秒。 |
GOOGLE_CHAT_MAX_RETRIES | 否 | 临时错误重试次数;默认值为 3。 |
* 对于环境变量方式,需提供 OAuth 三项变量,或访问令牌。设置后,它们的优先级高于已保存的聊天内登录信息,且服务不会刷新或删除这些变量。
即使未提供任何凭据,服务仍会完成 MCP 握手;随后,说明和首次工具调用都会指出两种解决方法——聊天内登录(无需重启)和环境变量(需要重启)。
数据、限制与后台工作
- 请求会发送到 Google Chat。 本地服务会刷新 Google OAuth 令牌并调用 Chat API;令牌绝不会发送到其他主机。匿名遥测包含安装 ID、软件包版本、AI 客户端和平台版本,以及工具名称;绝不包含 OAuth 令牌、消息内容、工具参数或提示词。设置
ASKADS_TELEMETRY=0即可选择退出。 - Google 会施加每个项目和每位用户的配额限制。 遇到
429时,服务会采用退避策略;读取操作还会在网络错误和5xx错误后重试,而写入操作在发生不确定故障后绝不会重放——在真实聊天室中,重放发送会产生重复消息。send_message接受自定义消息 ID,使发送的消息可寻址且可去重。 - 没有后台轮询。 服务仅在被调用时运行。如果你的 AI 应用支持计划任务,
list_messages可以按创建时间增量轮询聊天室;聊天室事件订阅则通过raw_request进行。
技术文档
- MCP 能力目录 — 面向任务的页面,涵盖每个工具。
- 所有工具和输入
- 开发文档
- 发布文档
- Google Chat API 参考
支持
发现 Bug 或需要某个场景?提交 issue 或在 Telegram 上留言。
你已读到最后!
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。