mcp电子邮件服务器
     ](https://smithery.ai/server/@ai-zerolab/mcp-email-server)
通过MCP服务器的IMAP和SMTP
- Github仓库:
- 文档
安装
手动安装
我们建议使用 紫外线 管理您的环境。
尝试 uvx mcp-email-server@latest ui 配置,并为mcp客户端使用以下配置:
{
"mcpServers": {
"zerolib-email": {
"command": "uvx",
"args": ["mcp-email-server@latest", "stdio"]
}
}
}此软件包在PyPI上可用,因此您可以使用 pip install mcp-email-server
之后,使用ui配置您的电子邮件服务器: mcp-email-server ui
环境变量配置
您还可以使用环境变量配置电子邮件服务器,这对于Jenkins等CI/CD环境特别有用。zerolib电子邮件支持UI配置(通过TOML文件)和环境变量,环境变量优先。
{
"mcpServers": {
"zerolib-email": {
"command": "uvx",
"args": ["mcp-email-server@latest", "stdio"],
"env": {
"MCP_EMAIL_SERVER_ACCOUNT_NAME": "work",
"MCP_EMAIL_SERVER_FULL_NAME": "John Doe",
"MCP_EMAIL_SERVER_EMAIL_ADDRESS": "john@example.com",
"MCP_EMAIL_SERVER_USER_NAME": "john@example.com",
"MCP_EMAIL_SERVER_PASSWORD": "your_password",
"MCP_EMAIL_SERVER_IMAP_HOST": "imap.gmail.com",
"MCP_EMAIL_SERVER_IMAP_PORT": "993",
"MCP_EMAIL_SERVER_SMTP_HOST": "smtp.gmail.com",
"MCP_EMAIL_SERVER_SMTP_PORT": "465"
}
}
}
}可用环境变量
| 变量 | 描述 | 默认值 | 必填 |
|---|---|---|---|
MCP_EMAIL_SERVER_ACCOUNT_NAME | 帐户标识符 | "default" | 没有 |
MCP_EMAIL_SERVER_FULL_NAME | 显示名称 | 电子邮件前缀 | 否 |
MCP_EMAIL_SERVER_EMAIL_ADDRESS | 电子邮件地址 | - | 是 |
MCP_EMAIL_SERVER_USER_NAME | 登录用户名 | 与电子邮件相同 | 否 |
MCP_EMAIL_SERVER_PASSWORD | 电子邮件密码 | - | 是 |
MCP_EMAIL_SERVER_IMAP_HOST | IMAP服务器主机 | - | 是 |
MCP_EMAIL_SERVER_IMAP_PORT | IMAP服务器端口 | 993 | 没有 |
MCP_EMAIL_SERVER_IMAP_SSL | 启用IMAP SSL | true | 没有 |
MCP_EMAIL_SERVER_IMAP_VERIFY_SSL | 验证IMAP SSL证书(禁用自签名) | true | 没有 |
MCP_EMAIL_SERVER_SMTP_HOST | SMTP服务器主机 | - | 是 |
MCP_EMAIL_SERVER_SMTP_PORT | SMTP服务器端口 | 465 | 没有 |
MCP_EMAIL_SERVER_SMTP_SSL | 启用SMTP SSL | true | 没有 |
MCP_EMAIL_SERVER_SMTP_START_SSL | 启用STARTTLS | false | 没有 |
MCP_EMAIL_SERVER_SMTP_VERIFY_SSL | 验证SSL证书(禁用自签名) | true | 没有 |
MCP_EMAIL_SERVER_ENABLE_ATTACHMENT_DOWNLOAD | 启用附件下载 | false | 没有 |
MCP_EMAIL_SERVER_SAVE_TO_SENT | 将已发送的电子邮件保存到IMAP“已发送”文件夹 | true | 没有 |
MCP_EMAIL_SERVER_SENT_FOLDER_NAME | 自定义已发送文件夹名称(如果未设置,则自动检测) | - | 否 |
HTTP传输安全
HTTP传输(sse 和 streamable-http)验证请求 Host 和 Origin 标头,以防止DNS重新绑定攻击。默认情况下允许本地主机。对于Docker网络或反向代理,显式配置预期的服务名称。
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_HOST | HTTP绑定主机 streamable-http | localhost |
MCP_PORT | HTTP绑定端口 streamable-http | 9557 |
MCP_ALLOWED_HOSTS | 允许逗号分隔 Host 价值观。支持 host:* 端口 | 本地主机 |
MCP_ALLOWED_ORIGINS | 允许逗号分隔 Origin 价值观。支持 host:* 端口 | 本地主机来源 |
MCP_ENABLE_DNS_REBINDING_PROTECTION | 启用DNS重新绑定保护 | true |
Docker编写示例:
services:
mcp-email-server:
image: ghcr.io/ai-zerolab/mcp-email-server:latest
command: ["streamable-http"]
environment:
MCP_HOST: 0.0.0.0
MCP_PORT: 9557
MCP_ALLOWED_HOSTS: mcp-email-server:*,localhost:*,127.0.0.1:*
MCP_ALLOWED_ORIGINS: http://mcp-email-server:*,http://localhost:*,http://127.0.0.1:*裸主机条目,如 MCP_ALLOWED_HOSTS=mcp-email-server 还允许该主机上的任何端口。 MCP_ENABLE_DNS_REBINDING_PROTECTION=false, MCP_ALLOWED_HOSTS=*,或 MCP_ALLOWED_ORIGINS=* 完全禁用主机和源验证。仅在孤立的本地开发环境中使用这些选项。
满配列表中的IPv6文字应使用括号表示法,例如 [::1]:* 和 http://[::1]:*.
启用附件下载
默认情况下,出于安全原因,禁用下载电子邮件附件。要启用此功能,您可以:
选项1:环境变量
{
"mcpServers": {
"zerolib-email": {
"command": "uvx",
"args": ["mcp-email-server@latest", "stdio"],
"env": {
"MCP_EMAIL_SERVER_ENABLE_ATTACHMENT_DOWNLOAD": "true"
}
}
}
}选项2:TOML配置
添加 enable_attachment_download = true 到您的TOML配置文件(~/.config/zerolib/mcp_email_server/config.toml):
enable_attachment_download = true
[[emails]]
# ... your email configuration启用后,您可以使用 download_attachment 将电子邮件附件保存到指定路径的工具。
将已发送的电子邮件保存到IMAP已发送文件夹
默认情况下,已发送的电子邮件会自动保存到您的IMAP“已发送”文件夹中。这可确保通过MCP服务器发送的电子邮件显示在您的电子邮件客户端(Thunderbird、webmail等)中。
服务器自动检测常见的已发送文件夹名称: Sent, INBOX.Sent, Sent Items, Sent Mail, [Gmail]/Sent Mail.
指定自定义“已发送”文件夹名称 (适用于文件夹名称不标准的提供商):
选项1:环境变量
{
"mcpServers": {
"zerolib-email": {
"command": "uvx",
"args": ["mcp-email-server@latest", "stdio"],
"env": {
"MCP_EMAIL_SERVER_SENT_FOLDER_NAME": "INBOX.Sent"
}
}
}
}选项2:TOML配置
[[emails]]
account_name = "work"
save_to_sent = true
sent_folder_name = "INBOX.Sent"
# ... rest of your email configuration禁用保存到“已发送”文件夹,set MCP_EMAIL_SERVER_SAVE_TO_SENT=false 或 save_to_sent = false 在您的TOML配置中。
自签名证书(例如ProtonMail桥)
如果您使用的是具有自签名证书的本地邮件服务器(如ProtonMail Bridge),则需要禁用SSL证书验证:
{
"mcpServers": {
"zerolib-email": {
"command": "uvx",
"args": ["mcp-email-server@latest", "stdio"],
"env": {
"MCP_EMAIL_SERVER_IMAP_VERIFY_SSL": "false",
"MCP_EMAIL_SERVER_SMTP_VERIFY_SSL": "false"
}
}
}
}或者在TOML配置中:
[[emails]]
account_name = "protonmail"
# ... other settings ...
[emails.incoming]
verify_ssl = false
[emails.outgoing]
verify_ssl = false对于单独的IMAP/SMTP凭据,您还可以使用:
MCP_EMAIL_SERVER_IMAP_USER_NAME/MCP_EMAIL_SERVER_IMAP_PASSWORDMCP_EMAIL_SERVER_SMTP_USER_NAME/MCP_EMAIL_SERVER_SMTP_PASSWORD
然后你可以试试 克劳德桌面版。如果要将其与其他mcp客户端集成,请运行 $which mcp-email-server 对于路径,请在客户端中进行配置,如下所示:
{
"mcpServers": {
"zerolib-email": {
"command": "{{ ENTRYPOINT }}",
"args": ["stdio"]
}
}
}如果 docker 是可用的,您可以尝试使用docker镜像,但您可能需要在客户端中使用 tools 通过 MCP。默认配置路径为 ~/.config/zerolib/mcp_email_server/config.toml
{
"mcpServers": {
"zerolib-email": {
"command": "docker",
"args": ["run", "-it", "ghcr.io/ai-zerolab/mcp-email-server:latest"]
}
}
}通过Smithery安装
通过以下方式自动安装Claude Desktop的电子邮件服务器 铁匠铺:
npx -y @smithery/cli install @ai-zerolab/mcp-email-server --client claude用法
回复电子邮件
要使用正确的线程回复电子邮件(使其出现在电子邮件客户端的同一对话中):
- 首先,获取原始电子邮件以获取其
message_id:
emails = await get_emails_content(account_name="work", email_ids=["123"])
original = emails.emails[0]- 使用发送您的回复
in_reply_to和references:
await send_email(
account_name="work",
recipients=[original.sender],
subject=f"Re: {original.subject}",
body="Thank you for your email...",
in_reply_to=original.message_id,
references=original.message_id,
)这 in_reply_to 参数设置 In-Reply-To 标题,以及 references 设置 References 头球两者都被电子邮件客户端用来正确地进行对话。
发展
此项目使用以下方式管理 紫外线.
尝试 make install 安装虚拟环境并安装预提交挂钩。
使用 uv run mcp-email-server 为了地方发展。
发布新版本
有关更多详细信息,请参阅 这里.
