Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Icloud MCP

von eodozzyVersion 0.1.1i★ –iLäuft auf deinem Computer
Name in der Registryio.github.eodozzy/icloud-mcp

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Read-only-by-default MCP server for iCloud mail, calendar, and contacts (IMAP/CalDAV/CardDAV).

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Dokumente, Tabellen & Büroarbeit
  • Das musst du eintragen: ICLOUD_USERNAME, ICLOUD_APP_PASSWORD

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: ICLOUD_USERNAME, ICLOUD_KEYRING_SERVICE, ICLOUD_APP_PASSWORD, ICLOUD_ENABLE_WRITES, ICLOUD_IMAP_HOST, ICLOUD_IMAP_PORT, ICLOUD_SMTP_HOST, ICLOUD_SMTP_PORT, ICLOUD_CALDAV_URL, ICLOUD_CARDDAV_URL, ICLOUD_TZ

Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.

Du brauchst

  • PyPIuv für Python installiert (für den Befehl uvx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "icloud": {
      "command": "uvx",
      "args": [
        "icloud-mcp"
      ],
      "env": {
        "ICLOUD_USERNAME": "your-value",
        "ICLOUD_KEYRING_SERVICE": "your-value",
        "ICLOUD_APP_PASSWORD": "your-value",
        "ICLOUD_ENABLE_WRITES": "your-value",
        "ICLOUD_IMAP_HOST": "your-value",
        "ICLOUD_IMAP_PORT": "your-value",
        "ICLOUD_SMTP_HOST": "your-value",
        "ICLOUD_SMTP_PORT": "your-value",
        "ICLOUD_CALDAV_URL": "your-value",
        "ICLOUD_CARDDAV_URL": "your-value",
        "ICLOUD_TZ": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add icloud --env ICLOUD_USERNAME=your-value --env ICLOUD_KEYRING_SERVICE=your-value --env ICLOUD_APP_PASSWORD=your-value --env ICLOUD_ENABLE_WRITES=your-value --env ICLOUD_IMAP_HOST=your-value --env ICLOUD_IMAP_PORT=your-value --env ICLOUD_SMTP_HOST=your-value --env ICLOUD_SMTP_PORT=your-value --env ICLOUD_CALDAV_URL=your-value --env ICLOUD_CARDDAV_URL=your-value --env ICLOUD_TZ=your-value -- uvx icloud-mcp

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "icloud": {
      "command": "uvx",
      "args": [
        "icloud-mcp"
      ],
      "env": {
        "ICLOUD_USERNAME": "your-value",
        "ICLOUD_KEYRING_SERVICE": "your-value",
        "ICLOUD_APP_PASSWORD": "your-value",
        "ICLOUD_ENABLE_WRITES": "your-value",
        "ICLOUD_IMAP_HOST": "your-value",
        "ICLOUD_IMAP_PORT": "your-value",
        "ICLOUD_SMTP_HOST": "your-value",
        "ICLOUD_SMTP_PORT": "your-value",
        "ICLOUD_CALDAV_URL": "your-value",
        "ICLOUD_CARDDAV_URL": "your-value",
        "ICLOUD_TZ": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "icloud": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "icloud-mcp"
      ],
      "env": {
        "ICLOUD_USERNAME": "your-value",
        "ICLOUD_KEYRING_SERVICE": "your-value",
        "ICLOUD_APP_PASSWORD": "your-value",
        "ICLOUD_ENABLE_WRITES": "your-value",
        "ICLOUD_IMAP_HOST": "your-value",
        "ICLOUD_IMAP_PORT": "your-value",
        "ICLOUD_SMTP_HOST": "your-value",
        "ICLOUD_SMTP_PORT": "your-value",
        "ICLOUD_CALDAV_URL": "your-value",
        "ICLOUD_CARDDAV_URL": "your-value",
        "ICLOUD_TZ": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • ICLOUD_USERNAME erforderlich env
    Your Apple ID email (the IMAP/CalDAV username).
  • ICLOUD_KEYRING_SERVICE env
    OS-keyring service name to read the app-specific password from. Default: icloud-mcp. Set to reuse an existing entry.
  • ICLOUD_APP_PASSWORD geheim env
    App-specific password. Fallback only; preferred storage is the OS keyring. Used only when no keyring entry is found.
  • ICLOUD_ENABLE_WRITES env
    Enable mutating tools (send/reply/forward mail, create/update/delete event & contact). Off by default; each write still requires interactive confirmation. Accepts 1/true/yes/on.
  • ICLOUD_IMAP_HOST env
    IMAP host override. Default: imap.mail.me.com
  • ICLOUD_IMAP_PORT env
    IMAP port override. Default: 993
  • ICLOUD_SMTP_HOST env
    SMTP host override (used only by write/send tools). Default: smtp.mail.me.com
  • ICLOUD_SMTP_PORT env
    SMTP port override. Default: 587
  • ICLOUD_CALDAV_URL env
    CalDAV base URL override. Default: https://caldav.icloud.com/
  • ICLOUD_CARDDAV_URL env
    CardDAV base URL override. Default: https://contacts.icloud.com/
  • ICLOUD_TZ env
    IANA timezone for rendering/scoping events. Default: system local time.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto eodozzy bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Dokumente, Tabellen & Büroarbeiti

  • Mehr Sterne als 0 % der anderen 2194 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 16 % der anderen 2194 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 2194 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Icloud MCP sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: ICLOUD_USERNAME, ICLOUD_APP_PASSWORD

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.1.1) kam vor 4 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Agent-Native Google Calendar - manage events, sync, and public booking

Läuft in der Cloud★ 7.620MITAktualisiert vor 2 Monaten
Installieren

Excel MCP Server

von haris-musa

Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.

Läuft auf deinem Computer★ 4.276MITAktualisiert vor 6 Tagen
Installieren

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

Läuft auf deinem Computer★ 847MITAktualisiert vor 4 Tagen
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

icloud-mcp

A Model Context Protocol server that gives AI assistants read-only access to your iCloud mail and calendar over IMAP and CalDAV. Credentials live in your OS keyring (macOS Keychain by default) — never in a config file or the repo.

Defaults target iCloud, but every endpoint is overridable, so it works against any standard IMAP/CalDAV provider.

Status

Read-only by default; writes are strictly opt-in. Mail, calendar, and contacts can be listed, searched, and read with no ability to change anything: the IMAP connection is opened read-only and bodies are fetched with BODY.PEEK[], so messages are never even marked as read.

Mutating tools span mail (send_mail, reply_mail, forward_mail), calendar (create_event, update_event, delete_event), and contacts (create_contact, update_contact, delete_contact) — but all are disabled unless you set `ICLOUD_ENABLE_WRITES=1`, and even then every write requires an interactive confirmation (MCP elicitation) before it runs. See Writes (opt-in).

Writes (opt-in)

Mutations are gated two ways:

  1. Operator switch — write tools refuse with an explanatory error unless ICLOUD_ENABLE_WRITES=1 is set in the server's environment.
  2. Per-action confirmation — when enabled, each write tool calls back to the client to confirm the exact action before executing. Destructive operations (delete event / contact) are gated identically — no extra force flag, just the same confirmation.

iCloud issues a single app-specific password covering IMAP, SMTP, CalDAV, and CardDAV — there is no scoped "write-only" credential — so write-safety is *structural*: mail is sent over a separate, fresh SMTP connection (the read path's IMAP client has no send capability), and the opt-in flag + confirmation guard every mutation.

Install

pip install icloud-mcp

Or run it without installing — handy for MCP clients that launch the server on demand:

uvx icloud-mcp

To install the latest unreleased code straight from GitHub:

pip install git+https://github.com/eodozzy/icloud-mcp

Or for local development:

git clone git@github.com:eodozzy/icloud-mcp

cd icloud-mcp python3 -m venv .venv && .venv/bin/pip install -e ".[test]"

Requires Python 3.11+.

Credentials

Generate an app-specific password for your Apple ID (never use your main password), then store it in your keyring:

# macOS

security add-generic-password -a "you@icloud.com" -s "icloud-mcp" -w "xxxx-xxxx-xxxx-xxxx"

On other platforms, the cross-platform keyring library is used — keyring set icloud-mcp you@icloud.com also works anywhere.

The username comes from the ICLOUD_USERNAME environment variable. Resolution order for the password:

  1. OS keyring (ICLOUD_KEYRING_SERVICE, default icloud-mcp, + username)
  2. ICLOUD_APP_PASSWORD environment variable (fallback)

To reuse an existing keyring entry (e.g. one named my-icloud), set ICLOUD_KEYRING_SERVICE=my-icloud.

Configuration

Set ICLOUD_USERNAME (required). All else is optional — see .env.example for the full list of endpoint/timezone overrides.

Register with an MCP client

The server speaks MCP over stdio: a client launches the icloud-mcp command as a subprocess and talks to it over stdin/stdout. "Installing" it into a client just means telling that client which command to run and which env vars to pass — the password itself stays in the keyring, never in the client config.

If icloud-mcp isn't on your PATH (e.g. you installed into a virtualenv), use the absolute path to the launcher, e.g. /path/to/repo/.venv/bin/icloud-mcp.

Claude Code
claude mcp add icloud \

--env ICLOUD_USERNAME=you@icloud.com \ --env ICLOUD_KEYRING_SERVICE=icloud-mcp \ -- icloud-mcp

Then claude mcp list to confirm. Add -s user to make it available across all projects rather than just the current one.

Claude Desktop

Add the server to Claude Desktop's config file. On macOS this is:

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

(On Windows: %APPDATA%\Claude\claude_desktop_config.json.)

The easiest way to open it is Settings → Developer → Edit Config. Add an mcpServers key alongside whatever is already in the file — do not paste a second top-level { ... } object, or the file becomes invalid JSON:

{

"mcpServers": { "icloud": { "command": "icloud-mcp", "env": { "ICLOUD_USERNAME": "you@icloud.com", "ICLOUD_KEYRING_SERVICE": "icloud-mcp" } } } }

If the file already contains other keys, merge mcpServers in as a sibling (remember the comma between keys):

{

"someExistingSetting": "...", "mcpServers": { "icloud": { "...": "..." } } }

Then fully quit Claude Desktop (⌘Q, not just closing the window) and reopen it. The server shows up as a *Local MCP server* and its tools become available.

Notes:

  • First call prompts for Keychain access. macOS asks whether icloud-mcp may read the keyring item; click Always Allow to avoid repeat prompts.
  • Claude Desktop may rewrite this file when it saves its own preferences, dropping hand-added keys it doesn't recognize. If the server disappears after you change other settings, just re-add the mcpServers block.

Tools & resources

Tools (model-invoked):

ToolDescription
list_mailList a folder (default INBOX), newest first, with optional since_date
search_mailFull-text search the inbox (or a named folder)
list_foldersList the available IMAP mailbox folder names
get_messageFetch one message by UID, with full body
list_eventsCalendar events in a date window
search_eventsEvents whose title matches text, in a window
list_calendarsNames of all calendars
list_contactsList address-book contacts (name, emails, phones, org)
search_contactsFind contacts matching text across name, org, and emails
send_mail ⚠️Send a plain-text email
reply_mail ⚠️Reply to a message by UID (quotes original; reply_all optional)
forward_mail ⚠️Forward a message by UID to a new recipient
create_event ⚠️Create a calendar event
update_event ⚠️Edit an event by UID (only the fields you pass)
delete_event ⚠️Delete an event by UID
create_contact ⚠️Create a new contact
update_contact ⚠️Edit a contact by UID (merges into the existing vCard)
delete_contact ⚠️Delete a contact by UID

⚠️ Write tools require ICLOUD_ENABLE_WRITES=1 and confirm each action — see Writes (opt-in).

Resources (passive context):

URIDescription
icloud://mail/inbox/recentMost recent inbox messages
icloud://calendar/todayToday + tomorrow's events

Behavior notes

  • Empty/missing headers: messages whose Subject header is absent *or* present-but-blank render as (no subject); a blank/absent From renders as (unknown). (Some mail has an empty subject line rather than no subject line at all — both are normalized.)
  • Snippets prefer the text/plain part; for HTML-only mail, tags are stripped ( / / content discarded) so you still get a readable preview.
  • Double-wrapped bodies: some senders (e.g. USPS Informed Delivery) embed a redundant MIME header block at the top of the decoded body. A leading Content-*/MIME-Version header block is stripped so those headers don't leak into the snippet or body.
  • `since_date` is date-granular and evaluated in the IMAP server's timezone (UTC for iCloud), so a since_date of today can include late-yesterday messages in your local time.

Development

.venv/bin/pytest            # run the fixture-based test suite (no live account)

.venv/bin/mcp dev -m icloud_mcp.server # interactive MCP Inspector

Security notes

  • The app-specific password lives in the OS keyring only — never in .env, never committed.
  • Read access (mail, calendar, contacts) cannot mutate anything; the IMAP session is opened read-only.
  • Writes are off by default. They require ICLOUD_ENABLE_WRITES=1 *and* an interactive confirmation per action, and mail is sent over a separate SMTP connection isolated from the read path.
  • An app-specific password can be revoked at any time from appleid.apple.com without affecting your Apple ID.

License

MIT — see LICENSE.


Not affiliated with, endorsed by, or sponsored by Apple Inc. iCloud is a trademark of Apple Inc.

PopNx fragen