40+ tools for macOS automation:
- 📱 Messages & Contacts - Send/read iMessages, search contacts
- 📝 Notes & Reminders - Create and search notes, set reminders
- 📅 Calendar - Create and view events
- 🗂️ Files & Finder - Find, inspect, copy, move, rename, reveal, and trash files safely
- 📋 Clipboard - Read/write text, copy file paths for Finder paste, and save/set clipboard images
- 🪟 Window & Workspace - List/focus apps and windows, move/resize/center/tile windows, minimize windows, hide apps, and quit apps
- 🌐 Safari - Control tabs, navigate, execute JavaScript
- 🌍 Chrome (CDP) - Open sessions, navigate, click/type, extract data, screenshots
- 📸 Screen Capture - Capture the active display and share image output with the model
- 🖥️ System - Open apps, adjust brightness/volume, visual effects
This repo currently includes one shareable skill:
altic-studio(skills/altic-studio/)- Runs local AppleScript automations via
osascriptthrough the Bash tool - Covers Messages, Contacts, Notes, Reminders, Calendar, Safari, window management, system controls, screenshots, and Chrome CDP browser control
- Main skill manifest:
skills/altic-studio/SKILL.md
- Runs local AppleScript automations via
- Messaging:
send-message.applescript,read-recent-messages.applescript - Contacts:
fetch-all-contacts.applescript - Notes/Reminders:
create-note.applescript,search-for-note.applescript,set-reminder.applescript - Calendar:
create-calendar-event.applescript,list-all-calendar-events-for-day.applescript - Safari: open/close/switch/navigate/reload/history/page-info scripts
- System:
open-application.applescript, brightness + volume scripts - Screenshot:
capture-screenshot.applescript - Files/Finder MCP:
find_files,list_directory,get_file_info,copy_file,copy_directory,move_file,rename_file,trash_file,reveal_in_finder,get_finder_selection - Clipboard MCP:
get_clipboard_text,set_clipboard_text,clear_clipboard,get_clipboard_files,set_clipboard_files,save_clipboard_image,set_clipboard_image - Window/Workspace MCP:
get_frontmost_app,list_windows,focus_window,move_window,resize_window,center_window,tile_windows,minimize,hide_app,quit_app - Clipboard script:
clipboard.swift - Window script:
window-manager.swift
Install altic-studio directly from this repo with the Skills CLI:
# Preview available skills in this repo
npx skills add altic-dev/altic-mcp --list
# Install skill with interactive mode
npx skills add altic-dev/altic-mcp
Restart your coding agent after installation.
To make altic-studio available in OpenCode, symlink it into your OpenCode skills directory:
mkdir -p "$HOME/.config/opencode/skills"
ln -sfn "/Users/rohith/Documents/altic-mcp/skills/altic-studio" "$HOME/.config/opencode/skills/altic-studio"
ls "$HOME/.config/opencode/skills"- macOS 10.13+
- Python 3.13+
- UV package manager
# Install UV if needed
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone and setup
git clone https://github.com/altic-dev/altic-mcp.git
cd altic-mcp
uv sync
# Test locally
uv run server.py1. Edit ~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"altic-mcp": {
"command": "uv",
"args": ["run", "--project", "/FULL/PATH/TO/altic-mcp", "/FULL/PATH/TO/altic-mcp/server.py"]
}
}
}Replace /FULL/PATH/TO/altic-mcp with your actual path (e.g., /Users/johndoe/Documents/altic-mcp).
2. Restart Claude Desktop (Command + Q, then reopen)
3. Look for the 🔨 hammer icon in the chat interface to see available tools
- ✅ Contacts - For search_contacts
- ✅ Calendars - For calendar events
- ✅ Reminders - For creating reminders
- ✅ Automation - Allow Claude to control apps (Messages, Notes, Safari)
- ✅ Finder Automation - For Finder selection, reveal, and Trash file tools
- ✅ Accessibility - Required for screen glow, system controls, and window management tools such as focus_window, move_window, resize_window, center_window, tile_windows, minimize, hide_app, and quit_app
- ✅ Screen Recording - Required for screenshot capture tools and improves window title/id discovery for list_windows on recent macOS versions
Clipboard text operations normally do not require extra permissions. Clipboard file and image operations use macOS pasteboard APIs and may prompt for security approval depending on the host app and OS settings.
Safari → Develop → Allow JavaScript from Apple Events ✅ (Required for Safari tools)
Note: If "Develop" menu is not visible, enable it in Safari → Settings → Advanced → Show Develop menu
- Install Google Chrome
- The MCP server can auto-start Chrome with
--remote-debugging-portwhen opening a CDP session - If auto-start fails, launch manually:
open -a "Google Chrome" --args --remote-debugging-port=9222macOS will prompt for permissions when first used. Grant them to enable full functionality.
Run these against temporary files before using the tools on important data:
mkdir -p /tmp/altic-file-smoke/source
echo "hello" > /tmp/altic-file-smoke/source/example.txt- Use
find_filesforexamplewith root/tmp/altic-file-smoke - Use
copy_filewithdry_run=true, then repeat withdry_run=false - Use
rename_filewithdry_run=true, then repeat withdry_run=false - Use
reveal_in_finderon the copied file - Select a file in Finder and call
get_finder_selection - Use
trash_filewithdry_run=truebefore testing a real Trash move
- Use
set_clipboard_textwithhello, thenget_clipboard_text - Use
clear_clipboard, thenget_clipboard_text - Copy one or more files in Finder, then call
get_clipboard_files - Use
set_clipboard_fileswith an existing file path, then paste in Finder - Copy an image or screenshot, then call
save_clipboard_image - Use
set_clipboard_imagewith an existing PNG or JPEG file, then paste into an app that accepts images
- Call
get_frontmost_appwhile Finder or Safari is active. - Call
list_windowsand confirm visible app windows include frame and display metadata. - Open two apps, then call
tile_windowswithlayout="columns"and their app names. - Call
center_windowwith an app name and confirm the frontmost window is centered inside the visible display area. - Call
move_windowandresize_windowwith a test app window, then calllist_windowsto confirm the new frame. - Call
minimizeon a test app window and confirm it minimizes. - Call
hide_appon a non-critical app and confirm the app is hidden. - Call
quit_apponly on a disposable test app.