icloud-mcp
An MCP server for mail, calendar, contacts, reminders, notes and Safari: locally through macOS or over iCloud protocols.
- 80 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- The tools read mail, messages and notes, send emails and delete events, contacts and reminders in your account.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/icloud-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The tools read mail, messages and notes, send emails and delete events, contacts and reminders in your account.
This is third-party code. Review the repository files before installing.
What it does
The server gives an agent 41 tools for seven Apple services. In local mode it drives the native macOS apps through AppleScript: no passwords or network, and it reaches services the iCloud protocols do not expose: reminders, notes, messages and Safari. In cloud mode it works over IMAP, SMTP, CalDAV and CardDAV and runs on any machine, not just a Mac. The `set-mode` tool switches modes at runtime without a restart. Tools include `send-email`, `delete-event`, `update-event`, `delete-contact` and `delete-reminder`. Reads (`list-*`, `read-*`, `search-*`, `get-*`) are marked safe, while writes and deletes are annotated explicitly so a client can ask for confirmation. The server talks only over stdin and stdout, opens no ports and keeps no telemetry.
Who it is for. Mac and iCloud users who want to triage mail, schedule meetings and keep notes and reminders from Claude Code, Cursor or Claude Desktop.
Good fit when
- An agent finds emails on a topic and drafts a reply, and you confirm sending.
- The week meetings are moved in the calendar with one request.
- Today reminders are collected from several lists.
- Contacts are searched by organisation and data is fixed in one request.
Not a fit when
- You need access to other peoples mailboxes and calendars, while the server is built for your own account.
- You have no Mac and no iCloud app-specific password.
- Emails and messages must not be shown to the model.
Example request
Show emails from clients over the last three days, draft a reply to the most urgent and add a reminder for tomorrow.MCP
- Transport
- stdio
- Authentication
- key is optional
Environment variables
USE_LOCAL_MODE- The value `false` switches on cloud mode.
ICLOUD_EMAIL- iCloud address for cloud mode.
ICLOUD_APP_PASSWORDsecret- Apple app-specific password for cloud mode.
Limitations
Local mode works only on macOS: the first time it touches an app the system asks for permission to control it, and reading messages needs disk access and the `imsg` utility. Cloud mode needs `USE_LOCAL_MODE=false`, `ICLOUD_EMAIL` and an app-specific password in `ICLOUD_APP_PASSWORD`, created at account.apple.com. Node.js 20 or newer is required. The tools can send emails and delete data, and recurring events in local mode change as a whole by series id. The content of emails and notes reaches the model, so use a client that asks for confirmation of actions.
How to disable. Remove the `icloud` entry from the client configuration or run `claude mcp remove icloud`. Revoke app control permissions in macOS settings and delete the Apple app-specific password at account.apple.com.
FAQ
How do I connect it to Claude Code?
Run `claude mcp add --transport stdio icloud -- npx -y mcp-icloud`. In other clients add an `icloud` server with the command `npx` and arguments `-y mcp-icloud`.
How do local and cloud mode differ?
Local mode drives Mac apps with no passwords and sees notes, messages, reminders and Safari. Cloud mode uses the iCloud protocols and runs from any machine, but does not cover those services.
Where is the app-specific password kept?
In a `.env` file beside the module or in the macOS Keychain when the `.mcpb` bundle is used. The value is never logged.
Why does a call fail with an authorisation error?
You dismissed the macOS prompt to control the app. Enable the checkbox under Automation in privacy settings and the `-1743` error goes away.
What does the server collect?
Nothing: no telemetry, analytics or state on disk. Data moves between your machine, the connected client and Apple services.
Discussion
No questions or reviews yet.
Related
MCP serversMCP server for Apple Mail on macOS: read, search, send and organize mail through AppleScript or IMAP and SMTP.
imap-mcp-server: email over IMAP and SMTP for agents
imap-mcp-server
An MCP server for searching, reading, sending and cleaning up email in several mailboxes, with credentials stored under AES-256
An MCP server for Mail on Mac: an agent reads, searches, writes and sorts email and triages the inbox, with a read-only mode
An MCP server for Apple Mail on macOS: search, reading, drafts, rules and attachments, with confirmation for dangerous steps.
A local MCP server for Mac and Windows that lets an agent work with mail, messengers, calendars and files.
An MCP server for Apple Mail on macOS: 8 read tools and body search through an FTS5 index on large mailboxes
README in short
The README describes two modes, the access and security model, a privacy policy, the full tool list with parameters, three install paths and environment variables. Separate sections explain macOS prompts and EventKit.