Gmail MCP 服务器
使用说明(Markdown 格式)
项目简介
- 该仓库实现了一个基于 MCP 的后端服务器,专注于通过标准化的工具接口向 LLM 客户端暴露 Gmail 相关的功能,帮助 AI 应用进行邮件操作、搜索、标签管理等。
主要功能点
- MCP 服务器实现:提供 ListTools 与 CallTool 两类 MCP 请求的处理能力,遵循 MCP 的 JSON-RPC 风格沟通。
- 工具定义与执行:定义了如发送、草稿、读取、搜索、统计、修改、删除等多种邮件相关工具,并实现了统一的执行入口 handleTool。
- Gmail API 集成:通过 OAuth2 验证后,与 Gmail API 进行实际的邮箱操作(邮件发送/读取、标签管理、过滤器等)。
- 传输与连接:服务器通过 StdioServerTransport 支持基于标准输入输出的 MCP 传输,便于在多种环境中嵌入式运行。
- 安全与会话:实现 OAuth2 认证流程,凭证缓存与安全访问 Gmail API 的能力判断。
- 开发者工具支持:包含工具输入模式的 Zod 验证与 JSON Schema 转换,便于客户端对工具参数进行格式校验与推理。
安装步骤
- 安装依赖并构建:
- 安装 Node.js 环境(建议使用当前长期支持版本)。
- 安装依赖并进行构建(TypeScript 项目一般包含 npm install 与 npm run build)。
- 认证与授权:
- 使用 Gmail 的 OAuth2 流程进行授权,获取并保存 credentials.json(默认路径在用户主目录下的 .gmail-mcp/credentials.json)。
- 运行入口时可通过命令行参数 auth 触发授权流程,例如执行授权并完成回调。
- 启动服务器:
- 构建完成后,使用生成的 dist/index.js 启动服务器(示例:node dist/index.js)。
- 服务器启动后,MCP 客户端即可通过 ListTools/CallTool 进行交互。
服务器配置(MCP 客户端需要,JSON 形式;服务器端不需要在客户端使用)
-
服务器名称:gmail-mcp
-
启动命令:node
-
参数:["dist/index.js"]
说明:
- 该配置指示客户端如何启动 MCP 服务器进程以对接 Gmail MCP 服务。
- 启动前需确保已完成 Gmail OAuth2 认证并在默认凭证路径(~/.gmail-mcp/credentials.json)保存凭据。
- 启动后,LLM 客户端通过 MCP 协议进行工具查询与调用。
基本使用方法
- 预置条件
- 已完成 Gmail OAuth2 认证,credentials.json 已正确保存。
- 服务器已构建并在 dist/index.js 可执行路径存在。
- 常用流程
- 启动服务器(如上文配置所示)。
- LLM 客户端通过 MCP 的 ListTools 获取可用工具清单。
- 通过 CallTool 发送具体工具调用请求,传入工具名称与参数,服务器执行并返回结果。
- 如需查看标签、邮件、过滤器等操作的细节,可在工具参数中按输入模式进行设置,框架会进行输入校验并返回结果文本。