automator-mcp
Enables interaction with Apple applications like Apple Mail for sending emails, and provides access to Apple's automation technologies including AppleScript and Automator workflows.
Supports JavaScript for Automation (JXA), allowing execution of JavaScript code to control macOS applications and system features.
Allows control of macOS through AppleScript and JavaScript for Automation (JXA), enabling file organization, application control, email sending via Apple Mail, workflow automation, and system-level tasks like toggling dark mode or taking screenshots.
Available as an npm package for installation and distribution.
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., "@automator-mcpcompress all screenshots on my desktop from today"
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.
π€ automator-mcp
MCP (Model Context Protocol) server for macOS Automator - bringing AI-powered automation to your Mac!
π¨ BREAKING: AI CAN NOW CONTROL YOUR MAC! π¨
π€― What This Does
This MCP server lets Claude (or any AI with MCP support) control your macOS:
π§ Send emails through Apple Mail
ποΈ Organize files intelligently
π₯οΈ Control applications natively
π Automate workflows with AppleScript/JXA
π Visual automation - AI watches and learns from your screen
Yes, you read that right. AI can now send emails from your Mac!
Related MCP server: macos-mcp
π Features
AppleScript Execution - Run AppleScript directly from AI
JavaScript for Automation (JXA) - Modern JS automation support
Workflow Creation - Build Automator workflows programmatically
Quick Actions - Pre-built automations for common tasks
System Automation - Control macOS system features
π¦ Installation
npm install -g automator-mcpπ§ Configuration
Add to your Claude Desktop config:
{
"mcpServers": {
"automator": {
"command": "automator-mcp"
}
}
}π οΈ Available Tools
run_applescript
Execute AppleScript code:
tell application "Finder"
display dialog "Hello from AI!"
end tellrun_jxa
Execute JavaScript for Automation:
Application('Finder').displayDialog('Hello from AI!');quick_action
Run predefined automations:
compress_images- Compress image filesconvert_to_pdf- Convert files to PDFresize_images- Resize images to specified dimensionsextract_text_from_pdf- Extract text from PDFscombine_pdfs- Merge multiple PDFsconvert_video- Convert video formats
system_automation
System-level tasks:
empty_trash- Empty the trashtoggle_dark_mode- Switch between light/dark modetake_screenshot- Capture screenget_system_info- Get system information
create_workflow
Create new Automator workflows with specified actions.
list_actions
List available Automator actions by category.
π‘ Examples
Compress all screenshots from today:
Use quick_action with action "compress_images" and files from ~/Desktop/Screenshot*.pngToggle dark mode:
Use system_automation with task "toggle_dark_mode"Create a workflow to resize images:
Use create_workflow to make a new service that resizes selected images to 800x600π€ Contributing
Pull requests welcome! Let's make Mac automation amazing together.
π License
MIT Β© Maciej Gad
Made with β€οΈ by @Szowesgad & @giklaudiusz
Yes, this MCP was co-created by an AI (Klaudiusz) who can now send emails through your Mac. We live in the future! π
Available Tools
6 toolscreate_workflowC
Create a new Automator workflow file
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the workflow | |
| type | Yes | Type of Automator document | |
| actions | No | Array of action configurations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a creation tool but doesn't mention permissions required, whether it overwrites existing files, what format the workflow file takes, or any side effects. For a creation tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without any fluff. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens after creation, what format the workflow file takes, whether it's saved somewhere specific, or what permissions might be required. Given the complexity of workflow creation and the lack of structured metadata, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any meaning beyond what's in the schema - it doesn't explain relationships between parameters, provide examples, or clarify usage patterns. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new Automator workflow file'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'quick_action' or 'system_automation' which might also create workflow-related artifacts, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'quick_action' or 'run_applescript'. It doesn't mention prerequisites, dependencies, or typical use cases, leaving the agent with minimal context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_actionsC
List available Automator actions
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only states what the tool does ('List available Automator actions') without revealing behavioral traits such as whether it's read-only, if it requires permissions, how results are formatted (e.g., pagination, sorting), or any rate limits. This leaves significant gaps for an agent to understand how to interact with it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple tool. Every word earns its place, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 optional parameter, no output schema, no annotations), the description is incomplete. It doesn't explain what 'available' means (e.g., system-wide, user-specific, or based on permissions), the format of the returned list, or how it relates to sibling tools. For a discovery tool in an automation context, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 100% description coverage, documenting it as an optional filter by category. The description doesn't add any parameter semantics beyond what the schema provides, but since there's only one optional parameter and the schema is fully documented, the baseline is high. A score of 4 reflects that the description doesn't need to compensate for schema gaps in this minimal case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose ('List available Automator actions') which is clear but vague. It specifies the verb ('List') and resource ('Automator actions'), but doesn't distinguish it from potential sibling tools like 'quick_action' or 'system_automation' that might also involve actions. The description is adequate but lacks specificity about what 'available' means in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'create_workflow' or 'run_applescript', nor does it explain if this is for discovery, configuration, or other purposes. Without context, an agent must infer usage from the tool name alone, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quick_actionC
Run a predefined quick action
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Quick action to perform | |
| files | Yes | File paths to process | |
| options | No | Action-specific options |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Run a predefined quick action', implying a mutation or processing operation, but doesn't disclose critical traits like whether it modifies files in place, requires authentication, has rate limits, or what happens on failure. This is a significant gap for a tool with potential destructive effects, as it doesn't add context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Run a predefined quick action'. It's front-loaded with the core purpose and has zero wasted words, making it easy to parse quickly. Every part of the sentence earns its place by conveying the essential action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, including nested objects, no output schema, and no annotations), the description is incomplete. It doesn't explain what 'predefined' entails, the scope of actions (e.g., file processing as hinted by enum), or behavioral outcomes. Without annotations or output schema, more context is needed to guide safe and effective use, especially for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (action, files, options) with descriptions and an enum for action. The description adds no meaning beyond this, such as explaining what 'predefined' means or how options are structured. With high schema coverage, the baseline is 3, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Run a predefined quick action' states the verb ('run') and resource ('predefined quick action'), but it's vague about what a 'quick action' entailsβit could be any automated task without specifying the domain (e.g., file processing). It doesn't distinguish from siblings like 'create_workflow' or 'system_automation', which might involve similar automation. However, it avoids tautology by not merely restating the name 'quick_action'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing specific file types or permissions, or compare it to siblings like 'run_applescript' or 'list_actions'. Usage is implied only through the action parameter's enum values, but the description itself lacks explicit when/when-not statements or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_applescriptC
Execute AppleScript code on macOS
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | AppleScript code to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Execute') but fails to describe critical traits such as security implications, permission requirements, error handling, or output format. This leaves significant gaps for an agent to understand the tool's behavior beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse quickly. There is no wasted verbiage, earning a top score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that executes code on macOS with no annotations and no output schema, the description is incomplete. It lacks information on behavioral aspects like safety, permissions, or result handling, and does not compensate for the absence of structured data. Given the potential complexity and risks of code execution, more context is needed for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'script' documented as 'AppleScript code to execute'. The description adds no additional semantic context beyond this, such as examples or constraints on script content. Given the high schema coverage, the baseline score of 3 is appropriate as the schema handles the parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Execute') and resource ('AppleScript code on macOS'), making the tool's purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'run_jxa' or 'system_automation', which prevents a perfect score, but the specificity of 'AppleScript' provides some implicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'run_jxa' (for JavaScript for Automation) or 'system_automation'. It lacks context about prerequisites (e.g., macOS requirement) or typical use cases, offering only a basic functional statement without comparative or exclusionary advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_jxaB
Execute JavaScript for Automation (JXA) code on macOS
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | JXA JavaScript code to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Execute') but does not mention critical traits like permissions required, potential side effects (e.g., system modifications), error handling, or output format. This leaves significant gaps for a tool that executes code, which is inherently risky without transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place by clearly stating the tool's function, making it highly concise and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of executing code (a potentially destructive operation) and the lack of annotations and output schema, the description is incomplete. It fails to address safety, permissions, or result handling, which are crucial for an agent to use this tool correctly and safely in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'script' fully documented in the schema as 'JXA JavaScript code to execute'. The description adds no additional meaning beyond this, such as syntax examples or constraints, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Execute') and resource ('JavaScript for Automation (JXA) code on macOS'), distinguishing it from sibling tools like run_applescript (different scripting language) and system_automation (broader automation). It precisely communicates what the tool does without being vague or tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like run_applescript or system_automation. It lacks explicit when/when-not instructions, prerequisites (e.g., macOS requirement implied but not stated), or comparisons to sibling tools, leaving the agent with minimal context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_automationC
Perform system-level automation tasks
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | System task to perform | |
| parameters | No | Task-specific parameters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'automation tasks' which implies potential system modifications, but fails to disclose critical behavioral traits such as permissions required, side effects (e.g., 'empty_trash' destroys files), or safety considerations, leaving significant gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that is appropriately sized and front-loaded. It avoids unnecessary words, though it could be more informative; every word earns its place, but the brevity limits helpfulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of system automation with 2 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on return values, error handling, or behavioral context needed for safe and effective use, failing to compensate for the missing structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly, including an enum for 'task' and a description for 'parameters'. The description adds no additional meaning beyond what the schema provides, such as explaining task-specific behaviors or parameter usage, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Perform system-level automation tasks' states a general purpose but is vague about what specific resources or actions are involved. It distinguishes from siblings like 'create_workflow' or 'list_actions' by focusing on system-level tasks rather than workflow management or listing, but lacks specificity about the exact verb+resource combination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'run_applescript' or 'quick_action', there is no indication of context, prerequisites, or exclusions for choosing this automation tool over others, leaving usage decisions ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The tools have some clear distinctions, such as create_workflow vs. run_applescript, but there is notable overlap between quick_action, system_automation, and the execution tools (run_applescript, run_jxa). An agent might struggle to choose between quick_action and system_automation for general tasks, as their purposes are not sharply differentiated in the descriptions.
Most tools follow a consistent verb_noun pattern (e.g., create_workflow, list_actions, run_applescript), which aids readability. However, quick_action deviates slightly by using an adjective-noun format, breaking the pattern and causing minor inconsistency in the set.
With 6 tools, the server is well-scoped for automation tasks on macOS, covering workflow creation, action listing, and various execution methods. The count is appropriate, avoiding bloat while providing essential functionality for the domain without feeling thin or excessive.
The tools cover key areas like workflow creation and script execution, but there are notable gaps in the automation lifecycle. For example, there are no tools for managing or deleting workflows, updating actions, or handling errors, which could limit agent effectiveness in more complex automation scenarios.
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 Connectors
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server for macOS that enables AI agents to control the desktop GUI through keyboard input, mouse actions, and screen captures. It provides stable low-level primitives for UI automation and agent-driven desktop workflows.MIT
- AlicenseNot gradedqualityAmaintenanceA lightweight MCP server that bridges AI agents and macOS, enabling automation of file navigation, application control, UI interaction, browser automation, and system operations.159MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that enables AI to fully control macOS β mouse, keyboard, terminal, screenshots, window management, UI element detection, and provides AI-optimized information reporting.20MIT
- AlicenseNot gradedqualityBmaintenanceA secure, constraint-based macOS OS-level automation MCP server for AI assistants.MIT
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/VetCoders/automator-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server