项目简介

Gmail MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,它利用 Gmail 的 SMTP 服务,为 AI Agent 提供安全可靠的邮件发送功能。通过简单的配置和调用,AI Agent 可以方便地使用该服务器发送邮件,支持多种附件形式,适用于需要邮件发送能力的 AI 应用场景。

主要功能点

  • Gmail SMTP 集成: 通过 Gmail 的 SMTP 服务器发送邮件。
  • 多种附件支持: 支持本地文件路径、URL 链接以及预先存放的附件,方便灵活地添加附件。
  • 稳定可靠: 基于 fastMCP 构建,具有良好的稳定性和错误处理能力。
  • 配置灵活: 通过环境变量管理 Gmail 账户信息,保障安全。

安装步骤

  1. 克隆仓库

    git clone https://github.com/MaitreyaM/Gmail-mcp-server
    cd Gmail-mcp-server
  2. 配置环境变量 在项目根目录下创建 '.env' 文件,并填入您的 Gmail SMTP 账户信息。如果您开启了 Gmail 的两步验证,请务必使用应用专用密码

    [email protected]
    SMTP_PASSWORD=your_app_password
  3. 安装依赖 确保您的 Python 环境已安装 'fastmcp', 'python-dotenv', 'requests' 库。如果没有安装,请运行以下命令安装:

    pip install mcp python-dotenv requests
  4. (可选) 准备预存附件目录 如果您需要使用预存附件功能,请在项目根目录下创建名为 'available_attachments' 的文件夹,并将需要预存的文件放入该文件夹。

服务器配置

MCP 客户端(如 Claude)需要配置 MCP 服务器的启动命令才能连接并使用 Gmail MCP Server。以下是针对 Claude Desktop 客户端的 'claude_desktop_config.json' 配置文件示例,您需要根据实际情况修改 'command' 和 'args' 中的路径。

{
  "mcpServers": {
    "gmail-mcp": {  // 服务器名称,客户端配置中引用
      "command": "python", // 启动服务器的命令,这里使用 python 解释器
      "args": ["/PATH/TO/gmail-mcp-server/gmail_mcp.py"], // 启动参数,指向 gmail_mcp.py 脚本的绝对路径
      "host": "127.0.0.1", // 服务器监听地址
      "port": 5000,    // 服务器监听端口
      "timeout": 30000 // 连接超时时间,单位毫秒
    }
  }
}

请将以上 JSON 配置添加到您的 Claude Desktop 客户端的 'claude_desktop_config.json' 文件中,并确保将 'args' 中的 '/PATH/TO/gmail-mcp-server/gmail_mcp.py' 替换为 'gmail_mcp.py' 文件在您电脑上的实际绝对路径。

基本使用方法

启动服务器:

python gmail_mcp.py

服务器启动后,您的 MCP 客户端(如 Claude)可以通过配置的服务器名称 "gmail-mcp" 调用 'send_email_tool' 工具来发送邮件。

调用 'send_email_tool' 工具发送邮件时,您需要提供以下参数 (JSON 格式):

  • 'recipient': 收件人邮箱地址。
  • 'subject': 邮件主题。
  • 'body': 邮件正文内容。
  • 'attachment_path' (可选): 本地附件文件路径 (例如: 'C:\path\to\document.pdf')。
  • 'attachment_url' (可选): 附件 URL 链接 (例如: 'https://example.com/image.png'),需要同时提供 'attachment_name'。
  • 'attachment_name' (可选): 附件的文件名,当使用 'attachment_url' 或预存附件时必须提供。

使用示例:

发送带本地附件的邮件:

{
  "recipient": "[email protected]",
  "subject": "你好,这是一封带附件的邮件",
  "body": "请查收附件文档。",
  "attachment_path": "/path/to/document.pdf"
}

发送带 URL 附件的邮件:

{
  "recipient": "[email protected]",
  "subject": "你好,这是一封带 URL 附件的邮件",
  "body": "请查收附件图片。",
  "attachment_url": "https://example.com/image.png",
  "attachment_name": "image.png"
}

发送带预存附件的邮件:

将文件 'document.pdf' 放入 'available_attachments' 文件夹后,使用以下 JSON 调用:

{
  "recipient": "[email protected]",
  "subject": "你好,这是一封带预存附件的邮件",
  "body": "请查收附件文件。",
  "attachment_name": "document.pdf"
}

信息

分类

通信与社交