MCP server for iCloud Mail over IMAP/SMTP — search every folder, read, draft, send, flag and file your Apple mail. Runs locally, no third party.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add icloud-mail --env ICLOUD_EMAIL='<ICLOUD_EMAIL>' --env ICLOUD_APP_PASSWORD='<ICLOUD_APP_PASSWORD>' -- uvx icloud-mail-mcp~/.codex/config.toml
[mcp_servers.icloud-mail]
command = "uvx"
args = ["icloud-mail-mcp"]
env = { ICLOUD_EMAIL = "<ICLOUD_EMAIL>", ICLOUD_APP_PASSWORD = "<ICLOUD_APP_PASSWORD>" }
# codex mcp add icloud-mail --env ICLOUD_EMAIL='<ICLOUD_EMAIL>' --env ICLOUD_APP_PASSWORD='<ICLOUD_APP_PASSWORD>' -- uvx icloud-mail-mcp~/.cursor/mcp.json
{
"mcpServers": {
"icloud-mail": {
"command": "uvx",
"args": [
"icloud-mail-mcp"
],
"env": {
"ICLOUD_EMAIL": "<ICLOUD_EMAIL>",
"ICLOUD_APP_PASSWORD": "<ICLOUD_APP_PASSWORD>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"icloud-mail": {
"type": "stdio",
"command": "uvx",
"args": [
"icloud-mail-mcp"
],
"env": {
"ICLOUD_EMAIL": "<ICLOUD_EMAIL>",
"ICLOUD_APP_PASSWORD": "<ICLOUD_APP_PASSWORD>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"icloud-mail": {
"command": "uvx",
"args": [
"icloud-mail-mcp"
],
"env": {
"ICLOUD_EMAIL": "<ICLOUD_EMAIL>",
"ICLOUD_APP_PASSWORD": "<ICLOUD_APP_PASSWORD>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"icloud-mail": {
"command": "uvx",
"args": [
"icloud-mail-mcp"
],
"env": {
"ICLOUD_EMAIL": "<ICLOUD_EMAIL>",
"ICLOUD_APP_PASSWORD": "<ICLOUD_APP_PASSWORD>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"icloud-mail": {
"command": "uvx",
"args": [
"icloud-mail-mcp"
],
"env": {
"ICLOUD_EMAIL": "<ICLOUD_EMAIL>",
"ICLOUD_APP_PASSWORD": "<ICLOUD_APP_PASSWORD>"
}
}
}
}Environment variables
ICLOUD_EMAILICLOUD_APP_PASSWORD
Replace the placeholders with your own credentials and keep them out of version control.