MCP Server
MCP
io.github.eodozzy/icloud-mcp
Read-only-by-default MCP server for iCloud mail, calendar, and contacts (IMAP/CalDAV/CardDAV).
Install
uvx icloud-mcp
Configuration Example
{
"remotes": [],
"packages": [
{
"registryType": "pypi",
"identifier": "icloud-mcp",
"version": "0.1.1",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"description": "Your Apple ID email (the IMAP/CalDAV username).",
"isRequired": true,
"format": "string",
"name": "ICLOUD_USERNAME"
},
{
"description": "OS-keyring service name to read the app-specific password from. Default: icloud-mcp. Set to reuse an existing entry.",
"format": "string",
"name": "ICLOUD_KEYRING_SERVICE"
},
{
"description": "App-specific password. Fallback only; preferred storage is the OS keyring. Used only when no keyring entry is found.",
"format": "string",
"isSecret": true,
"name": "ICLOUD_APP_PASSWORD"
},
{
"description": "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.",
"format": "string",
"name": "ICLOUD_ENABLE_WRITES"
},
{
"description": "IMAP host override. Default: imap.mail.me.com",
"format": "string",
"name": "ICLOUD_IMAP_HOST"
},
{
"description": "IMAP port override. Default: 993",
"format": "number",
"name": "ICLOUD_IMAP_PORT"
},
{
"description": "SMTP host override (used only by write/send tools). Default: smtp.mail.me.com",
"format": "string",
"name": "ICLOUD_SMTP_HOST"
},
{
"description": "SMTP port override. Default: 587",
"format": "number",
"name": "ICLOUD_SMTP_PORT"
},
{
"description": "CalDAV base URL override. Default: https://caldav.icloud.com/",
"format": "string",
"name": "ICLOUD_CALDAV_URL"
},
{
"description": "CardDAV base URL override. Default: https://contacts.icloud.com/",
"format": "string",
"name": "ICLOUD_CARDDAV_URL"
},
{
"description": "IANA timezone for rendering/scoping events. Default: system local time.",
"format": "string",
"name": "ICLOUD_TZ"
}
]
}
]
}
mcp
model-context-protocol
pypi
By
Comments
Sign in to leave a comment