Action Relay - Automatically generate MCP tools to control any macOS application
One of the things I've always loved about macOS is how friendly it is to automation. Back in the day, I was a serious user of tools like Keyboard Maestro and AppleScript to automate my workflows. These days most new apps favor Shortcuts / AppIntents but the core capability remains: a generally supported way for applications to expose methods and data.
When Apple Intelligence was announced, I waited with bated breath for it to take advantage of this ecosystem. It even looks like it's on the roadmap!.
But I'm impatient and I'm trying out Claude's Max plan, so with tokens to burn I set out to make this dream a reality.
Introducing Action Relay
Shortcut ActionsMany apps publish actions for use in shortcuts
UTM ActionsUTM actions available in shortcuts
UTM ToolsIntents are converted to MCP tools
NotesApple Notes Actions
Creating a noteClaude uses Action Relay to create a note in Notes.app
Adding a tableModifying existing notes
Action Relay is a proof-of-concept MCP server for macOS. Point it at any app that ships App Intents and it discovers every intent, generates MCP tool schemas, and lets you execute them — all through the same XPC pipeline that Shortcuts.app uses internally.
Existing MCP servers in this space either wrap the shortcuts CLI (requiring pre-created Shortcuts for each action) or use AppleScript/JXA (hand-coded per app). Action Relay uses private framework APIs to generate workflows on the fly and run them directly — no setup, no per-app code.
Point it at Notes — you get 47 tools. UTM — 9 tools. Any app with App Intents works.
How it works
~600 lines of Swift across six files.
Discovery is the easy part. Every app that adopts App Intents ships a machine-readable JSON schema inside its bundle at a predictable path:
/Applications/SomeApp.app/Contents/Resources/Metadata.appintents/extract.actionsdata
This is the same metadata that powers Shortcuts.app’s action picker, Spotlight integration, and Siri. Action Relay parses this into MCP tool definitions automatically.
Execution is where it gets interesting. To actually run an intent from outside the app, Action Relay constructs a workflow plist in memory and sends it to BackgroundShortcutRunner, the XPC service embedded in WorkflowKit.framework. It’s the same service that Shortcuts.app and the shortcuts CLI use to run workflows.
Sending raw workflow data requires com.apple.shortcuts.background-running — an Apple-private entitlement that AMFI (Apple Mobile File Integrity) enforces. Non-Apple-signed binaries that claim it get killed. This means SIP and AMFI need to be disabled, which makes Action Relay a research and power-user tool rather than something you’d ship to end users. I would not recommend using it on a machine you care about.
Final thoughts
Apple’s native MCP support in App Intents will (hopefully) make this project unnecessary. The point was never to build a permanent solution. The project itself is proof-of-concept quality — check out the source if you want to poke around or build on it.
There are a few rough edges: entity resolution doesn’t work yet (actions on existing items prompt for selection instead of looking them up), “find”/search-type intents aren’t supported, and output format selection needs work.
Honestly, I think MCP tools are not the ideal way to integrate the App Intents system with agents. There are just too many tools and it’s hard to compose them. A scripting environment with access to the intents is where this gets powerful — using shortcut-generating libraries like Shortcuts-js or Cherri, similar to the idea behind Cloudflare’s Code Mode.
Basically, we need the AppleScript of Shortcuts/App Intents. A scripting environment also solves the ergonomics of dealing with entity resolution and the rich output types of intent actions much more elegantly. If I do work on this more, I’d be inclined to explore that direction instead.
Acknowledgements and References
- jfred planted the seed of these ideas many years ago with our long conversations about Lisps/SmallTalk and other such nerdy things
- WorkflowKit.framework — The Apple Wiki's documentation on the private framework that powers Shortcuts
- Shortcuts File Format — 0xilis's reverse engineering of the
.shortcutplist format - Model Context Protocol — The MCP spec that Action Relay implements
- App Intents — Apple's official App Intents documentation
- macOS Tahoe 26.1 MCP integration — Apple's upcoming native MCP support in App Intents