Apple Ecosystem MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| hello_appleA | Return macOS version as a smoke test for the local Apple Ecosystem server. |
| calendar_list_calendarsA | List calendars across all accounts with uid, account_name, and writable. |
| calendar_list_eventsA | List calendar events overlapping an ISO 8601 time range. Inputs with offsets or trailing Z are converted to local naive datetimes before they are passed to AppleScript. |
| calendar_get_eventA | Get details for a specific event by canonical UID. |
| calendar_create_eventB | Create a calendar event; rejects non-writable calendars. Inputs with offsets or trailing Z are converted to local naive datetimes before they are passed to AppleScript. |
| calendar_update_eventA | Update an existing event by UID (only provided fields are changed).
|
| calendar_delete_eventA | Delete an event by UID. Requires confirm=True; otherwise returns a preview. |
| calendar_find_free_timeB | Find free slots on a given day within working hours of at least duration_minutes. |
| calendar_todayC | List today's calendar events. |
| calendar_tomorrowB | List tomorrow's calendar events. |
| calendar_weekC | List events for the next seven days. |
| calendar_events_for_dateC | List events for one local date. |
| calendar_searchB | Search events by title, location, or notes within a date range. |
| calendar_create_all_day_eventC | Create an all-day event for one local date. |
| contacts_searchC | Search contacts by name, email, phone, or company. |
| contacts_getB | Get a full contact record by id. |
| contacts_createC | Create a new contact. |
| contacts_updateC | Update fields on an existing contact. |
| contacts_deleteB | Delete a contact by id. Requires confirm=True. |
| contacts_birthdays_todayA | Return contacts with birthdays today. |
| contacts_birthdays_upcomingB | Return contacts with birthdays in the next N days. |
| contacts_list_groupsA | List contact groups. By default this preserves the legacy list-of-names response. Set include_metadata=True to receive stable group identifiers and discovery metadata. |
| icloud_listC | List files and folders in iCloud Drive. |
| icloud_readC | Read a file from iCloud Drive. |
| icloud_writeC | Write a file to iCloud Drive. |
| icloud_statB | Return metadata for a file or folder in iCloud Drive. |
| icloud_mkdirD | Create a folder in iCloud Drive. |
| icloud_moveC | Move or rename a file in iCloud Drive. |
| icloud_deleteC | Delete a file from iCloud Drive (requires confirm=True). |
| icloud_searchC | Search iCloud Drive by filename or content. |
| mail_list_mailboxesA | List all mailboxes across every Mail account with canonical ids. |
| mail_searchA | Search Mail by literal query text or explicit fielded filters. Use this tool for keyword-style lookups such as sender, subject, or body search. For chronological retrieval, prefer mail_recent instead of inventing keywords. If the user asks for mail from a sender and does not give a time window, ask a follow-up for since and/or before rather than running an unbounded sender search. If you already have the window, pass the user's literal query string and constrain it with since and/or before. |
| mail_recentA | Return the most recent Mail messages in chronological order. Use this tool for recency-style requests such as latest, recent, overnight, or today. Do not synthesize topic keywords; instead pass explicit since/before bounds and optional structured filters such as account_name, mailbox_ids, or unread. |
| mail_diagnosticsB | Inspect local Apple Mail store availability and access state. |
| mail_access_setupA | Explain Mail access modes and optionally open Full Disk Access settings. |
| refresh_mail_snapshotA | Create a temporary Mail metadata snapshot for fallback read workflows. |
| mail_get_threadA | Fetch a Mail message by canonical RFC Message-ID; plain-text body only, 8K cap. |
| mail_sendB | Send a Mail message. Default dry_run=True returns preview without sending. |
| mail_create_draftA | Create a Mail draft without sending. |
| mail_open_messageC | Open a Mail message in Mail.app by canonical or store-resolvable id. |
| mail_move_messageB | Move a Mail message to a mailbox by persistent id. |
| mail_flag_messageC | Flag or unflag a Mail message by canonical id. |
| mail_deleteA | Delete a Mail message by canonical id. Requires confirm=True. |
| notes_accountsB | List Notes accounts. |
| notes_foldersA | List Notes folders, optionally scoped to one account. |
| notes_listA | List note summaries/previews only. Use notes_read to fetch full note content. |
| notes_searchA | Search note titles and bodies, returning summaries/previews only. Use notes_read with the returned id to fetch full content. |
| notes_readA | Read one note's full content by stable id or title. |
| notes_createB | Create a note in a folder. |
| notes_appendB | Append text to a note by stable id or title. |
| notes_deleteA | Delete a note by stable id or title. Requires confirm=True. |
| reminders_listsA | List reminder lists. By default this preserves the original list-of-names response. Set include_metadata=True to get stable list identifiers for targeting. |
| reminders_listA | List reminders from a specific list. Always requires list_name or reminders_list_id. If neither is provided, returns the available reminder lists and asks the user to pick one — never attempts to enumerate all reminders across all lists. limit: max reminders to return (default 20, max 100). |
| reminders_create_listC | Create a reminder list. |
| reminders_rename_listA | Rename a reminder list by stable id or friendly name. |
| reminders_delete_listA | Delete a reminder list. Requires confirm=True. |
| reminders_todayA | Return incomplete reminders due today across all lists. |
| reminders_overdueA | Return incomplete reminders due before today across all lists. |
| reminders_searchA | Search reminders by title or notes across all lists. |
| reminders_updateC | Update a reminder by canonical id. |
| reminders_renameC | Rename a reminder by canonical id. |
| reminders_createC | Create a reminder. |
| reminders_completeB | Mark a reminder as complete. |
| reminders_deleteA | Delete a reminder. Requires confirm=True. |
| apple_inventoryB | List discoverable Apple containers across supported scopes. |
| apple_preferences_getB | Return persisted preferences, optionally filtered to a scope. |
| apple_preferences_set_defaultC | Set the default target for a scope. |
| apple_preferences_add_aliasC | Add an alias for a scope target. |
| apple_preferences_remove_aliasC | Remove an alias for a scope target. |
| apple_resolve_targetC | Resolve a friendly target name against the current inventory and preferences. |
| scheduled_tasks_listC | List configured scheduled tasks. |
| scheduled_tasks_getA | Return a single scheduled task by name. |
| scheduled_tasks_createC | Create and persist a scheduled task. |
| scheduled_tasks_runC | Run a scheduled task manually. |
| scheduled_tasks_enableC | Enable a scheduled task. |
| scheduled_tasks_disableC | Disable a scheduled task. |
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
- 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/abhinavag-svg/apple-ecosystem-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server