Enables management and automation of macOS applications through launching apps, listing running applications, executing AppleScript commands, quitting applications, and opening files in specific applications.
MCP Mac Apps Server
MCP server for managing macOS applications through LLM. Allows launching applications, managing them via AppleScript, and getting information about running applications.
๐ค Voice Control: Use voice_client.py to control applications by voice! See VOICE_SETUP.md
Features
๐ Launch Applications - open any applications on Mac
๐ List Running Applications - get list of active applications
๐ค AppleScript Automation - execute commands in applications
โ Close Applications - quit applications
๐ Open Files - open files in specific applications
Installation
Python Version (Recommended)
Make sure you have Python 3.7+ installed
Install dependencies:
Server is ready to use! No compilation required.
TypeScript Version (Alternative)
Make sure you have Node.js (v18+) and npm installed
Install dependencies:
Build the project:
Configuration for Use with MCP Clients
Claude Desktop
Add configuration to the MCP client settings file. For Claude Desktop this is usually the MCP configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
Or for development using tsx:
Other LLMs and Clients
Available options:
Claude Desktop (recommended) - full MCP support
Ollama โ - local models (installed, models loaded) - see OLLAMA_SETUP.md
LM Studio - graphical interface for local LLMs
DeepSeek - see DEEPSEEK_SETUP.md
๐ Detailed list of compatible LLMs and instructions: COMPATIBLE_LLM.md
Usage
After configuration, the LLM will be able to use the following tools:
1. Open Application
2. Get List of Applications
3. Execute AppleScript
4. Close Application
5. Open File
Available Tools
open_application
Opens an application by name.
Parameters:
appName(string) - application name (e.g., "Safari", "Calculator")
get_running_applications
Returns a list of all running applications.
run_applescript
Executes an AppleScript command in the specified application.
Parameters:
appName(string) - application namescript(string) - AppleScript command
AppleScript Examples:
Safari:
make new document- create a new tabFinder:
open folder "Documents"- open a folderTextEdit:
make new document- create a new document
quit_application
Closes the specified application.
Parameters:
appName(string) - application name to close
open_file_with_app
Opens a file or URL in the specified application.
Parameters:
path(string) - path to file or URLappName(string) - application name
Testing
To test the server:
Or test manually:
Development
For development with auto-reload:
Security
โ ๏ธ Warning: This server allows executing commands on your system. Use it only with trusted LLM clients and in a secure environment.
For macOS, you may need permission to control other applications:
System Settings โ Privacy & Security โ Automation
Allow access for Terminal/Node.js
License
MIT