zaosoula avatar

macOS (osascript)

zaosoula/mcp-osx

Control 19 macOS apps with safe actions, approved AppleScript/JXA, and reusable workflows.

tools
61
transport
STDIO
env vars
3
last updated
Nov 8, 2026

Tools

61 tools

Public tool metadata for what this MCP can expose to an agent.

system_get_dark_modeReturn "true" if macOS dark mode is on, else "false".

Return "true" if macOS dark mode is on, else "false".

No parameter schema in public metadata yet.

system_set_dark_modeTurn macOS dark mode on or off.

Turn macOS dark mode on or off.

No parameter schema in public metadata yet.

system_get_volumeReturn the output volume and mute state. Returns tab-separated: volume (0-100), muted (true/false).

Return the output volume and mute state. Returns tab-separated: volume (0-100), muted (true/false).

No parameter schema in public metadata yet.

system_set_volumeSet output volume (0-100).

Set output volume (0-100).

No parameter schema in public metadata yet.

system_set_mutedMute or unmute audio output.

Mute or unmute audio output.

No parameter schema in public metadata yet.

system_wifi_statusReturn Wi-Fi power state.

Return Wi-Fi power state.

No parameter schema in public metadata yet.

system_set_wifiTurn Wi-Fi on or off. Warning: turning it off may cut the agent's own network connection.

Turn Wi-Fi on or off. Warning: turning it off may cut the agent's own network connection.

No parameter schema in public metadata yet.

system_notifyShow a macOS notification.

Show a macOS notification.

No parameter schema in public metadata yet.

system_get_clipboardReturn the clipboard as plain text (truncated to 10000 chars); non-text clipboards are reported, not returned.

Return the clipboard as plain text (truncated to 10000 chars); non-text clipboards are reported, not returned.

No parameter schema in public metadata yet.

system_set_clipboardReplace the clipboard contents with the given text.

Replace the clipboard contents with the given text.

No parameter schema in public metadata yet.

system_saySpeak text aloud with macOS text-to-speech (waits until done); optional voice name.

Speak text aloud with macOS text-to-speech (waits until done); optional voice name.

No parameter schema in public metadata yet.

system_start_screensaverStart the current screen saver.

Start the current screen saver.

No parameter schema in public metadata yet.

system_sleep_displayPut the display(s) to sleep now (pmset displaysleepnow); the Mac stays awake.

Put the display(s) to sleep now (pmset displaysleepnow); the Mac stays awake.

No parameter schema in public metadata yet.

system_battery_statusReturn battery charge, power source and charging state (pmset -g batt).

Return battery charge, power source and charging state (pmset -g batt).

No parameter schema in public metadata yet.

system_infoReturn computer name, macOS version, user, CPU, memory and uptime. Returns tab-separated key, value lines (keys: computer, macos, user, cpu, memory_mb, uptime).

Return computer name, macOS version, user, CPU, memory and uptime. Returns tab-separated key, value lines (keys: computer, macos, user, cpu, memory_mb, uptime).

No parameter schema in public metadata yet.

settings_open_paneOpen a System Settings pane (visible window; changes nothing). See settings_list_panes.

Open a System Settings pane (visible window; changes nothing). See settings_list_panes.

No parameter schema in public metadata yet.

settings_list_panesList the pane names accepted by settings_open_pane, one per line. Returns: pane.

List the pane names accepted by settings_open_pane, one per line. Returns: pane.

No parameter schema in public metadata yet.

app_openLaunch (or bring forward) an application by name.

Launch (or bring forward) an application by name.

No parameter schema in public metadata yet.

app_activateBring a running application to the front.

Bring a running application to the front.

No parameter schema in public metadata yet.

app_quitQuit an application normally (it may ask to save unsaved work).

Quit an application normally (it may ask to save unsaved work).

No parameter schema in public metadata yet.

app_list_runningList visible running applications, one name per line. Returns: name.

List visible running applications, one name per line. Returns: name.

No parameter schema in public metadata yet.

app_frontmostReturn the name of the frontmost application.

Return the name of the frontmost application.

No parameter schema in public metadata yet.

finder_revealReveal (select) a file or folder in Finder and bring Finder to the front.

Reveal (select) a file or folder in Finder and bring Finder to the front.

No parameter schema in public metadata yet.

finder_open_folderOpen a folder in a new Finder window and bring Finder to the front; errors if the path is missing or not a folder.

Open a folder in a new Finder window and bring Finder to the front; errors if the path is missing or not a folder.

No parameter schema in public metadata yet.

finder_selectionReturn the POSIX paths of the items selected in Finder, one per line (max 200).

Return the POSIX paths of the items selected in Finder, one per line (max 200).

No parameter schema in public metadata yet.

finder_front_window_pathReturn the POSIX path of the folder shown in the frontmost Finder window.

Return the POSIX path of the folder shown in the frontmost Finder window.

No parameter schema in public metadata yet.

finder_list_folderList visible items in a folder, one per line (default 50, max 200). Read-only. Returns tab-separated: name, kind (folder/package/file).

List visible items in a folder, one per line (default 50, max 200). Read-only. Returns tab-separated: name, kind (folder/package/file).

No parameter schema in public metadata yet.

safari_open_urlOpen a URL in Safari (new tab in the front window by default).

Open a URL in Safari (new tab in the front window by default).

No parameter schema in public metadata yet.

safari_current_tabReturn the current Safari tab. Returns tab-separated: url, title.

Return the current Safari tab. Returns tab-separated: url, title.

No parameter schema in public metadata yet.

safari_list_tabsList open Safari tabs, one per line. Returns tab-separated: window, tab (indexes), current ("*" if current tab, else empty), title, url (cut at 300 chars).

List open Safari tabs, one per line. Returns tab-separated: window, tab (indexes), current ("*" if current tab, else empty), title, url (cut at 300 chars).

No parameter schema in public metadata yet.

safari_activate_tabBring a Safari tab to the front by window and tab index (from safari_list_tabs); returns its title.

Bring a Safari tab to the front by window and tab index (from safari_list_tabs); returns its title.

No parameter schema in public metadata yet.

safari_search_webSearch the web with Safari's current search provider, in a new tab (launches Safari if needed).

Search the web with Safari's current search provider, in a new tab (launches Safari if needed).

No parameter schema in public metadata yet.

safari_add_reading_listAdd an http(s) URL (optional title) to the Safari Reading List; launches Safari if needed.

Add an http(s) URL (optional title) to the Safari Reading List; launches Safari if needed.

No parameter schema in public metadata yet.

chromium_open_urlOpen an http(s) URL in Chrome or Brave (new tab in the front window by default); launches the browser if needed.

Open an http(s) URL in Chrome or Brave (new tab in the front window by default); launches the browser if needed.

No parameter schema in public metadata yet.

chromium_list_tabsList open Chrome/Brave tabs, one per line. Returns tab-separated: window, tab (indexes), active ("*" if active tab, else empty), title, url (cut at 300 chars).

List open Chrome/Brave tabs, one per line. Returns tab-separated: window, tab (indexes), active ("*" if active tab, else empty), title, url (cut at 300 chars).

No parameter schema in public metadata yet.

chromium_current_tabReturn the active tab of the front Chrome/Brave window. Returns tab-separated: url, title.

Return the active tab of the front Chrome/Brave window. Returns tab-separated: url, title.

No parameter schema in public metadata yet.

chromium_activate_tabBring a Chrome/Brave tab to the front by window and tab index (from chromium_list_tabs); returns its title.

Bring a Chrome/Brave tab to the front by window and tab index (from chromium_list_tabs); returns its title.

No parameter schema in public metadata yet.

chromium_reloadReload the active tab in the front Chrome/Brave window.

Reload the active tab in the front Chrome/Brave window.

No parameter schema in public metadata yet.

chromium_goGo back or forward in the active tab of the front Chrome/Brave window.

Go back or forward in the active tab of the front Chrome/Brave window.

No parameter schema in public metadata yet.

spotify_controlControl Spotify playback: play, pause or resume the song, skip to the next or previous track.

Control Spotify playback: play, pause or resume the song, skip to the next or previous track.

No parameter schema in public metadata yet.

spotify_current_trackReturn the current Spotify track. Returns tab-separated: name, artist, album, state (playing/paused), url (spotify: URI); "stopped" when nothing plays.

Return the current Spotify track. Returns tab-separated: name, artist, album, state (playing/paused), url (spotify: URI); "stopped" when nothing plays.

No parameter schema in public metadata yet.

spotify_playPlay a Spotify track, album or playlist by URI.

Play a Spotify track, album or playlist by URI.

No parameter schema in public metadata yet.

spotify_play_favoritesPlay the favorites playlist configured as spotify.favorites in ~/.mcp-osx/config.json.

Play the favorites playlist configured as spotify.favorites in ~/.mcp-osx/config.json.

No parameter schema in public metadata yet.

music_controlControl Apple Music playback: play, pause or resume the song, skip to the next or previous track, stop; returns the player state. play/playpause may launch Music.

Control Apple Music playback: play, pause or resume the song, skip to the next or previous track, stop; returns the player state. play/playpause may launch Music.

No parameter schema in public metadata yet.

music_current_trackReturn the current Music track. Returns tab-separated: name, artist, album, position_s, duration_s (whole seconds), state (playing/paused/…); "stopped" when nothing plays.

Return the current Music track. Returns tab-separated: name, artist, album, position_s, duration_s (whole seconds), state (playing/paused/…); "stopped" when nothing plays.

No parameter schema in public metadata yet.

music_list_playlistsList Music playlists, one per line (default 20, max 200). Returns tab-separated: name, track_count.

List Music playlists, one per line (default 20, max 200). Returns tab-separated: name, track_count.

No parameter schema in public metadata yet.

music_play_playlistPlay a Music playlist by exact name (launches Music if needed).

Play a Music playlist by exact name (launches Music if needed).

No parameter schema in public metadata yet.

music_search_playSearch the Music library and play the first matching track; returns what is playing (launches Music if needed).

Search the Music library and play the first matching track; returns what is playing (launches Music if needed).

No parameter schema in public metadata yet.

music_set_shuffleTurn Music shuffle on or off; returns the new setting.

Turn Music shuffle on or off; returns the new setting.

No parameter schema in public metadata yet.

music_set_volumeSet Music's own sound volume (0-100, not the system volume); returns the new level.

Set Music's own sound volume (0-100, not the system volume); returns the new level.

No parameter schema in public metadata yet.

tv_controlControl TV app playback (play, pause, playpause, next, previous, stop); returns the player state. play/playpause may launch TV.

Control TV app playback (play, pause, playpause, next, previous, stop); returns the player state. play/playpause may launch TV.

No parameter schema in public metadata yet.

tv_currentReturn what the TV app is playing. Returns tab-separated: name, show (empty for movies), position_s, duration_s (whole seconds), state; "stopped" when nothing plays.

Return what the TV app is playing. Returns tab-separated: name, show (empty for movies), position_s, duration_s (whole seconds), state; "stopped" when nothing plays.

No parameter schema in public metadata yet.

vlc_controlControl VLC: play (toggles play/pause; may launch VLC), stop, next, previous, mute (toggle), fullscreen (toggle), volume_up/down, step_forward/backward.

Control VLC: play (toggles play/pause; may launch VLC), stop, next, previous, mute (toggle), fullscreen (toggle), volume_up/down, step_forward/backward.

No parameter schema in public metadata yet.

vlc_now_playingReturn the current VLC item. Returns tab-separated: name, position_s, duration_s (seconds), playing (true/false).

Return the current VLC item. Returns tab-separated: name, position_s, duration_s (seconds), playing (true/false).

No parameter schema in public metadata yet.

vlc_open_urlOpen a media stream URL (http, https, rtsp, rtmp) in VLC and start playing it; launches VLC if needed.

Open a media stream URL (http, https, rtsp, rtmp) in VLC and start playing it; launches VLC if needed.

No parameter schema in public metadata yet.

quicktime_controlControl playback of the front QuickTime Player document: play, pause, stop, step_forward, step_backward; returns its name, position and playing state.

Control playback of the front QuickTime Player document: play, pause, stop, step_forward, step_backward; returns its name, position and playing state.

No parameter schema in public metadata yet.

quicktime_open_urlOpen an http(s) media URL in QuickTime Player (opens a visible player window).

Open an http(s) media URL in QuickTime Player (opens a visible player window).

No parameter schema in public metadata yet.

photos_list_albumsList Photos albums, one per line (default 20, max 200). Returns tab-separated: name, item_count.

List Photos albums, one per line (default 20, max 200). Returns tab-separated: name, item_count.

No parameter schema in public metadata yet.

photos_slideshowControl a Photos slideshow: start (needs album; launches Photos, full screen), stop, next, previous, pause, resume.

Control a Photos slideshow: start (needs album; launches Photos, full screen), stop, next, previous, pause, resume.

No parameter schema in public metadata yet.

keynote_slideshowControl the Keynote slideshow of the front document: start (full screen), stop, next, previous.

Control the Keynote slideshow of the front document: start (full screen), stop, next, previous.

No parameter schema in public metadata yet.

keynote_list_documentsList open Keynote documents, one per line. Returns tab-separated: name, slide_count, modified

List open Keynote documents, one per line. Returns tab-separated: name, slide_count, modified

No parameter schema in public metadata yet.

Sponsors

Configuration

MCP_OSX_MODE

full (default) or compact (search_actions + run_action, ~1.2k tokens)

MCP_OSX_APPS

Comma-separated app groups to expose, e.g. system,safari,spotify

MCP_OSX_HOME

Data directory for config and workflows (default ~/.mcp-osx)

Readme

mcp-osx

Let AI agents control your Mac, safely.

An MCP server that drives macOS through osascript. It has 81 ready-made actions across 19 apps, and the agent can write its own AppleScript when those aren't enough. Nothing arbitrary runs until you approve the exact script.

npm CI MCP Registry macOS License: MIT

macOS (osascript) MCP server


View the full README on GitHub

Details

Repository
github.com/zaosoula/mcp-osx
Category
Productivity & Office
Package
mcp-osx
Transport
STDIO
Registry
MCP registry, active

Related Productivity & Office MCP servers

View all
1gongrzhe avatarOffice PowerPointgongrzhe/office-powerpoint-mcp-serverA MCP (Model Context Protocol) server for PowerPoint manipulation using python-pptx. This server provides tools for creating, editing, and manipulating PowerPoi1.7Kstars
2gongrzhe avatarOffice-Word-MCP-Servergongrzhe/office-word-mcp-serverExposes Word document operations via MCP to create, edit, format, and analyze documents programmatically.2Kstars
3dsbissett avatarOffice Addin Mcpdsbissett/office-addin-mcpMCP server for Office add-ins via WebView2/CDP. Provides excel.*, page.*, and addin.* tools.2stars
4ecfaria avatarTodoist Mcpecfaria/todoist-mcpMCP server for Todoist task management integration0stars
5greirson avatarTodoistgreirson/mcp-todoistMCP server that connects Claude to Todoist for natural language task and project management with bulk operations240stars
6ankimcp avatarAnkiMCP Serverankimcp/anki-mcp-server-addonAnki addon that exposes your flashcard collection to AI assistants via a local MCP server.100stars