apple_get_preferences
Apple Get Preferences
Read the persisted Apple-Tools assistant defaults and routing preferences.
Takes no parameters.

io.github.JonathanRReedPublished by GitHub account JonathanRReedv1.1.6Updated Nov 7, 2026
Unified Apple ecosystem MCP server for macOS: Mail, Calendar, Notes, Files, Messages, and more.
The publisher's own server: Core
Unified macOS MCP server giving an assistant one entrypoint to Mail, Calendar, Reminders, Messages, Contacts, Notes, Shortcuts, Files, System and Maps.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
Unified MCP server for Apple apps on macOS.
One entrypoint for Mail, Calendar, Reminders, Messages, Contacts, Notes, Shortcuts, Files, System, and Maps. This server wraps the standalone servers and exposes a unified MCP interface.
apple_list_prompts and apple_get_promptApple-Tools-MCP exposes its full tool surface through tools/list, with readOnlyHint/destructiveHint annotations and structured output schemas — modern clients defer-load large tool surfaces themselves. For context-constrained clients:
search_tools finds tools by name, aliases, and domain tagsget_tool_info loads the full schema and examples for one tool on demandgenerated/tool_wrappers/pythonThis builds one uv workspace environment with the unified entrypoint at .venv/bin/apple-tools-mcp plus every standalone server's console script (bash scripts/install_all.sh does the same, with a venv fallback for machines without uv). You can also point an MCP client at Apple-Tools-MCP/start.sh, which prefers uv run and falls back to a plain venv bootstrap (Python 3.11+ required).
These values are the defaults for uvx and pip installs, so you only need the lines you want to change. With these values, replies and forwards are saved as drafts for you to send. To let the assistant send email itself, set APPLE_MAIL_MCP_SAFETY_PROFILE to full_access. The Claude Desktop bundle defaults Mail to full_access, as earlier bundles did; change it under Settings > Extensions > Apple Tools > Configure. Restart the client after changing env.
Running from a clone instead? Use /path/to/Apple-MCPs/Apple-Tools-MCP/start.sh as the command with empty args.
--scope user makes the server available in every project. To share it with one repository through its .mcp.json instead, use --scope project.
apple_list_prompts and apple_get_promptdisplay_name / contact_id when Contacts access is already granted, and every Messages response says why names are missing in contact_names_status (ok, permission_denied, unavailable). Only exact owners are named; a number in a different area code never borrows a contact's name.apple_health, apple_permission_guide, apple_recheck_permissionsApple-Tools-MCP can persist a lightweight assistant state file with defaults for:
messages, mail, or autophone, email, or autoapple_detect_defaults() returns saved preferences with probe_status: "not_probed" and does not write the state file. To discover and persist missing targets, call apple_detect_defaults(probe_apps=true) after the user requests that discovery. This explicit probe may open Mail or Notes and request macOS permissions. The tool advertises that it can write preferences. Use apple_get_preferences to inspect defaults and apple_update_preferences to set them directly.
apple_health, apple_recheck_permissions, apple_overview, and apple://overview do not send Apple Events to apps or request new permissions. Overview keeps its resource keys but returns ok: false and status: "not_probed" for permission-sensitive app data. Read the named domain resource or tool when the user requests that data. Recent-file scans are also deferred because protected folders can require permission. Shortcuts library enumeration is also deferred. Its explicit shortcuts://all resource can run several CLI commands with a default 300-second timeout per command. Maps availability metadata remains included. Explicit app operations retain their permission checks and may launch the requested app.
When a reminder or note operation needs a missing destination, it discovers defaults only for that domain.
By default the state file is stored at ~/.apple-tools-mcp/preferences.json. Override it with APPLE_AGENT_MCP_STATE_FILE.
Apple-Tools-MCP also stores recent assistant actions in ~/.apple-tools-mcp/actions.json so the unified server can expose audit history and undo for reversible operations.
Archive, reminder, note, and Mail follow-up previews leave saved preferences and action history unchanged, including when defaults must be discovered or a destination cannot be resolved. An explicit reminder-list or notes-folder ID uses its saved label only when it matches the default; other IDs appear directly in the preview.
Archive discovery stays within the selected account. An explicit account override does not reuse another account's saved archive mailbox or replace saved defaults. If that account has no discoverable archive, pass its mailbox explicitly.
apple_update_system_setting for macOS preference changes and apple_control_frontmost_app only when a native app-domain tool cannot complete the task.application or bundle_id; it must be listed in APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS (see GUI input).apple_list_recent_actions and apple_undo_action for reversible operations.from_account, not just an account nickname.contact_names_status insteadAPPLE_FILES_MCP_ALLOWED_ROOTS unless APPLE_SHORTCUTS_MCP_ALLOWED_ROOTS is setAPPLE_FILES_MCP_ALLOWED_ROOTS unless APPLE_MESSAGES_MCP_ALLOWED_ROOTS is setAPPLE_FILES_MCP_ALLOWED_ROOTS, not by a macOS privacy promptuvx apple-tools-mcp (or a clone's Apple-Tools-MCP/start.sh / installed .venv/bin/apple-tools-mcp entrypoint) to your MCP clientapple_health first to verify every domainapple_permission_guideapple_recheck_permissionsstdio is the default and recommended transport. Set APPLE_AGENT_MCP_TRANSPORT=streamable-http (with optional APPLE_AGENT_MCP_HOST and APPLE_AGENT_MCP_PORT) to serve Streamable HTTP instead — used below for protocol validation.
Start Apple-Tools-MCP in conformance mode:
Then run the official active suite:
APPLE_AGENT_MCP_CONFORMANCE_MODE=1 adds an opt-in MCP conformance surface covering content types, resources, resource templates, prompts, progress, and completion (fixtures for features removed by spec 2026-07-28 are intentionally absent). It is intended for CI and protocol testing, not normal assistant use.
The briefing and triage tools (apple_generate_daily_briefing, apple_generate_weekly_briefing, apple_triage_communications_task) are standard synchronous tools — the experimental MCP tasks API they previously used was removed from the spec (SEP-1686) and SDK, with the same tool names and results.
From this server directory:
For the full repo-wide smoke pass, run:
apple_control_frontmost_app and the delegated system_gui_* input tools send input only to apps listed in APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS. It is empty by default, so GUI input is off until you set it. Listing menu bar items (list_menu_bar_items) only reads and needs no allowlist.
com.apple.TextEdit,com.apple.Safari. To find an app's bundle id, run osascript -e 'id of app "TextEdit"'.env block of this server in your MCP client config, for example "APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS": "com.apple.TextEdit,com.apple.Safari". In Claude Desktop, open Settings > Extensions, configure Apple Tools and fill in "Apps that accept GUI input". Restart the client afterwards.application or bundle_id is required for every input action (click_menu_path, press_keys, type_text, click_button, choose_popup_value). Input is never sent to whatever app happens to be frontmost.Set APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT to a dedicated directory before
attaching local files to a draft or outgoing message. Attachments are disabled
when this variable is unset. The same directory restriction applies to the
standalone Mail server and the unified Apple Tools server.
Select a calendar by its displayed name and source in calendar_list_calendars, then pass its returned calendar_id unchanged. Re-list calendars after changing Calendar permissions and restarting the MCP server. For full alarm edits, list events with a native calendar ID and use the returned native event ID; existing applescript:: IDs continue to use automation. See Selecting calendar and event identifiers.
Calendar alarm edits follow the standalone server contract: full editing and combined explicit-alarm/field updates require native EventKit. In the automation fallback, omit alarms for ordinary field edits. Alarm-only initial alerts and empty-list no-ops require every alert collection to be readable and empty. Failed insertion or an interrupted mutation can have an unknown outcome; inspect the event before retrying. See Calendar alarm support.
Source: Apple-Tools-MCP/README.md at commit 96b9cdb
Apple Get Preferences
Read the persisted Apple-Tools assistant defaults and routing preferences.
Takes no parameters.
Apple Detect Defaults
Read saved defaults without probing apps. Set probe_apps=true to discover and persist missing Mail, Calendar, Reminders, and Notes targets; this may open apps and request macOS permissions.
probe_appsApple Update Preferences
Persist assistant defaults such as default lists, folders, calendars, archive mailboxes, and preferred communication routing.
default_calendar_iddefault_mail_accountdefault_calendar_namedefault_archive_accountdefault_archive_mailboxdefault_notes_folder_iddefault_digest_folder_iddefault_reminder_list_iddefault_notes_folder_namepreferred_message_channeldefault_digest_folder_namedefault_notes_account_name+3 moreApple Detect Digest Folder
Detect the preferred Notes folder for daily and weekly digests, and persist it if found.
Takes no parameters.
Apple Set Digest Folder
Persist the dedicated Notes folder that Apple-Tools should use for daily and weekly digests.
folder_idrequiredfolder_nameaccount_nameApple Ensure Digest Folder
Ensure a dedicated Notes folder exists for daily and weekly digests, creating it when necessary and persisting the preference.
folder_nameaccount_nameApple Update Contact Preferences
Persist preferred communication routing for a specific contact so Apple-Tools can choose the right channel and target for that person.
contact_idrequiredclear_existingpreferred_mail_addresspreferred_message_targetpreferred_message_channelpreferred_communication_channelApple Prepare Communication
Resolve a recipient through Contacts, evaluate available channels, and return the recommended mail or messages target before sending.
recipientrequiredpreferred_channelApple Preview Communication
Preview how Apple-Tools will route a communication before sending it through Messages or Mail.
messagerequiredsubjectrecipientrequiredattachmentsfrom_accountpreferred_channelApple Preview Archive Message
Preview how Apple-Tools will archive a Mail message before moving it.
message_idrequiredarchive_accountarchive_mailboxApple Preview Create Reminder With Defaults
Preview how Apple-Tools will create a reminder with the configured default reminder list.
notestitlerequiredlist_iddue_datepriorityApple Preview Create Note With Defaults
Preview how Apple-Tools will create a note with the configured default notes folder.
tagstitlerequiredbody_htmlbody_textfolder_idApple Preview Follow-Up From Mail
Preview how Apple-Tools will turn an email into a reminder and note before creating either item.
due_datemessage_idrequirednote_titlecreate_notereminder_titlecreate_reminderApple Send Communication
Send a communication through Messages or Mail using Contacts resolution and assistant defaults.
messagerequiredsubjectrecipientrequiredattachmentsfrom_accountpreferred_channelApple Archive Message
Move a message to the preferred archive mailbox, or auto-detect an archive mailbox if no preference exists yet.
message_idrequiredarchive_accountarchive_mailboxApple List Recent Actions
List recent assistant actions recorded by Apple-Tools for audit and undo workflows.
limitApple Undo Action
Undo a recent Apple-Tools action when the underlying standalone MCPs support a reliable reversal.
action_idrequiredApple Create Reminder With Defaults
Create a reminder using the configured default reminder list when list_id is omitted.
notestitlerequiredlist_iddue_datepriorityApple Create Note With Defaults
Create a note using the configured default notes folder when folder_id is omitted.
tagstitlerequiredbody_htmlbody_textfolder_idApple Capture Follow-Up From Mail
Turn an email into a reminder and an archival note using assistant defaults for the destination list and notes folder.
due_datemessage_idrequirednote_titlecreate_notereminder_titlecreate_reminderApple Event Collaboration Summary
Summarize attendee state for a shared calendar event so agents can verify collaboration and participation.
event_idrequiredApple Maps Search Places Strict
Search places through the native Apple Maps MCP and fail closed if the Maps helper is unavailable.
limitqueryrequiredApple Maps Get Directions Strict
Get directions through the native Apple Maps MCP and fail closed if the Maps helper is unavailable.
originrequiredtransportdestinationrequiredApple Find Duplicate Contacts
Find likely duplicate contacts through Apple Contacts so assistants can disambiguate people before acting.
querymerge_candidates_onlyApple Prepare Unique Contact
Resolve a contact for a person-targeted workflow, but stop and return duplicate groups if likely duplicate records need cleanup first.
queryrequiredApple List Shortcuts For Capability
List likely shortcuts for a requested capability so Apple-Tools can use Shortcuts as an intentional bridge when native coverage is missing.
limitqueryrequiredApple Route Or Run Shortcut
Use Apple Shortcuts as the explicit bridge when native Apple MCP coverage is insufficient or when the user names a shortcut directly.
dry_runrequestrequiredinput_textinput_pathsshortcut_name_or_identifierApple Open Application
Open an application through the unified Apple control plane using its name or bundle identifier.
bundle_idapplicationApple Get Focus Status
Return truthful Focus support metadata through the unified Apple control plane.
Takes no parameters.
Apple Get System Context
Return a richer Apple system context snapshot, including Focus, frontmost app, and battery state.
Takes no parameters.
Apple Open File Path
Open a file or folder through Apple Files and return iCloud-aware path metadata.
pathrequiredApple Reveal In Finder
Reveal a file or folder in Finder through Apple Files.
pathrequiredApple Tag File
Read, replace, add, or remove Finder tags on a file or folder through Apple Files.
pathrequiredtagsactionApple Update System Setting
Apply an assistant-relevant macOS setting through the unified Apple control plane.
modeenabledsettingrequiredApple Control Frontmost App
Use the unified Apple control plane for bounded GUI fallback actions when a native app-domain tool cannot complete the task. Input actions (click_menu_path, press_keys, type_text, click_button, choose_popup_value) require application or bundle_id naming a running app whose bundle id is listed in APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS (comma-separated bundle ids; GUI input is off while it is empty), and that app must come to the front before any input is sent. Terminals, script editors and automation apps are always refused, even if allow-listed.
keytextindexlabelvalueactionrequiredbundle_idmenu_pathmodifiersapplicationdescriptionApple Suggest Mailboxes
Apple Suggest Mailboxes using the current Apple data surfaces. This is a completion fallback for clients without MCP completion support.
limitqueryApple Suggest Calendars
Apple Suggest Calendars using the current Apple data surfaces. This is a completion fallback for clients without MCP completion support.
limitqueryApple Suggest Reminder Lists
Apple Suggest Reminder Lists using the current Apple data surfaces. This is a completion fallback for clients without MCP completion support.
limitqueryApple Suggest Shortcuts
Apple Suggest Shortcuts using the current Apple data surfaces. This is a completion fallback for clients without MCP completion support.
limitqueryApple Suggest Contacts
Apple Suggest Contacts using the current Apple data surfaces. This is a completion fallback for clients without MCP completion support.
limitqueryApple Suggest Note Folders
Apple Suggest Note Folders using the current Apple data surfaces. This is a completion fallback for clients without MCP completion support.
limitqueryApple Suggest Message Conversations
Apple Suggest Message Conversations using the current Apple data surfaces. This is a completion fallback for clients without MCP completion support.
limitqueryApple Suggest Files
Apple Suggest Files using the current Apple data surfaces. This is a completion fallback for clients without MCP completion support.
limitqueryApple Suggest Running Apps
Apple Suggest Running Apps using the current Apple data surfaces. This is a completion fallback for clients without MCP completion support.
limitqueryApple Suggest Places
Apple Suggest Places using the current Apple data surfaces. This is a completion fallback for clients without MCP completion support.
limitqueryApple Permission Guide
Explain how to grant the Apple permissions needed by a given Apple domain on macOS.
domainApple Recheck Permissions
Recheck Apple domain health after the user changes macOS permissions, and notify the client that Apple resources changed.
Takes no parameters.
Apple Send Message Interactive
Send an Apple Messages message, asking for missing recipient or text when needed.
textrecipientApple Create Event Interactive
Create a Calendar event, asking for missing event details when needed.
notestitleall_dayend_isolocationstart_isocalendar_idApple Health
Report aggregated health across the unified Apple ecosystem MCP domains.
Takes no parameters.
Apple Overview
Return domain health and saved preferences; defer permission-sensitive data reads and Shortcuts library enumeration.
Takes no parameters.
Apple Generate Daily Briefing
Generate a daily Apple briefing from today's context, domain health, and Mail highlights.
mail_limitmail_queryApple Generate Weekly Briefing
Generate a weekly Apple briefing from upcoming events, reminders, and Mail highlights.
daysmail_limitmail_queryApple Triage Communications Task
Generate a cross-app communications triage summary from unread Messages and Mail search results.
mail_limitmail_queryconversation_limitMail Health
Report the active Apple Mail MCP configuration.
Takes no parameters.
List Mailboxes
List Apple Mail mailboxes, optionally filtered by account.
accountSearch Mail
Search Apple Mail messages by query with optional account, mailbox and unread filters. Without account, accounts are searched in Mail's order and the limit can be filled by the first one; pass account (as returned by mail_list_mailboxes) to search a specific account.
limitqueryrequiredaccountmailboxunread_onlyGet Email
Fetch a single Apple Mail message by message_id.
message_idrequiredGet Thread
Find related messages in the same mailbox thread by normalized subject, anchored on a message_id.
limitmessage_idrequiredCompose Draft
Create a draft message in Apple Mail without sending it. Optionally specify from_account as an email address or account name to set the sender.
cctorequiredbccbodysubjectattachmentsfrom_accountReply to Message
Reply to an existing email message. Provide a message_id and body text. Set reply_all=true to reply to all recipients. Optionally specify from_account. In full_access the reply is sent; in safe_manage it is saved as an unsent draft in Mail for the user to review (check `sent` and `note` in the result).
bodyrequiredreply_allmessage_idrequiredfrom_accountReply To Latest In Thread
Find the latest related message in the same mailbox thread and reply to that message. In full_access the reply is sent; in safe_manage it is saved as an unsent draft in Mail for the user to review (check `sent` and `note` in the result).
bodyrequiredlimitreply_allmessage_idrequiredfrom_accountForward Message
Forward an existing email message to new recipients. Provide a message_id and the to list. Optionally prepend body text and specify from_account. In full_access the forward is sent; in safe_manage it is saved as an unsent draft in Mail for the user to review (check `sent` and `note` in the result).
torequiredbodymessage_idrequiredfrom_accountMark Message Read/Unread
Set the read status of an email message. Pass is_read=true to mark as read, is_read=false to mark as unread.
is_readrequiredmessage_idrequiredMove Message
Move an email message to a different mailbox. Optionally specify target_account if the mailbox is in a different account.
message_idrequiredtarget_accounttarget_mailboxrequiredArchive Thread
Move related messages in the same mailbox thread to the target archive mailbox.
limitmessage_idrequiredarchive_accountarchive_mailboxDelete Message
Delete (trash) an email message by its message_id.
message_idrequiredSend Email
Send an email immediately via Apple Mail. Optionally specify from_account as an email address or account name to set the sender.
cctorequiredbccbodysubjectattachmentsfrom_accountCalendar Health
Report the active Apple Calendar server configuration.
Takes no parameters.
List Calendars
List available Apple Calendar calendars. Select by name and source, then pass the returned calendar_id unchanged. Re-list after Calendar access changes to refresh identifiers.
Takes no parameters.
List Events
List calendar events in a time window, optionally filtered to one calendar. Use calendar_id from calendar_list_calendars. Listing through native EventKit returns native event IDs for full alarm edits.
limitend_isorequiredstart_isorequiredcalendar_idGet Event
Fetch full details for a calendar event by event_id.
event_idrequiredCreate Event
Create a new event in a specific Apple Calendar calendar. Use the exact calendar_id returned by calendar_list_calendars. With native access, a unique calendar name resolves to its native calendar; duplicate names return AMBIGUOUS_CALENDAR. Optional alarms: list of {minutes_before: N} or {absolute_iso: ISO datetime}. Automation can add initial display alerts only when no inherited alerts need removal; full alarm editing requires native EventKit access.
notestitlerequiredalarmsall_dayend_isorequiredlocationstart_isorequiredrecurrencecalendar_idrequiredUpdate Event
Update one or more fields on an existing calendar event. For full alarm edits, list events using a native calendar_id and pass the returned native event_id. Existing applescript:: IDs continue to use automation after access changes. Optional alarms: list of {minutes_before: N} or {absolute_iso: ISO datetime}; pass [] to clear alarms, omit to leave unchanged. Replacing or clearing existing alarms, or combining explicit alarms with other field edits, requires native EventKit access. Automation rejects combined requests before any mutation, including [] or unchanged field values. Omit alarms for ordinary field edits; alarm-only initial alerts or [] no-ops require all alert collections verified empty. For a repeating event (recurring: true in calendar_list_events), pass scope and, for one occurrence or those following it, occurrence_start_iso. Without scope, the user is asked to choose when the client supports forms; otherwise the call returns RECURRING_EVENT_SCOPE_REQUIRED and nothing changes.
notesscopetitlealarmsall_dayend_isoevent_idrequiredlocationstart_isorecurrencecalendar_idoccurrence_start_isoDelete Event
Delete a calendar event by event_id. For a repeating event (recurring: true in calendar_list_events), pass scope and, for one occurrence or those following it, occurrence_start_iso. Without scope, the user is asked to choose when the client supports forms; otherwise the call returns RECURRING_EVENT_SCOPE_REQUIRED and nothing changes.
scopeevent_idrequiredoccurrence_start_isoReminders Health
Report the active Apple Reminders MCP server configuration.
Takes no parameters.
List Reminder Lists
List available Apple Reminders lists.
Takes no parameters.
Create Reminder List
Create a new Apple Reminders list.
titlerequiredDelete Reminder List
Delete a reminder list entirely. Requires full_access safety mode.
list_idrequiredList Reminders
List reminders with optional list and due-date filters.
limitsearchlist_iddue_afterdue_beforeinclude_completedGet Reminder
Fetch full details for a reminder by reminder_id.
reminder_idrequiredCreate Reminder
Create a new reminder in a specific Apple Reminders list.
tagsnotestitlerequiredlist_idrequireddue_datepriorityremind_atdue_all_dayparent_reminder_idUpdate Reminder
Update one or more fields on an existing reminder.
tagsnotestitlelist_iddue_datepriorityremind_atdue_all_dayreminder_idrequiredparent_reminder_idComplete Reminder
Mark a reminder as completed.
reminder_idrequiredUncomplete Reminder
Mark a reminder as not completed.
reminder_idrequiredDelete Reminder
Delete a reminder by reminder_id.
reminder_idrequiredShortcuts Health
Report the active Apple Shortcuts MCP configuration.
Takes no parameters.
List Shortcuts
List Apple Shortcuts, optionally restricted to one folder.
folder_nameList Shortcut Folders
List Apple Shortcuts folders.
Takes no parameters.
View Shortcut
Open a shortcut in the Shortcuts app by name or identifier and return its metadata.
shortcut_name_or_identifierrequiredRun Shortcut
Run a shortcut by name or identifier with optional input and output arguments.
input_textinput_pathsoutput_pathoutput_typeshortcut_name_or_identifierrequiredFiles Health
Report the active Apple Files MCP configuration.
Takes no parameters.
List Allowed Roots
List the file system roots the server may access.
Takes no parameters.
List Directory
List files and folders inside an allowed directory path.
pathrequiredSearch Files
Search file and folder names inside the allowed roots.
limitqueryrequiredbase_pathGet File Info
Get metadata for a file or folder inside the allowed roots.
pathrequiredRead Text File
Read a UTF-8 text file inside the allowed roots.
pathrequiredmax_bytesRecent Files
List recently modified files inside the allowed roots.
limitGet Tags
Read Finder tags for a file or folder inside the allowed roots.
pathrequiredList Recent Locations
List recently active parent folders across the allowed roots, including iCloud-aware metadata.
limitGet iCloud Status
Report whether local iCloud Drive is available and whether it is part of the current allowed roots.
Takes no parameters.
Create Folder
Create a folder inside the allowed roots.
pathrequiredMove Path
Move or rename a file or folder inside the allowed roots.
sourcerequireddestinationrequiredOpen Path
Open a file or folder in the default app. Requires safe_manage or full_access safety mode.
pathrequiredReveal In Finder
Reveal a file or folder in Finder. Requires safe_manage or full_access safety mode.
pathrequiredSet Tags
Replace Finder tags for a file or folder. Requires safe_manage or full_access safety mode.
pathrequiredtagsrequiredAdd Tags
Add Finder tags to a file or folder. Requires safe_manage or full_access safety mode.
pathrequiredtagsrequiredRemove Tags
Remove Finder tags from a file or folder. Requires safe_manage or full_access safety mode.
pathrequiredtagsrequiredDelete Path
Delete a file or empty folder inside the allowed roots. Requires full_access safety mode.
pathrequiredSystem Health
Report the active Apple System MCP configuration.
Takes no parameters.
System Status
Return current battery, frontmost app, and running app count.
Takes no parameters.
Get Battery
Get the current battery state from macOS.
Takes no parameters.
Get Frontmost App
Get the name of the current frontmost application.
Takes no parameters.
List Running Apps
List currently running foreground applications.
Takes no parameters.
Get Clipboard
Read the current text clipboard contents.
Takes no parameters.
List Settings Domains
List the common macOS preference domains exposed by Apple System MCP.
Takes no parameters.
Get Appearance Settings
Read current macOS appearance settings such as light or dark mode and accent color.
Takes no parameters.
Get Accessibility Settings
Read common macOS accessibility settings such as reduce motion and increase contrast.
Takes no parameters.
Get Dock Settings
Read common macOS Dock settings such as autohide, magnification, and orientation.
Takes no parameters.
Get Finder Settings
Read common macOS Finder settings such as path bar, status bar, and preferred view style.
Takes no parameters.
Get Settings Snapshot
Return a combined read-only snapshot of appearance, accessibility, Dock, and Finder settings.
Takes no parameters.
Get Focus Status
Return truthful Focus support metadata and the best available current Focus state.
Takes no parameters.
Get System Context Snapshot
Return a richer macOS context snapshot, including battery, frontmost app, and Focus metadata.
Takes no parameters.
Read Preference Domain
Read a macOS preference domain through defaults export for a production-safe, structured settings view.
domainrequiredcurrent_hostSet Appearance Mode
Set macOS appearance mode to light or dark.
moderequiredSet Show All Extensions
Show or hide filename extensions in macOS.
enabledrequiredSet Finder Path Bar
Show or hide the Finder path bar.
enabledrequiredSet Finder Status Bar
Show or hide the Finder status bar.
enabledrequiredSet Dock Autohide
Enable or disable Dock autohide.
enabledrequiredSet Dock Show Recents
Enable or disable recent applications in the Dock.
enabledrequiredSet Reduce Motion
Enable or disable macOS reduce motion accessibility mode.
enabledrequiredSet Increase Contrast
Enable or disable macOS increase contrast accessibility mode.
enabledrequiredSet Reduce Transparency
Enable or disable macOS reduce transparency accessibility mode.
enabledrequiredSet Clipboard
Write text into the macOS clipboard.
textrequiredShow Notification
Display a local macOS notification.
bodyrequiredtitlerequiredsubtitleOpen Application
Open an application by name using macOS.
bundle_idapplicationList Menu Bar Items
List the top-level menu bar items for an application. This is a GUI fallback tool.
bundle_idapplicationClick Menu Path
Click a menu path in a named application, for example ['File', 'New Window']. This is a GUI fallback tool. Requires application or bundle_id naming a running app whose bundle id is listed in APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS (comma-separated bundle ids; GUI input is off while it is empty). Input is never sent to the frontmost app implicitly. Terminals, script editors and automation apps are always refused, even if allow-listed.
bundle_idmenu_pathrequiredapplicationPress Keys
Press a key or key chord in a named application. This is a GUI fallback tool. Requires application or bundle_id naming a running app whose bundle id is listed in APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS (comma-separated bundle ids; GUI input is off while it is empty). Input is never sent to the frontmost app implicitly. Terminals, script editors and automation apps are always refused, even if allow-listed.
keyrequiredbundle_idmodifiersapplicationType Text
Type text into the focused control of a named application. This is a GUI fallback tool. Requires application or bundle_id naming a running app whose bundle id is listed in APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS (comma-separated bundle ids; GUI input is off while it is empty). Input is never sent to the frontmost app implicitly. Terminals, script editors and automation apps are always refused, even if allow-listed.
textrequiredbundle_idapplicationClick Button
Click a named button in the front window of a named application. This is a GUI fallback tool. Requires application or bundle_id naming a running app whose bundle id is listed in APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS (comma-separated bundle ids; GUI input is off while it is empty). Input is never sent to the frontmost app implicitly. Terminals, script editors and automation apps are always refused, even if allow-listed.
indexlabelbundle_idapplicationdescriptionChoose Pop-Up Value
Choose a value from a named pop-up button in the front window of a named application. This is a GUI fallback tool. Requires application or bundle_id naming a running app whose bundle id is listed in APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS (comma-separated bundle ids; GUI input is off while it is empty). Input is never sent to the frontmost app implicitly. Terminals, script editors and automation apps are always refused, even if allow-listed.
labelrequiredvaluerequiredbundle_idapplicationdescriptionMaps Health
Report the active Apple Maps MCP configuration.
Takes no parameters.
Search Places
Search Apple Maps for matching places.
limitqueryrequiredGet Directions
Get Apple Maps route details between an origin and destination.
originrequiredtransportdestinationrequiredBuild Maps Link
Build an Apple Maps URL for a destination or route.
origintransportdestinationrequiredOpen Directions In Maps
Open directions in the Apple Maps app.
origintransportdestinationrequiredContacts Health
Report the active Apple Contacts MCP configuration.
Takes no parameters.
List Contacts
List Apple Contacts entries.
limitoffsetCreate Contact
Create a new contact in Apple Contacts with a first name (required) and optional last name, organization, and note.
noteemailsphoneslast_namefirst_namerequiredorganizationUpdate Contact
Update an existing contact's information. Only the fields you provide will be changed.
noteemailsphoneslast_namecontact_idrequiredfirst_nameorganizationDelete Contact
Permanently delete a contact by contact_id. Requires full_access safety mode.
contact_idrequiredSearch Contacts
Search Apple Contacts by name, phone number, or email address.
limitqueryrequiredGet Contact
Fetch full details for an Apple Contacts record by contact_id.
contact_idrequiredResolve Message Recipient
Resolve a contact into a message-ready phone number or email address.
queryrequiredchannelNotes Health
Report the active Apple Notes MCP configuration.
Takes no parameters.
List Accounts
List Apple Notes accounts.
Takes no parameters.
List Folders
List Apple Notes folders.
limitoffsetaccount_nameList Notes
List notes, optionally scoped to a folder or account.
limitoffsetfolder_idaccount_nameGet Note
Fetch full details for an Apple Notes note by note_id.
note_idrequiredSearch Notes
Search notes by text, folder, or account.
limitqueryrequiredoffsetfolder_idaccount_nameCreate Note
Create a new note in a folder.
tagstitlerequiredbody_htmlfolder_idrequiredAppend to Note
Append plain text to an existing note without replacing its current content. Pass the text as body.
bodyrequirednote_idrequiredUpdate Note
Update an existing note.
tagstitlenote_idrequiredbody_htmlfolder_idDelete Note
Delete a note by note_id.
note_idrequiredMove Note
Move a note to a different folder.
note_idrequiredfolder_idrequiredCreate Notes Folder
Create a new folder in an Apple Notes account or nested folder.
folder_namerequiredaccount_namerequiredparent_folder_idRename Folder
Rename an existing folder.
folder_idrequiredfolder_namerequiredDelete Folder
Delete an Apple Notes folder.
folder_idrequiredList Note Attachments
List attachments for a note.
note_idrequiredMessages Health
Report Messages server configuration and capability status.
Takes no parameters.
List Conversations
List recent Apple Messages conversations.
limitoffsetunread_onlyGet Conversation
Fetch a single Apple Messages conversation with paginated messages.
limitoffsetchat_idrequiredSearch Messages
Search Apple Messages text history.
limitqueryrequiredoffsetsenderchat_idend_isostart_isoGet Message
Fetch a single Apple Messages message by message_id.
message_idrequiredList Message Attachments
List Apple Messages attachments by chat or message.
limitoffsetchat_idmessage_idSend Message
Send a new message through Messages.app. Sends as iMessage unless service_name is set: SMS or RCS go through the iPhone's carrier and need Text Message Forwarding enabled for this Mac.
textrequiredrecipientrequiredservice_nameReply In Conversation
Reply to an Apple Messages conversation using its chat_id. Supports both one-to-one and group chats. One-to-one replies use the service of the thread's latest message (SMS/RCS threads stay SMS/RCS) unless service_name is set. Group replies always use the group's existing service; service_name is rejected for groups unless it matches.
textrequiredchat_idrequiredservice_nameSend Attachment
Send a file attachment via Apple Messages to a recipient. Optionally include a text message, which is sent after the file. Waits up to 20 seconds for Messages to confirm the transfer: ATTACHMENT_NOT_DELIVERED means the file failed, and SEND_STATUS_UNKNOWN means check the conversation before sending again.
textfile_pathrequiredrecipientrequiredservice_nameApple List Prompts
Fallback prompt discovery tool for clients that only support tools.
Takes no parameters.
Apple Get Prompt
Fallback prompt rendering tool for clients that only support tools.
namerequiredarguments_jsonSearch Tools
Search this server's tool catalog by keyword, alias, or domain tag.
modelimitqueryrequireddomain_tagsGet Tool Info
Load the full schema, examples, and metadata for one tool from this server.
namerequiredinclude_schemainclude_examples90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
to.unifiedOfficial publisher
Remote Unified.to MCP server that gives an assistant one API surface for 500+ B2B SaaS integrations across 28+ categories.
com.revclamp
Scrapes and normalizes job postings from five ATS platforms (Greenhouse, Workday, Ashby, Lever, SmartRecruiters) into one schema for an assistant.

Published by GitHub account rezearcher
Remote MCP server that gives an assistant a deduplicated job feed across ATS boards, LinkedIn guest search and Hacker News hiring threads.
Published by GitHub account happy520ai
A self-hosted MCP gateway that gives an assistant prompt enhancement, fake-provider chat, local knowledge search, workflow runs and governance inspection.

Published by GitHub account atul0016
Local MCP server that gives an assistant cross-platform ad spend, attribution, true ROAS, budget and anomaly intelligence.
uvx apple-tools-mcpgit clone https://github.com/JonathanRReed/Apple-MCPs.gitcd Apple-MCPsuv sync --all-packages{ "mcpServers": { "apple-tools": { "command": "uvx", "args": ["apple-tools-mcp"], "env": { "APPLE_MAIL_MCP_SAFETY_PROFILE": "safe_manage", "APPLE_CALENDAR_MCP_SAFETY_MODE": "safe_manage", "APPLE_REMINDERS_MCP_SAFETY_MODE": "safe_manage", "APPLE_FILES_MCP_ALLOWED_ROOTS": "/Users/you/Desktop,/Users/you/Documents,/Users/you/Downloads,/Users/you/Library/Mobile Documents/com~apple~CloudDocs", "APPLE_FILES_MCP_SAFETY_MODE": "safe_manage", "APPLE_SYSTEM_MCP_SAFETY_MODE": "safe_manage", "APPLE_CONTACTS_MCP_SAFETY_MODE": "safe_manage", "APPLE_NOTES_MCP_SAFETY_MODE": "full_access", "APPLE_MESSAGES_MCP_SAFETY_MODE": "full_access", "APPLE_SHORTCUTS_MCP_SAFETY_MODE": "full_access" } } }}claude mcp add --transport stdio --scope user apple-tools -- uvx apple-tools-mcpcd /path/to/Apple-MCPs/Apple-Tools-MCPAPPLE_AGENT_MCP_TRANSPORT=streamable-http \APPLE_AGENT_MCP_PORT=8765 \APPLE_AGENT_MCP_CONFORMANCE_MODE=1 \./start.shnpx -y @modelcontextprotocol/conformance server \ --url http://127.0.0.1:8765/mcp \ --suite activenpx -y @modelcontextprotocol/inspector --cli bash ./start.sh --method tools/listnpx -y @modelcontextprotocol/inspector --cli bash ./start.sh --method prompts/listnpx -y @modelcontextprotocol/inspector --cli bash ./start.sh --method resources/listcd /path/to/Apple-MCPsbash scripts/inspector_smoke.sh<apple_tools>`tools/list` returns the full tool surface. If context is constrained, use `search_tools` first, then `get_tool_info` only for the tools you plan to call.
<routing> <imessage trigger="text, message, msg, iMessage"> Resolve recipient via Contacts first. Confirm if multiple matches. Omit service_name parameter entirely. </imessage>
<contacts trigger="lookup, phone number, email, contact"> Run before any iMessage or Mail action. </contacts>
<mail trigger="email, mail, inbox, draft, reply"> Search requires a query string (sender, subject, or "*" as wildcard). No list-all endpoint. If text vs. email is ambiguous, ask once. </mail>
<calendar trigger="calendar, event, schedule, appointment, meeting, block time"> Confirm date, time, duration, and title before writing. </calendar>
<reminders trigger="remind me, task, to-do, don't forget"> Reminders are organized into lists. Identify available lists on first use and set a default. due_date requires timezone offset: yyyy-MM-ddTHH:mm:ss-HH:00 </reminders>
<notes trigger="note, jot down, write this down, save this"> Multiple accounts may have a "Notes" folder. Identify them on first use and set a default. Use for reference only. Time-sensitive items go to Reminders or Calendar. </notes>
<shortcuts trigger="shortcut, automation, run shortcut"> List available shortcuts before running if request is vague. </shortcuts>
<files trigger="file, folder, attachment, document, download, desktop"> Use Files before Mail, Messages, Notes, or Shortcuts when the request references local paths or attachments. Confirm the exact path before mutation or send actions. </files>
<system trigger="clipboard, frontmost app, battery, notification, open app"> Use System when local desktop context affects the next action. Keep writes scoped unless the user clearly asked for a notification, clipboard update, or app launch. </system>
<maps trigger="map, directions, route, commute, eta, address, place"> Use Maps when place lookup or travel time affects scheduling or communication. Confirm origin, destination, and transport mode for time-sensitive plans. </maps></routing>
<disambiguation> 1. Has due date/time -> Reminders 2. Reference material, no action -> Notes 3. Involves another person -> iMessage or Mail (Contacts first) 4. Text vs. email unclear -> ask once</disambiguation>
<known_gotchas> - service_name on iMessage calls causes error (-1728). Omit it. - Bare timestamps without timezone offset fail on Reminders. - Mail has no "list recent" endpoint. Always pass a search query. - Use `search_tools` plus `get_tool_info` to inspect tools without loading every schema into context. - Multiple Notes folders exist across accounts. Pick one default. - Files access is limited to APPLE_FILES_MCP_ALLOWED_ROOTS. - Some System actions depend on host app automation approval. - GUI input needs application or bundle_id, and the app must be in APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS. Terminals and script editors are always refused. - Maps search and directions depend on the local Swift helper and Xcode command line tools.</known_gotchas></apple_tools>