使用说明

项目简介

MCP邮件服务器是一个基于Model Context Protocol (MCP) 构建的应用后端,旨在为大型语言模型(LLMs)提供邮件发送和附件搜索能力。通过该服务器,LLM可以安全、可控地执行发送邮件、查找本地附件等操作,从而扩展其在自动化工作流、信息处理等方面的应用。

主要功能点

  • 发送邮件: 支持LLM通过调用 'send_email' 工具发送邮件,可指定收件人、邮件主题、邮件正文和附件。
  • 附件搜索: 支持LLM通过调用 'search_attachments' 工具在指定目录中搜索匹配特定模式的文件,用于查找邮件附件。
  • 安全邮件传输: 支持基于SMTP协议的安全邮件发送。
  • 可配置SMTP服务: 通过 'email.json' 文件配置不同邮箱域名的SMTP服务器信息。
  • 支持多种附件类型: 支持常见文档、压缩包、文本、图片等多种附件类型。

安装步骤

  1. 安装依赖: 确保已安装 Python 和 pip,然后运行以下命令安装所需的 Python 包:

    pip install pydantic python-dotenv
  2. 配置邮箱信息:

    • 在 'src/mcp_server_email' 目录下找到 'email.json' 文件。
    • 根据需要编辑 'email.json' 文件,配置你的邮箱域名对应的 SMTP 服务器地址和端口。例如,Gmail、Outlook、Yahoo邮箱的配置已在示例文件中。
  3. 设置环境变量:

    • 创建 '.env' 文件在项目根目录下(或在你的系统环境变量中设置)。
    • 在 '.env' 文件中设置发件人邮箱地址 ('SENDER') 和邮箱密码 ('PASSWORD')。
      SENDER=你的邮箱地址@example.com
      PASSWORD=你的邮箱密码或应用专用密码
      注意: 如果是 Gmail 或其他邮箱服务,可能需要使用应用专用密码以提高安全性。

服务器配置

要将 MCP 邮件服务器配置到 MCP 客户端(例如 Claude.app),你需要提供服务器的启动命令和参数。以下是配置示例,请根据你的实际环境调整路径:

配置示例 (JSON 格式)

{
  "mcpServers": {
    "email": {
      "command": "python",
      "args": [
        "-m",
        "mcp_server_email",
        "--dir",
        "/path/to/attachment/directory"  // 附件存放的根目录,请替换为实际路径
      ],
      "env": {
        "SENDER": "你的邮箱地址@example.com",  // 你的发件人邮箱地址,请替换为实际地址
        "PASSWORD": "你的邮箱密码或应用专用密码"   // 你的邮箱密码或应用专用密码,请替换为实际密码
      }
    }
  }
}

参数说明:

  • 'command': 启动服务器的命令,通常为 'python'。
  • 'args': 传递给 'python' 命令的参数列表:
    • '"-m", "mcp_server_email"': 以模块方式运行 'mcp_server_email' 包,启动服务器。
    • '"--dir", "/path/to/attachment/directory"': 指定附件存放的根目录。 请将 '/path/to/attachment/directory' 替换为你希望LLM搜索附件的实际本地目录路径。 例如,可以设置为用户桌面、文档目录等。
  • 'env': 设置服务器运行时的环境变量:
    • '"SENDER"': 发件人邮箱地址。 请将 '"你的邮箱地址@example.com"' 替换为你的实际邮箱地址。
    • '"PASSWORD"': 发件人邮箱的密码或应用专用密码。 请将 '"你的邮箱密码或应用专用密码"' 替换为你的实际密码。

注意:

  • 请务必将 '/path/to/attachment/directory'、'你的邮箱地址@example.com' 和 '你的邮箱密码或应用专用密码' 替换为你的实际配置。
  • 建议使用应用专用密码,特别是对于 Gmail 等邮箱,以提高安全性。
  • 确保配置的目录是LLM需要搜索附件的目录的父目录或包含附件的目录。

基本使用方法

  1. 启动服务器: 在终端中,切换到仓库的根目录,运行以下命令启动 MCP 邮件服务器,并指定附件目录:

    python -m mcp_server_email --dir /path/to/attachment/directory

    将 '/path/to/attachment/directory' 替换为你实际的附件目录路径。

  2. 在 MCP 客户端中使用: 在支持 MCP 协议的 LLM 客户端(如 Claude.app)中,配置上述提供的服务器配置信息。

  3. 调用工具: 在 LLM 中,你可以指示它使用以下工具来发送邮件或搜索附件:

    • 发送邮件 (send_email): 告诉 LLM 使用 'send_email' 工具,并提供收件人、主题、正文和附件文件名等参数。 例如,你可以对 LLM 说: "请发送邮件给 [email protected],主题是 '测试邮件',内容是 '这是一封来自MCP邮件服务器的测试邮件。',附件是 'document.pdf' 和 'image.jpg' "。
    • 搜索附件 (search_attachments): 告诉 LLM 使用 'search_attachments' 工具,并提供要搜索的文件名模式。 例如,你可以对 LLM 说: "请帮我搜索文件名包含 'report' 的附件"。
  4. 查看结果: LLM 会调用相应的 MCP 工具,服务器执行操作后,会将结果返回给 LLM 客户端。你可以查看 LLM 的回复,了解邮件是否发送成功或附件搜索结果。

示例 JSON 请求

发送邮件:

{
  "receiver": ["[email protected]"],
  "subject": "Test Email from MCP Server",
  "body": "This is a test email sent via the MCP Email Server.",
  "attachments": ["document.pdf", "image.jpg"]
}

搜索附件:

{
  "pattern": "report"
}

信息

分类

通信与社交