模型 / 数据集
taylorwilsdon/google_workspace_mcp avatar
taylorwilsdon/google_workspace_mcp

google_workspace_mcp:用一套 MCP 服务器接管十二项 Google 服务,但先看清 OAuth 与部署边界

Control Gmail, Google Calendar, Docs, Sheets, Slides, Chat, Forms, Tasks, Search & Drive with AI - Comprehensive Google Workspace MCP Server & CLI Tool

3,172 个 Star991 个 ForkPythonMIT

秒懂

它是什么?
这个 Python 项目把 Gmail、Calendar、Docs、Sheets 等十二项 Workspace 服务包装成 120 多个 MCP 工具,支持多用户 OAuth 和无状态部署。本文拆解它的工具分层、鉴权模型与安全边界,并指出哪些场景适合、哪些场景应该绕开。
适合谁用?
适合需要让 Claude、ChatGPT 或自研 Agent 直接读写 Gmail、日历、文档和表格的团队,尤其是愿意投入时间配置 Google Cloud OAuth 客户端、并能接受将所有 Workspace 数据暴露给 LLM 的开发者。不适合只想快速试一下、不愿处理 OAuth 重定向或对数据外发零容忍的个人用户,也不适合需要细粒度按资源授权(例如只允许读某个日历)的场景,因为该服务器的授权粒度是用户级 OAuth scope,而非资源级。
能商用吗?
可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 2 天前。
用什么语言写的?
主要是 Python(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的是 AI 助手与 Workspace 之间的“最后一公里”

大多数 MCP 服务器只覆盖一两个服务,比如单独操作 Gmail 或单独读日历。google_workspace_mcp 试图把 Gmail、Calendar、Docs、Sheets、Slides、Chat、Forms、Tasks、Contacts、Drive 等十二项服务统一到一个服务器里,对外暴露 120 多个工具。这意味着你不需要为每个 Google 服务分别配置一个 MCP 连接,只需一个服务器就能让 AI 助手完成“查看明天的日程,给参会者发邮件,把会议纪要写进 Docs”这类跨服务操作。项目主页自称是“功能最完整的 Google Workspace MCP 服务器”,并且强调它能做到 Google 自家工具和 Claude、ChatGPT 内置集成做不到的事,比如多用户支持和细粒度编辑。这个定位很清楚:它面向的是想用自然语言指挥 AI 批量处理日常办公事务的开发者或团队,而不是只想要一个邮件读取插件的个人用户。

工具按三层渐进暴露,先读后写是默认安全姿态

README 提到服务器内置“三个渐进工具层级”和“只读模式”。虽然没有给出每一层的具体工具清单,但从命名可以推断:第一层可能只暴露读取类工具(如列出邮件、读取日历事件),第二层加入搜索和简单操作,第三层才开放写入和删除。这种设计让管理员可以按风险程度决定给 AI 多大的操作权限。只读模式尤其重要,因为 LLM 的指令遵循并不总是可靠,一个错误的 prompt 可能触发删除操作。如果只读模式能真正在服务器层面拦截所有写工具,而不是依赖 AI 自己判断,那它就是一个有效的安全护栏。但 README 没有说明只读模式是编译期开关还是运行时环境变量,也没有列出具体哪些工具会被禁用。这一点在实际部署前需要查阅完整文档确认,否则你无法确定“只读”到底拦住了什么。

OAuth 2.1 多用户鉴权:中心化部署的关键,也是配置门槛

项目强调它使用原生 OAuth 2.1,支持多用户,并且可以无状态部署。这意味着你可以把服务器托管在组织内部,多个用户通过各自的 Google 账号授权后,服务器代表每个用户调用 API。这与许多本地单用户 MCP 服务器不同,那些服务器通常只支持一个 Google 账号的凭据。OAuth 2.1 本身比 2.0 更严格,要求 PKCE 和更短的令牌有效期,但 README 没有透露服务器如何处理刷新令牌的存储。它提到高级部署支持 GCS/CMEK 作为凭据存储后端,说明默认可能是本地文件或内存。对于生产环境,你需要自己实现或配置安全的令牌存储,否则刷新令牌泄露等于账号失守。另外,OAuth 重定向 URI 的配置是常见的失败点,FAQ 部分专门列出了 OAuth 错误和重定向 URI 问题,说明这不是一个开箱即用的流程。你必须先在 Google Cloud 控制台创建 OAuth 客户端,这需要你有 GCP 项目的管理权限。

本地文件读取有路径限制,但默认只允许附件目录

服务器提供本地文件读取能力,但 README 明确说默认只允许读取“受管理的附件目录”。`validate_file_path()` 函数会阻止访问 `.env*` 文件以及常见的 home 目录凭据存储,比如 `~/.ssh/` 和 `~/.aws/`,即使你通过 `ALLOWED_FILE_DIRS` 环境变量放宽了目录范围,这些敏感路径依然被屏蔽。这是一个务实的安全设计:AI 助手需要读取附件或临时文件,但不应让它意外读到你的 SSH 私钥或云厂商凭据。然而,这个保护依赖 `validate_file_path()` 的实现是否完备。README 没有列出该函数的完整黑名单,也没有说明符号链接或路径穿越是否被处理。如果你计划让 AI 读取任意本地文件,必须自行测试这些边界,不能只依赖默认配置。

无状态部署与流式 HTTP:适合容器,但需要自己搭网关

README 强调“无状态模式”支持零磁盘写入,适合锁定容器环境。同时它支持通过流式 HTTP 远程运行,并实现了最新的 MCP 规范。这意味着你可以把服务器跑在 Kubernetes 或 Docker 里,通过反向代理暴露给多个客户端。但无状态模式有一个隐含代价:OAuth 令牌和刷新令牌不能存在本地磁盘,你必须使用外部凭据存储,比如 GCS 或 KMS 加密的存储。项目文档里有“完整的环境变量参考”和“反向代理与 nginx 配置”,说明部署一个生产实例需要你自己处理 TLS、代理和来源验证。这不是一个双击就能跑起来的桌面应用,而是需要一定运维能力的服务。如果你只是想在自己的笔记本上给 Claude Desktop 用,用 stdio 模式跑本地进程会更简单,但那就无法享受多用户中心化部署的好处。

MIT 许可证与无遥测:商业采用的法律和隐私底线清晰

项目采用 MIT 许可证,README 特别强调它不是“开放核心”也不是“源码可用”,没有双授权,没有商业功能限制,也没有贡献者许可协议(CLA)。这意味着你可以自由地将其嵌入商业产品,只需保留版权声明。依赖链中的许可证也都是 MIT、Apache 2.0 和 BSD。对于法律和采购团队来说,这是一个干净的起点。隐私方面,README 声明默认情况下服务器不会向除 Google API 之外的任何端点发送数据,没有使用统计、分析或许可证服务器,唯一可选的外部依赖是 OpenTelemetry(OTel)追踪,而且默认关闭。这一点很重要,因为很多 AI 工具会悄悄上报使用数据。不过“默认不发送”不等于“永远不发送”,如果你开启 OTel,需要自己配置导出端点。实际部署时,你应该检查依赖树和启动日志,确认没有隐藏的网络请求。

替代方案:Google 官方 API 与单服务 MCP 的取舍

如果你只需要控制 Gmail 或 Calendar,可以选择专门针对单个服务的 MCP 服务器,它们通常更轻量,配置更简单,OAuth 流程也可能更直接。另一个替代方案是直接调用 Google 官方 REST API,配合 LangChain 或自研 Agent 的工具调用框架。官方 API 的优点是文档详尽、稳定性有保证,缺点是你得为每个服务分别写 API 调用逻辑,而且无法直接获得 MCP 协议带来的客户端兼容性。google_workspace_mcp 的价值在于把十二个服务的 API 统一成一套 MCP 工具,减少了集成工作量,但代价是引入了这个服务器的抽象层。如果 Google 某个 API 发生变化,你需要等待这个项目更新,而不是自己控制。对于只涉足一两个服务的项目,这种抽象可能过度。

编辑结论

适合需要让 Claude、ChatGPT 或自研 Agent 直接读写 Gmail、日历、文档和表格的团队,尤其是愿意投入时间配置 Google Cloud OAuth 客户端、并能接受将所有 Workspace 数据暴露给 LLM 的开发者。不适合只想快速试一下、不愿处理 OAuth 重定向或对数据外发零容忍的个人用户,也不适合需要细粒度按资源授权(例如只允许读某个日历)的场景,因为该服务器的授权粒度是用户级 OAuth scope,而非资源级。采用前应先在隔离的 Google 账号上验证三件事:确认你申请的 OAuth scope 是否覆盖所需 API(如 Gmail 的 `gmail.modify` 与只读 scope 的差异),测试只读模式能否真正拦截所有写操作,以及检查 `ALLOWED_FILE_DIRS` 环境变量配置是否正确,避免本地文件读取路径被意外放大。

官方来源

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. taylorwilsdon/google_workspace_mcp on GitHub
社区笔记

社区笔记