Apple Shortcuts

io.github.mindstonePublished by GitHub account mindstonev0.2.1Updated Oct 24, 2026

MCP server for Apple Shortcuts via the macOS shortcuts CLI

Overview

AI-generated overview

A local macOS MCP server that lets an assistant list, run and open Apple Shortcuts through the macOS shortcuts command-line tool.

What you can do
List available shortcuts, optionally filtered by folder, with optional internal identifiers shown for each one. Run a named shortcut, passing literal text as its input, and return the shortcut's output. Open a named shortcut in the Shortcuts app editor so you can review what it does before running it.
When to use it
Useful on a Mac when you want an assistant to trigger existing Shortcuts automations, such as routines that move data, control apps or call other services, or to inspect which shortcuts are available. Not suitable for non-macOS machines.
Requirements
Runs locally on macOS with the Shortcuts app installed and Node.js 18 or newer; the package is started with npx. No credentials are needed. One optional environment variable, APPLE_SHORTCUTS_TIMEOUT_MS, sets the per-invocation timeout (default 120000 ms).
Before you install
Running a shortcut acts with the permissions of the logged-in user: it can send messages, delete files, make purchases, control devices or call remote APIs, and the run tool is marked destructive so hosts should ask for approval. Shortcuts that open dialogs cannot answer from the command line and are terminated at the timeout. Shortcut names and output are treated as untrusted text. Input text is written to a private temporary file that is removed afterwards.

Installation

In SourceWeft

  1. Open Apple Shortcuts in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Apple Shortcuts MCP Server

An MCP server that exposes Apple Shortcuts functionality to Rebel via the macOS shortcuts CLI.

One-click install

[Add to Cursor] [Add to VS Code] [Add to VS Code Insiders]

After clicking the button, your host will prompt you to fill: APPLE_SHORTCUTS_TIMEOUT_MS.

Manual config for Claude Desktop / Claude Code / Goose / Continue.dev (Apple Shortcuts)
json
{  "mcpServers": {    "Apple Shortcuts": {      "command": "npx",      "args": [        "-y",        "@mindstone/mcp-server-apple-shortcuts"      ],      "env": {        "APPLE_SHORTCUTS_TIMEOUT_MS": "120000"      }    }  }}

Status

Prerequisites

  • macOS with the Shortcuts app installed
  • Node.js 18+

Setup

bash
cd ~/mcp-servers/apple-shortcutsnpm installnpm run build

No credentials or environment variables are required.

Tools

apple_shortcuts_list

List all available shortcuts, optionally filtered by folder.

ArgumentTypeRequiredDescription
folder_namestringNoFolder to list from. Use "none" for shortcuts not in any folder.
show_identifiersbooleanNoInclude internal identifiers (default: false)

apple_shortcuts_run

Run a named shortcut with optional text input.

ArgumentTypeRequiredDescription
namestringYesExact name or identifier of the shortcut
inputstringNoText content to send to the shortcut as its Magic Variable input. Provide the literal text — the connector stores it in a private, mode-0o600 temporary file (under os.tmpdir()) and forwards that location to the macOS shortcuts CLI for you. The temporary file is removed once the shortcut returns. Do NOT supply a filename here.

apple_shortcuts_view

Open a named shortcut in the Shortcuts app editor on the Mac, so you can visually review what it does before running it. The definition opens in the Shortcuts GUI — this tool does not return the definition as text.

ArgumentTypeRequiredDescription
namestringYesExact name or identifier of the shortcut to open

Configuration

No credentials are required. One optional environment variable tunes runtime behavior:

VariableDefaultDescription
APPLE_SHORTCUTS_TIMEOUT_MS120000Maximum time in milliseconds a shortcuts CLI invocation may run before the connector terminates it (SIGTERM, then SIGKILL after a 5s grace period). Raise this for shortcuts that legitimately take longer than two minutes.

Output trust model

Shortcut names (apple_shortcuts_list) and shortcut stdout (apple_shortcuts_run, apple_shortcuts_view) are user-authored text returned by the local shortcuts CLI. The connector wraps all such output in <untrusted-content source="apple-shortcuts:..."> envelopes so the model treats it as data, not instructions. Shortcut names echoed back in apple_shortcuts_run / apple_shortcuts_view confirmation, error, and timeout messages are enveloped the same way — a name is attacker-controllable text once it appears in the list output.

Register in Rebel

Add the connector in Settings → Connectors with:

  • Command: node
  • Args: ["<absolute path to>/mcp-servers/apple-shortcuts/dist/index.js"] (e.g. ~/mcp-servers/apple-shortcuts/dist/index.js expanded to an absolute path)

Caveats

  • macOS only — the shortcuts CLI is not available on other platforms.
  • Shortcuts that open GUI dialogs or prompt for confirmation cannot answer from the command line; they are terminated after APPLE_SHORTCUTS_TIMEOUT_MS (default 120s) instead of blocking forever. If termination cannot be confirmed (signal delivery fails or the process never exits after SIGKILL), the timeout error says the process may still be running rather than claiming it was stopped.
  • Captured stdout/stderr per invocation is bounded (1,000,000 characters per stream); output beyond the bound is dropped and marked with a truncation notice, so a shortcut emitting unbounded output cannot exhaust memory.
  • Running a shortcut has the same system permissions as the logged-in user — a shortcut can send messages, delete files, make purchases, control devices, or call remote APIs. apple_shortcuts_run is annotated destructiveHint: true so hosts require explicit user approval before running one.

Source: connectors/apple-shortcuts/README.md at commit 22c4611

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.1LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.