macOS Automation MCP Server
Provides tools to automate macOS system operations, including system control (volume, dark mode, WiFi, screenshots), application management, notifications, clipboard, Finder, Calendar, Reminders, script execution, and task scheduling via AppleScript.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@macOS Automation MCP Serverlist running applications"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
macOS Automation MCP Server
A comprehensive MCP (Model Context Protocol) server for macOS automation via AppleScript. This server provides 45 universal tools for system control, application management, calendar, reminders, notifications, clipboard operations, and scheduled tasks.
Built with FastMCP and Pydantic for type-safe, production-ready operation.
✅ Verified Working
macOS 26.1+ compatible
All 45 tools registered and functional
AppleScript execution engine tested
Shell command safety validation active
Related MCP server: macOS MCP Server
Features
P0 - Essential Tools (12 System + 6 App + 3 Notification + 3 Clipboard = 24 tools)
System Control: Volume, dark mode, display sleep, WiFi, text-to-speech, screenshots
Application Control: Launch, quit, list, and manage running applications
Notifications: Send notifications, alerts, and dialogs
Clipboard: Read, write, and manage clipboard contents
P1 - Extended Tools (6 Finder + 3 Calendar + 5 Reminders = 14 tools)
Finder Operations: Create folders, move to trash, reveal files, search
Calendar Integration: List, create, and manage calendar events
Reminders Integration: List, create, complete, and manage reminders
P2 - Advanced Tools (4 Script + 3 Scheduler = 7 tools)
Script Execution: Run AppleScript and shell commands
Task Scheduler: Create and manage launchd scheduled tasks
Installation
Prerequisites
macOS 10.15 or later
Python 3.10 or later
uv (recommended) or pip
Install with uv (Recommended)
cd /path/to/mcp-applescript-automation
uv syncInstall with pip
cd /path/to/mcp-applescript-automation
pip install -e .Configuration
Claude Desktop / Cursor
Add to your MCP configuration file:
{
"mcpServers": {
"macos-automation": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-applescript-automation", "python", "main.py"],
"env": {}
}
}
}Minerva Platform
Add to config/mcp-servers.json:
"macos-automation-mcp": {
"command": "uv",
"args": ["run", "--directory", "/Volumes/dev-4tb/AA-GitHub/MCP/mcp-applescript-automation", "python", "main.py"],
"env": {},
"description": "macOS Automation MCP: System control, app management, calendar, reminders, notifications, scheduled tasks via AppleScript"
}Permissions
This server requires certain macOS permissions to function:
Automation Permission (Required)
System Preferences > Privacy & Security > Privacy > Automation
Grant permission to your terminal app (Terminal, iTerm2, Cursor, etc.)
Accessibility Permission (For some UI automation)
System Preferences > Privacy & Security > Privacy > Accessibility
Required for advanced UI interactions
Calendar/Reminders Access (For calendar/reminder tools)
System Preferences > Privacy & Security > Privacy > Calendars/Reminders
Required for calendar and reminder management
Available Tools (45 Total)
System Control (12 tools)
Tool | Description |
| Get macOS version, hostname, user, and uptime |
| Set system volume (0-100) |
| Get current volume level |
| Toggle audio mute |
| Toggle dark/light mode |
| Set dark mode explicitly |
| Check if dark mode is enabled |
| Put display to sleep |
| Speak text using TTS |
| Capture screenshot |
| Get current WiFi network |
| Enable/disable WiFi |
Application Control (6 tools)
Tool | Description |
| List all running applications |
| Get active application info |
| Launch an application |
| Quit an application |
| Hide an application |
| Check if app is running |
Notifications (3 tools)
Tool | Description |
| Send macOS notification |
| Show alert dialog |
| Show selection dialog |
Clipboard (3 tools)
Tool | Description |
| Get clipboard text |
| Copy text to clipboard |
| Clear clipboard |
Finder (6 tools)
Tool | Description |
| Reveal file in Finder |
| Create new folder |
| Move items to Trash |
| Empty Trash |
| Get Finder selection |
| Search using Spotlight |
Calendar (3 tools)
Tool | Description |
| List all calendars |
| List upcoming events |
| Create new event |
Reminders (5 tools)
Tool | Description |
| List reminder lists |
| List reminders |
| Create new reminder |
| Mark reminder complete |
| Get overdue items |
Scripts (4 tools)
Tool | Description |
| Execute AppleScript code |
| Execute shell command (with safety checks) |
| Open URL in browser |
| Open file with app |
Task Scheduler (3 tools)
Tool | Description |
| Create launchd task |
| List managed tasks |
| Remove a task |
Complete Tool List (Alphabetical)
choose_from_list, clear_clipboard, complete_reminder, create_calendar_event,
create_folder, create_reminder, create_scheduled_task, empty_trash,
get_clipboard, get_frontmost_app, get_overdue_reminders, get_selected_files,
get_system_info, get_volume, get_wifi_network, hide_app, is_app_running,
is_dark_mode, launch_app, list_calendar_events, list_calendars,
list_reminder_lists, list_reminders, list_running_apps, list_scheduled_tasks,
move_to_trash, open_file, open_url, quit_app, remove_scheduled_task,
reveal_in_finder, run_applescript, run_shell_command, say_text, search_files,
send_alert, send_notification, set_clipboard, set_dark_mode, set_volume,
sleep_display, take_screenshot, toggle_dark_mode, toggle_mute, toggle_wifiExample Usage
Via Claude/Cursor
"Set my system volume to 50%"
"What applications are currently running?"
"Send me a notification with title 'Reminder' and message 'Check email'"
"Create a calendar event for tomorrow at 2pm called 'Team Meeting'"
"What's on my clipboard?"Via MCP Tool Calls
# Set volume
result = await callMCPTool('macos-automation__set_volume', {'level': 50})
# Send notification
result = await callMCPTool('macos-automation__send_notification', {
'title': 'Hello',
'message': 'World'
})
# List running apps
result = await callMCPTool('macos-automation__list_running_apps', {})Security
Shell Command Safety
The run_shell_command tool includes safety checks that block dangerous commands. Only whitelisted commands are allowed:
System info:
sw_vers,uname,hostname,whoami, etc.File info:
ls,pwd,stat,file, etc.Network info:
networksetup,ifconfig, etc.macOS utilities:
defaults,launchctl,open, etc.
Dangerous patterns like rm -rf /, sudo rm, fork bombs, etc. are blocked.
AppleScript Sandboxing
AppleScript execution respects macOS sandboxing and permission systems. Scripts cannot access protected resources without proper permissions.
Development
Running Tests
uv run pytest tests/ -vVerification
# Verify server loads correctly
cd /Volumes/dev-4tb/AA-GitHub/MCP/mcp-applescript-automation
uv run python -c "from macos_automation_mcp import mcp; print(f'Server: {mcp.name}')"
# List all registered tools
uv run python -c "
from macos_automation_mcp.server import mcp
tools = list(mcp._tool_manager._tools.keys())
print(f'Registered {len(tools)} tools')
for t in sorted(tools): print(f' - {t}')
"
# Test basic functionality
uv run python -c "
from macos_automation_mcp.domains import system
result = system.get_system_info()
print(f'macOS: {result.get(\"macos_version\")}')
print(f'Host: {result.get(\"hostname\")}')
"Project Structure
mcp-applescript-automation/
├── macos_automation_mcp/
│ ├── __init__.py
│ ├── server.py # FastMCP server with 45 tool definitions
│ ├── core/
│ │ ├── __init__.py
│ │ ├── applescript.py # AppleScript execution engine (osascript)
│ │ ├── shell.py # Safe shell command execution
│ │ └── scheduler.py # launchd task integration
│ ├── domains/
│ │ ├── __init__.py
│ │ ├── system.py # System controls (12 tools)
│ │ ├── applications.py # Application control (6 tools)
│ │ ├── finder.py # Finder operations (6 tools)
│ │ ├── calendar.py # Calendar.app integration (3 tools)
│ │ ├── reminders.py # Reminders.app integration (5 tools)
│ │ ├── notifications.py # Notification Center (3 tools)
│ │ ├── clipboard.py # Clipboard operations (3 tools)
│ │ └── scripts.py # Script execution (4 tools)
│ └── models/
│ ├── __init__.py
│ └── schemas.py # Pydantic models for type safety
├── tests/
│ ├── __init__.py
│ └── test_applescript.py # Unit tests
├── main.py # Entry point
├── pyproject.toml # Dependencies: mcp[cli], pydantic
├── uv.lock # Locked dependencies
└── README.mdDependencies
mcp[cli]>=1.0.0 - FastMCP framework with CLI support
pydantic>=2.0.0 - Type-safe data validation
License
MIT License
Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.
Acknowledgments
Built using FastMCP
Inspired by applescript-mcp
Uses the Model Context Protocol
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI agents to interact with macOS applications (Finder, Mail, Contacts, Reminders, Notes, Calendar, TextEdit) using AppleScript. Allows AI assistants to perform tasks like searching contacts, managing files, checking email, and creating reminders through natural language.Last updated241MIT
- AlicenseAqualityDmaintenanceEnables interaction with macOS system features including file dialogs, clipboard management, Finder integration, and system notifications. It also provides tools for taking screenshots, processing images, managing PDFs, and interacting with the Apple Notes app.Last updated251MIT
- AlicenseBqualityAmaintenanceEnables AI assistants to automate macOS through AppleScript and JXA by providing 44 tools for application management, window control, and UI interaction. It allows for comprehensive system control including screen capture, keyboard and mouse simulation, and system information retrieval.Last updated4433MIT
- AlicenseBqualityBmaintenanceA macOS automation MCP server providing 40+ tools for controlling Messages, Contacts, Notes, Reminders, Calendar, Files, Clipboard, Windows, Safari, Chrome, screenshots, and system settings via natural language.Last updated91128Apache 2.0
Related MCP Connectors
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Connects ChatGPT to your Apple Calendar via a local Mac agent + Vercel relay
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