Skip to main content
Glama
matthewdcage

macOS Automation MCP Server

by matthewdcage

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
get_system_info_resourceResource providing system information.
get_running_apps_resourceResource providing list of running applications.
get_clipboard_resourceResource providing current clipboard text content.

TDQS

B3.4/5.0

Scored across 45 tools

Disambiguation4/5

Most tools have clearly distinct purposes, and the descriptions help differentiate them. A few pairs like toggle_mute and set_volume, or set_dark_mode and toggle_dark_mode, have some functional overlap but remain distinguishable. Overall, an agent can reliably select the correct tool.

Naming Consistency5/5

Tool names consistently follow a verb_noun pattern in snake_case, such as get_volume, set_volume, toggle_mute, and create_calendar_event. Prefixes like get_, set_, toggle_, list_, create_, and is_ are used predictably across domains. This makes the API easy to navigate.

Tool Count2/5

With 45 tools, the server is excessively large for a single coherent MCP server. While the macOS automation scope is broad, many tools (e.g., calendar and reminder management) could be separated into focused servers. This volume overwhelms an agent's ability to efficiently select among them.

Completeness4/5

The server covers a wide range of macOS automation tasks including system controls, app management, file operations, calendar, reminders, and scripting. Minor gaps exist such as lack of file read/write operations or direct control of display brightness, but the core workflows are well-supported. Overall, the surface is fairly complete for its domain.

Maintenance

ActivityInactive
ResponsivenessNo issues