使用说明
电子邮件MCP服务器
一个Node.js MCP(模型上下文协议)服务器,用于通过SMTP和IMAP发送和读取电子邮件。底层SMTP/IMAP客户端是基于标准的,可以通过更改环境变量指向任何提供者。
最初基于anyrxo/protonmail pro-mcp(麻省理工学院)。大幅修改和扩展。
免责声明: 不隶属于Proton。
快速开始
git clone https://github.com/davidmjerry/email-mcp-server.git
cd email-mcp-server
npm install
npm run build
node dist/index.js
默认情况下,MCP服务器会监听 http://127.0.0.1:3000 并暴露:
GET /sse对于SSE流POST /messages?sessionId=...用于客户端消息
先决条件
- Node.js 18+
- SMTP凭据 (用户名/密码)用于您要发送的邮件帐户
- IMAP访问 对于您要读取的邮件帐户
质子桥(IMAP)
如果使用ProtonMail,您必须在本地运行Proton Bridge并将IMAP指向它。默认值:
- 主持人:
localhost - 端口:
1143
如果网桥使用不同的值,请通过环境变量调整IMAP设置。
环境设置
创建一个 .env 项目根目录中的文件:
# Required: account credentials (used for both SMTP and IMAP)
USERNAME=your-email@example.com
PASSWORD=your-password
# SMTP configuration (defaults shown)
SMTP_HOST=localhost
SMTP_PORT=587
# Optional: Force implicit TLS (true) or STARTTLS (false); defaults based on port
# SMTP_SECURE=false
# Optional: Allow self-signed certs (useful with Proton Bridge)
# SMTP_REJECT_UNAUTHORIZED=false
# IMAP configuration (defaults shown)
IMAP_HOST=localhost
IMAP_PORT=1143
# Optional: Force implicit TLS (true) or STARTTLS (false); defaults to false
# IMAP_SECURE=false
# Optional: Allow self-signed certs (useful with Proton Bridge)
# IMAP_REJECT_UNAUTHORIZED=false
# Optional: Debug logging
DEBUG=true
# Optional: MCP server configuration
MCP_HOST=127.0.0.1
MCP_PORT=3000
# MCP_ALLOWED_HOSTS=example.com,localhost
# Optional: require an MCP auth token (sent via Authorization: Bearer, X-MCP-Token, or ?token=)
# MCP_TOKEN=your-mcp-token
凭据和依赖关系
- SMTP: 任何支持用户名/密码身份验证的SMTP服务器。
- IMAP: 任何支持用户名/密码身份验证的IMAP服务器。
- ProtonMail IMAP需要Proton Bridge。 服务器需要IMAP连接;没有它,只读功能将失败。
ProtonMail兼容性
该项目正式与ProtonMail合作。对于ProtonMail:
- 使用 质子桥 用于IMAP/SMTP访问。
- 将SMTP_HOST设置为localhost,端口1025(通常默认)。
- 将IMAP_HOST设置为localhost,端口1143。
- 使用Proton Bridge的SMTP/IMAP凭据。
安装
npm install
npm run build
用法(MCP层)
启动服务器:
node dist/index.js
客户端通过服务器发送事件(SSE)连接:
GET /sse打开会话POST /messages?sessionId=...发送MCP消息
如果你设置 MCP_TOKEN,客户端必须使用以下方式之一将其包含在内:
Authorization: Bearer <token>X-MCP-Token: <token>?token=<token>查询字符串
可选:systemd服务
创建 /etc/systemd/system/email-mcp.service:
[Unit]
Description=Email MCP Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/path/to/email-mcp-server
ExecStart=/usr/bin/node /path/to/email-mcp-server/dist/index.js
Restart=on-failure
EnvironmentFile=/path/to/email-mcp-server/.env
[Install]
WantedBy=multi-user.target
启用并启动:
sudo systemctl daemon-reload
sudo systemctl enable email-mcp
sudo systemctl start email-mcp
支持的功能
- SMTP发送(文本/HTML)
- 附件(base64)
- 多个收件人(到/cc/bcc)
- 答覆
- 优先级标题
- 读取收据标题
- IMAP文件夹列表和状态
- IMAP分页和搜索
- IMAP已读/未读和带星号的标志
- 移动和删除(通过垃圾文件夹检测)
- 基本分析(联系人数量、交易量趋势)
可用工具
邮件发送
send_email
电子邮件阅读
get_emailsget_email_by_idsearch_emails
文件夹管理
get_folderssync_folders
电子邮件操作
mark_email_readstar_emailmove_emaildelete_email
话题与对话
get_thread
分析与统计
get_email_statsget_email_analytics
系统和维护
get_connection_statussync_emailsclear_cacheget_logs
许可证
MIT许可证。