mcpField
G
Google Chat MCP

Google Chat MCP

本地服务
github.com通信协作04 周前更新

关于 Google Chat MCP

Google Chat MCP 让 AI 应用以自然语言查找空间、阅读和发送消息、管理回应与成员。它以已登录用户身份操作,消息以该用户名义发送,且只能编辑或删除自己的消息和回应。

主要功能

  1. 01查找空间与私聊
  2. 02读取消息和讨论串
  3. 03发送消息并回复讨论串
  4. 04管理表情回应
  5. 05查看附件元数据
  6. 06管理空间成员

适用场景

  1. 01汇总团队空间当天的讨论
  2. 02在指定讨论串中发送回复
  3. 03查看消息的附件名称和类型
  4. 04添加成员或调整其空间角色

MCP 相关

作为 MCP 服务,它向 MCP 客户端提供 Google Chat 空间、消息、讨论串、回应、附件元数据和成员管理工具。它通过 Google Chat API 与 OAuth 以已登录用户身份操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"a1-x-tech-mcp-google-chat": {
"command": "npx",
"args": [
"-y",
"mcp-google-chat"
],
"env": {
"GOOGLE_CHAT_CLIENT_ID": "<GOOGLE_CHAT_CLIENT_ID>",
"GOOGLE_CHAT_CLIENT_SECRET": "<GOOGLE_CHAT_CLIENT_SECRET>",
"GOOGLE_CHAT_REFRESH_TOKEN": "<GOOGLE_CHAT_REFRESH_TOKEN>",
"GOOGLE_CHAT_ACCESS_TOKEN": "<GOOGLE_CHAT_ACCESS_TOKEN>",
"GOOGLE_CHAT_OAUTH_PORT": "<GOOGLE_CHAT_OAUTH_PORT>",
"GOOGLE_CHAT_API_BASE": "<GOOGLE_CHAT_API_BASE>",
"GOOGLE_CHAT_TIMEOUT_MS": "<GOOGLE_CHAT_TIMEOUT_MS>",
"GOOGLE_CHAT_MAX_RETRIES": "<GOOGLE_CHAT_MAX_RETRIES>"
}
}
}
}
启动命令npx -y mcp-google-chat
需要配置的环境变量
GOOGLE_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-google-chat1.0.0

工具

20

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

A1 Google Chat MCP

中文 | Русский

npm Glama CI License: MIT

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 账号。安装时不需要凭据——服务会在对话中连接。

  1. 将服务添加到你的 AI 应用。
  2. 说“连接 Google Chat”:助手会引导你创建 OAuth 客户端并批准访问,无需编辑配置文件或重启。
  3. 提出上面的只读问题。
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

Codex MCP 文档

Claude Code
claude mcp add \
  --transport stdio --scope user google-chat \
  -- npx -y mcp-google-chat@latest
claude mcp list

Claude Code MCP 文档

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。

Claude Desktop MCP 文档

Cursor

在 macOS/Linux 上将以下内容添加到 ~/.cursor/mcp.json,或在 Windows 上添加到 %USERPROFILE%\.cursor\mcp.json:

{
  "mcpServers": {
    "google-chat": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-google-chat@latest"]
    }
  }
}

Cursor MCP 文档

VS Code

运行 MCP: Open User Configuration 并添加:

{
  "servers": {
    "google-chat": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-google-chat@latest"]
    }
  }
}

使用 MCP: List Servers 检查。

VS Code MCP 文档

可以让它做什么

跟进对话
  • 显示我的空间,并找到与 [email protected] 的私信。
  • 今天在发布空间里发布了什么?总结一下决策。
  • 显示这条消息所属的整个讨论串。
发布和管理消息
  • 向团队空间发送状态更新。
  • 在部署讨论串中回复,告知发布已完成。
  • 修正我上一条消息中的错别字,或直接删除它。
添加回应并查看附件
  • 给公告添加 👍,并显示其他人分别添加了什么回应。
  • 删除我对该消息的回应。
  • 这条消息附带了哪些文件?显示它们的名称和类型。
管理空间成员
  • 这个空间里有哪些人?谁是管理员?
  • 将 [email protected] 添加到空间,并将其设为管理员。
  • 从空间中移除一位已离职的队友。

Chat 中服务的行为

  1. 使用 OAuth 刷新凭据时,服务会以已登录用户的身份运行:消息以你的名义发送,编辑和删除操作也只会作用于你自己的消息和回应。更改成员资格还要求你是聊天室管理员。
  2. 聊天室可以使用纯 ID,但消息、会话串、成员、回应和附件都必须使用 API 返回的完整资源名称来指定——先列出,再对精确名称执行操作。
  3. 回复通过名称或会话串键指定目标会话串。默认情况下,如果目标无法加入会话串,发送操作会改为新建会话串;你也可以要求它直接失败。
  4. 以 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”,助手就会引导你完成整个流程:

  1. setup_instructions 会显示检查清单:创建或选择 Google Cloud 项目、启用 Google Chat API、配置同意屏幕,并创建 桌面应用 OAuth 客户端。
  2. 下载该客户端的 JSON 文件(“Download JSON”),并将其路径提供给助手——set_client 会将文件设为仅所有者可访问。密钥不会经过对话。
  3. start_login 会返回 Google 同意链接。在这台机器上打开链接并批准;授权码会通过 PKCE 返回到 127.0.0.1 上的一次性监听器,不会经过聊天。
  4. 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、无人值守安装)
  1. 创建或选择一个 Google Cloud 项目,并启用 Google Chat API。

  2. 配置 OAuth 同意屏幕,并创建一个 Desktop app OAuth 客户端。

  3. 授权你用于聊天的 Google 账号。启用 Use your own OAuth credentials 后,可通过 OAuth 2.0 Playground 获取刷新令牌。

  4. 仅申请会话所需的作用域。若要读取和发送消息,以下作用域即可:

    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 进行。

技术文档

支持

发现 Bug 或需要某个场景?提交 issue 或在 Telegram 上留言。


Две Моны дают пять

你已读到最后!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。