Apple Ecosystem MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
| 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
- 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/abhinavag-svg/apple-ecosystem-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server