mac-pilot-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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mac_runA | Run an AppleScript/JXA/shell command or send click/type/keypress to macOS. Supported actionTypes: applescript, jxa, shell, open, click, type, keypress. Examples:
Limitations:
|
| mac_stateA | Read current macOS state: frontmost app, windows, Finder selection, running apps. Examples:
Limitations:
|
| mac_find_uiA | Find UI elements (role, title, position, size) in an app via Accessibility, with optional Electron CDP fallback. Examples:
Limitations:
|
| mac_screenshotA | Capture screen, window, or region as base64 PNG. Examples:
Limitations:
|
| mac_recipe_saveA | Save a multi-step automation as a named recipe. {{param}} placeholders are JSON-safe substituted. Example: { name: "open-url-in-private", description: "Open a URL in Safari private window", app: "Safari", steps: [ { actionType: "open", params: { target: "Safari" }, description: "Launch Safari" }, { actionType: "keypress", params: { text: "cmd+shift+n" }, description: "Open private window" }, { actionType: "keypress", params: { text: "cmd+l" }, description: "Focus address bar" }, { actionType: "type", params: { text: "{{url}}" }, description: "Enter URL" }, { actionType: "keypress", params: { text: "return" }, description: "Navigate" } ], parameters: [{ name: "url", description: "URL to open" }], tags: ["safari", "browser", "private"] } Limitations:
|
| mac_recipe_runA | Run a saved recipe by name with parameter values. Examples:
Limitations:
|
| mac_recipe_searchA | Search 118 built-in + saved recipes by natural-language query. Call this BEFORE writing new AppleScript. Examples:
Limitations:
|
| mac_recipe_exportA | Export user-saved recipes as a portable .mac-recipe.json bundle (built-ins excluded by default). Examples:
Format: |
| mac_recipe_importA | Import a .mac-recipe.json bundle (inline or file path). Conflict policy: skip | rename | replace. Examples:
Conflict policy:
Limitations:
|
| mac_permissionsA | Check macOS Privacy permissions (Automation/Accessibility/Screen Recording) + deep-link to grant. Examples:
Limitations:
|
| mac_clipboardA | Read / write / clear the macOS clipboard (text only, via pbpaste/pbcopy). Examples:
Limitations:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool targets a distinct aspect of macOS automation: mac_run executes commands, mac_state reads system state, mac_clipboard manages the clipboard, mac_find_ui inspects UI elements, mac_screenshot captures the screen, and the recipe* tools cover the full recipe lifecycle. There is no meaningful overlap; even mac_run and mac_recipe_run are clearly separated by ad-hoc vs saved workflows.
All tools share the mac_ prefix and use snake_case, but the verb/noun order varies: mac_run and mac_find_ui are verb-first, while mac_state and mac_permissions are noun-first, and recipe tools use recipe_verb (e.g., mac_recipe_export). This is a minor deviation from a fully consistent verb_noun pattern but remains predictable and readable.
With 11 tools, the server is well-scoped for macOS automation. It covers command execution, state inspection, clipboard, UI inspection, screenshots, permissions, and a complete recipe subsystem without bloating. The count sits comfortably in the ideal 3-15 range and each tool earns its place.
The tool surface covers core automation actions (run, state, UI, screenshot, clipboard) and a full recipe lifecycle (save, run, search, export, import). Minor gaps exist, such as no explicit recipe deletion or a dedicated list-all tool, but these can be worked around via search or export, so agent workflows are not severely hindered.