Google Workspace MCP 服务器
使用说明(简要,面向开发者理解与快速上手)
-
项目简介
- 该仓库实现了一个符合 MCP 服务器标准的后端服务,用于向基于大语言模型的客户端提供资源访问、工具调用以及提示渲染等能力,便于 LLM 在对话中直接操作与 Google Workspace 相关的服务。
- 服务器通过 MCP 的 JSON-RPC 机制接收请求、执行对应工具,并返回结构化的 JSON 响应;同时支持多种传输方式,当前使用标准的标准输入/输出(Stdio)传输进行本地开发与测试。
-
主要功能点
- MCP 服务器实现与暴露
- 使用 MCP 的注册工具能力,将丰富的工作流工具绑定到服务器上,支持对外提供一系列以 docs.、drive.、calendar.、gmail.、slides.、sheets.、chat.、time.、people. 等前缀的工具。
- 资源与工具暴露
- 通过一组服务类(DocsService、DriveService、CalendarService、ChatService、GmailService、TimeService、PeopleService、SlidesService、SheetsService)实现对 Google Workspace 的操作封装。
- 身份认证与凭证存储
- 提供混合存储(Keychain 与加密文件)策略,通过 OAuth 流程获取并缓存 Google API 的访问令牌。
- 本地化开发与调试支持
- 支持 Stdio 传输(StdioServerTransport),便于与本地进程集成和测试。
- 安全与日志
- 内部日志通过 logToFile 打印,提供格式化输出与调试辅助,具备基础的安全打开 OAuth 回调保障逻辑。
- MCP 服务器实现与暴露
-
安装步骤
- 确保本地环境已安装 Node.js 与 npm。
- 在仓库根目录执行安装:npm install
- 构建服务端代码(将 TypeScript 编译为可执行的 dist 目录):运行 npm run build 或按照项目提供的构建脚本执行,完成后 dist/index.js 即为可执行 MCP 服务器入口。
- 配置环境变量(如需要访问 Google API 的凭证、Clould 函数回调地址等,按实际部署情况设置)。
-
服务器配置(MCP 客户端需要的最小信息,示例配置) { "serverName": "google-workspace", "command": "node", "args": ["dist/index.js", "--use-dot-names"] }
说明:
- serverName:服务器在 MCP 客户端中的标识名称,需与服务端内部注册工具的命名保持一致。
- command:启动服务器所使用的执行命令,此处为 node。
- args:服务器入口及启动参数,dist/index.js 为编译后的入口,--use-dot-names 选项用于工具名称的点命名风格,便于某些客户端对工具命名的兼容性处理。
- MCP 客户端通过该配置信息即可启动并连接到 MCP 服务器,进行资源读取、工具调用与提示渲染等操作。此处不涉及具体的密钥与凭证信息,实际部署时请通过安全方式提供相应的 Google API 授权凭据。
-
基本使用方法
- 启动 MCP 服务器后,客户端通过 MCP 协议向服务器发送 JSON-RPC 请求,调用诸如 docs.create、drive.find、calendar.list、gmail.search 等工具,以实现对 Google Workspace 的具体业务操作。
- 客户端在与服务器交互时,需遵循 MCP 的请求/响应格式,服务端将返回标准化的 JSON-RPC 响应或通知。
- 如需本地调试,可使用仓库提供的测试用例以及 Stdio 传输进行端到端验证;生产环境请根据实际部署调整传输通道(如 SSE、WebSocket 等)。
-
运行与调试建议
- 查看并设置日志级别以便开发阶段跟踪请求与响应。
- 使用提供的工具覆盖测试确保工具名称规范化、权限、以及各服务的调用行为符合预期。
- 确保 Google API 的授权凭据有效,并在本地/云端正确配置环境,以实现对 Drive、Docs、Sheets、Calendar、Gmail、People、Slides、Chat 等服务的访问。
-
注意事项
- MCP 服务器是服务端实现,核心职责是对接 LLM 客户端,通过统一接口暴露能力;客户端无需实现 MCP 服务端逻辑。
- 部署时,请妥善处理凭据安全与访问权限,避免暴露敏感信息。