NestDaddy

Icloud Mcp

io.github.eodozzy/icloud-mcp · v0.1.1

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

Connect Runs on your machine

Terminal
claude mcp add icloud-mcp -e ICLOUD_USERNAME=<ICLOUD_USERNAME> -e ICLOUD_KEYRING_SERVICE=<ICLOUD_KEYRING_SERVICE> -e ICLOUD_APP_PASSWORD=<ICLOUD_APP_PASSWORD> -e ICLOUD_ENABLE_WRITES=<ICLOUD_ENABLE_WRITES> -e ICLOUD_IMAP_HOST=<ICLOUD_IMAP_HOST> -e ICLOUD_IMAP_PORT=<ICLOUD_IMAP_PORT> -e ICLOUD_SMTP_HOST=<ICLOUD_SMTP_HOST> -e ICLOUD_SMTP_PORT=<ICLOUD_SMTP_PORT> -e ICLOUD_CALDAV_URL=<ICLOUD_CALDAV_URL> -e ICLOUD_CARDDAV_URL=<ICLOUD_CARDDAV_URL> -e ICLOUD_TZ=<ICLOUD_TZ> -- uvx icloud-mcp==0.1.1
claude_desktop_config.json
{
  "mcpServers": {
    "icloud-mcp": {
      "command": "uvx",
      "args": [
        "icloud-mcp==0.1.1"
      ],
      "env": {
        "ICLOUD_USERNAME": "<ICLOUD_USERNAME>",
        "ICLOUD_KEYRING_SERVICE": "<ICLOUD_KEYRING_SERVICE>",
        "ICLOUD_APP_PASSWORD": "<ICLOUD_APP_PASSWORD>",
        "ICLOUD_ENABLE_WRITES": "<ICLOUD_ENABLE_WRITES>",
        "ICLOUD_IMAP_HOST": "<ICLOUD_IMAP_HOST>",
        "ICLOUD_IMAP_PORT": "<ICLOUD_IMAP_PORT>",
        "ICLOUD_SMTP_HOST": "<ICLOUD_SMTP_HOST>",
        "ICLOUD_SMTP_PORT": "<ICLOUD_SMTP_PORT>",
        "ICLOUD_CALDAV_URL": "<ICLOUD_CALDAV_URL>",
        "ICLOUD_CARDDAV_URL": "<ICLOUD_CARDDAV_URL>",
        "ICLOUD_TZ": "<ICLOUD_TZ>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "icloud-mcp": {
      "command": "uvx",
      "args": [
        "icloud-mcp==0.1.1"
      ],
      "env": {
        "ICLOUD_USERNAME": "<ICLOUD_USERNAME>",
        "ICLOUD_KEYRING_SERVICE": "<ICLOUD_KEYRING_SERVICE>",
        "ICLOUD_APP_PASSWORD": "<ICLOUD_APP_PASSWORD>",
        "ICLOUD_ENABLE_WRITES": "<ICLOUD_ENABLE_WRITES>",
        "ICLOUD_IMAP_HOST": "<ICLOUD_IMAP_HOST>",
        "ICLOUD_IMAP_PORT": "<ICLOUD_IMAP_PORT>",
        "ICLOUD_SMTP_HOST": "<ICLOUD_SMTP_HOST>",
        "ICLOUD_SMTP_PORT": "<ICLOUD_SMTP_PORT>",
        "ICLOUD_CALDAV_URL": "<ICLOUD_CALDAV_URL>",
        "ICLOUD_CARDDAV_URL": "<ICLOUD_CARDDAV_URL>",
        "ICLOUD_TZ": "<ICLOUD_TZ>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "icloud-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "icloud-mcp==0.1.1"
      ],
      "env": {
        "ICLOUD_USERNAME": "<ICLOUD_USERNAME>",
        "ICLOUD_KEYRING_SERVICE": "<ICLOUD_KEYRING_SERVICE>",
        "ICLOUD_APP_PASSWORD": "<ICLOUD_APP_PASSWORD>",
        "ICLOUD_ENABLE_WRITES": "<ICLOUD_ENABLE_WRITES>",
        "ICLOUD_IMAP_HOST": "<ICLOUD_IMAP_HOST>",
        "ICLOUD_IMAP_PORT": "<ICLOUD_IMAP_PORT>",
        "ICLOUD_SMTP_HOST": "<ICLOUD_SMTP_HOST>",
        "ICLOUD_SMTP_PORT": "<ICLOUD_SMTP_PORT>",
        "ICLOUD_CALDAV_URL": "<ICLOUD_CALDAV_URL>",
        "ICLOUD_CARDDAV_URL": "<ICLOUD_CARDDAV_URL>",
        "ICLOUD_TZ": "<ICLOUD_TZ>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
ICLOUD_USERNAME
Required
Your Apple ID email (the IMAP/CalDAV username).
ICLOUD_KEYRING_SERVICE
Optional
OS-keyring service name to read the app-specific password from. Default: icloud-mcp. Set to reuse an existing entry.
ICLOUD_APP_PASSWORD
Optional, secret
App-specific password. Fallback only; preferred storage is the OS keyring. Used only when no keyring entry is found.
ICLOUD_ENABLE_WRITES
Optional
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
Optional
IMAP host override. Default: imap.mail.me.com
ICLOUD_IMAP_PORT
Optional
IMAP port override. Default: 993
ICLOUD_SMTP_HOST
Optional
SMTP host override (used only by write/send tools). Default: smtp.mail.me.com
ICLOUD_SMTP_PORT
Optional
SMTP port override. Default: 587
ICLOUD_CALDAV_URL
Optional
CalDAV base URL override. Default: https://caldav.icloud.com/
ICLOUD_CARDDAV_URL
Optional
CardDAV base URL override. Default: https://contacts.icloud.com/
ICLOUD_TZ
Optional
IANA timezone for rendering/scoping events. Default: system local time.

Details

Package[email protected] (PYPI, stdio)
First published30 Jun 2026
Last updated30 Jun 2026
Registry nameio.github.eodozzy/icloud-mcp

More productivity servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.