macOS Automation MCP Server
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_system_infoA | Get macOS system information including hostname, version, user, and uptime. |
| set_volumeA | Set the system volume level. Args: level: Volume level from 0 (mute) to 100 (max) |
| get_volumeA | Get the current system volume level. |
| toggle_muteA | Toggle system audio mute on/off. |
| toggle_dark_modeA | Toggle between dark mode and light mode. |
| set_dark_modeA | Set dark mode to a specific state. Args: enabled: True for dark mode, False for light mode |
| is_dark_modeA | Check if dark mode is currently enabled. |
| sleep_displayA | Put the display to sleep. |
| say_textA | Speak text using text-to-speech. Args: text: Text to speak voice: Optional voice name (e.g., 'Alex', 'Samantha', 'Victoria') rate: Optional speaking rate in words per minute |
| take_screenshotA | Capture a screenshot. Args: path: Optional save path (defaults to Desktop with timestamp) region: If True, allows selecting a region (interactive) to_clipboard: If True, saves to clipboard instead of file |
| get_wifi_networkA | Get the current WiFi network name. |
| toggle_wifiB | Enable or disable WiFi. Args: enabled: True to enable WiFi, False to disable |
| list_running_appsA | List all currently running applications. |
| get_frontmost_appA | Get information about the currently active (frontmost) application. |
| launch_appA | Launch an application. Args: app_name: Name of the application (e.g., 'Safari', 'Finder', 'Terminal') new_instance: If True, opens a new instance of the app |
| quit_appA | Quit an application. Args: app_name: Name of the application to quit force: If True, force quits without saving |
| hide_appA | Hide an application's windows. Args: app_name: Name of the application to hide |
| is_app_runningC | Check if an application is currently running. Args: app_name: Name of the application to check |
| send_notificationA | Send a macOS notification. Args: title: Notification title message: Notification body text subtitle: Optional subtitle sound: Sound name ('default', 'Basso', 'Glass', 'Hero', 'Pop', etc.) or None for silent |
| send_alertA | Show an alert dialog and wait for user response. Args: title: Alert title message: Alert message buttons: List of button names (max 3) default_button: Name of the default button |
| choose_from_listB | Show a list selection dialog. Args: items: List of items to choose from title: Dialog title prompt: Optional prompt message multiple: Allow multiple selections |
| get_clipboardA | Get the current clipboard contents as text. |
| set_clipboardB | Copy text to the clipboard. Args: text: Text to copy to clipboard |
| clear_clipboardA | Clear the clipboard contents. |
| reveal_in_finderA | Reveal a file or folder in Finder. Args: path: Path to the file or folder |
| create_folderA | Create a new folder. Args: path: Full path for the new folder |
| move_to_trashB | Move files or folders to the Trash. Args: paths: List of paths to move to trash |
| empty_trashC | Empty the Trash. |
| get_selected_filesA | Get the currently selected files in Finder. |
| search_filesA | Search for files using Spotlight. Args: query: Search query location: Optional folder path to search in kind: Optional file type filter ('pdf', 'image', 'document', 'audio', 'video') |
| list_calendarsA | List all available calendars. |
| list_calendar_eventsC | List upcoming calendar events. Args: days_ahead: Number of days to look ahead (default: 7) calendar_name: Optional specific calendar name |
| create_calendar_eventA | Create a new calendar event. Args: title: Event title start_date: Start date/time (ISO format: YYYY-MM-DDTHH:MM:SS) end_date: End date/time (ISO format: YYYY-MM-DDTHH:MM:SS) calendar_name: Calendar to add event to (default: "Calendar") location: Optional event location notes: Optional event notes |
| list_reminder_listsA | List all reminder lists. |
| list_remindersB | List reminders. Args: list_name: Optional specific reminder list include_completed: Include completed reminders |
| create_reminderA | Create a new reminder. Args: title: Reminder title list_name: Reminder list to add to (default: "Reminders") due_date: Optional due date (ISO format: YYYY-MM-DDTHH:MM:SS) notes: Optional notes |
| complete_reminderA | Mark a reminder as complete. Args: title: Reminder title to complete list_name: Optional specific list to search in |
| get_overdue_remindersA | Get all overdue reminders. |
| run_applescriptC | Execute arbitrary AppleScript code. Args: script: AppleScript code to execute timeout: Maximum execution time in seconds (default: 30) |
| run_shell_commandB | Execute a shell command (with safety checks). Args: command: Shell command to execute timeout: Maximum execution time in seconds (default: 30) working_dir: Optional working directory |
| open_urlB | Open a URL in the default browser. Args: url: URL to open |
| open_fileC | Open a file with the default or specified application. Args: path: Path to the file app_name: Optional application name to open with |
| create_scheduled_taskA | Create a scheduled task using launchd. Args: name: Unique name for the task command: Command to execute interval_seconds: Run every N seconds (min 60) hour: Hour to run (0-23) for calendar schedule minute: Minute to run (0-59) for calendar schedule run_at_load: Run immediately when loaded |
| list_scheduled_tasksA | List all MCP-managed scheduled tasks. |
| remove_scheduled_taskC | Remove a scheduled task. Args: name: Name of the task to remove |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_system_info_resource | Resource providing system information. |
| get_running_apps_resource | Resource providing list of running applications. |
| get_clipboard_resource | Resource providing current clipboard text content. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/matthewdcage/mcp-applescript-automation'
If you have feedback or need assistance with the MCP directory API, please join our Discord server