macOS Automator
The macOS Automator MCP Server allows you to execute AppleScript and JavaScript for Automation (JXA) scripts remotely. It opens up a world of possibilities for programmatically controlling macOS applications and system functions.
Key Features
- 🚀 Remote execution of AppleScript and JXA scripts via MCP
- 📚 Extensive knowledge base of pre-defined automation scripts
- 🔌 Seamless integration with macOS applications and system functions
- 🛠️ Support for inline scripts, script files, and argument passing
- ⚡ Lazy loading of the knowledge base for quick server startup
Use Cases
- Automated browser testing: Use the server to control Safari or Chrome, opening specific URLs, filling forms, and capturing screenshots across different user profiles.
- Enhanced data collection: Combine the power of web scraping with local file operations to gather data from websites and save it directly to your Mac.
- Workflow automation: Create complex workflows that involve multiple macOS applications, such as automatically processing emails, creating calendar events, and updating spreadsheets.
- Remote system management: Control system settings, manage files, and perform maintenance tasks on a Mac from anywhere using MCP.
Getting Started
1. Ensure you have Node.js (version 18.0.0 or higher) installed on your macOS system.
2. Add the following configuration to your MCP client’s mcp.json:
{
"mcpServers": {
"macos_automator": {
"command": "npx",
"args": [
"-y",
"@steipete/macos-automator-mcp@latest"
]
}
}
}3. Set up critical permissions:
- Go to System Settings > Privacy & Security > Automation
- Find the application running the server (e.g., Terminal) and ensure it has permissions for the apps you want to control
- Go to System Settings > Privacy & Security > Accessibility
- Add the application running the server to the list and enable its checkbox
4. Use the execute_script tool to run scripts:
{
"toolName": "execute_script",
"input": {
"kbScriptId": "safari_get_active_tab_url",
"timeoutSeconds": 10
}
}5. Explore available scripts using the get_scripting_tips tool:
{
"toolName": "get_scripting_tips",
"input": {
"category": "safari"
}
}FAQs
Q: Can I use this server to automate any macOS application?
A: You can automate most macOS applications that support AppleScript or JavaScript for Automation. However, some applications may have limited automation capabilities or require additional permissions.
Q: How do I handle script execution errors?
A: The server returns an isError flag in the response when a script fails. You can also check if the output starts with “Error” (case-insensitive) to identify failures.
Q: Can I extend the built-in knowledge base with my own scripts?
A: Yes, you can create a local knowledge base at ~/.macos-automator/knowledge_base or set a custom path using the LOCAL_KB_PATH environment variable. Your local scripts can override or complement the built-in ones.
Q: How can I increase the execution timeout for long-running scripts?
A: Use the timeoutSeconds parameter when calling execute_script. For example, set it to 60 for a one-minute timeout: "timeoutSeconds": 60.
Q: Is it possible to pass complex data structures to scripts?
A: Yes, use the inputData parameter to pass a JSON object. The server will convert this to AppleScript literals, allowing you to work with structured data in your scripts.
Latest MCP Servers
Notion
Log Mcp
Apple
Featured MCP Servers
Notion
Claude Peers
Excalidraw
FAQs
Q: What exactly is the Model Context Protocol (MCP)?
A: MCP is an open standard, like a common language, that lets AI applications (clients) and external data sources or tools (servers) talk to each other. It helps AI models get the context (data, instructions, tools) they need from outside systems to give more accurate and relevant responses. Think of it as a universal adapter for AI connections.
Q: How is MCP different from OpenAI's function calling or plugins?
A: While OpenAI's tools allow models to use specific external functions, MCP is a broader, open standard. It covers not just tool use, but also providing structured data (Resources) and instruction templates (Prompts) as context. Being an open standard means it's not tied to one company's models or platform. OpenAI has even started adopting MCP in its Agents SDK.
Q: Can I use MCP with frameworks like LangChain?
A: Yes, MCP is designed to complement frameworks like LangChain or LlamaIndex. Instead of relying solely on custom connectors within these frameworks, you can use MCP as a standardized bridge to connect to various tools and data sources. There's potential for interoperability, like converting MCP tools into LangChain tools.
Q: Why was MCP created? What problem does it solve?
A: It was created because large language models often lack real-time information and connecting them to external data/tools required custom, complex integrations for each pair. MCP solves this by providing a standard way to connect, reducing development time, complexity, and cost, and enabling better interoperability between different AI models and tools.
Q: Is MCP secure? What are the main risks?
A: Security is a major consideration. While MCP includes principles like user consent and control, risks exist. These include potential server compromises leading to token theft, indirect prompt injection attacks, excessive permissions, context data leakage, session hijacking, and vulnerabilities in server implementations. Implementing robust security measures like OAuth 2.1, TLS, strict permissions, and monitoring is crucial.
Q: Who is behind MCP?
A: MCP was initially developed and open-sourced by Anthropic. However, it's an open standard with active contributions from the community, including companies like Microsoft and VMware Tanzu who maintain official SDKs.



