iCloud邮件管理服务

一个通过Model Context Protocol (MCP)服务器实现Claude Desktop与iCloud邮箱交互的服务,提供包括阅读、发送和管理邮件在内的完整电子邮件功能。

  • by Lawiak
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Lawiak/icloud-mcp

使用说明

iCloud电子邮件MCP服务器

一个模型上下文协议(MCP)服务器,使Claude Desktop能够与iCloud电子邮件帐户进行交互。此服务器提供完整的电子邮件功能,包括通过您的iCloud帐户阅读、发送和管理电子邮件。

特性

  • 阅读电子邮件 从任何文件夹中删除,同时保留未读状态
  • 发送电子邮件 支持CC收件人和附件
  • 列出电子邮件文件夹 浏览邮箱
  • 创建新文件夹 用于电子邮件组织
  • 移动电子邮件 文件夹之间
  • 搜索电子邮件 在你的邮箱里
  • 管理已读/未读状态 明确地在需要时
  • 过滤未读电子邮件 具体地
  • 测试连接 服务器健康状况

先决条件

  • iCloud帐户 启用应用程序特定密码
  • 码头工人 安装在您的系统上
  • 克劳德桌面 为MCP服务器配置

设置

1.生成iCloud应用程序特定密码

  1. 登录到…… appleid.apple.com
  2. 首选 登录和安全 > 应用程序特定密码
  3. 为“电子邮件MCP服务器”生成新密码
  4. 保存此密码-您需要它进行配置

2.克隆和配置

git clone https://github.com/Lawiak/icloud-mcp.git
cd icloud-mcp

创建环境文件:

cp .env.example .env
nano .env

在中配置您的凭据 .env:

ICLOUD_USERNAME=your.email@icloud.com
ICLOUD_APP_PASSWORD=your-app-specific-password

3.构建Docker容器

docker build -t icloud-mcp-server:latest .

4.配置克劳德桌面

编辑您的Claude Desktop配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json

添加MCP服务器配置:

{
  "mcpServers": {
    "icloud-email": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "--env-file", "/path/to/your/icloud-mcp/.env",
        "icloud-mcp-server:latest",
        "python", "server.py"
      ]
    }
  }
}

用于远程部署 (例如Raspberry Pi),使用SSH:

{
  "mcpServers": {
    "icloud-email": {
      "command": "ssh",
      "args": [
        "user@your-server-ip",
        "docker", "run", "-i", "--rm",
        "--env-file", "/path/to/icloud-mcp/.env",
        "icloud-mcp-server:latest",
        "python", "server.py"
      ]
    }
  }
}

5.重新启动克劳德桌面

关闭并重新启动Claude Desktop以加载新的MCP服务器配置。

用法

配置后,您可以要求Claude Desktop:

  • “阅读我的最新电子邮件”(保留未读状态,显示预览)
  • “完整阅读我的电子邮件”(完整的电子邮件正文)
  • “完整阅读电子邮件ID 123”(特定电子邮件的完整内容)
  • “仅显示我的未读电子邮件”
  • “发送电子邮件至john@example.com主题为“会议”,消息为“你好!'"
  • “发送带有附件的电子邮件”(使用base64编码内容)
  • “从本地路径发送包含文件的电子邮件”(如果文件可访问)
  • “将电子邮件ID 123标记为已读”
  • “将电子邮件ID 456标记为未读”
  • “显示我的电子邮件文件夹”
  • “将电子邮件ID 123从收件箱移动到存档”
  • “创建一个名为“项目”的新文件夹”

电子邮件内容选项

预览模式 (默认):为了快速扫描,电子邮件正文被截断为200个字符。

全内容模式:获取完整的电子邮件内容,包括:

  • 全文和HTML正文内容
  • 附件信息(文件名、类型、大小)
  • 完整的收件人详细信息(收件人、抄送、密件抄送)
  • 其他电子邮件标题
  • 所有内容无截断

电子邮件附件

发送附件:服务器支持多种发送附件的方法:

  1. Base64编码内容:用于编程或当您有文件数据时

    • 支持所有文件类型(PDF、图像、文档等)
    • 每个附件的大小限制为25MB
    • 自动MIME类型检测
  2. 本地文件路径:适用于Docker容器可访问的文件

    • 要求文件位于Docker部署的挂载卷中
    • 自动文件验证和编码

附件格式:文本文件、PDF、图像、办公文档、档案等。

未读状态管理

重要:默认情况下,此服务器会保留您的电子邮件的未读状态。当Claude Desktop读取电子邮件时,它们在您的iCloud帐户中保持未读状态,除非您明确要求将其标记为已读。

服务器配置

iCloud电子邮件设置

  • 伺服器:imap.mail.me.com:993(SSL)
  • SMTP服务器:smtp.mail.me.com:587(StartTLS)

环境变量

  • ICLOUD_USERNAME:您的iCloud电子邮件地址
  • ICLOUD_APP_PASSWORD:来自Apple ID的应用程序特定密码

故障排除

连接问题

  1. 验证您的应用程序特定密码是否正确
  2. 确保您的Apple ID启用了双因素身份验证
  3. 检查Docker容器是否可以访问互联网

Claude桌面问题

  1. 检查Claude Desktop日志中的连接错误
  2. 验证配置中的文件路径是否正确
  3. 确保Docker正在运行且可访问

测试服务器

# Test Docker container directly
docker run --rm --env-file .env icloud-mcp-server:latest python -c "
from server import test_email_connection
print('Connection test completed')
"

安全说明

  • 应用程序特定密码比iCloud主密码更安全
  • 保持你的 .env 文件安全,从不将其提交到版本控制
  • 为了安全起见,Docker容器以非root用户身份运行
  • 所有电子邮件通信都使用加密连接(SSL/TLS)

建筑

此MCP服务器使用:

  • FastMCP 用于模型上下文协议实现
  • Python imaplib/smtplib 用于电子邮件操作
  • 码头工人 用于集装箱化部署
  • STDIO传输 用于克劳德桌面通信

许可证

这个项目是开源的,可以在MIT许可证下使用。