Skip to main content
Glama
mike-tih

icloud-mcp

by mike-tih

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
IMAP_PORTNoIMAP port993
SMTP_PORTNoSMTP port587
IMAP_SERVERNoIMAP server hostnameimap.mail.me.com
SMTP_SERVERNoSMTP server hostnamesmtp.mail.me.com
ICLOUD_EMAILNoiCloud email address (fallback if not provided in headers)
CALDAV_SERVERNoCalDAV server URLhttps://caldav.icloud.com
CARDDAV_SERVERNoCardDAV server URLhttps://contacts.icloud.com
MCP_SERVER_PORTNoPort for the MCP HTTP server8000
ICLOUD_APP_SPECIFIC_PASSWORDNoiCloud app-specific password (fallback if not provided in headers)

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

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
calendar_list_calendarsA

List the account's calendars with their IDs (URLs).

Reminders lists are included with read_only=true; they cannot hold events.

calendar_list_eventsA

List events in a date range, sorted by start.

Each entry has id/url, summary, description, location, start, end (ISO 8601 with offset, or a date for all_day events), start_timezone, recurring, rrule, attendees and calendar. Recurring series are expanded into one entry per occurrence; all occurrences share the series id, so update/delete apply to the whole series.

calendar_search_eventsA

Search events by text within an optional date range (same output as calendar_list_events).

calendar_create_eventA

Create a calendar event (optionally recurring, with alerts) and email iTIP invitations to attendees.

Returns the created event including its id/url. If some invitations could not be sent, invitations_failed lists those addresses.

calendar_update_eventA

Update fields of an existing event. Only provided fields change; recurring series are updated as a whole.

calendar_delete_eventA

Delete an event (the whole series for recurring events) and email cancellations to its attendees.

contacts_listA

List contacts from the default address book: id/url, name, phones, emails, addresses, organization, title, notes.

contacts_searchA

Find contacts by name, organization, email or phone number.

contacts_getA

Get one contact with all fields.

contacts_createA

Create a contact in the default address book and return it with its id/url.

contacts_updateA

Update a contact. Only provided fields change; list fields replace the existing values (entries that keep the same number/address keep their labels such as home/work).

contacts_deleteA

Delete a contact permanently.

email_list_foldersA

List mail folders with their IMAP flags (e.g. \Sent, \Trash).

email_list_messagesA

List the newest messages in a folder: id, subject, from, to, date, flags, unread, has_attachments and body_text.

email_searchA

Server-side IMAP search. All provided filters are combined with AND; at least one is required.

Returns the same fields as email_list_messages, newest first.

email_get_messageA

Get one message: headers (from, to, cc, reply_to, date, Message-ID), flags, body_text and the attachments list.

Attachments are described by index, name, mime_type and size; download one with email_get_attachment.

email_get_messagesA

Fetch several messages in one round trip (same fields as email_get_message). Missing IDs yield an error entry.

email_get_attachmentA

Download an email attachment.

With save_dir the file is written to disk and its path returned; otherwise the file is returned inline (images as image content, other types as an embedded resource).

email_sendA

Send an email from the account (SMTP) and store a copy in the Sent folder.

email_save_draftA

Save a message to the Drafts folder without sending it, so the user can review and send it from any mail client.

email_moveA

Move a message to another folder. The message gets a new UID in the destination folder.

email_deleteA

Move a message to Trash, or delete it permanently.

email_mark_readB

Mark a message as read (set \Seen).

email_mark_unreadA

Mark a message as unread (clear \Seen).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 24 tools

Disambiguation5/5

Each tool maps to a distinct resource-action pair across calendar, contacts, and email, with list/search/get variants clearly separated by purpose. Batch operations and single-item fetches are explicitly distinguished, and no two tools appear interchangeable.

Naming Consistency5/5

All tool names follow a uniform lowercase snake_case pattern of domain_verb_noun, such as calendar_create_event, contacts_update, and email_list_messages. The domain prefix makes the resource area immediately clear, and there are no mixed conventions or vague verbs.

Tool Count4/5

24 tools is above the typical single-domain range, but the server intentionally covers three distinct iCloud domains—Calendar, Contacts, and Mail—and each tool serves a specific operational need. The count is slightly heavy but well justified by the breadth of functionality exposed.

Completeness5/5

Calendar events and contacts have full create/read/update/delete coverage, while email covers searching, fetching, sending, drafting, moving, deleting, and read-state management. Recurring events, invitations, and attachments are handled, leaving no obvious dead ends in the core workflows.

Maintenance

ActivityMaintained
ResponsivenessSlow