Read your Mac's Calendar, Reminders, Notes, Contacts and more via Shortcuts. Read-only, local.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
One-click editor setup isnโt available for this listing yet โ we donโt have a confirmed install command, and weโd rather show nothing than point your editor at the wrong package or host. Follow the projectโs own setup instructions, linked above.
Let any AI agent read your Mac. Calendar, Reminders, Notes, Contacts, Clipboard, Location, Weather, now playing โ through Apple Shortcuts. Read-only, local, no account, no server.
Works with Claude Code, Claude Desktop, Cursor, Codex, or any MCP client.
Then ask your agent: "What's on my calendar this week?" ยท "Find the note about the lease." ยท "What's Jane's number?"
Your agent cannot read Apple's first-party apps. It has no permission to, and there is no API.
Shortcuts can. This server hands the job to Shortcuts.app, which does have those permissions, and gives you back the text.
That is the whole trick. Nothing here is clever โ it is just wired up.
| Tool | Reads |
|---|---|
mac_calendar | Events in the next N days |
mac_reminders | Reminders, optionally one list |
mac_notes | Notes matching a search, with body text |
mac_contacts | Contacts by name |
mac_clipboard | Current clipboard |
mac_location | Address and coordinates |
mac_weather | Weather where this Mac is |
mac_device | Machine name and battery |
mac_now_playing | Currently playing track |
mac_shortcuts_list | Every shortcut on this Mac |
mac_run_shortcut | Run a shortcut you made, by name |
mac_action_catalog | Search the Shortcuts action catalog โ see below |
mac_setup / mac_status | Install the read recipes, check what's ready |
The bundled recipes are read-only. mac_run_shortcut can run any installed Shortcut, including one that writes data or sends messages. Its description asks the agent to check with you when the behavior is unknown; this is not an enforced read-only sandbox.
Everything read from your Mac comes back tagged as data, not instructions, so a note that says "ignore your previous instructions" is handed to the agent as text rather than as a command.
action-catalog.json in this package documents 539 Shortcuts actions โ for each one, the parameter keys it accepts, their types, labels, output type and required permissions.
Apple does not publish this. It was extracted from the live WFActionRegistry on macOS 27.
It matters because a wrong parameter key does not raise an error โ it is silently ignored, and your shortcut returns a confident wrong answer. We measured exactly that: a composed shortcut with a plausible-but-wrong key returned 0 instead of 3, with no warning.
Use mac_action_catalog to look up a key, or just read the JSON. MIT, take it.
Coverage: 497 harvested from the registry, 9 inferred from cached definition strings, 33 not present on macOS (iOS-only actions, plus a few strings that are not actions at all โ including one Apple typo).
mac-shortcuts-mcp setup signs the bundled recipes on your Mac and opens each in the Shortcuts app. You click Add Shortcut once per recipe.
The package ships readable XML plists, not signed binaries. Open recipes/*.plist and see exactly what you are installing. An open-source tool that asks you to install opaque blobs is not really open.
Pass --auto and it will click Add Shortcut for you using the Accessibility API. That needs Accessibility permission, so it is off by default โ a tool should not quietly ask for that.
The first time a recipe touches Contacts or Calendar, macOS asks for permission. That prompt belongs to Shortcuts, not to this server.
This does nothing while your Mac is asleep. Processes are stopped; there is nothing to talk to. Screen lock is fine โ we measured 62 of 63 calls succeeding with the screen locked, at the same speed as unlocked. Sleep is the real wall.
The bundled recipes read data; arbitrary installed Shortcuts may have side effects. macOS only. Results go to the agent you connected.
A Mac in a bag cannot answer. A phone in your pocket can.
Askew does the same thing for a locked iPhone โ your agent runs a Shortcut on the phone and gets the result back in about three seconds, screen off, phone in your pocket. That one is not free, and it is a different problem: it needs a push relay, end-to-end encryption and an app. This tool is the part that does not.
MIT. Issues and pull requests welcome.
์์ด์ ํธ๊ฐ ๋ด ๋งฅ์ ์ฝ๊ฒ ํด ์ค๋๋ค. ์ผ์ ยท๋ฏธ๋ฆฌ ์๋ฆผยท๋ฉ๋ชจยท์ฐ๋ฝ์ฒยทํด๋ฆฝ๋ณด๋ยท์์นยท๋ ์จ๋ฅผ ์ ํ ๋จ์ถ์ด๋ก ์ฝ์ต๋๋ค. ์ฝ๊ธฐ ์ ์ฉ, ๋ก์ปฌ, ๊ณ์ ์์, ์๋ฒ ์์.
์์ด์ ํธ๊ฐ ํผ์คํธํํฐ ์ฑ์ ๋ชป ์ฝ๋ ๊ฑด ๊ถํ์ด ์์ด์๊ณ API๋ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๋จ์ถ์ด๋ ์ฝ์ ์ ์์ต๋๋ค. ์ด ์๋ฒ๋ ์ผ์ Shortcuts.app์ ๋๊ธฐ๊ณ ๊ฒฐ๊ณผ ํ
์คํธ๋ง ๋ฐ์ ์ต๋๋ค.
๊ธฐ๋ณธ ๋ ์ํผ๋ ์ฝ๊ธฐ ์ ์ฉ์
๋๋ค. ๋ค๋ง mac_run_shortcut์ ์ฐ๊ธฐยท๋ฉ์์ง ๋ฐ์ก์ ํฌํจํ ์ค์น๋ ๋จ์ถ์ด๋ ์คํํ ์ ์์ต๋๋ค. ๋์์ ๋ชจ๋ฅด๋ฉด ์ฌ์ฉ์์๊ฒ ๋จผ์ ๋ฌป๋๋ก ์๋ดํ์ง๋ง, ์ฝ๊ธฐ ์ ์ฉ์ ๊ฐ์ ํ๋ ๊ฒฉ๋ฆฌ ํ๊ฒฝ์ ์๋๋๋ค. ๋งฅ์์ ์ฝ์ด ์จ ๋ด์ฉ์ ์ ๋ถ ์ง์๊ฐ ์๋๋ผ ์๋ฃ๋ผ๋ ๊ผฌ๋ฆฌํ๋ฅผ ๋ฌ๊ณ ๊ฐ๋๋ค.
๋์ ์นดํ๋ก๊ทธ 539์ข ์ ๊ฐ์ด ๊ณต๊ฐํฉ๋๋ค. ๋์๋ง๋ค ์ด๋ค ๋งค๊ฐ๋ณ์ ํค๋ฅผ ๋ฐ๋์ง, ์ ํ์ด ๋ฌธ์๋ก ๋ด์ง ์๋ ๊ฐ์ ๋๋ค. ํค๊ฐ ํ๋ฆฌ๋ฉด ์ค๋ฅ ์์ด ์กฐ์ฉํ ๋ฌด์๋๊ณ ํ๋ฆฐ ๋ต์ด ์ต๋๋ค โ ์ค์ ๋ก ๊ทธ๋ ๊ฒ ์ฌ ๋ดค์ต๋๋ค. ์คํ์ ๋๊ตฌ๋ ํ ์ ์์ง๋ง ๋ง๋๋ ๊ฑด ์ด ํ๊ฐ ์์ด์ผ ํฉ๋๋ค.
ํ๊ณ: ๋งฅ์ด ์๋ฉด ์๋ฌด๊ฒ๋ ๋ชป ํฉ๋๋ค. ํ๋ฉด ์ ๊ธ์ ๊ด์ฐฎ์ต๋๋ค(์ ๊ทผ ์ฑ๋ก 63ํ ์ค 62ํ ์ฑ๊ณต, ์๋๋ ๊ฐ์). ์๋ ๊ฒ ๋ฒฝ์ ๋๋ค.
์์ง ์๋ ๊ธฐ๊ธฐ๊ฐ ํ์ํ๋ฉด ๊ทธ๊ฑด ํฐ์ ๋๋ค. Askew๊ฐ ์ ๊ธด ์์ดํฐ์ ๊ฐ์ ์ผ์ ํฉ๋๋ค. ํ๋ฉด์ ์ผ์ง ์๊ณ 3์ด์ฏค์ ๊ฒฐ๊ณผ๊ฐ ๋์์ต๋๋ค. ๊ทธ๊ฑด ๋ฌด๋ฃ๊ฐ ์๋๊ณ ๋ค๋ฅธ ๋ฌธ์ ์ ๋๋ค โ ํธ์ ๋ฆด๋ ์ด์ ์ข ๋จ ์ํธํ์ ์ฑ์ด ํ์ํฉ๋๋ค. ์ด ๋๊ตฌ๋ ๊ทธ๊ฒ ํ์ ์๋ ๋ถ๋ถ์ ๋๋ค.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mac-shortcuts-read-your-mac-from-any-agent)<a href="https://allmcps.com/mcp/mac-shortcuts-read-your-mac-from-any-agent"><img src="https://allmcps.com/api/badge/mac-shortcuts-read-your-mac-from-any-agent?style=directory" alt="Mac Shortcuts โ read your Mac from any agent on AllMCPs" /></a>