AppleScript Automation MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Host for HTTP server when using streamable-http transport | 127.0.0.1 |
| MCP_PORT | No | Port for HTTP server when using streamable-http transport | 8000 |
| MCP_TRANSPORT | No | Transport mode: 'stdio' (default) or 'streamable-http' | stdio |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| run_applescriptA | Run an arbitrary AppleScript and return its result. Destructive scripts (delete, erase, shutdown, restart, trash, etc.) are refused for safety — do those manually. |
| open_appA | Launch/activate an application by name (e.g. "Safari"). |
| close_appA | Quit an application by name. |
| frontmost_appB | Name of the app currently in the foreground. |
| list_running_appsA | List visible (non-background) running application names. |
| set_volumeA | Set system output volume (0-100). |
| get_volumeA | Current system output volume (0-100). |
| muteA | Mute system output. |
| unmuteA | Unmute system output. |
| is_mutedA | Whether system output is muted (true/false). |
| toggle_dark_modeA | Toggle macOS Dark Mode. |
| lock_screenA | Lock the screen. |
| battery_statusB | Battery charge and power source. |
| get_ipA | Local IP address on en0. |
| get_datetimeA | Current local date and time. |
| disk_usageA | Disk usage for the startup volume. |
| memory_statsA | Virtual memory statistics (vm_stat). |
| get_clipboardA | Read the current clipboard text. |
| set_clipboardA | Replace the clipboard contents with text. |
| notifyA | Show a macOS notification banner. |
| sayB | Speak text aloud via text-to-speech. |
| open_urlB | Open a URL (or file/URI scheme) in the default handler. |
| search_googleA | Open a Google search for the query in the browser. |
| search_youtubeB | Open a YouTube search for the query in the browser. |
| screenshotA | Capture the full screen to ~/.applescript-mcp/screenshot.png and return its path. |
| compose_mailA | Open a pre-filled mail compose window (does not send). |
| send_imessageB | Send an iMessage to a phone number or email handle. |
| facetime_callA | Start a FaceTime call to a phone number or email. |
| lookup_contactA | Look up a contact by name; returns matching names with phones and emails. |
| create_reminderC | Create a reminder in the Reminders app. |
| maps_directionsC | Open Maps with directions to a destination. |
| search_photosC | Open Photos and search for a term. |
| now_playingA | Current track in the Music app, if playing. |
| music_playpauseA | Toggle play/pause in the Music app. |
| music_nextA | Skip to the next track in the Music app. |
| music_previousA | Go to the previous track in the Music app. |
| search_music_trackC | Open Music and search the library for a track. |
| list_shortcutsA | List the names of the user's installed Apple Shortcuts. |
| run_shortcutB | Run an Apple Shortcut by name (unlocks Focus modes, HomeKit, timers, etc.). |
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 39 tools
Each tool has a clear, distinct purpose covering system info, app management, media, communication, and utilities. There is no overlap that would confuse an agent; even closely related tools like mute and is_muted or set_volume and get_volume are easily distinguishable by their action vs. query nature.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., close_app, get_volume, send_imessage). There are no mixed conventions or abbreviations, making the naming predictable and easy to understand.
With 39 tools, the server is extensive but still well-scoped for a general macOS automation tool. While slightly high, each tool addresses a distinct operation, and the count feels appropriate for the broad domain covered.
The tool set covers many common automation tasks (system info, apps, media, messaging, clipboard, reminders, shortcuts), but it lacks tools for file operations, calendar, browser control beyond opening URLs, and system preferences beyond volume/dark mode. These gaps limit its ability to handle some typical workflows.