shortcuts-playground-mcp
Generates signed Apple Shortcuts (.shortcut) files from natural language, providing tools for searching actions, building conditional/repeat/menu workflows, and validating or signing shortcuts.
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., "@shortcuts-playground-mcpBuild a shortcut that gets current weather and if it is raining, shows a notification"
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.
shortcuts-playground-mcp
MCP server for Apple Shortcuts generation, inspired by viticci/shortcuts-playground-plugin.
The plugin generates valid, signed .shortcut files from natural language as a Claude Code / Codex in-chat skill. This repo explores the same job through an MCP server, with two core hypotheses:
1) Structural safety: MCP's schema-validated tool-call layer can make the
GroupingIdentifier/WFControlFlowModeclass of error structurally impossible, instead of catching it after the fact in a validate-and-repair loop
Beyond safety/error reduction, I think the structured set of tools can also help agents with reasoning by forcing the build into logical steps like a human would when using the UI. Skills can certainly encourage this, but the tools enforce it. I think that this prevents an agent from trying to one-shot the XML.
2) Context reduction: MCP's on-demand, hierarchical tool surface (
list_categories→search_actions→get_action_schema, plus{{Var}}name resolution andresource://tool-call-flow examples) can meaningfully reduce per-turn context vs. putting the full 600+ action catalog + 19 golden XMLs in context, while preserving first-attempt correctness
I'm sort of building an API for building Shortcuts, which is not that useful as is for developers imo, since Apple already provides a nice UI for it, and I can't think of a good scripted use case. Packaged as an MCP though, this gives AI agents a nice toolkit from converting a natural language description to a working shortucut.
Architecture
Reuse:
skills/shortcuts-playground/from the plugin — the action catalog: verified action identifiers, parameter-key schemas, enum-case catalogs, automation triggers, versioned per OS (ToolKit v63 for macOS 26, v78 for macOS/iOS 27). ~1,794 ids (v63) → 2,731 ids (v78).bin/validate-shortcutandbin/sign-shortcut— standalone Python 3.10+ CLI wrappers for structural validation and Apple's native signing step. Reuse by shelling out.
See docs/CATALOG_CONSUMPTION.md for how the catalog is consumed without forking wholesale.
Divergence (experimental):
With the plugin, agents write raw XML and rely on the Craig Loop (post-hoc validate-shortcut → repair → re-validate, up to 5 iterations) to catch malformed GroupingIdentifier / WFControlFlowMode pairing errors in If/Otherwise/Repeat blocks. The MCP implementation instead exposes compound, schema-validated tools that mutate the state of the shortuct deterministically as its built:
Plugin | MCP |
One generic write + validator repair loop |
|
Model juggles | Model names variables in human-readable form; server resolves to UUID/magic-variable at serialization ( |
Full catalog in context (365 WF* + 2,731 v78 ids + 7 MD refs + 19 golden XMLs) | Hierarchical, on-demand navigation |
Related MCP server: Apple Shortcuts MCP Server
Tools
Tool | Purpose |
| Hierarchical catalog navigation |
| Parameter / enum schema for one action |
| Simple, non-nesting actions |
| Compound, structurally-safe builders for control flow |
| Round-trip check before signing (shells out to their |
| Shells out to their |
| Dumps in-progress shortcut as human-readable XML/summary |
Installation
Configure in your MCP client:
{
"mcpServers": {
"shortcuts-playground": {
"command": "shortcuts-mcp",
"env": {
"SHORTCUTS_CATALOG_DIR": "./catalog",
"SHORTCUTS_TARGET_MACOS": "26"
}
}
}
}Architecture
catalog/ ← vendored ToolKit snapshots + markdown refs
src/shortcuts_mcp/
catalog.py ← search/list/get backed directly by catalog JSON
builder.py ← session state: UUID allocation, name→UUID map, GroupingIdentifier ownership
serializer.py ← name-resolved → plist XML, WFTextTokenString/Attachment wiring
validator.py ← shells out to bin/validate-shortcut
signer.py ← shells out to bin/sign-shortcut
server.py ← MCP tool definitions
tests/
test_control_flow_compare.pyEvaluation
We evaluate both hypotheses:
1) (structural safety): If compound tools do not reduce first-attempt
validate()errors vs. raw-XML + Craig Loop, that means determinism of MCP can't meaningfully abstract the construction of a shortcut. Test istests/test_control_flow_compare.py— same shortcut both ways, nontrivial nesting (If inside Repeat,Otherwise If, Menu 3 cases), counted errors on first attempt.2) (context reduction): If on-demand tools do not reduce per-turn context vs. full-catalog-in-context, that's also an indication the MCP isn't useful. Test is tokens per turn (not total turns): a
search_actions("Show Result") → showresult(1–2 ids, <1k tokens) vs. pasting 2,731 v78 ids +CONTROL_FLOW.md:327table + golden XML in context (5–10k), and the fact that{{Name}}+resource://examples/greeter.mdtool-call flows replaceOutputUUIDjuggling + 19 XML pastes. Total turns increase slightly (search+get_schema+add_*+validate), but per-turn context and repair-loop re-feeds shrink; we report both.
Credits
This project builds directly on the work of two prior open-source efforts:
viticci/shortcuts-playground-plugin - the Claude Code / Codex plugin that pioneered generating valid, signed
.shortcutfiles from natural language. This repo reuses itsskills/shortcuts-playground/action catalog (verified ToolKit v63/v78 identifiers, parameter-key and enum schemas, trigger metadata) and itsbin/validate-shortcut/bin/sign-shortcutwrappers, avoids re-deriving/engineering the schema from scratch. The plugin's Craig Loop (post-hoc validate-and-repair) is the baseline this MCP's compound-tool hypothesis is tested against.drewocarr/generate-shortcuts-skill a Claude Code skill that documents the Shortcuts plist format (
SKILL.md,ACTIONS.md,CONTROL_FLOW.md,VARIABLES.md, etc., 427 WF* + 728 AppIntents). ItsSKILL.md+ 7-MD pattern is the direct inspiration for this repo'sresources/packaging (seedocs/SKILL_RESOURCES.md), where examples are exposed as read-onlyresource://MD showing how to call tools rather than the exact XML to emit.
This server cannot be installed
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
Generate a typed SDK, CLI, and MCP server from any OpenAPI or GraphQL spec, and keep them current.
Render, verify, describe, and safely edit Mermaid diagrams through MCP.
Create App Store screenshots, icons, ASO copy, localization, and revisions via hosted MCP.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP Server Integration with Apple Shortcuts21,791344Apache 2.0
- FlicenseNot gradedqualityNot gradedmaintenanceEnables the generation, management, and validation of Apple Shortcuts (.shortcut files) by providing tools to search actions and build control flow blocks. It allows users to programmatically create and analyze shortcut structures for deployment on iOS and macOS devices.
- AlicenseAqualityCmaintenanceConnects LLMs to your macOS Shortcuts library, enabling interactive workflows, discovery, and management through AppleScript and CLI integration.311MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create, duplicate, list, and run Apple Shortcuts using Cherri code via the Model Context Protocol.1MIT
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/shreeyachand/shortcuts-playground-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server