MCP server that discovers and executes App Intents from any installed macOS application
{
"mcpServers": {
"action-relay": {
"command": "<see-readme>",
"args": []
}
}
}No install config available. Check the server's README for setup instructions.
Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
MCP server that discovers and executes App Intents from any installed macOS application
Is it safe?
No package registry to scan.
No authentication — any process on your machine can connect.
License not specified.
Is it maintained?
Last commit 1 days ago. 2 stars.
Will it work with my client?
Transport: stdio. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
No automated test available for this server. Check the GitHub README for setup instructions.
No known vulnerabilities.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationHave you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Persistent memory using a knowledge graph
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
Pre-build reality check. Scans GitHub, HN, npm, PyPI, Product Hunt — returns 0-100 signal.
Monitor browser logs directly from Cursor and other MCP compatible IDEs.
MCP Security Weekly
Get CVE alerts and security updates for Action Relay and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
MCP server that exposes macOS App Intents as tools. Point it at any app that ships App Intents and it'll discover every intent, parse parameter schemas, and let you call them from any MCP client.
No pre-created Shortcuts required. No hand-coded actions per app. It reads the intent metadata that Apple's toolchain bakes into every .app bundle and generates the tool definitions automatically.
Metadata.appintents/extract.actionsdata inside the app bundle and parses the JSON into typed intent/parameter metadataBackgroundShortcutRunner.xpc over XPC, the same pipeline that Shortcuts.app uses internallycom.apple.shortcuts.background-running entitlement (the build script handles this automatically)./build.sh
This runs swift build and signs the binary with the right entitlements if AMFI is disabled.
action-relay Notes --list
action-relay UTM --list
action-relay /path/to/SomeApp.app --list
Accepts an app name (searched in /Applications and /System/Applications), a bundle ID, or a direct path.
action-relay Notes
Starts a stdio MCP server exposing every discovered intent as a tool.
claude mcp add my-notes-tools -- /path/to/action-relay Notes
Then restart Claude Code. The tools show up automatically.
$ action-relay UTM --list
[
{
"name": "UTMStartActionIntent",
"description": "Start Virtual Machine — Start a virtual machine.",
"inputSchema": {
"type": "object",
"properties": {
"vmEntity": { "type": "string" },
"isRecovery": { "type": "boolean" },
"isDisposible": { "type": "boolean" }
},
"required": ["vmEntity", "isRecovery", "isDisposible"]
}
},
...
]
Notes gives you 47 tools. UTM gives you 9. Any app with App Intents works.
IntentFile) are passed as path strings — the actual encoding may need more work for some appsPackage.swift
Sources/action-relay/
ActionRelay.swift # CLI entry + MCP server
Discovery.swift # extract.actionsdata parser
SchemaGenerator.swift # metadata → MCP tools
WorkflowBuilder.swift # workflow plist builder
IntentExecutor.swift # async XPC client
OutputExtractor.swift # NSKeyedArchiver → MCP content
build.sh # build + sign
example-app/ # test app with HelloWorldIntent + GreetIntent
research/ # reverse engineering notes, Frida scripts, prototypes