Shortcut Forge (Apple Shortcuts MCP)

io.github.Hyunki6040由 GitHub 账号 Hyunki6040 发布v0.2.1更新于 Oct 24, 2026

Apple Shortcuts MCP: build, lint and sign iOS Shortcuts (.shortcut) from Claude, Codex or any LLM.

已验证STDIO仅桌面效率与工作流开发者工具

概览

AI 生成的概览

本地 MCP 服务器,把自然语言描述的自动化需求转成经过检查并签名的 Apple 快捷指令 .shortcut 文件,供 iPhone 导入。

可以做什么
  • 根据 JSON 规格构建快捷指令,始终执行检查,在 macOS 上自动签名
  • 浏览并获取 20 多个社区快捷指令,或从 supplement-tracker、water-log 等模板起步
  • 用 15 条语义规则检查任意未签名快捷指令,并以缩进大纲形式查看其结构
  • 签名快捷指令、带 manifest 发布以支持自我更新,并打包提交到快捷指令库
  • 获取规格、常见陷阱、检查规则、健康类型与 iOS 27 的参考资料,以及供无 MCP 的聊天机器人使用的提示词
适用场景
适合希望用自己常用的 AI 直接生成可导入的完整 iOS 快捷指令,而不是逐步手动操作,或需要排查导出的快捷指令为何在设备上失败的情况。构建与检查可在任意平台进行,签名需要 Mac。
运行要求
以 Python 包形式通过 uvx 本地运行(也可用 uv tool install 或 pipx)。签名需要 macOS 及 Apple 的 shortcuts sign 命令;构建与检查可在任意平台运行。可选环境变量 SHORTCUT_FORGE_OUT 指定生成文件的输出目录。未声明任何认证。
安装前请注意
生成的快捷指令会写入磁盘,并在 macOS 上被签名;监视文件夹代理可对放入 iCloud Drive 的文件自动签名。发布与提交工具会准备 manifest 和拉取请求命令以进入公开库,分享前请先审阅内容。使用 remote_config 的库内快捷指令会请求其指定的 JSON 地址,这是说明中唯一的外发数据流。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Shortcut Forge (Apple Shortcuts MCP),将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[shortcut-forge: Apple Shortcuts MCP server. Say it, the AI builds it, your iPhone runs it.]

shortcut-forge: the Apple Shortcuts MCP server that ships shortcuts that actually run

Describe an automation to Claude, Codex or ChatGPT → get a signed .shortcut file → tap it on your iPhone.
Apple Shortcuts MCP · iOS Shortcuts generator · Siri Shortcuts for AI agents · iOS 27 aware · macOS auto-signing · open shortcut library

English · 한국어 · 日本語 · 简体中文

[tests] [PyPI] [iOS 27] [MCP server] [Claude, Codex, ChatGPT] [library] [MIT]

[Demo: shortcut-forge builds, lints and signs an Apple Shortcut on a Mac, then it opens in the Shortcuts app]


The problem (you've probably said one of these)

"I asked ChatGPT for a shortcut and got fourteen steps to tap in by hand."

"The file imported fine. Then: 'Choose a value for each parameter of this action.'"

"iOS 27 can build a shortcut from a description, but only on my iPhone 15 Pro, one shortcut at a time, and I can't review or version what it changed."

"Every MCP server I found for Shortcuts only runs shortcuts I already have."

"Every time I fix the family shortcut, everyone has to download it again."

Apple Shortcuts is the most powerful automation layer on the iPhone, and still the hardest thing to get an AI to produce. The file format is undocumented, a structurally valid plist can still break on the device, and nothing catches the difference until you're staring at an error on your phone.

The fix

shortcut-forge is an MCP server, a Claude plugin and a Python library that turns "make me a shortcut that…" into a signed .shortcut file that has been checked against the ways shortcuts really fail on iPhone.

text
You:     "Every time I take my vitamins, log them to Apple Health, tick off today's reminder          and set up tomorrow's, but never create duplicates."Claude:  → shortcut_library("supplements") → shortcut_from_template("supplement-tracker", …)         ✓ 750 actions · 0 lint errors · signed on your Mac         → ~/Downloads/shortcut-forge/Supplement Check.shortcut   (AirDrop / iCloud Drive → tap → Add)
Apple "Describe a Shortcut" (iOS 27)Asking a chatbotOther Shortcuts MCPsshortcut-forge
Works from Claude, Codex, ChatGPT, Cursor…–✓some✓
No new iPhone requiredneeds iPhone 15 Pro+ / Apple silicon✓✓✓
Output you can read, diff, version, review–textvariesJSON spec + plist
Checked against real on-device failuresn/a (native)–structure only15 semantic rules
Signed and importable on iPhone✓ (native)–rarely✓ auto on macOS
Updates without re-downloading–––remote config + update check
Shared, remixable library–––✓ 20+ entries

Apple's built-in builder is great for quick personal one-liners and lives right in the app; use it. Reach for shortcut-forge when you want an AI you already use to build something bigger, reviewable and shareable.

Install

Claude Code (plugin = MCP server + skill + /shortcut command)

bash
/plugin marketplace add Hyunki6040/shortcut-forge/plugin install shortcut-forge@shortcut-forge

Claude Desktop: double-click shortcut-forge.mcpb from Releases, or:

json
{ "mcpServers": { "shortcut-forge": { "command": "uvx", "args": ["shortcut-forge", "mcp"] } } }

OpenAI Codex

bash
codex mcp add shortcut-forge -- uvx shortcut-forge mcp

ChatGPT, Gemini, any chatbot: connect over HTTP (shortcut-forge mcp --http) or, with no MCP at all, paste prompts/LLM_PROMPT.md and drop the JSON it writes into the Mac watch folder (below). Cursor, VS Code, Windsurf, Gemini CLI: see docs/CLIENTS.md.

Python / CLI

bash
uv tool install shortcut-forge        # or: pipx install shortcut-forgeshortcut-forge template supplement-tracker --sign

Mac auto-signing: drop a spec, get a shortcut

iOS only imports signed shortcuts, and only a Mac can sign them. shortcut-forge makes that invisible:

bash
shortcut-forge mac install-agent      # launchd agent, starts at login
iCloud Drive/Shortcut Forge/          ← drop *.json specs or *.unsigned.shortcut (from any device or AI)iCloud Drive/Shortcut Forge/Signed/   ← signed .shortcut appears in seconds → open it on your iPhoneiCloud Drive/Shortcut Forge/Failed/   ← anything that failed lint, with a .log explaining why

Ask ChatGPT on your phone for a spec, save it to Files, and the shortcut is ready on the same phone before you finish your coffee. In Claude Desktop / Claude Code on a Mac, signing happens inside the tool call.

What people build with it

From the Open Shortcut Library. Every one is a readable spec, lint-clean in CI.

ShortcutWhat it does
🌤Morning BriefYour messy thoughts → a 3-line plan by Apple Intelligence → a reminder
🎯Focus BlockBlocks 25/50/90 min on your calendar from right now
✅Meeting → Action ItemsNotes in, reminders out, summary on the clipboard
🌐Clipboard TranslateTranslate whatever you copied, result back on the clipboard
☕️Caffeine LogOne tap → Apple Health, warns past 400 mg
💸Expense LogAmount + category → CSV in Stored Content → paste into your sheet
🅿️Parking SpotSave where you parked, open it in Maps later
📡Webhook TriggerPOST JSON to n8n / Zapier / Home Assistant
🐙GitHub IssueFile an issue from your phone
🍱Lunch PickerReads options from a JSON URL: edit once, every phone updates, no reinstall
💊영양제 체크 (the original)The real 1,073-action shortcut that started this project. Two people, ten time slots, alternate-day doses, Health + Reminders + Apple Intelligence

…and more: mood journal, sleep diary, grocery list, weather voice brief, low-battery nudge, water log.

Built something? Share it → Tell your AI "submit this to the shortcut-forge library".

Use it

Plain language in any MCP client:

  • "Make a shortcut that asks how I slept and every Sunday has Apple Intelligence summarise the week."
  • "Start from the library's expense log, but in won and with my categories."
  • "Here's my exported shortcut. Why does it crash?" → shortcut_lint + shortcut_inspect

Python: variables work in f-strings.

python
from shortcut_forge import Shortcut
sc = Shortcut("Hello", version="1.0.0")name = sc.ask("What's your name?")with sc.if_(name, "contains", "Claude") as br:    sc.notify("Hi twin", f"Nice to meet another Claude, {name}")    br.otherwise()    sc.notify("Hi", f"Welcome, {name}")sc.storage_set("last_name", name)       # iOS 27 Stored Content, done rightsc.health_log("Vitamin D", "50")        # mcg → mg handled for yousc.save("Hello.unsigned.shortcut")

JSON (what the MCP tools and chatbots write): 50+ step types, plus a raw escape hatch for any action.

json
{"name": "Hello", "version": "1.0.0", "actions": [  {"ask": "What's your name?", "as": "name"},  {"if": ["{{name}}", "contains", "Claude"],   "then": [{"notify": "Hi twin", "body": "{{name}}"}],   "else": [{"notify": "Hi", "body": "Welcome, {{name}}"}]}]}

MCP tools

ToolWhat it does
shortcut_buildJSON spec → .shortcut, always linted, signed on macOS
shortcut_libraryBrowse / fetch 20+ community shortcuts as starting points
shortcut_from_templatesupplement-tracker (multi-user), water-log
shortcut_lint15 rules (SF000–SF014) for any unsigned shortcut, including ones exported from the app
shortcut_inspectIndented outline of a shortcut
shortcut_signshortcuts sign wrapper, verifies the AEA1 header
shortcut_publishSign + manifest.json so installed copies can update themselves
shortcut_submitPackage your shortcut + PR commands for the library
shortcut_llm_promptSystem prompt for chatbots without MCP
shortcut_referencespec · pitfalls · lint-rules · health-types · templates · library · ios27

Field notes: why "it imported" isn't "it works"

We built a two-person tracker by having Claude generate the plist. It took more than a dozen import → run → screenshot rounds. Every failure was invisible at build time:

What we wroteWhat the iPhone didRule
Stored Content set from a variableSaved nothing, no errorSF001
Health sample "77.4 mcg" of B12Logged 77,400,000 mcg (the unit string is read as grams)SF003
If <dictionary value> is "Lunch"Comparison field empty → run abortedSF005
Delete a stored key that isn't thereError 16SF002
Mark found reminders as doneA picker popped up mid-runSF007
Get Contents of URL on every runOffline once → whole shortcut abortsSF014
Create tomorrow's reminderDuplicates on every runbuilder

The builder can't produce these; the linter catches them in any shortcut. Full notes: PITFALLS.md.

What is a .shortcut file?

  • A .shortcut file (not .short or .shortcuts) is an Apple Shortcuts workflow: a binary property list (WFWorkflowActions, WFWorkflowIcon, …) where every action is an identifier like is.workflow.actions.gettext plus parameters. Variables are "token strings" with UTF-16 offsets.
  • Since iOS 15, shared shortcut files must be signed. A signed file is an Apple Encrypted Archive whose first bytes are AEA1. Unsigned plists import on a Mac but iOS refuses them.
  • Signing modes: anyone (any device can import) or people-who-know-me (contacts only). Only macOS can sign (shortcuts sign), which is why shortcut-forge automates the Mac side.
  • .wflow was the format of the old Workflow app that became Shortcuts; iCloud links (icloud.com/shortcuts/…) are snapshots created from the app and can't be generated or updated programmatically.

FAQ

Do I need a Mac? To sign, yes (Apple's rule). Building and linting run anywhere; the watch-folder agent lets one Mac sign for every device you own. Does my data leave my machine? No. The server runs locally; nothing is uploaded. Library shortcuts that use remote_config fetch only the JSON URL they name. Is this affiliated with Apple or Anthropic? No. It is an independent open-source project. iOS 26 or older? Most actions work; Stored Content needs iOS 27 and Use Model needs Apple Intelligence (the linter flags these as SF013).

Roadmap: the update problem (help wanted)

Today every shortcut fix means re-sign → re-share → everyone re-downloads and taps "Replace". v0.2 ships the first answers (remote_config for data, update_check + publish for code, a signing watch folder). Next is a Shortcut Hub: one-command publish to GitHub, a stable install URL that always serves the latest version, settings that survive updates, a signing relay for teams, and an experimental loader pattern. Read ROADMAP.md and pick something. Device reports from real iPhones are the most valuable contribution of all.

Contributing

  • Share a shortcut → LIBRARY.md
  • Found a new way shortcuts break? Open a pitfall issue with the error screenshot and the smallest spec; it becomes a lint rule and a builder fix.
  • Code → CONTRIBUTING.md · agents read AGENTS.md

MIT licensed. Not affiliated with Apple Inc. or Anthropic. "Shortcuts" and "Siri" are trademarks of Apple Inc.

If shortcut-forge saved you a round of error screenshots, a ⭐ helps the next person find it.

Keywords: Apple Shortcuts MCP, iOS Shortcuts MCP server, Siri Shortcuts AI generator, create .shortcut file programmatically, sign shortcut macOS CLI, Claude Shortcuts, Codex Shortcuts, ChatGPT Shortcuts, iOS 27 Shortcuts Stored Content, Apple Health shortcut, shortcut library.

来源:README.md,提交 530384a

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.1最新Oct 14, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分