mcpField
I
IMAP Draft

IMAP Draft

本地服务
github.com/zedong-peng通信协作04 天前更新

关于 IMAP Draft

IMAP Draft 是供 Agent 搜索、阅读邮件并准备草稿的 MCP 服务。其权限限制禁止发送、移动或删除邮件;草稿留在邮件应用中供人工检查。

主要功能

  1. 01搜索多个账户中的邮件
  2. 02读取邮件头、正文和附件名称
  3. 03创建新邮件草稿
  4. 04撰写线程回复和转发草稿
  5. 05无法发送、移动或删除邮件

适用场景

  1. 01查找多个邮件账户中的近期邮件
  2. 02查看邮件但不将其标为已读
  3. 03准备待检查和发送的回复
  4. 04转发邮件并保留其附件

MCP 相关

通过 IMAP 向 MCP 客户端提供搜索、阅读和草稿工具。它不使用 SMTP,也不提供发送、移动或删除邮件的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"zedong-peng-imap-draft": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"EMAIL_CREDENTIALS",
"ghcr.io/zedong-peng/imap-draft-mcp:v0.2.0"
],
"env": {
"EMAIL_CREDENTIALS": "<EMAIL_CREDENTIALS>"
}
}
}
}
启动命令docker run -i --rm -e EMAIL_CREDENTIALS ghcr.io/zedong-peng/imap-draft-mcp:v0.2.0
需要配置的环境变量
EMAIL_CREDENTIALS密钥Comma-separated address:password[:imap-host[:port]], e.g. [email protected]:app-password

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/zedong-peng/imap-draft-mcp:v0.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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 编码的邮件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。