电子邮件 MCP 是一个简易的模型上下文协议(MCP)服务器,它为 AI 代理赋予了电子邮件功能,支持 POP3 和 SMTP 协议,能满足邮件的接收与发送需求。
电子邮件 MCP 为 AI 代理集成了电子邮件功能,通过简单配置和使用相关工具,即可实现邮件的收发、查询和删除等操作。
要在 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', 'This is a test HTML email.
')
在实际应用中,可以结合多个工具函数实现更复杂的邮件处理逻辑。例如,先查询所有邮件,然后筛选出特定主题的邮件并删除:
# 获取所有邮件的消息 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 格式的内容正文 | 无 |