mac-power-tools-mcp is a macOS-focused MCP server for power-user workflows.
It started as a fork of a lightweight AppleScript MCP server, but it has since diverged into a broader tool suite that combines AppleScript-backed app automation with shell-backed system, cleanup, and bookmark management tools.
This server is oriented around practical Mac operator tasks:
- app and system control
- Finder, clipboard, notes, calendar, iTerm, and notifications
- Apple Shortcuts and Keyboard Maestro integration
launchdinspection and lifecycle management- safe cleanup inside
~/Library - bookmark inspection and reorganization for Safari, Brave, and Chrome
Mutation-heavy categories are intentionally constrained:
library_*destructive actions are limited to~/Librarylibrary_*mutations requireconfirm=truebookmarks_*mutations requireconfirm=truebookmarks_*mutations create timestamped backups before editing bookmark files- some
launchd_*operations may require elevated privileges depending on domain and plist location
This project favors explicit target paths, explicit folder paths, and explicit confirmation over convenience shortcuts.
system_*: app launch/quit, frontmost app, dark mode, volume, battery statusfinder_*: selected files, Spotlight-backed search, Quick Lookclipboard_*: get, set, clear clipboardnotifications_*: send notifications, toggle DND shortcutiterm_*: run commands and paste clipboard into iTermshortcuts_*: run Apple Shortcutscalendar_*: create events and list today's eventsnotes_*: folder and note CRUD in Apple Notes, folder-view reads, and tag lookup with folder/Smart Folder fallback plus plaintext searchpages_*: create Pages documents
automation_list_shortcutsautomation_run_keyboardmaestro_macro
research_open_url_in_browserresearch_get_current_timestamp
launchd_list_serviceslaunchd_get_servicelaunchd_print_domainlaunchd_kickstartlaunchd_bootstraplaunchd_bootoutlaunchd_validate_plist
library_find_large_app_support_dirslibrary_list_preferenceslibrary_move_to_trashlibrary_reset_app_preferences
bookmarks_list_bookmarksbookmarks_list_foldersbookmarks_read_folderbookmarks_create_folderbookmarks_update_folderbookmarks_delete_folderbookmarks_move_folderbookmarks_read_bookmarkbookmarks_create_bookmarkbookmarks_update_bookmarkbookmarks_delete_bookmarkbookmarks_move_bookmarkbookmarks_find_duplicatesbookmarks_remove_duplicatesbookmarks_sort_folder
Bookmark tooling is strongest for:
bravesafari
It also supports:
chrome
Chromium-family tools use the profile-aware bookmarks JSON file. Safari tools operate on ~/Library/Safari/Bookmarks.plist.
- Keyboard Maestro for
automation_run_keyboardmaestro_macro - iTerm for
iterm_* - Pages for
pages_*
- inspect and restart a user LaunchAgent
- identify the largest
Application Supportdirectories before cleanup - reset one app’s preference plist safely by moving it to Trash
- sort a Brave bookmarks folder and remove in-folder duplicates
- move a Safari bookmark from one folder to another after creating a backup
- trigger an existing Keyboard Maestro macro from MCP
Prerequisites:
- macOS 10.15 or later
- Node.js 18 or later
Example mcpServers entry:
{
"mcpServers": {
"mac-power-tools": {
"command": "node",
"args": [
"/absolute/path/to/mac-mcp/dist/index.js"
],
"env": {
"CATEGORIES": "all"
}
}
}
}Category selection is controlled by CATEGORIES:
- unset: enable every category
all: enable every category- comma-separated list: enable only those categories
Available category names:
systemcalendarfinderclipboardnotificationsitermshortcutsnotespagesautomationresearchlaunchdlibrarybookmarks
Example selective config:
{
"mcpServers": {
"mac-power-tools": {
"command": "node",
"args": [
"/absolute/path/to/mac-mcp/dist/index.js"
],
"env": {
"CATEGORIES": "system,finder,launchd,library,bookmarks"
}
}
}
}Install and run:
npm install
npm run build
npm startFor local development:
npm run devThe server entrypoint is src/index.ts.
The shared execution framework is src/framework.ts.
Tool categories live under src/categories/.
When adding tools:
- prefer direct APIs or shell utilities over UI scripting where possible
- return stable, machine-readable output where possible
- require explicit confirmation for destructive actions
- keep environment-specific integrations clearly labeled
This repository began as a fork of an AppleScript-centric MCP server. It is no longer just a thin AppleScript wrapper.
Major changes since the fork:
- rebranded from a generic AppleScript framework into a Mac power-user tool suite
- added shell-backed categories alongside AppleScript-backed ones
- expanded into
launchd, safe Library cleanup, and bookmark management - introduced stricter confirmation requirements around destructive operations
- updated package and server identity for the new direction
This project began as a fork of the original AppleScript MCP repository and has since diverged substantially in scope and product direction.