Apple System

io.github.JonathanRReed由 GitHub 帳號 JonathanRReed 發布v1.1.6更新於 Nov 7, 2026

Read and manage macOS system settings and perform scoped desktop actions.

概覽

AI 產生的概覽

本機 macOS MCP 伺服器,讓助理讀取系統狀態、修改限定範圍的設定,並向白名單應用程式送出受限的圖形介面輸入。

可以做什麼
  • 讀取系統狀態:電池、前景應用程式、執行中的應用程式、剪貼簿、專注模式中繼資料及綜合快照
  • 讀取 macOS 設定:外觀、輔助使用、Dock、Finder 及偏好網域
  • 修改設定:外觀模式、隱藏檔案與副檔名、Finder 狀態列與路徑列、Dock 自動隱藏與最近使用應用程式、減少動態效果、對比度與透明度
  • 讀寫剪貼簿、顯示本機通知、開啟應用程式
  • 圖形介面備援:列出選單列項目、點選選單路徑、按鍵、輸入文字、點選按鈕、選擇彈出式選單值
  • 透過 search_tools、get_tool_info 及提示工具探索可用工具
適用情境
當助理的回答或操作取決於目前 Mac 桌面狀態時適用,也適合讓它調整常見 macOS 設定,或在沒有原生整合的情況下操作某個應用程式的選單與控制項。
執行需求
僅限 macOS,透過 uvx 以 stdio 在本機執行(從複製的儲存庫安裝需 Python 3.11+),也可使用提供的安裝包。選用環境變數:APPLE_SYSTEM_MCP_SAFETY_MODE(safe_readonly、safe_manage 或 full_access)與 APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS,後者須列出 bundle id 後圖形介面輸入才可用。可能需要 macOS 輔助使用權限。
安裝前請注意
寫入類工具會變更真實系統設定,圖形介面工具會在真實應用程式中輸入、點選與按鍵,因此應維持較窄的安全模式與白名單。終端機、編輯器與自動化應用程式即使列入白名單也會被拒絕,因為輸入的文字可能被執行。讀取剪貼簿會暴露已複製的文字,通知與開啟應用程式也是可見操作。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Apple System,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Apple System MCP

Local MCP server for macOS system context, truthful Focus support metadata, assistant-relevant settings reads, explicit settings writes, and bounded GUI fallback automation.

Capabilities

  • battery status
  • frontmost app
  • running applications
  • clipboard read and write
  • local notifications
  • open an application
  • appearance settings
  • accessibility settings
  • Dock settings
  • Finder settings
  • truthful Focus support metadata
  • combined system context snapshots
  • appearance mode write
  • Finder visibility and bar writes
  • Dock write controls for autohide and recent apps
  • accessibility writes for reduce motion, increase contrast, and reduce transparency
  • GUI fallback tools for menu clicks, key presses, text entry, button clicks, and pop-up selection
  • preference-domain inspection via defaults export
  • resources: system://status, system://applications, system://settings, system://context
  • prompt: system_capture_context
  • tool discovery helpers search_tools and get_tool_info for context-constrained clients

Install On This Mac

Quick start (uvx, from PyPI)

With uv installed:

bash
uvx apple-system-mcp

No clone, no venv management.

From a clone
bash
git clone https://github.com/JonathanRReed/Apple-MCPs.gitcd Apple-MCPsuv sync --all-packages

This 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).

Install In AI Agents

json
{  "mcpServers": {    "apple-system": {      "command": "uvx",      "args": ["apple-system-mcp"],      "env": {        "APPLE_SYSTEM_MCP_SAFETY_MODE": "safe_manage"      }    }  }}

Running from a clone instead? Use /path/to/Apple-MCPs/AppleSystem-MCP/start.sh as the command with empty args.

Claude Code:

bash
claude mcp add --transport stdio --scope user apple-system -- uvx apple-system-mcp

--scope user makes the server available in every project. To share it with one repository through its .mcp.json instead, use --scope project.

Transport

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.

Prompting Notes

  • 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.
  • Use this server when the user’s current desktop context matters.
  • Read battery state and the frontmost app before interruptive actions.
  • Use the settings tools before falling back to raw defaults read in prompts or E2E checks.
  • Use APPLE_SYSTEM_MCP_SAFETY_MODE=safe_manage for assistant-grade operation.
  • Keep safe_readonly only for audit-only or context-only deployments.
  • Keep GUI fallback narrow. Prefer native app-domain MCPs first, then explicit System tools, then GUI tools only when native support is missing. GUI input needs the target app in APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS (see GUI Input Allowlist).
  • Focus reporting is best-effort and truthful. This server does not claim Notification Center history support when macOS does not expose it cleanly on an unsigned local install.

Health And Recovery

  • system_health
  • system_permission_guide
  • system_get_settings_snapshot
  • system_get_focus_status
  • system_get_context_snapshot
  • system_read_preference_domain

Assistant-Grade Control Surface

The launch System write surface is explicit, not generic:

  • system_set_appearance_mode
  • system_set_show_all_extensions
  • system_set_show_hidden_files
  • system_set_finder_path_bar
  • system_set_finder_status_bar
  • system_set_dock_autohide
  • system_set_dock_show_recents
  • system_set_reduce_motion
  • system_set_increase_contrast
  • system_set_reduce_transparency

The bounded GUI fallback surface is:

  • system_gui_list_menu_bar_items
  • system_gui_click_menu_path
  • system_gui_press_keys
  • system_gui_type_text
  • system_gui_click_button
  • system_gui_choose_popup_value

GUI Input Allowlist

The 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.

  • Format: comma-separated bundle ids, for example 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"'.
  • Where to set it: the 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.
  • Every GUI input call must name its target with 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.
  • Terminals, script editors and automation apps are always refused with 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.
  • A call to an app outside the list returns GUI_TARGET_NOT_ALLOWED, and its suggestion gives the exact value to add.

Launch Checklist

  • Add uvx apple-system-mcp (or a clone's AppleSystem-MCP/start.sh) to your MCP client
  • Reload or reconnect the client so the System tool surface is loaded into context
  • Call system_health first
  • If a scoped system action is blocked, call system_permission_guide
  • Call system_status to verify the full context surface is available

Preference-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.

來源:AppleSystem-MCP/README.md,提交 9aeaa81

工具

39

system_health

System Health

Report the active Apple System MCP configuration.

無需輸入參數。

system_permission_guide

System Permission Guide

Explain what system access this MCP may need on macOS.

無需輸入參數。

system_status

System Status

Return current battery, frontmost app, and running app count.

無需輸入參數。

system_get_battery

Get Battery

Get the current battery state from macOS.

無需輸入參數。

system_get_frontmost_app

Get Frontmost App

Get the name of the current frontmost application.

無需輸入參數。

system_list_running_apps

List Running Apps

List currently running foreground applications.

無需輸入參數。

system_get_clipboard

Get Clipboard

Read the current text clipboard contents.

無需輸入參數。

system_list_settings_domains

List Settings Domains

List the common macOS preference domains exposed by Apple System MCP.

無需輸入參數。

system_get_appearance_settings

Get Appearance Settings

Read current macOS appearance settings such as light or dark mode and accent color.

無需輸入參數。

system_get_accessibility_settings

Get Accessibility Settings

Read common macOS accessibility settings such as reduce motion and increase contrast.

無需輸入參數。

system_get_dock_settings

Get Dock Settings

Read common macOS Dock settings such as autohide, magnification, and orientation.

無需輸入參數。

system_get_finder_settings

Get Finder Settings

Read common macOS Finder settings such as path bar, status bar, and preferred view style.

無需輸入參數。

system_get_settings_snapshot

Get Settings Snapshot

Return a combined read-only snapshot of appearance, accessibility, Dock, and Finder settings.

無需輸入參數。

system_get_focus_status

Get Focus Status

Return truthful Focus support metadata and the best available current Focus state.

無需輸入參數。

system_get_context_snapshot

Get System Context Snapshot

Return a richer macOS context snapshot, including battery, frontmost app, and Focus metadata.

無需輸入參數。

system_read_preference_domain

Read Preference Domain

Read a macOS preference domain through defaults export for a production-safe, structured settings view.

輸入參數domain必填current_host

system_set_appearance_mode

Set Appearance Mode

Set macOS appearance mode to light or dark.

輸入參數mode必填

system_set_show_all_extensions

Set Show All Extensions

Show or hide filename extensions in macOS.

輸入參數enabled必填

system_set_show_hidden_files

Set Show Hidden Files

Show or hide hidden files in Finder.

輸入參數enabled必填

system_set_finder_path_bar

Set Finder Path Bar

Show or hide the Finder path bar.

輸入參數enabled必填

system_set_finder_status_bar

Set Finder Status Bar

Show or hide the Finder status bar.

輸入參數enabled必填

system_set_dock_autohide

Set Dock Autohide

Enable or disable Dock autohide.

輸入參數enabled必填

system_set_dock_show_recents

Set Dock Show Recents

Enable or disable recent applications in the Dock.

輸入參數enabled必填

system_set_reduce_motion

Set Reduce Motion

Enable or disable macOS reduce motion accessibility mode.

輸入參數enabled必填

system_set_increase_contrast

Set Increase Contrast

Enable or disable macOS increase contrast accessibility mode.

輸入參數enabled必填

system_set_reduce_transparency

Set Reduce Transparency

Enable or disable macOS reduce transparency accessibility mode.

輸入參數enabled必填

system_gui_list_menu_bar_items

List Menu Bar Items

List the top-level menu bar items for an application. This is a GUI fallback tool.

輸入參數bundle_idapplication

system_gui_click_menu_path

Click 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_path必填application

system_gui_press_keys

Press 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.

輸入參數key必填bundle_idmodifiersapplication

system_gui_type_text

Type 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.

輸入參數text必填bundle_idapplication

system_gui_click_button

Click 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_idapplicationdescription

system_gui_choose_popup_value

Choose 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.

輸入參數label必填value必填bundle_idapplicationdescription

system_set_clipboard

Set Clipboard

Write text into the macOS clipboard.

輸入參數text必填

system_show_notification

Show Notification

Display a local macOS notification.

輸入參數body必填title必填subtitle

system_open_application

Open Application

Open an application by name using macOS.

輸入參數bundle_idapplication

system_list_prompts

System List Prompts

Fallback prompt discovery tool for tool-only MCP clients.

無需輸入參數。

system_get_prompt

System Get Prompt

Fallback prompt rendering tool for tool-only MCP clients.

輸入參數name必填arguments_json

search_tools

Search Tools

Search this server's tool catalog by keyword, alias, or domain tag.

輸入參數modelimitquery必填domain_tags

get_tool_info

Get Tool Info

Load the full schema, examples, and metadata for one tool from this server.

輸入參數name必填include_schemainclude_examples

版本歷史

8
  1. v1.1.6最新Nov 6, 2026
  2. v1.1.4Oct 29, 2026
  3. v1.1.3Oct 22, 2026
  4. v1.1.2Oct 14, 2026
  5. v1.1.1Oct 13, 2026
  6. v1.1.0Oct 10, 2026
  7. v1.0.5Sep 26, 2026
  8. v1.0.4Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分