Icloud MCP Server
by eodozzyio.github.eodozzy/icloud-mcpv0.1.1
Read-only-by-default MCP server for iCloud mail, calendar, and contacts (IMAP/CalDAV/CardDAV).
context tax
queued
security
queued
cold start
queued
freshness
Slowing3mo ago
Install Icloud MCP server
Install in Claude Code
claude mcp add icloud-eodozzy -e ICLOUD_USERNAME='<icloud-username>' -e ICLOUD_APP_PASSWORD='<icloud-app-password>' -- uvx icloud-mcpInstall in Cursor
{
"mcpServers": {
"icloud-eodozzy": {
"command": "uvx",
"args": [
"icloud-mcp"
],
"env": {
"ICLOUD_USERNAME": "<icloud-username>",
"ICLOUD_APP_PASSWORD": "<icloud-app-password>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"icloud-eodozzy": {
"command": "uvx",
"args": [
"icloud-mcp"
],
"env": {
"ICLOUD_USERNAME": "<icloud-username>",
"ICLOUD_APP_PASSWORD": "<icloud-app-password>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"icloud-eodozzy": {
"type": "stdio",
"command": "uvx",
"args": [
"icloud-mcp"
],
"env": {
"ICLOUD_USERNAME": "<icloud-username>",
"ICLOUD_APP_PASSWORD": "<icloud-app-password>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"icloud-eodozzy": {
"command": "uvx",
"args": [
"icloud-mcp"
],
"env": {
"ICLOUD_USERNAME": "<icloud-username>",
"ICLOUD_APP_PASSWORD": "<icloud-app-password>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| ICLOUD_USERNAME | yes | — | Your Apple ID email (the IMAP/CalDAV username). |
| ICLOUD_KEYRING_SERVICE | — | — | OS-keyring service name to read the app-specific password from. Default: icloud-mcp. Set to reuse an existing entry. |
| ICLOUD_APP_PASSWORD | — | yes | App-specific password. Fallback only; preferred storage is the OS keyring. Used only when no keyring entry is found. |
| ICLOUD_ENABLE_WRITES | — | — | 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 | — | — | IMAP host override. Default: imap.mail.me.com |
| ICLOUD_IMAP_PORT | — | — | IMAP port override. Default: 993 |
| ICLOUD_SMTP_HOST | — | — | SMTP host override (used only by write/send tools). Default: smtp.mail.me.com |
| ICLOUD_SMTP_PORT | — | — | SMTP port override. Default: 587 |
| ICLOUD_CALDAV_URL | — | — | CalDAV base URL override. Default: https://caldav.icloud.com/ |
| ICLOUD_CARDDAV_URL | — | — | CardDAV base URL override. Default: https://contacts.icloud.com/ |
| ICLOUD_TZ | — | — | IANA timezone for rendering/scoping events. Default: system local time. |
Freshness
Slowing — last maintenance signal 3mo ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-06-30 · 3mo ago · GitHub
Latest release
no data · GitHub
Package published
no data · npm/PyPI
Registry entry updated
2026-06-30 · 3mo ago · official registry · v0.1.1
FAQ
›How do I install the Icloud MCP server in Claude Code?
Run: claude mcp add icloud-eodozzy -e ICLOUD_USERNAME='<icloud-username>' -e ICLOUD_APP_PASSWORD='<icloud-app-password>' -- uvx icloud-mcp. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does Icloud require an API key?
Yes. It expects ICLOUD_USERNAME, ICLOUD_APP_PASSWORD, of which 1 is a secret.
›Can I use Icloud as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is Icloud in the official MCP registry?
Yes, as io.github.eodozzy/icloud-mcp.
Alternatives to Icloud
Other email MCP servers.