Coogle
使用说明(Markdown 格式)
- 项目简介
- Coogle 是一个用于将 Google Workspace API 通过 MCP 服务器暴露给 LLM 客户端的后端实现。它包含一个持续运行的守护进程(daemon)来管理 Google OAuth 认证和对 Google API 的请求,以及一个 Claude Code 使用的 MCP Shim(mcp-server.ts),通过 MCP 将工具注册并转发调用给守护进程。
- 主要功能点
- 守护进程(daemon)持有单一 coogle-mcp 子进程并通过 Unix 域套接字 /tmp/coogle.sock 进行 IPC,串行化并转发所有工具调用,确保凭证一致性。
- MCP Shim(mcp-server.ts)作为 Claude Code 的入口,发现并注册工具,然后把调用转发给守护进程。
- 动态工具发现:工具在启动时从 coogle-mcp 获取并缓存,支持多账户 Google Workspace 的并发使用。
- Gmail 内容增强:对返回的 Gmail 内容进行后处理(HTML 转文本、HTML 回退获取等),提高可读性。
- 多账户管理:通过 ~/.google_workspace_mcp/credentials/ 保存各账户的 OAuth token,支持多账户并发访问。
- 支持在 macOS 上通过 launchd 服务进行守护进程自启动(以及相关配置生成与管理)。
- 安装步骤
- 安装前提
- Node.js >= 18
- uvx(用于运行 coogle-mcp 后端)
- Google OAuth Client ID 与 Client Secret,或通过 claude.json 提供的环境变量/凭据读取
- 构建与运行
- 克隆或直接使用 NPM 任意方式获取代码
- 依赖安装并构建为 dist 目录
- 启动守护进程(daemon):node dist/index.js serve
- 启动 MCP Shim(Claude 端点):node dist/index.js mcp
- Claude Code 的配置(用于连接 MCP Shim)
- 在 ~/.claude.json 的 mcpServers 下添加/coogle 映射,指向 shim 的启动命令;示例描述如下(请使用文本理解方式,而非直接粘贴代码):
- server name: coogle
- type: stdio
- command: node
- args: ["/path/to/coogle/dist/index.js", "mcp"] 注:MCP 客户端无需知道实际的后端实现细节,只需要配置该服务器即可与 MCP Shim 连接。
- 在 ~/.claude.json 的 mcpServers 下添加/coogle 映射,指向 shim 的启动命令;示例描述如下(请使用文本理解方式,而非直接粘贴代码):
- 运行与维护
- 通过 node dist/index.js status/ restart 来检查状态与重启子进程
- 若需要,按 README 提示在 macOS 上生成 launchd plist 并加载以实现开机自启
- 安装前提
- 服务器配置(MCP 客户端需要知道的启动信息,示例描述,非代码块)
- serverName: "coogle"
- type: "stdio"
- command: "node"
- args: ["/path/to/coogle/dist/index.js", "mcp"]
- 说明: 这是 Claude Code 侧应连接的 MCP 服务器的启动配置,实际客户端无需读取或处理 token/凭据,凭据由守护进程自行管理并注入到 coogle-mcp 子进程的环境中。
- 基本使用方法
- 启动守护进程后,通过 Claude Code 的 MCP Shim 调用工具(如 list_tools、某个 Google Workspace 工具名)来执行操作
- 使用 status 查看当前守护进程与子进程状态,必要时通过 restart 重启子进程
- 多账户使用时,请确保初始化阶段已授权所需账户,确保环境中的凭据存在于 ~/.google_workspace_mcp/credentials/ 下对应的 JSON 文件