Apple Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Apple Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Apple 原生应用的 MCP 服务器——让 LLM 通过统一接口操作 Contacts、Notes、Messages、Mail、Reminders、Calendar、Maps。
This is a maintained fork of the original dhravya/apple-mcp, refactored for clarity and continued maintenance. See Differences from upstream below.
| Tool | Operations |
|---|---|
| contacts | Search/list contacts by name, lookup phone numbers |
| notes | Search / list / create notes (with folder support) |
| messages | Send, read, schedule iMessages; check unread |
| Read unread, search, send (with CC/BCC), list mailboxes/accounts | |
| reminders | List / search / open / create reminders (per-list scoping) |
| calendar | List / search / open / create events (across calendars) |
| maps | Search locations, save favorites, get directions, manage guides, drop pins |
Built on AppleScript / JXA under the hood; uses SQLite directly for Messages where appropriate.
Requirement: macOS only. Tools that need Apple app access (Contacts, Calendar, Reminders, Mail, etc.) will require granting Automation permission to your terminal / MCP host on first use. See Permissions below.
# 1. Get bun (skip if installed)
brew install oven-sh/bun/bun
# 2. Clone and build
git clone https://github.com/yfysnp/apple-mcp.git
cd apple-mcp
bun install
bun run build # produces dist/index.jsThen add this entry to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"apple-mcp": {
"command": "node",
"args": ["/absolute/path/to/apple-mcp/dist/index.js"]
}
}
}把/absolute/path/to/apple-mcp换成你 clone 出来的实际绝对路径(pwd看一眼)。
For Cursor or other MCP hosts, point them at the same node dist/index.js command.
Restart your MCP host. The 7 tools should be available.
Releases ship a pre-built dist/index.js so you don't need bun/node toolchain to use it (Node 18+ runtime still required).
apple-mcp-<version>.tar.gz. mkdir -p ~/.local/share/apple-mcp
tar -xzf apple-mcp-1.0.0.tar.gz -C ~/.local/share/apple-mcp --strip-components=1 {
"mcpServers": {
"apple-mcp": {
"command": "node",
"args": ["/Users/you/.local/share/apple-mcp/dist/index.js"]
}
}
}On first use of each tool, macOS will prompt for permission to control the corresponding app. If you accidentally deny, re-grant via:
System Settings → Privacy & Security → Automation → [your MCP host app] → enable [Contacts / Calendar / Mail / ...]
The MCP host (Claude Desktop, Cursor, etc.) is what asks macOS — not this binary. So make sure you're granting permission to the host process, not to node.
For Messages specifically, you also need Full Disk Access for the MCP host (Messages reads the SQLite db at ~/Library/Messages/chat.db).
bun install
bun run dev # runs index.ts directly via bun
bun run build # produces minified dist/index.js
bun run test # runs integration tests (requires Apple apps available)Architecture:
index.ts — entry point, eager/lazy module loading, dispatch maphandlers/<tool>.ts — one file per MCP tool (contacts, notes, messages, mail, reminders, calendar, maps)handlers/_shared.ts — ToolResponse / LoadModule types + response helpersutils/<tool>.ts — actual AppleScript / JXA implementationstools.ts — MCP tool schemasSee docs/superpowers/plans/ for design history.
Send a message to mom saying I'll be late for dinnerFind all my AI research notes and email them to [email protected]Create a reminder to call the dentist tomorrow at 2pmShow my calendar for next week and create an event for coffee with Alex on FridayFind the nearest pizza place and save it to my favoritesThis fork at yfysnp/apple-mcp makes the following changes vs. dhravya/apple-mcp:
handlers/.textResponse, accessAwareError) and shared types (ToolResponse, LoadModule).tools.ts or manifest.json).Error with X operation: ...).The upstream repo appears unmaintained. We track upstream as the upstream remote and may pull selective improvements.
Bump version in package.json + manifest.json, then tag and push:
git tag v1.0.1
git push origin v1.0.1The workflow (.github/workflows/release.yml) will build dist/index.js, smoke-test it, and create a GitHub Release with apple-mcp-<version>.tar.gz attached.
MIT — see LICENSE.
Original work © Dhravya Shah / Supermemory team. Fork maintained by @yfysnp.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.