MCP Email Server 使用说明

项目简介

这是一个实现了 Model Context Protocol (MCP) 的服务器端应用,它允许兼容 MCP 的 LLM(如 Claude Desktop)通过安全的 POP3 和 SMTP 协议与您的电子邮件账户进行交互。该服务器将邮件操作(如查看、获取、删除、发送)封装为 LLM 可以调用的“工具”。

主要功能点

  • 查看邮件列表: 获取收件箱中所有邮件的摘要信息(主题、发件人、日期等)。
  • 获取邮件详情: 根据邮件 ID 获取特定邮件的完整内容(包含头部和正文)。
  • 删除邮件: 根据邮件 ID 标记邮件进行删除。请注意,POP3 删除操作在连接关闭时生效,且会改变邮件 ID 顺序。
  • 发送文本邮件: 通过 SMTP 发送纯文本格式的电子邮件。
  • 发送 HTML 邮件: 通过 SMTP 发送 HTML 格式的电子邮件。
  • 安全连接: 支持 POP3S (SSL) 和 SMTP (STARTTLS 或 SSL)。
  • 环境变量配置: 使用 '.env' 文件安全管理您的邮件账户信息和服务器设置。

安装步骤

  1. 安装 Python: 确保您的系统安装了 Python 3.12 或更高版本。

  2. 安装 uv (推荐): uv 是一个快速的 Python 包管理器。

    curl -SfL https://astral.sh/uv/install.sh | sh
    # 或根据您的操作系统使用其他安装方法
  3. 克隆仓库: 将该 GitHub 仓库克隆到您的本地计算机。

    git clone https://github.com/ptbsare/email-mcp-server.git
    cd email-mcp-server
  4. 设置虚拟环境和依赖:

    uv venv
    source .venv/bin/activate  # Linux/macOS
    # .venv\Scripts\activate  # Windows
    uv pip install -e .

    这会创建并激活一个虚拟环境,然后安装所需的库(包括 'mcp' 和 'python-dotenv')。

  5. 创建配置文件 '.env': 在 'email-mcp-server' 目录下创建一个名为 '.env' 的文件,并添加您的邮件账户和服务器信息。请将 '/path/to/email-mcp-server' 替换为您实际克隆仓库的绝对路径。

    EMAIL_USER=您的邮箱地址@example.com
    EMAIL_PASS=您的邮箱应用密码或普通密码
    POP3_SERVER=pop.example.com
    POP3_PORT=995 # 可选,默认 995
    
    # SMTP 配置 (选择一种方式: STARTTLS 或 SSL)
    SMTP_SERVER=smtp.example.com
    # 对于 STARTTLS (通常端口 587, 默认方式):
    SMTP_PORT=587 # 可选,如果 SMTP_USE_SSL 为 false 或未设置,默认 587
    # SMTP_USE_SSL=false # 可选,默认 false
    
    # 或者对于直接 SSL (通常端口 465):
    # SMTP_PORT=465 # 可选,如果 SMTP_USE_SSL 为 true,默认 465
    # SMTP_USE_SSL=true

    重要安全提示: '.env' 文件包含敏感信息,切勿将其提交到版本控制系统。建议将其添加到 '.gitignore' 文件中。如果您的邮箱开启了两步验证,通常需要生成一个“应用专用密码”用于此服务器,而不是使用您的主密码。请查阅您的邮件服务提供商文档(如 Gmail、Outlook 等)。

服务器配置 (供 MCP 客户端使用)

MCP 客户端(如 Claude Desktop)需要知道如何启动并连接到此服务器。您需要在客户端的配置文件(例如 'developer_config.json')中添加以下配置信息。请将 '/path/to/email-mcp-server' 替换为您存放 'email-mcp-server' 仓库的完整、绝对路径

{
    "mcpServers": {
        "email-mcp-server": {
            "command": "uv",
            "args": [
                "--directory",
                "/path/to/email-mcp-server",
                "run",
                "main.py"
            ],
            "env": {
                // 这里的配置会覆盖 .env 文件中的同名设置,通常不需要填写
                // "EMAIL_USER": "...",
                // "EMAIL_PASS": "...",
                // ...
            }
        }
    }
}
  • 'email-mcp-server': 这是您给这个 MCP 服务器起的名字,客户端会用这个名字来引用它。
  • 'command': 启动服务器的可执行命令。这里使用 'uv' 命令。
  • 'args': 传递给 'command' 的参数。
    • '--directory /path/to/email-mcp-server': 告诉 'uv' 在哪个目录下执行命令。这是最关键的参数,请务必替换为您的仓库路径!
    • 'run main.py': 告诉 'uv' 执行仓库目录下的 'main.py' 文件。
  • 'env': 可选,用于设置服务器运行时的环境变量,可以用来覆盖 '.env' 文件中的设置。

完成配置后,请重启您的 MCP 客户端(如 Claude Desktop),客户端会自动尝试启动并连接到此服务器。

基本使用方法

一旦 MCP 客户端成功连接并识别了 'email-mcp-server',客户端中的 LLM 就能够通过调用服务器暴露的工具来执行邮件操作。LLM 可以通过自然语言指示客户端调用相应的工具(例如,让 LLM 调用 'pollEmails' 来获取最新邮件列表,然后调用 'getEmailsById' 查看特定邮件内容)。

关键词

电子邮件管理, LLM工具, POP3, SMTP, 邮件收发

信息

分类

通信与社交