mcpField
G
google-chat-mcp-server

google-chat-mcp-server

本地服务
github.com/chy168AI 与智能体251 周前更新

关于 google-chat-mcp-server

这是一个基于 FastMCP 的 Google Chat MCP 服务,供兼容客户端访问空间和消息。它包含独立的 OAuth2 认证流程,并支持读取卡片消息及按日期筛选。

主要功能

  1. 01Google OAuth2 认证
  2. 02列出可访问的 Chat 空间
  3. 03按日期获取空间消息
  4. 04搜索消息文本和卡片内容
  5. 05将卡片消息转为 Markdown

适用场景

  1. 01检查团队空间中的近期消息
  2. 02查找特定日期范围内的讨论
  3. 03读取 CI 或告警机器人发送的卡片

MCP 相关

该服务向 MCP 客户端提供 Google Chat 工具,用于列出空间、获取消息和搜索内容。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

简介

本项目使用 FastMCP,以 Python 编写,为 MCP(Model Control Protocol)服务提供 Google Chat 集成。你可以通过 MCP 工具访问并与 Google Chat 空间及消息交互。

结构

本项目由两个主要组件构成:

  1. 包含 Google Chat 工具的 MCP 服务:通过 Model Control Protocol 提供与 Google Chat 交互的工具。

    • 使用 FastMCP 编写
    • server.py:包含 Google Chat 工具的 MCP 服务主实现
    • google_chat.py:Google Chat API 集成和身份验证处理
  2. 身份验证服务:用于 Google 账号身份验证的独立组件

    • 使用 FastAPI 编写
    • 处理与 Google 的 OAuth2 流程
    • 存储和管理访问令牌
    • 可独立运行,也可作为 MCP 服务的一部分运行
    • server_auth.py:身份验证服务实现

身份验证流程可获取和刷新 Google API 令牌,之后 MCP 工具会使用这些令牌访问 Google Chat 数据。(你的空间和消息)

功能

  • 使用 OAuth2 对 Google Chat API 进行身份验证
  • 列出可用的 Google Chat 空间
  • 按日期筛选并检索特定空间中的消息
  • 以 Markdown 格式呈现卡片消息(机器人、Webhook、CI 通知)
  • 本地身份验证服务,方便设置

要求

  • Python 3.13+
  • 启用了以下 API 的 Google Cloud 项目:
    • Google Chat API
    • People API(用于获取用户显示名称)
  • 从 Google Cloud Console 获取的 OAuth2 凭据

如何使用?

准备 Google OAuth 登录

  1. 克隆此项目
    git clone https://github.com/chy168/google-chat-mcp-server.git
    cd google-chat-mcp-server
    
  2. 准备一个 Google Cloud Project(GCP)
  3. 打开 Google Cloud Console(https://console.cloud.google.com/auth/overview?project=<YOUR_PROJECT_NAME>)
  4. Google Auth Platform > Clients > (+) Create client > Web application 参考:https://developers.google.com/identity/protocols/oauth2/?hl=en 在 Authorized JavaScript origins 中添加:http://localhost:8000 在 Authorized redirect URIs 中添加:http://localhost:8000/auth/callback
  5. 创建 OAuth 2.0 Client 后,将客户端密钥下载为 .json 文件。将其保存为项目顶层目录下的 credentials.json。

身份验证

有两种可用的身份验证模式:

选项 1:CLI 模式(推荐用于无头/远程环境)
uv run python server.py --auth cli

此操作将:

  1. 显示授权 URL
  2. 在任意浏览器中打开该 URL(可以使用另一台设备)
  3. 完成 Google 授权
  4. 从浏览器复制重定向 URL,并粘贴回终端
  5. 令牌将保存为 token.json
选项 2:Web 模式(适用于有本地浏览器的环境)
uv run python server.py --auth web --port 8000

MCP 配置(mcp.json)

{
    "mcpServers": {
        "google_chat": {
            "command": "uv",
            "args": [
                "--directory",
                "<YOUR_REPO_PATH>/google-chat-mcp-server",
                "run",
                "server.py",
                "--token-path",
                "<YOUR_REPO_PATH>/google-chat-mcp-server/token.json"
            ]
        }
    }

Docker / Podman

运行容器
# Mount your project directory containing token.json
docker run -it --rm \
  -v /path/to/your/project:/data \
  ghcr.io/chy168/google-chat-mcp-server:latest \
  --token-path=/data/token.json

# or with podman
podman run -it --rm \
  -v /path/to/your/project:/data \
  ghcr.io/chy168/google-chat-mcp-server:latest \
  --token-path=/data/token.json
在容器中运行身份验证服务
# Web mode
docker run -it --rm \
  -p 8000:8000 \
  -v /path/to/your/project:/data \
  ghcr.io/chy168/google-chat-mcp-server:latest \
  --auth web --host 0.0.0.0 --port 8000 --token-path=/data/token.json

# CLI mode (for headless environments)
docker run -it --rm \
  -v /path/to/your/project:/data \
  ghcr.io/chy168/google-chat-mcp-server:latest \
  --auth cli --token-path=/data/token.json

工具

MCP 服务提供以下工具:

Google Chat 工具
  • get_chat_spaces() - 列出机器人有权访问的所有 Google Chat 空间
  • get_space_messages(space_name: str, start_date: str, end_date: str = None) - 列出特定 Google Chat 空间中的消息,可选按时间筛选
  • search_messages(space_name: str, query: str, start_date: str = None, end_date: str = None) - 在消息文本和卡片文本中执行不区分大小写的子字符串搜索
卡片消息

机器人和 Webhook(CI、监控、告警)通常会发布卡片,且消息的 text 为空。 此类消息会额外包含一个 cards_text 字段,其中的卡片和分区标题以标题形式呈现,带标签的值以列表项形式呈现,按钮和可点击文本则以链接形式呈现。

{"sender": "CI", "text": null, "cards_text": "## ❌ my-pipeline #42\n\n_Build failed_\n\n- **Duration** : 11 sec\n[Open build](https://ci.example.com/42)"}

开发与调试

构建镜像
docker build -t google-chat-mcp-server:latest .
# or
podman build -t google-chat-mcp-server:latest .
调试
fastmcp dev server.py --with-editable .
运行测试
uv run python -m unittest discover -s tests -t .

每次推送和拉取请求时,GitHub Actions 都会运行相同的测试套件(.github/workflows/test.yml)。

评论

支持 Markdown

第一次接触 MCP?

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

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