applescript-mcp
Enables LLM applications to interact with macOS through AppleScript.
joshrutkowski
Tools
system_toggle_dark_mode
[System control and information] Toggle system dark mode
system_volume
[System control and information] Set system volume
system_get_frontmost_app
[System control and information] Get the name of the frontmost application
system_launch_app
[System control and information] Launch an application
system_quit_app
[System control and information] Quit an application
system_get_battery_status
[System control and information] Get battery level and charging status
calendar_add
[Calendar operations] Add a new event to Calendar
calendar_list
[Calendar operations] List all events for today
finder_get_selected_files
[Finder and file operations] Get currently selected files in Finder
finder_search_files
[Finder and file operations] Search for files by name
finder_quick_look_file
[Finder and file operations] Preview a file using Quick Look
clipboard_get_clipboard
[Clipboard management operations] Get current clipboard content
clipboard_set_clipboard
[Clipboard management operations] Set clipboard content
clipboard_clear_clipboard
[Clipboard management operations] Clear clipboard content
notifications_toggle_do_not_disturb
[Notification management] Toggle Do Not Disturb mode using keyboard shortcut
notifications_send_notification
[Notification management] Send a system notification
iterm_paste_clipboard
[iTerm terminal operations] Paste clipboard content into iTerm
iterm_run
[iTerm terminal operations] Run a command in iTerm
README
applescript-mcp MCP Server
A Model Context Protocol server that enables LLM applications to interact with macOS through AppleScript. This server provides a standardized interface for AI applications to control system functions, manage files, handle notifications, and more.
Features
- 🗓️ Calendar management (events, reminders)
- 📋 Clipboard operations
- 🔍 Finder integration
- 🔔 System notifications
- ⚙️ System controls (volume, dark mode, apps)
- 📟 iTerm terminal integration
Planned Features
- 📬 Mail (list emails, save attachments, summarize, send)
- 🧭 Safari (open in Safari, save page content, get selected page/tab)
- 💬 Messages (send, get, list)
- ✅ Reminders (create, get)
- 🗒️ Notes (create, get, list)
Prerequisites
- macOS 10.15 or later
- Node.js 18 or later
Available Categories
Calendar
Command | Description | Parameters |
---|---|---|
add |
Create calendar event | title , startDate , endDate |
list |
List today's events | None |
Clipboard
Command | Description | Parameters |
---|---|---|
set_clipboard |
Copy to clipboard | content |
get_clipboard |
Get clipboard contents | None |
clear_clipboard |
Clear clipboard | None |
Finder
Command | Description | Parameters |
---|---|---|
get_selected_files |
Get selected files | None |
search_files |
Search for files | query , location (optional) |
quick_look |
Preview file | path |
Notifications
Command | Description | Parameters |
---|---|---|
send_notification |
Show notification | title , message , sound (optional) |
toggle_do_not_disturb |
Toggle DND mode | None |
System
Command | Description | Parameters |
---|---|---|
volume |
Set system volume | level (0-100) |
get_frontmost_app |
Get active app | None |
launch_app |
Open application | name |
quit_app |
Close application | name , force (optional) |
toggle_dark_mode |
Toggle dark mode | None |
iTerm
Command | Description | Parameters |
---|---|---|
paste_clipboard |
Paste to iTerm | None |
run |
Execute command | command , newWindow (optional) |
Development
Setup
# Install dependencies
npm install
# Build the server
npm run build
# Launch MCP Inspector
# See: https://modelcontextprotocol.io/docs/tools/inspector
npx @modelcontextprotocol/inspector node path/to/server/index.js args...
Adding New Functionality
1. Create Category File
Create src/categories/newcategory.ts
:
import { ScriptCategory } from "../types/index.js";
export const newCategory: ScriptCategory = {
name: "category_name",
description: "Category description",
scripts: [
// Scripts will go here
]
};
2. Add Scripts
{
name: "script_name",
description: "What the script does",
schema: {
type: "object",
properties: {
paramName: {
type: "string",
description: "Parameter description"
}
},
required: ["paramName"]
},
script: (args) => `
tell application "App"
// AppleScript code using ${args.paramName}
end tell
`
}
3. Register Category
Update src/index.ts
:
import { newCategory } from "./categories/newcategory.js";
// ...
server.addCategory(newCategory);
Debugging
Using MCP Inspector
The MCP Inspector provides a web interface for testing and debugging your server:
npm run inspector
Logging
Enable debug logging by setting the environment variable:
DEBUG=applescript-mcp* npm start
Common Issues
- Permission Errors: Check System Preferences > Security & Privacy
- Script Failures: Test scripts directly in Script Editor.app
- Communication Issues: Check stdio streams aren't being redirected
Resources
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
MIT License - see LICENSE for details
Recommended Servers
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Beamlit MCP Server
An MCP server implementation that enables seamless integration between Beamlit CLI and AI models using the Model Context Protocol standard.
ThingsPanel MCP
An integration server that connects AI models with ThingsPanel IoT platform, allowing AI assistants to interact with IoT devices through natural language for device control, data retrieval, and management operations.

systemd-coredump MCP Server
Enables MCP-capable applications to access, manage, and analyze system core dumps through integration with systemd-coredump functionality.
Terminal Controller for MCP
An MCP server that enables secure terminal command execution, directory navigation, and file system operations through a standardized interface for LLMs.
Apple Shortcuts Server
An MCP Server Integration with Apple Shortcuts

mac-apps-launcher
An MCP server to list and launch applications on MacOS
Bazel MCP Server
A local MCP server that exposes Bazel build system functionality to AI agents, allowing them to build, test, query, and manage Bazel projects through natural language even in environments where Bazel can't be directly accessed.
Google Tasks MCP Server
Integrates with Google Tasks to allow listing, reading, searching, creating, updating, and deleting tasks.