A Model Context Protocol (MCP) server that lets AI assistants like Claude control Apple Shortcuts automations. This enables AI models to trigger shortcuts and automate tasks on macOS in a safe and controlled way.

What is MCP? ?

The Model Context Protocol (MCP) is a system that lets AI apps, like Claude Desktop, connect to external tools and data sources. It gives a clear and safe way for AI assistants to work with local services and APIs while keeping the user in control.

What does this server do? ?

The Apple Shortcuts MCP server: - Enables AI assistants to list available shortcuts - Allows running shortcuts by name with optional input parameters - Provides a simple interface for automation control

Prerequisites ?

Before you begin, ensure you have:

Configuration to use Apple Shortcuts Server ⚙️

Here's the Claude Desktop configuration to use the Apple Shortcuts server:

{
  "mcpServers": {
    "apple-shortcuts": {
      "command": "npx",
      "args": ["-y", "mcp-server-apple-shortcuts"]
    }
  }
}

Build Apple Shortcuts Server and run locally ?️

  1. Clone this repository:
git clone [email protected]:recursechat/mcp-server-apple-shortcuts.git
  1. Install dependencies:

    npm install

  2. Build project

    npm run build

Here's the Claude Desktop configuration to use the Apple Shortcuts server with a local build:

{
  "mcpServers": {
    "apple-shortcuts": {
      "command": "npx",
      "args": ["/path/to/mcp-server-apple-shortcuts/build/index.js"],
    }
  }
}

Usage ?

You can ask Claude "list shortcuts" or run a specific shortcut with the shortcut name, for example "get word of the day" or "play a song".

License ⚖️

Apache-2.0

[
  {
    "description": "Run a Shortcuts automation by name",
    "inputSchema": {
      "properties": {
        "input": {
          "description": "Optional input to pass to the shortcut",
          "type": "string"
        },
        "name": {
          "description": "Name of the shortcut to run",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "name": "run_shortcut"
  },
  {
    "description": "List all available shortcuts",
    "inputSchema": {
      "properties": {},
      "type": "object"
    },
    "name": "list_shortcuts"
  }
]