iCloud MCP Server Apple
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ICLOUD_EMAIL | No | Your iCloud address, required for cloud mode. | |
| USE_LOCAL_MODE | No | Set to 'false' to select cloud mode. Defaults to 'true' (local mode). | true |
| ICLOUD_APP_PASSWORD | No | App-specific password, required for cloud mode. | |
| ICLOUD_MCP_IMSG_PATH | No | Explicit path to the imsg binary. If unset, the server searches ICLOUD_MCP_IMSG_PATH, IMSG_PATH, Homebrew prefixes, and PATH. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| aboutA | Returns information about this iCloud MCP server |
| check-auth-statusA | Check if iCloud credentials are configured correctly |
| set-modeA | Switch between LOCAL (AppleScript/macOS apps) and CLOUD (iCloud protocols) modes |
| list-emailsA | Lists emails from a folder (default: inbox) |
| read-emailA | Reads the full content of an email by UID |
| send-emailA | Sends an email immediately from the user's account to one or more comma-separated recipients, with optional CC, BCC and HTML body. Cloud mode delivers over SMTP and returns the new message ID; local mode sends through Mail.app, which only sends plain text and returns no ID. There is no draft step, so the message goes out as soon as the tool runs. |
| search-emailsA | Searches one mail folder (inbox by default) by free text, sender, subject and unread state; the filters combine as AND. Results carry the same summary fields as list-emails, including the ref handle that read-email and mark-as-read take. |
| mark-as-readA | Marks an email as read or unread |
| list-foldersA | Lists all email folders |
| list-eventsA | Lists upcoming calendar events within a look-ahead window (30 days by default, up to 365). Each event carries its title, start and end times, and the ref handle that update-event and delete-event take as their eventUrl argument. |
| create-eventB | Creates a new calendar event |
| update-eventA | Updates an existing calendar event. Only the fields you pass are changed. In cloud mode the CalDAV property-merge preserves recurrence, invitees and alarms (experimental: the live round-trip is not yet verified). |
| delete-eventA | Deletes a calendar event |
| list-calendarsA | Lists all available calendars |
| list-contactsA | Lists contacts from the user's address book, up to 50 per call, including the handle that read-contact and delete-contact take. For a targeted lookup, search-contacts filters by name, email or phone instead of paging through the full list. |
| search-contactsA | Search contacts by name, email, or phone |
| read-contactA | Get detailed information about a specific contact |
| create-contactA | Creates a contact in the user's address book (Contacts.app in local mode, iCloud over CardDAV in cloud mode). Every field is optional, so pass at least a name (displayName, or firstName and lastName) along with any known email, phone, organization, job title or notes. |
| delete-contactA | Permanently deletes a contact from the user's address book. Takes the handle returned by list-contacts or search-contacts; confirm the target with read-contact first, because there is no undo through this server. |
| list-contact-accountsA | Lists all contact accounts (iCloud, Google, Exchange, etc.) - LOCAL mode only |
| list-contact-groupsA | Lists contact groups from all accounts or a specific account - LOCAL mode only |
| list-reminder-listsA | Lists all reminder lists from Reminders.app (LOCAL mode only) |
| list-remindersA | Lists reminders from a specific list or all lists (LOCAL mode only) |
| create-reminderA | Creates a new reminder (LOCAL mode only) |
| update-reminderB | Updates an existing reminder (LOCAL mode only) |
| complete-reminderA | Marks a reminder as complete or incomplete (LOCAL mode only) |
| delete-reminderA | Deletes a reminder (LOCAL mode only) |
| search-remindersA | Search reminders by text in name or body (LOCAL mode only) |
| list-note-foldersA | Lists all folders in Notes.app (LOCAL mode only) |
| list-notesA | Lists notes from a specific folder or all folders |
| read-noteA | Reads the content of a specific note |
| create-noteB | Creates a new note |
| search-notesA | Search notes by text in title or content |
| list-chatsA | List recent iMessage/SMS conversations with contact names and last message preview |
| read-messagesA | Read message history for a specific iMessage/SMS conversation |
| send-messageA | Send an iMessage or SMS. IMPORTANT: Always confirm with user before sending. |
| react-messageB | Send a tapback reaction (love, like, dislike, laugh, emphasis, question) |
| list-safari-tabsA | Lists all open tabs in Safari across all windows |
| get-current-safari-urlA | Gets the URL and title of the current/active Safari tab |
| open-safari-urlA | Opens a URL in Safari (new tab or new window) |
| close-safari-tabB | Closes a Safari tab |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/MrGo2/icloud-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server