system_health
System Health
Report the active Apple System MCP configuration.
Takes no parameters.

io.github.JonathanRReedPublished by GitHub account JonathanRReedv1.1.6Updated Nov 7, 2026
Read and manage macOS system settings and perform scoped desktop actions.
Local macOS MCP server that lets an assistant read system context, change scoped settings, and send bounded GUI input to allow-listed apps.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
Local MCP server for macOS system context, truthful Focus support metadata, assistant-relevant settings reads, explicit settings writes, and bounded GUI fallback automation.
defaults exportsystem://status, system://applications, system://settings, system://contextsystem_capture_contextsearch_tools and get_tool_info for context-constrained clientsThis builds one workspace environment with every server's entry point in .venv/bin (for example .venv/bin/apple-system-mcp). You can also point an MCP client at AppleSystem-MCP/start.sh, which prefers uv run and falls back to a plain venv bootstrap (Python 3.11+ required).
Running from a clone instead? Use /path/to/Apple-MCPs/AppleSystem-MCP/start.sh as the command with empty args.
Claude Code:
--scope user makes the server available in every project. To share it with one repository through its .mcp.json instead, use --scope project.
stdio is the default and recommended transport. Set APPLE_SYSTEM_MCP_TRANSPORT=streamable-http (with optional APPLE_SYSTEM_MCP_HOST and APPLE_SYSTEM_MCP_PORT) to serve Streamable HTTP instead.
tools/list returns the full System tool surface. Context-constrained clients can use search_tools first, then get_tool_info for the System tool they need.defaults read in prompts or E2E checks.APPLE_SYSTEM_MCP_SAFETY_MODE=safe_manage for assistant-grade operation.safe_readonly only for audit-only or context-only deployments.APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS (see GUI Input Allowlist).system_healthsystem_permission_guidesystem_get_settings_snapshotsystem_get_focus_statussystem_get_context_snapshotsystem_read_preference_domainThe launch System write surface is explicit, not generic:
system_set_appearance_modesystem_set_show_all_extensionssystem_set_show_hidden_filessystem_set_finder_path_barsystem_set_finder_status_barsystem_set_dock_autohidesystem_set_dock_show_recentssystem_set_reduce_motionsystem_set_increase_contrastsystem_set_reduce_transparencyThe bounded GUI fallback surface is:
system_gui_list_menu_bar_itemssystem_gui_click_menu_pathsystem_gui_press_keyssystem_gui_type_textsystem_gui_click_buttonsystem_gui_choose_popup_valueThe GUI input tools (system_gui_click_menu_path, system_gui_press_keys, system_gui_type_text, system_gui_click_button and system_gui_choose_popup_value) send input only to apps you list in APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS. It is empty by default, so GUI input is off until you set it. system_gui_list_menu_bar_items only reads and needs no allowlist.
com.apple.TextEdit,com.apple.Safari. Case and spaces around commas are ignored. 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 System and fill in "Apps that accept GUI input". Restart the client afterwards.application or bundle_id. Input is never sent to whatever app happens to be frontmost; the target is brought to the front first and the call fails with GUI_TARGET_NOT_FRONTMOST if it does not get there.TERMINAL_TARGET_REFUSED, even if allow-listed, because text typed there can run code. This covers Terminal, iTerm2, Ghostty, Warp, kitty, WezTerm and similar terminals, Script Editor, Automator, Shortcuts, Xcode, VS Code, Cursor, Windsurf, Zed, JetBrains IDEs, BBEdit, Raycast and Alfred.GUI_TARGET_NOT_ALLOWED, and its suggestion gives the exact value to add.uvx apple-system-mcp (or a clone's AppleSystem-MCP/start.sh) to your MCP clientsystem_health firstsystem_permission_guidesystem_status to verify the full context surface is availablePreference-domain reads accept named domains such as com.apple.finder and NSGlobalDomain, rather than filesystem paths or command options. The -g and -globalDomain aliases select NSGlobalDomain.
Source: AppleSystem-MCP/README.md at commit 9aeaa81
System Health
Report the active Apple System MCP configuration.
Takes no parameters.
System Permission Guide
Explain what system access this MCP may need on macOS.
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.
enabledrequiredList 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_idapplicationdescriptionSet Clipboard
Write text into the macOS clipboard.
textrequiredShow Notification
Display a local macOS notification.
bodyrequiredtitlerequiredsubtitleOpen Application
Open an application by name using macOS.
bundle_idapplicationSystem List Prompts
Fallback prompt discovery tool for tool-only MCP clients.
Takes no parameters.
System Get Prompt
Fallback prompt rendering tool for tool-only MCP clients.
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.
uvx apple-system-mcpgit clone https://github.com/JonathanRReed/Apple-MCPs.gitcd Apple-MCPsuv sync --all-packages{ "mcpServers": { "apple-system": { "command": "uvx", "args": ["apple-system-mcp"], "env": { "APPLE_SYSTEM_MCP_SAFETY_MODE": "safe_manage" } } }}claude mcp add --transport stdio --scope user apple-system -- uvx apple-system-mcp