返回 MCP 目录
public公开dns本地运行

email-mcp

Email MCP是一个为AI代理添加电子邮件功能的简单模型上下文协议服务器,支持POP3和SMTP协议,提供收发邮件及管理功能。

article

README

🚀 电子邮件 MCP

电子邮件 MCP 是一个简易的模型上下文协议(MCP)服务器,它为 AI 代理赋予了电子邮件功能,支持 POP3 和 SMTP 协议,能满足邮件的接收与发送需求。

🚀 快速开始

电子邮件 MCP 为 AI 代理集成了电子邮件功能,通过简单配置和使用相关工具,即可实现邮件的收发、查询和删除等操作。

✨ 主要特性

  • 为 AI 代理添加电子邮件功能,支持 POP3 和 SMTP 协议。
  • 提供多种工具函数,方便连接的 LLM 进行邮件的查询、获取、删除和发送操作。

📦 安装指南

要在 Claude Desktop 上安装,需要在开发者配置文件中添加以下内容:

{
    "mcpServers": {
        "mcp_email": {
            "command": "uv",
            "args": [
                "--directory",
                "/Absolute/path/to/server/directory",
                "run",
                "main.py"
            ],
            "env": {
                "EMAIL_USER": "电子邮件账户用户名",
                "EMAIL_PASS": "电子邮件账户密码",
                "POP3_SERVER": "POP3 服务器地址",
                "POP3_PORT": "POP3 服务器端口号",
                "SMTP_SERVER": "SMTP 服务器地址",
                "SMTP_PORT": "SMTP 服务器端口号"
            }
        }
    }
}

⚠️ 重要提示

第二个参数应为 MCP_EMAIL 文件夹的绝对路径。对于 Windows 用户,假设 Python 已经设置在 Path 变量中。对于 Windows 安装,反斜杠需要转义。最后,环境变量应包含以便通过 POP3 和 SMTP 接收和发送电子邮件。

💻 使用示例

基础用法

以下是连接的 LLM 可以使用的工具函数示例:

# 获取当前存储在选定邮箱中的所有邮件的消息 ID 和头信息
message_ids_and_headers = pollEmails()

# 获取指定 ID 的邮件消息 ID 和正文内容
specific_emails = getEmailsById(['id1', 'id2'])

# 根据 ID 删除当前收件箱中的电子邮件
deleteEmailsById(['id3', 'id4'])

# 发送一条纯文本格式的电子邮件
sendTextEmail('sender@example.com', ['recipient1@example.com', 'recipient2@example.com'], 'Test Subject', 'This is a test email.')

# 发送一条 HTML 格式的电子邮件
sendHtmlEmail('sender@example.com', ['recipient1@example.com', 'recipient2@example.com'], 'Test HTML Subject', '<p>This is a test HTML email.</p>')

高级用法

在实际应用中,可以结合多个工具函数实现更复杂的邮件处理逻辑。例如,先查询所有邮件,然后筛选出特定主题的邮件并删除:

# 获取所有邮件的消息 ID 和头信息
all_emails = pollEmails()

# 筛选出主题包含特定关键词的邮件 ID
target_ids = []
for email in all_emails:
    if 'specific_keyword' in email['subject']:
        target_ids.append(email['id'])

# 删除筛选出的邮件
deleteEmailsById(target_ids)

📚 详细文档

工具函数说明

| 工具函数 | 功能描述 | 输入参数 | 输出 | | ---- | ---- | ---- | ---- | | pollEmails() | 返回当前存储在选定邮箱中的所有邮件的消息 ID 和头信息 | 无 | 包含字典对象的 list | | getEmailsById(ids: list) | 返回指定 ID 的邮件消息 ID 和正文内容 | 需要获取的所有邮件的 ID 列表 | 包含字典对象的 list | | deleteEmailsById(ids: list) | 根据 ID 删除当前收件箱中的电子邮件 | 需要删除的邮件的 ID 列表 | 无 | | sendTextEmail(fromAddress: str, toAddresses: list, subject: str, body: str) | 通过 SMTP 发送一条纯文本格式的电子邮件 | 发件人地址、收件人地址列表、主题文本、邮件正文内容 | 无 | | sendHtmlEmail(fromAddress: str, toAddresses: list, subject: str, body: str) | 通过 SMTP 发送一条 HTML 格式的电子邮件 | 发件人地址、收件人地址列表、主题文本、HTML 格式的内容正文 | 无 |

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端