icloud mcp for VS Code
io.github.eodozzy/icloud-mcp
Read-only-by-default MCP server for iCloud mail, calendar, and contacts (IMAP/CalDAV/CardDAV).
client:VS Code
transport:stdio
runtime:pypi
Install icloud mcp in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "icloud-username",
"description": "ICLOUD_USERNAME",
"password": true
},
{
"type": "promptString",
"id": "icloud-keyring-service",
"description": "ICLOUD_KEYRING_SERVICE",
"password": true
},
{
"type": "promptString",
"id": "icloud-app-password",
"description": "ICLOUD_APP_PASSWORD",
"password": true
},
{
"type": "promptString",
"id": "icloud-enable-writes",
"description": "ICLOUD_ENABLE_WRITES",
"password": true
},
{
"type": "promptString",
"id": "icloud-imap-host",
"description": "ICLOUD_IMAP_HOST",
"password": true
},
{
"type": "promptString",
"id": "icloud-imap-port",
"description": "ICLOUD_IMAP_PORT",
"password": true
},
{
"type": "promptString",
"id": "icloud-smtp-host",
"description": "ICLOUD_SMTP_HOST",
"password": true
},
{
"type": "promptString",
"id": "icloud-smtp-port",
"description": "ICLOUD_SMTP_PORT",
"password": true
},
{
"type": "promptString",
"id": "icloud-caldav-url",
"description": "ICLOUD_CALDAV_URL",
"password": true
},
{
"type": "promptString",
"id": "icloud-carddav-url",
"description": "ICLOUD_CARDDAV_URL",
"password": true
},
{
"type": "promptString",
"id": "icloud-tz",
"description": "ICLOUD_TZ",
"password": true
}
],
"servers": {
"icloud-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"icloud-mcp"
],
"env": {
"ICLOUD_USERNAME": "${input:icloud-username}",
"ICLOUD_KEYRING_SERVICE": "${input:icloud-keyring-service}",
"ICLOUD_APP_PASSWORD": "${input:icloud-app-password}",
"ICLOUD_ENABLE_WRITES": "${input:icloud-enable-writes}",
"ICLOUD_IMAP_HOST": "${input:icloud-imap-host}",
"ICLOUD_IMAP_PORT": "${input:icloud-imap-port}",
"ICLOUD_SMTP_HOST": "${input:icloud-smtp-host}",
"ICLOUD_SMTP_PORT": "${input:icloud-smtp-port}",
"ICLOUD_CALDAV_URL": "${input:icloud-caldav-url}",
"ICLOUD_CARDDAV_URL": "${input:icloud-carddav-url}",
"ICLOUD_TZ": "${input:icloud-tz}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs