Token导航 LogoToken导航TokenDH.com
MCP Icloud Email logo
办公协作stdio官方级别未说明来源级核验

MCP Icloud Email

MCP Server

一个通过IMAP和SMTP协议为AI助手提供完整iCloud邮件访问功能的MCP服务器,支持搜索、阅读、发送、回复、组织和管理邮件。

工具数

14

提示词数

0

GitHub Stars

0

资源数

0
邮件服务邮件管理GoClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

roygabriel

提供方

roygabriel

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run \

详细介绍

Icloud电子邮件MCP服务器

A. 模型上下文协议 该服务器允许AI助手通过IMAP和SMTP完全访问Apple iCloud Mail。搜索、阅读、发送、回复、组织和管理您的iCloud邮箱——所有这些都可以从Claude或任何兼容MCP的客户端完成。

用Go和the mcp-go SDK。作为Linux、macOS和Windows的单个静态二进制文件发布。

______________________________________________________________________

目录

______________________________________________________________________

特性

电子邮件操作

  • 使用日期范围、阅读状态和文本查询过滤器搜索和列出电子邮件
  • 检索完整的电子邮件内容,包括正文、标题和附件元数据
  • 发送支持CC、BCC和HTML的新电子邮件
  • 回复电子邮件,回复所有支持
  • 发送前保存草稿以供审阅
  • 按文件名下载附件(到磁盘或以base64格式)

邮箱管理

  • 列出、创建和删除邮箱文件夹(包括嵌套文件夹)
  • 在文件夹之间移动电子邮件
  • 将电子邮件标记为已读或未读
  • 用可定制的颜色标记电子邮件以进行跟进
  • 删除电子邮件(移至垃圾箱或永久)
  • 在不获取内容的情况下计数匹配过滤器的电子邮件

可操作的

  • 具有互斥保护的线程安全IMAP访问
  • 具有UUID请求相关性的结构化JSON日志记录
  • 每次工具调用时60秒超时中间件
  • 输入验证:防止路径遍历、大小限制、文件夹/ID清理
  • 用于客户端安全的MCP工具注释(只读、破坏性、幂等)
  • 具有测试、linting和漏洞扫描的CI管道

______________________________________________________________________

快速开始

# Install
go install github.com/rgabriel/mcp-icloud-email@latest

# Set credentials (app-specific password, not your main iCloud password)
export ICLOUD_EMAIL="you@icloud.com"
export ICLOUD_PASSWORD="xxxx-xxxx-xxxx-xxxx"

# Run
mcp-icloud-email

或者从以下网址下载预构建的二进制文件 发布 页面。

______________________________________________________________________

先决条件

  • 转到1.21+ -- 安装 (仅在从源构建时需要)
  • Icloud帐户 启用了双因素身份验证
  • 应用程序特定密码 --IMAP/SMTP访问所需

生成特定于应用程序的密码

  1. 首选 appleid.apple.com 并登录
  2. 导航到 登录和安全 > 应用程序特定密码
  3. 点击 生成特定于应用程序的密码
  4. 输入标签(例如“MCP电子邮件服务器”)并单击 创建
  5. 复制生成的密码(xxxx-xxxx-xxxx-xxxx)并安全地存放

笔记:

  • 您的Apple ID必须启用双因素身份验证
  • 您最多可以创建25个活动应用程序特定密码
  • 更改您的主Apple ID密码会撤销所有特定于应用程序的密码
  • 切勿使用iCloud主密码访问IMAP/SMTP

______________________________________________________________________

安装

来源

git clone https://github.com/rgabriel/mcp-icloud-email.git
cd mcp-icloud-email
make build

使用 go install

go install github.com/rgabriel/mcp-icloud-email@latest

码头工人

docker build -t mcp-icloud-email .

docker run \
  -e ICLOUD_EMAIL="you@icloud.com" \
  -e ICLOUD_PASSWORD="xxxx-xxxx-xxxx-xxxx" \
  mcp-icloud-email

Docker镜像使用多阶段构建 无发行版 基本映像,并以非root用户身份运行。

预构建二进制文件

从以下网址下载适用于您平台的二进制文件 发布 页面。二进制文件可用于:

平台架构二进制
Linuxx86_64mcp-icloud-email-linux-amd64
LinuxARM64mcp-icloud-email-linux-arm64
macOS英特尔mcp-icloud-email-macos-amd64
macOS苹果硅mcp-icloud-email-macos-arm64
Windowsx86_64mcp-icloud-email-windows-amd64.exe

SHA256校验和与每个二进制一起提供。

______________________________________________________________________

配置

服务器需要两个环境变量:

变量必填描述
ICLOUD_EMAIL您的iCloud电子邮件地址(Apple ID)
ICLOUD_PASSWORD来自appleid.apple.com的特定于应用程序的密码
LOG_LEVEL记录详细程度: DEBUG, INFO (默认), WARN, ERROR

您可以将这些设置为环境变量,也可以将它们放置在 .env 文件:

cp .env.example .env
# Edit .env with your credentials

______________________________________________________________________

使用Claude Desktop

将服务器添加到Claude Desktop配置文件中。

macOS -- ~/Library/Application Support/Claude/claude_desktop_config.json

Linux -- ~/.config/claude/claude_desktop_config.json

视窗 -- %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "icloud-email": {
      "command": "/path/to/mcp-icloud-email",
      "env": {
        "ICLOUD_EMAIL": "you@icloud.com",
        "ICLOUD_PASSWORD": "xxxx-xxxx-xxxx-xxxx"
      }
    }
  }
}

保存后重新启动Claude Desktop。

______________________________________________________________________

可用工具

服务器公开了14个MCP工具。每个工具都包含模式约束和注释,指示它是只读的、破坏性的还是幂等的。

搜索邮件

使用可选过滤器搜索和列出电子邮件。为了提高效率,返回电子邮件标题(不是全文)。

参数类型默认值说明
querystring主题/正文的搜索词
folder字符串INBOX要搜索的邮箱文件夹
last_days整数30仅显示最近N天的电子邮件
limit整数50最多可返回的电子邮件数(最多200封)
offset整数0跳过前N个结果(用于分页)
unread_only布尔值false仅返回未读电子邮件
sincestring开始日期(ISO 8601)
beforestring结束日期(ISO 8601)

响应包括 count (返回), total (在偏移/限制之前匹配)和一系列电子邮件摘要。

get_email

检索完整的电子邮件内容,包括正文、HTML、标题和附件列表。

参数类型默认值说明
email_id字符串*(必填)*电子邮件UID
folder字符串INBOX邮箱文件夹

send_邮件

撰写并发送一封新电子邮件。

参数类型默认值说明
to字符串/数组*(必填)*收件人地址
subject字符串*(必填)*主题行
body字符串*(必填)*电子邮件正文
cc字符串/数组CC地址
bcc字符串/数组BCC地址
html布尔值false正文是否为HTML

回复_电子邮件

回复现有电子邮件。自动设置“答复”和“引用”标题。

参数类型默认值说明
email_id字符串*(必填)*要回复的电子邮件UID
body字符串*(必填)*回复正文
folder字符串INBOX包含原始电子邮件的文件夹
reply_all布尔值false回复所有收件人
html布尔值false正文是否为HTML

草稿_邮件

将电子邮件另存为草稿。支持带有自动标头线程的回复草稿。

参数类型默认值说明
to字符串/数组*(必填)*收件人地址
subject字符串*(必填)*主题行
body字符串*(必填)*电子邮件正文
cc字符串/数组CC地址
bcc字符串/数组BCC地址
html布尔值false正文是否为HTML
reply_to_idstring回复草稿的原始电子邮件ID
folder字符串INBOX原始电子邮件文件夹(用于回复)

删除电子邮件

通过将电子邮件移至垃圾箱删除,或永久删除。

参数类型默认值说明
email_id字符串*(必填)*电子邮件UID
folder字符串INBOX邮箱文件夹
permanent布尔值false永久删除而不是丢弃

move_mail

将电子邮件从一个文件夹移动到另一个文件夹。

参数类型默认值说明
email_id字符串*(必填)*电子邮件UID
from_folder字符串INBOX源文件夹
to_folder字符串*(必填)*目标文件夹

mark_read

更改电子邮件的已读/未读状态。

参数类型默认值说明
email_id字符串*(必填)*电子邮件UID
folder字符串INBOX邮箱文件夹
read布尔值truetrue 为了标记已读, false 未读

flag_mail

用可选颜色标记电子邮件以进行跟进。

参数类型默认值说明
email_id字符串*(必填)*电子邮件UID
flag字符串*(必填)*follow-up, important, deadline,或 none
folder字符串INBOX邮箱文件夹
colorstringred, orange, yellow, green, blue, purple

flagnone 删除所有标志。

计数_邮件

在不下载邮件内容的情况下,统计与过滤器匹配的电子邮件。

参数类型默认值说明
folder字符串INBOX邮箱文件夹
last_daysinteger仅从最近N天开始计数
unread_only布尔值false只计算未读

list_folders

列出所有可用的邮箱文件夹。不接受任何参数。

创建文件夹

创建新的邮箱文件夹。

参数类型默认值说明
name字符串*(必填)*文件夹名称
parentstring嵌套的父文件夹(例如。 Work/Projects)

删除文件夹

删除邮箱文件夹。非空文件夹需要明确确认。

参数类型默认值说明
name字符串*(必填)*文件夹名称
force布尔值false即使文件夹中包含电子邮件,也要删除

无法删除系统文件夹(收件箱、已发送、回收站)。

获取附件

按文件名下载电子邮件附件。

参数类型默认值说明
email_id字符串*(必填)*电子邮件UID
filename字符串*(必填)*附件文件名
folder字符串INBOX邮箱文件夹
save_pathstring要保存到的文件路径(如果省略,则返回base64)

______________________________________________________________________

使用大型收件箱

服务器使用服务器端的IMAP SEARCH命令,因此在下载任何数据之前,邮件服务器上会进行过滤。默认设置已针对大型邮箱进行了调整:

  • search_emails 默认为过去30天,限制为50天
  • count_emails 返回计数而不获取消息内容
  • get_email 按需加载单个消息的全文内容

推荐工作流程:

  1. 使用 count_emails 检查有多少电子邮件符合您的条件
  2. 调整 last_days, since/before,或 unread_only 缩小结果
  3. 使用 search_emails 随着 offsetlimit 用于分页
  4. 使用 get_email 仅适用于您需要完整阅读的特定消息

______________________________________________________________________

发展

建筑

make build          # Build binary
make test           # Run tests with race detector
make lint           # Run golangci-lint
make vet            # Run go vet
make vuln           # Run govulncheck
make all            # vet + lint + test + build
make docker         # Build Docker image
make tools          # Install dev tools (golangci-lint, govulncheck)

本地运行

export ICLOUD_EMAIL="you@icloud.com"
export ICLOUD_PASSWORD="xxxx-xxxx-xxxx-xxxx"
make run

测试

该项目包括78多个表驱动测试,涵盖所有工具处理程序、输入验证和错误路径。测试使用模拟实现 EmailServiceEmailSender 接口——不需要实时IMAP/SMTP连接。

make test

MCP检验员测试

使用 MCP检查员 以交互方式测试服务器:

npx @modelcontextprotocol/inspector mcp-icloud-email

CI管道

每一次推动 maindev 每个pull请求都会运行:

  • go vetgo test -race --正确性和数据竞争检测
  • golangci-lint --静态分析(errcheck、govet、staticcheck、gosec、gocritic等)
  • govulncheck --已知漏洞扫描

标签发布(v*.*.*)使用SHA256校验和触发自动跨平台构建。

______________________________________________________________________

建筑

mcp-icloud-email/
  main.go              Server setup, tool registration, middleware chain
  config/config.go     Environment variable loading and validation
  imap/client.go       IMAP client (imap.mail.me.com:993, TLS)
  smtp/client.go       SMTP client (smtp.mail.me.com:587, STARTTLS)
  tools/
    interfaces.go      EmailReader, EmailWriter, EmailService, EmailSender
    helpers.go         Address parsing, shared utilities
    validate.go        Input validation (paths, folders, IDs, sizes)
    handlers_test.go   78+ table-driven tests with mocks
    .go          One file per tool handler (14 files)

中间件链: 每个工具调用都经过 logging -> timeout -> handler日志中间件分配UUID请求ID,并记录工具名称、持续时间和结果。超时中间件强制执行60秒的最后期限。

螺纹安全: IMAP客户端使用 sync.Mutex 以序列化访问。内部方法(小写)假设调用者持有锁,防止嵌套调用造成死锁,如 DeleteEmail -> moveEmail.

依赖项

包装用途
mcp走MCP SDK——工具注册、stdio传输
转到imap/v2IMAP协议客户端
go消息MIME解析和电子邮件格式
godotenv.env 文件加载
通用唯一标识符消息ID和请求ID生成

______________________________________________________________________

安全

  • 仅限应用程序特定密码 --从不接受或存储您的主iCloud密码
  • TLS无处不在 --端口993上的IMAP(隐式TLS),端口587上的SMTP(STARTTLS)
  • 输入验证 --路径遍历防止、空字节拒绝、IMAP通配符过滤、控制字符拒绝、数字UID验证
  • 大小限制 --10 MB正文,998个字符的主题(根据RFC 2822)
  • 分散Docker镜像 --最小攻击面,以非根模式运行
  • 无第三方数据共享 --服务器在本地运行,仅与iCloud服务器通信
  • 可撤销访问 --可以随时从appleid.apple.com撤销特定于应用程序的密码

永远不要承诺你的 .env 文件到版本控制。这 .gitignore 已经将其排除在外。

______________________________________________________________________

故障排除

认证失败

  • 验证您使用的是特定于应用程序的密码,而不是iCloud主密码
  • 检查您的Apple ID是否启用了双因素身份验证
  • 在appleid.apple.com重新生成新的应用程序特定密码
  • 确认您的电子邮件地址与您的Apple ID匹配

未找到文件夹

  • list_folders 查看您帐户的确切文件夹名称
  • iCloud使用“已删除邮件”而不是“垃圾箱”之类的名称
  • 文件夹名称区分大小写

日期格式无效

  • 使用ISO 8601: 2024-01-15T14:30:00Z
  • 如果不是UTC,请包括时区偏移: 2024-01-15T14:30:00-05:00

超时或响应缓慢

  • 检查您的互联网连接
  • 减少 limit 大型结果集的参数
  • 使用 count_emails 在搜索之前首先衡量结果大小
  • 使用较窄的日期范围 since/beforelast_days

未找到电子邮件

  • 每个文件夹的电子邮件ID(UID)都是唯一的——请确保您在正确的文件夹中查找
  • 自检索ID以来,电子邮件可能已被移动或删除
  • 使用 search_emails 查找当前电子邮件ID

______________________________________________________________________

贡献

欢迎捐款。请在提交pull请求之前打开一个问题来讨论更大的更改。

______________________________________________________________________

许可证

MIT许可证——见 许可证 了解详情。

目录标签

目录标签

邮件服务邮件管理GoClaude本地部署AI助手IMAPSMTP

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

14

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP