iCloud Email MCP Server
Allows reading, sending, and managing emails through an iCloud email account, including features like folder management, search, attachment support, and unread status preservation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@iCloud Email MCP ServerShow me my unread emails"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
iCloud Email MCP Server
A Model Context Protocol (MCP) server that enables Claude Desktop to interact with iCloud email accounts. This server provides full email functionality including reading, sending, and managing emails through your iCloud account.
Features
Read emails from any folder while preserving unread status
Send emails with support for CC recipients and attachments
List email folders and navigate mailboxes
Create new folders for email organization
Move emails between folders
Search emails across your mailbox
Manage read/unread status explicitly when desired
Filter unread emails specifically
Test connections and server health
Related MCP server: icloud-mcp
Prerequisites
iCloud account with App-Specific Password enabled
Docker installed on your system
Claude Desktop configured for MCP servers
Setup
1. Generate iCloud App-Specific Password
Sign in to appleid.apple.com
Go to Sign-In and Security > App-Specific Passwords
Generate a new password for "Email MCP Server"
Save this password - you'll need it for configuration
2. Clone and Configure
git clone https://github.com/Lawiak/icloud-mcp.git
cd icloud-mcpCreate your environment file:
cp .env.example .env
nano .envConfigure your credentials in .env:
ICLOUD_USERNAME=your.email@icloud.com
ICLOUD_APP_PASSWORD=your-app-specific-password3. Build Docker Container
docker build -t icloud-mcp-server:latest .4. Configure Claude Desktop
Edit your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the MCP server configuration:
{
"mcpServers": {
"icloud-email": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--env-file", "/path/to/your/icloud-mcp/.env",
"icloud-mcp-server:latest",
"python", "server.py"
]
}
}
}For remote deployment (e.g., Raspberry Pi), use SSH:
{
"mcpServers": {
"icloud-email": {
"command": "ssh",
"args": [
"user@your-server-ip",
"docker", "run", "-i", "--rm",
"--env-file", "/path/to/icloud-mcp/.env",
"icloud-mcp-server:latest",
"python", "server.py"
]
}
}
}5. Restart Claude Desktop
Close and restart Claude Desktop to load the new MCP server configuration.
Usage
Once configured, you can ask Claude Desktop to:
"Read my latest emails" (preserves unread status, shows preview)
"Read my emails with full content" (complete email bodies)
"Read email ID 123 in full" (complete content of specific email)
"Show me only my unread emails"
"Send an email to john@example.com with subject 'Meeting' and message 'Hello!'"
"Send an email with attachments" (using base64-encoded content)
"Send an email with files from local paths" (if files are accessible)
"Mark email ID 123 as read"
"Mark email ID 456 as unread"
"Show me my email folders"
"Move email ID 123 from INBOX to Archive"
"Create a new folder called 'Projects'"
Email Content Options
Preview Mode (default): Email bodies are truncated to 200 characters for quick scanning.
Full Content Mode: Get complete email content including:
Full text and HTML body content
Attachment information (filename, type, size)
Complete recipient details (To, CC, BCC)
Additional email headers
All content without truncation
Email Attachments
Sending Attachments: The server supports multiple methods for sending attachments:
Base64-encoded content: For programmatic use or when you have file data
Supports all file types (PDFs, images, documents, etc.)
25MB size limit per attachment
Automatic MIME type detection
Local file paths: For files accessible to the Docker container
Requires files to be in mounted volumes for Docker deployment
Automatic file validation and encoding
Attachment formats: Text files, PDFs, images, office documents, archives, etc.
Unread Status Management
Important: This server preserves your email's unread status by default. When Claude Desktop reads emails, they remain unread in your iCloud account unless you explicitly ask to mark them as read.
Server Configuration
iCloud Email Settings
IMAP Server: imap.mail.me.com:993 (SSL)
SMTP Server: smtp.mail.me.com:587 (StartTLS)
Environment Variables
ICLOUD_USERNAME: Your iCloud email addressICLOUD_APP_PASSWORD: App-specific password from Apple ID
Troubleshooting
Connection Issues
Verify your App-Specific Password is correct
Ensure two-factor authentication is enabled on your Apple ID
Check that the Docker container can access the internet
Claude Desktop Issues
Check Claude Desktop logs for connection errors
Verify the file paths in your configuration are correct
Ensure Docker is running and accessible
Testing the Server
# Test Docker container directly
docker run --rm --env-file .env icloud-mcp-server:latest python -c "
from server import test_email_connection
print('Connection test completed')
"Security Notes
App-Specific Passwords are safer than your main iCloud password
Keep your
.envfile secure and never commit it to version controlThe Docker container runs as a non-root user for security
All email communication uses encrypted connections (SSL/TLS)
Architecture
This MCP server uses:
FastMCP for Model Context Protocol implementation
Python imaplib/smtplib for email operations
Docker for containerized deployment
STDIO transport for Claude Desktop communication
License
This project is open source and available under the MIT License.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Lawiak/icloud-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server