项目简介

mcp-email-server 是一个基于 Model Context Protocol (MCP) 构建的邮件服务器,旨在为大型语言模型 (LLM) 应用提供邮件收发能力。它允许 LLM 客户端通过标准的 MCP 协议,安全、便捷地访问和操作用户的电子邮件账户,实现邮件的读取、发送等功能。

主要功能点

  • 邮件账户管理: 支持配置和管理多个电子邮件账户,包括常用的 Gmail、Outlook 等邮箱服务。
  • 邮件读取: 允许 LLM 客户端分页检索和读取邮件,支持按时间范围、主题、正文、发件人、收件人等条件进行过滤查询。
  • 邮件发送: 支持 LLM 客户端通过配置的邮件账户发送电子邮件。
  • Claude Desktop 集成: 提供便捷的 Claude Desktop 客户端集成方式,一键安装即可在 Claude 中使用邮件功能。
  • 多种安装方式: 支持手动安装、Smithery 自动安装和 Docker 部署等多种安装方式,满足不同用户的需求。
  • 用户界面: 提供友好的 Gradio Web UI,方便用户配置和管理邮件账户。

安装步骤

方法一:手动安装 (推荐使用 uv)

  1. 确保已安装 Python 环境 (推荐 Python 3.8+)

  2. 使用 uv (推荐): 运行以下命令安装 mcp-email-server 和 UI 界面:

    uvx mcp-email-server@latest ui
  3. 使用 pip: 运行以下命令安装 mcp-email-server:

    pip install mcp-email-server
  4. 配置邮件服务器: 安装完成后,运行命令启动配置 UI 界面:

    mcp-email-server ui

    在 Web UI 界面中,填写您的邮箱账户信息(账户名、邮箱地址、用户名、密码、IMAP/SMTP 服务器地址等)并保存。

方法二:使用 Smithery 自动安装 (针对 Claude Desktop)

如果您使用 Claude Desktop 客户端,可以使用 Smithery 命令行工具一键安装 mcp-email-server:

npx -y @smithery/cli install @ai-zerolab/mcp-email-server --client claude

按照提示操作即可完成安装。

方法三:Docker 部署

如果您熟悉 Docker,可以使用提供的 Docker 镜像进行部署:

docker run -it ghcr.io/ai-zerolab/mcp-email-server:latest

注意: Docker 部署方式可能需要在 MCP 客户端中通过 'tools' 功能进行配置,默认配置文件路径为 '~/.config/zerolib/mcp_email_server/config.toml'。

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

要将 mcp-email-server 集成到 MCP 客户端(例如 Claude Desktop),您需要在客户端的 MCP 服务器配置中添加以下 JSON 配置信息。

对于手动安装 (uv 或 pip) 的用户:

{
  "mcpServers": {
    "zerolib-email": {
      "command": "uvx",  // 或者 "{{ ENTRYPOINT }}" 如果您使用 pip 安装,请替换为 'which mcp-email-server' 命令的输出路径
      "args": ["mcp-email-server@latest", "stdio"] // 或者 ["stdio"] 如果您使用 pip 安装
    }
  }
}

对于 Docker 部署的用户:

{
  "mcpServers": {
    "zerolib-email": {
      "command": "docker",
      "args": ["run", "-it", "ghcr.io/ai-zerolab/mcp-email-server:latest"]
    }
  }
}

配置说明:

  • '"zerolib-email"': 服务器名称,您可以自定义。
  • '"command"': 启动 MCP 服务器的命令。
    • 对于 'uvx' 安装,使用 '"uvx"',并使用 '"args"' 指定包名和运行模式。
    • 对于 'pip' 安装,使用 '"{{ ENTRYPOINT }}"',并确保 MCP 客户端能正确替换为 'mcp-email-server' 的可执行文件路径 (通常需要运行 '$ which mcp-email-server' 获取路径)。
    • 对于 'docker' 部署,使用 '"docker"' 命令。
  • '"args"': 传递给启动命令的参数。
    • '["mcp-email-server@latest", "stdio"]' 或 '["stdio"]': 指定运行 'mcp-email-server' 并使用 'stdio' 传输协议。
    • '["run", "-it", "ghcr.io/ai-zerolab/mcp-email-server:latest"]': 指定 Docker 运行镜像。

将以上 JSON 配置添加到您的 MCP 客户端的配置文件中。 例如,对于 Claude Desktop,您可以通过 Smithery 安装或手动编辑 'claude_desktop_config.json' 文件。

基本使用方法

  1. 启动 mcp-email-server: 根据您的安装方式,运行相应的启动命令(例如 'uvx mcp-email-server@latest stdio' 或 'mcp-email-server stdio')。
  2. 配置 MCP 客户端: 将上述服务器配置 JSON 添加到您的 MCP 客户端。
  3. 在 LLM 应用中使用: 在您的 LLM 应用中,可以使用 MCP 协议访问 'email://{account_name}' 资源来获取邮件账户信息,并调用 'page_email' 和 'send_email' 工具来读取和发送邮件。具体的 API 调用方式请参考 MCP 客户端和 LLM 应用的文档。

例如,在 Claude 中,您可以使用 '@zerolib-email:list_available_accounts()' 工具列出可用的邮件账户,使用 '@zerolib-email:page_email(account_name='your_account_name', page=1)' 工具获取第一页邮件,使用 '@zerolib-email:send_email(account_name='your_account_name', recipient='[email protected]', subject='Test Email', body='Hello World')' 工具发送邮件。

信息

分类

通信与社交