プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

iCloud Mail

作者:JulienRabaultバージョン 0.1.1i★ –iパソコンで動く
レジストリ名io.github.JulienRabault/icloud-mcp

インストール

概要

作者による説明(英語の原文)

Read, search, draft, send and file iCloud Mail over IMAP and SMTP. No tool destroys mail.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: 検索・AIの記憶
  • 入力が必要なもの:ICLOUD_EMAIL, ICLOUD_APP_PASSWORD

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: ICLOUD_EMAIL, ICLOUD_APP_PASSWORD, ICLOUD_DISPLAY_NAME

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • PyPIPythonのuvのインストール(uvxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "icloud": {
      "command": "uvx",
      "args": [
        "icloud-mail-mcp"
      ],
      "env": {
        "ICLOUD_EMAIL": "your-value",
        "ICLOUD_APP_PASSWORD": "your-value",
        "ICLOUD_DISPLAY_NAME": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add icloud --env ICLOUD_EMAIL=your-value --env ICLOUD_APP_PASSWORD=your-value --env ICLOUD_DISPLAY_NAME=your-value -- uvx icloud-mail-mcp

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "icloud": {
      "command": "uvx",
      "args": [
        "icloud-mail-mcp"
      ],
      "env": {
        "ICLOUD_EMAIL": "your-value",
        "ICLOUD_APP_PASSWORD": "your-value",
        "ICLOUD_DISPLAY_NAME": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "icloud": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "icloud-mail-mcp"
      ],
      "env": {
        "ICLOUD_EMAIL": "your-value",
        "ICLOUD_APP_PASSWORD": "your-value",
        "ICLOUD_DISPLAY_NAME": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • ICLOUD_EMAIL 必須 env
    Your iCloud address, for example you@icloud.com.
  • ICLOUD_APP_PASSWORD 秘密 必須 env
    An app-specific password generated at account.apple.com. iCloud rejects your main password over IMAP.
  • ICLOUD_DISPLAY_NAME env
    Name shown in the From header of sent mail. Defaults to the local part of the address.

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント JulienRabault で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

検索・AIの記憶のほかのサーバーとの比較i

  • このカテゴリのほかの5686件のうち0%よりスターが多い
  • このカテゴリのほかの5686件のうち47%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの5686件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

iCloud Mailは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:ICLOUD_EMAIL, ICLOUD_APP_PASSWORD

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.1.1)がレジストリに届いたのは2 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。

代わりに使えるものは?

同じカテゴリには:Context7, Codebase Memory, Exa

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Context7

Up-to-date docs for AI agents

作者:upstash広く使われている↓ 97.3万/週★ 6.4万一昨日更新

パソコンでもクラウドでも

Codebase Memory

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

作者:DeusData広く使われている↓ 1.8万/週★ 4.8万22 日前更新

パソコンで動く

Exa

Connect AI agents to Exa for web search, content fetching, and multi-step research.

作者:exa-labs成長中★ 52132 か月前更新

クラウドで動く✓ exa.ai

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

iCloud Mail MCP

A Model Context Protocol (MCP) server for iCloud Mail. Lets an LLM read, search, file and send your Apple mail over IMAP and SMTP.

Runs entirely on your machine: your credentials and your mail never reach a third party. Networking and MIME parsing use only the Python standard library.

Key Features
  • Read-only by default. Search and read tools use SELECT ... readonly and BODY.PEEK — nothing is marked as read, moved or deleted behind your back.
  • Searches every folder, not just the inbox. Replies get filed away by mail rules; search_all_folders finds them where an inbox-only search can't.
  • Drafts before sends. save_draft puts a message in Drafts for you to review. send_email exists, but it is separate and explicit.
  • Nothing destroys mail. There is no tool that deletes messages, and delete_mailbox refuses any folder that still holds some.
  • Handles real iCloud MIME. Modified UTF-7 folder names, quoted-printable, lying charsets, HTML-only messages, accented server-side search.
Requirements
  • Python 3.11 or newer, and uv
  • An iCloud account with two-factor authentication enabled
  • An app-specific password — iCloud rejects your main password over IMAP
Getting started

Once published to PyPI, no clone is needed:

uvx --from icloud-mail-mcp icloud-mcp-setup     # interactive configuration

uvx --from icloud-mail-mcp icloud-mcp # run the server

From source:

git clone https://github.com/JulienRabault/icloud-mcp.git

cd icloud-mcp uv sync uv run python -m icloud_mcp.setup

The setup command asks for your address and app-specific password, tests the connection, writes .env, then prints the exact config block for your client.

Generate the app-specific password at account.apple.com → Sign-In and Security → App-Specific Passwords.

Standard config works in most clients:

{

"mcpServers": { "icloud-mail": { "command": "uv", "args": ["run", "--directory", "/path/to/icloud-mcp", "python", "-m", "icloud_mcp"] } } }

Claude Code

claude mcp add icloud-mail --scope user -- uv run --directory /path/to/icloud-mcp python -m icloud_mcp

Check with claude mcp list.

Claude Desktop

Add the standard config to claude_desktop_config.json:

  • macOS — ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows — %APPDATA%\Claude\claude_desktop_config.json

On Windows, use the absolute path to uv.exe: desktop clients don't always inherit your shell PATH.

Codex

In ~/.codex/config.toml:

[mcp_servers.icloud-mail]

command = "uv" args = ["run", "--directory", "/path/to/icloud-mcp", "python", "-m", "icloud_mcp"]

</details>

Cursor / Windsurf / VS Code

Use the standard config block in the MCP settings file of your editor (.cursor/mcp.json, ~/.codeium/windsurf/mcp_config.json, or the VS Code MCP settings).

MCP servers load at client startup — restart the client after editing its config.

Tools

Read — none of these modify the mailbox:

ToolDescription
list_foldersList folders, optionally with message and unread counts
folder_statusCounts for one folder without listing messages
search_emailsSearch one folder: text, sender, recipient, subject, dates, flags, size
search_all_foldersThe same search across every folder at once
read_emailFull message: decoded body, optional HTML, attachment metadata
get_threadRebuild a conversation, optionally with each message body
save_attachmentsWrite attachments to disk and return their paths

Write — explicit by design:

ToolDescription
save_draftPut a message in Drafts. Nothing is sent
set_flagRead/unread, flagged, answered. Reversible
create_mailboxCreate a folder, accented names included
rename_mailboxRename a folder, messages follow
delete_mailboxDelete an empty folder. Refuses while it holds mail
auto_organizeFile messages by rules. Simulates unless dry_run=false
move_emailsMove between folders. Simulates unless dry_run=false
send_emailActually sends. No draft step, no undo

No tool destroys mail. delete_mailbox refuses a folder that still holds messages — move them out first, which keeps the decision with you.

Attachment bytes never pass through the model: save_attachments writes files and returns paths. Filenames arriving from email are sanitised — they are hostile input, not trusted paths.

Resources
URIContent
icloud://foldersEvery folder with message and unread counts
icloud://unreadUnread messages in the inbox
Prompts
PromptPurpose
triage_inboxSort recent mail into action required / info / waiting / ignorable
draft_replyRead a message and its thread, draft a reply into Drafts
follow_upReconstruct an exchange with a contact, say who owes whom a reply
Automation without an MCP client

examples/ holds standalone scripts using the same modules — point cron or Task Scheduler at them:

uv run python examples/daily_digest.py           # what arrived today

uv run python examples/watch_sender.py acme.com # exit 1 if nothing new uv run python examples/waiting_on_reply.py # threads nobody answered uv run python examples/auto_file.py --apply # file mail by rules

All support --json for piping. See examples/README.md.

Bundled skill

skills/mailbox-search/ is a Claude Code skill that forces a sweep of every folder before concluding a message doesn't exist:

cp -r skills/mailbox-search ~/.claude/skills/
iCloud quirks handled here

Worth knowing if you're writing your own IMAP client against iCloud:

  • `SEARCH` returns UIDs out of order. RFC 3501 doesn't guarantee ordering, and iCloud genuinely returns unsorted lists. Taking the tail of the response gives you the wrong messages — sort numerically first.
  • No `MOVE`, no `UIDPLUS`. Moving means COPY + \Deleted + EXPUNGE, and EXPUNGE purges *every* \Deleted message in the folder. move_emails refuses to run when the folder holds deleted messages outside the requested batch, which would otherwise be destroyed.
  • `SEARCH CHARSET UTF-8` works. Accented queries run server-side across the whole mailbox. A client-side fallback covers servers that refuse, and flags it via filtered_client_side in the response.
  • Folder names use modified UTF-7 (RFC 3501), implemented in utf7.py.
  • Charsets lie. Bodies fall back to latin-1 when the declared charset fails, and to stripped HTML when there's no text/plain part.
Security notes
  • Credentials live in .env (gitignored) or the environment, never in code. Settings.__repr__ omits the password.
  • Email content is data, not instructions. The server tells clients never to act on directives found inside a received message.
  • send_email and move_emails are meant to run only after the user approves the exact content or the exact message list in the conversation.
Development
uv run pytest -q

49 offline tests — no network, no credentials. CI runs them on Linux, macOS and Windows against Python 3.11 to 3.13.

src/icloud_mcp/

config.py env / .env loading utf7.py modified UTF-7 for folder names models.py frozen Pydantic models mime.py header, body and attachment decoding imap_client.py connection, LIST, STATUS, SELECT, FETCH search.py SEARCH criteria, threading, multi-folder search smtp_client.py MIME building, SMTP send, copy to Sent attachments.py attachment extraction, filename sanitising drafts.py APPEND to Drafts flags.py \Seen, \Flagged, \Answered move.py COPY + EXPUNGE with the anti-purge guard mailboxes.py create, rename, delete (empty only) organize.py rule-based filing server.py tools, resources, prompts setup_wizard.py interactive configuration cli.py terminal checks

Contributing

Issues and pull requests welcome. Tests must pass offline — no test may require a real mailbox.

License

MIT

PopNxに聞く