iCloud for VS Code
io.github.epinethrone/icloud-mcp
iCloud Mail, Calendar, Contacts, Reminders, Notes and Drive. Approval-first, self-hosted or local.
client:VS Code
transport:stdio
runtime:pypi
Install iCloud in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "icloud-username",
"description": "ICLOUD_USERNAME",
"password": true
},
{
"type": "promptString",
"id": "icloud-app-password",
"description": "ICLOUD_APP_PASSWORD",
"password": true
},
{
"type": "promptString",
"id": "icloud-display-name",
"description": "ICLOUD_DISPLAY_NAME",
"password": true
},
{
"type": "promptString",
"id": "default-timezone",
"description": "DEFAULT_TIMEZONE",
"password": true
},
{
"type": "promptString",
"id": "send-requires-approval",
"description": "SEND_REQUIRES_APPROVAL",
"password": true
},
{
"type": "promptString",
"id": "agent-notes-file",
"description": "AGENT_NOTES_FILE",
"password": true
},
{
"type": "promptString",
"id": "owner-addresses",
"description": "OWNER_ADDRESSES",
"password": true
},
{
"type": "promptString",
"id": "warmup-on-start",
"description": "WARMUP_ON_START",
"password": true
},
{
"type": "promptString",
"id": "tool-workers",
"description": "TOOL_WORKERS",
"password": true
}
],
"servers": {
"icloud-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"icloud-mcp-server"
],
"env": {
"ICLOUD_USERNAME": "${input:icloud-username}",
"ICLOUD_APP_PASSWORD": "${input:icloud-app-password}",
"ICLOUD_DISPLAY_NAME": "${input:icloud-display-name}",
"DEFAULT_TIMEZONE": "${input:default-timezone}",
"SEND_REQUIRES_APPROVAL": "${input:send-requires-approval}",
"AGENT_NOTES_FILE": "${input:agent-notes-file}",
"OWNER_ADDRESSES": "${input:owner-addresses}",
"WARMUP_ON_START": "${input:warmup-on-start}",
"TOOL_WORKERS": "${input:tool-workers}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs