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 发送具体工具调用请求,传入工具名称与参数,服务器执行并返回结果。
    • 如需查看标签、邮件、过滤器等操作的细节,可在工具参数中按输入模式进行设置,框架会进行输入校验并返回结果文本。

服务器信息