项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器,它将 Gmail 功能集成到 MCP 框架中,允许 MCP 客户端通过标准化的方式与用户的 Gmail 邮箱进行交互。

主要功能点

  • 邮件发送: 通过 'send-email' 工具,可以发送邮件到指定的邮箱地址。
  • 邮件删除: 通过 'trash-email' 工具,可以将指定邮件移动到垃圾箱。
  • 邮件标记已读: 通过 'mark-email-as-read' 工具,可以将指定邮件标记为已读。
  • 获取未读邮件: 通过 'get-unread-emails' 工具,可以获取用户邮箱中的未读邮件列表。
  • 邮件内容读取: 通过 'read-email' 工具,可以读取指定邮件的详细内容。
  • 浏览器打开邮件: 通过 'open-email' 工具,可以在默认浏览器中打开指定的邮件。
  • Prompt支持: 提供 'manage-email', 'draft-email', 'edit-draft' 等 Prompt,支持通过自然语言指令进行邮件管理。

安装步骤

  1. 克隆仓库: 首先,将 GitHub 仓库 'https://github.com/jmonsellier/gmail-mcp-server' 克隆到本地。
  2. Gmail API 设置:
    • 按照仓库 README.md 中的 "Gmail API Setup" 步骤,创建 Google Cloud 项目,启用 Gmail API,配置 OAuth 同意屏幕,并创建 OAuth Client ID (桌面应用类型)。
    • 下载客户端 OAuth 密钥 JSON 文件,并将其重命名保存到本地安全位置。
  3. Python 环境配置: 确保已安装 Python 环境,并建议使用 'uv' 进行包管理 (如 README.md 推荐)。

服务器配置 (MCP 客户端配置)

为了让 MCP 客户端(例如 Claude Desktop)连接到此 Gmail MCP 服务器,需要在客户端的服务器配置文件中添加以下配置信息。

{
  "mcpServers": {
    "gmail": {  // 服务器名称,可以自定义,例如 "gmail"
      "command": "uv", // 或者 "python", 取决于你的环境和偏好
      "args": [
        "--directory",
        "[Gmail服务器代码的绝对路径]", // 例如 "/path/to/gmail-mcp-server"
        "run",
        "gmail", //  调用 'src/gmail/__init__.py' 中的 main 函数,或者直接调用 'server.py'
        "--creds-file-path",
        "[OAuth 密钥 JSON 文件的绝对路径]", // 例如 "/path/to/client_creds.json"
        "--token-path",
        "[访问令牌存储文件的绝对路径]" // 例如 "/path/to/app_tokens.json"
      ]
    }
  }
}

参数说明:

  • 'server name': 为该服务器配置指定一个名称,客户端通过此名称引用该服务器。
  • 'command': 启动服务器的命令,通常是 'uv run' 或 'python'。
  • 'args': 传递给启动命令的参数列表:
    • '--directory': Gmail 服务器代码仓库的绝对路径。
    • 'run gmail': 执行服务器的入口,调用 'src/gmail/init.py' 中的 main 函数。
    • '--creds-file-path': Gmail API 密钥 JSON 文件的绝对路径。
    • '--token-path': 用于存储和读取访问令牌的文件的绝对路径。

注意: 请将 '[Gmail服务器代码的绝对路径]', '[OAuth 密钥 JSON 文件的绝对路径]', '[访问令牌存储文件的绝对路径]' 替换为实际的路径。

基本使用方法

  1. 启动服务器: 根据 MCP 客户端的配置启动 Gmail MCP 服务器。首次启动时,会打开浏览器进行 Gmail 授权。
  2. 在 MCP 客户端中使用: 在 MCP 客户端中,配置并连接到名为 "gmail" (或您在 'server name' 中配置的名称) 的 MCP 服务器。
  3. 通过 Prompt 或 Tool 调用: 在 MCP 客户端中,可以使用预定义的 Prompt (例如 'manage-email', 'draft-email') 或 Tool (例如 'send-email', 'get-unread-emails') 指令,指示 LLM 与 Gmail 进行交互。 例如,可以指示 LLM 使用 'send-email' 工具发送邮件,或使用 'get-unread-emails' 获取未读邮件列表。

信息

分类

通信与社交