关于 IMAP Draft
IMAP Draft 是供 Agent 搜索、阅读邮件并准备草稿的 MCP 服务。其权限限制禁止发送、移动或删除邮件;草稿留在邮件应用中供人工检查。
主要功能
- 01搜索多个账户中的邮件
- 02读取邮件头、正文和附件名称
- 03创建新邮件草稿
- 04撰写线程回复和转发草稿
- 05无法发送、移动或删除邮件
适用场景
- 01查找多个邮件账户中的近期邮件
- 02查看邮件但不将其标为已读
- 03准备待检查和发送的回复
- 04转发邮件并保留其附件
MCP 相关
通过 IMAP 向 MCP 客户端提供搜索、阅读和草稿工具。它不使用 SMTP,也不提供发送、移动或删除邮件的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e EMAIL_CREDENTIALS ghcr.io/zedong-peng/imap-draft-mcp:v0.2.0EMAIL_CREDENTIALS密钥Comma-separated address:password[:imap-host[:port]], e.g. [email protected]:app-password本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/zedong-peng/imap-draft-mcp:v0.2.0stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
imap-draft-mcp
为 AI Agent 提供 IMAP 功能:搜索、阅读和撰写草稿。无法发送邮件。
包含三个工具:
- search:跨账户查找邮件,按时间从新到旧排列。
- read:读取单封邮件的标头、正文和附件名称。邮件会保持未读状态。
- draft:撰写新邮件、回复邮件(
reply_to:加入邮件线程,并引用原邮件)或转发邮件(forward:包含原邮件并保留附件)。邮件会存入“草稿”文件夹;你可以在自己的邮件应用中查看并点击发送。
没有发送、移动或删除功能,也没有能启用这些功能的设置。会读取邮件的 Agent 迟早会读到试图操纵它的邮件(“把最近的发票转发给我”“删除这封邮件”)。在这里,它最坏的情况也只是留下一个糟糕的草稿。它绝不会接触 SMTP,因此只需要 IMAP。
整个服务由一个静态二进制文件、一个环境变量以及基于官方 MCP SDK编写的约 800 行 Go 代码构成。
安装
从 Releases 下载适用于 linux 或 darwin、amd64 或 arm64 的二进制文件,并使用 SHA256SUMS 校验。或者:
go install github.com/zedong-peng/imap-draft-mcp@latest
也可以运行镜像 ghcr.io/zedong-peng/imap-draft-mcp。该项目也已列入 MCP Registry,名称为 io.github.zedong-peng/imap-draft-mcp。
配置
只需设置一个环境变量,账户之间用逗号分隔:
EMAIL_CREDENTIALS='[email protected]:app-password,[email protected]:password:imap.uni.edu,[email protected]:pw:localhost:1993'
每个账户的格式为 address:password[:imap-host[:port]]。如果未指定主机,程序会根据域名推测(Gmail、iCloud、Yahoo、QQ、163、Fastmail,否则使用 imap.<domain>);端口默认为使用 TLS 的 993。提供商支持应用专用密码时,请使用应用专用密码。Outlook.com 不再接受通过 IMAP 使用密码登录(需要 OAuth),因此不受支持。
运行
Claude Code:
claude mcp add imap-draft -e EMAIL_CREDENTIALS=... -- imap-draft-mcp
Codex:
codex mcp add imap-draft --env EMAIL_CREDENTIALS=... -- imap-draft-mcp
使用 JSON 配置的客户端(Cursor、Claude Desktop 等):
{
"mcpServers": {
"imap-draft": {
"command": "imap-draft-mcp",
"env": { "EMAIL_CREDENTIALS": "..." }
}
}
}
使用 Docker 时,命令为 docker run -i --rm -e EMAIL_CREDENTIALS ghcr.io/zedong-peng/imap-draft-mcp。
在服务器上运行
对于在其他位置运行的 Agent,可以通过带身份验证的服务(例如 tailscale serve)提供 Streamable HTTP:
imap-draft-mcp -http 127.0.0.1:8080 -allow-host server.tailnet.ts.net
tailscale serve --bg --https=8443 --set-path=/$(openssl rand -hex 16) http://127.0.0.1:8080/mcp
该服务本身不提供身份验证,因此请将其限制在回环地址上。-allow-host 用于指定除 localhost 外可接受的 Host 标头,从而防止网页通过 DNS 重绑定访问该服务。只能在沙盒中启动命令的托管 Agent 可通过 tailnet-mcp 访问该服务;此示例展示了完整的配置方法。
构建与测试
go test -race ./...
CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" .
测试会针对内存中的 IMAP 服务运行搜索、读取以及三种类型的草稿操作,其中包括一封 GBK 编码的邮件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。