A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
MCP server for Apple Calendar, Mail, and Reminders on macOS using native EventKit and ScriptingBridge

MCP server for Apple Calendar, Mail, Reminders, and Files on macOS using native frameworks.
Gives any MCP-compatible client (Warp, Claude Desktop, Claude Code, Cursor) structured access to your local Apple Calendar, Apple Mail, Apple Reminders, and filesystem through native macOS frameworks. No cloud dependencies, no OAuth setup -- all data stays local.
orchard-mcp reads from the local macOS data stores (EventKit for Calendar/Reminders, AppleScript for Mail) which are already populated by accounts configured in System Settings > Internet Accounts. The OS handles all authentication with Google, Microsoft, iCloud, etc. natively. orchard-mcp never communicates with any remote service and requires no OAuth client IDs, redirect URIs, or token management.
Privacy note: orchard-mcp itself sends no data anywhere. However, the MCP client (e.g. Claude, Cursor) that invokes tools will receive the returned data (calendar events, emails, reminders, file contents) and send it to its LLM provider as part of the conversation context. Be mindful of what you ask the LLM to access.
The only permissions needed are macOS TCC grants (e.g. "Allow access to Calendars"), triggered automatically on first run.
See docs/PRD.md for the full roadmap.
npm install -g @l22-io/orchard-mcp
orchard-mcp setup
If Xcode Command Line Tools are installed (xcode-select --install), postinstall builds
apple-bridge from source — the strongest install-time guarantee. Otherwise the package
falls back to the shipped prebuilt universal binary (arm64 + x86_64) and verifies its
SHA-256 against the manifest published inside the tarball.
The setup wizard verifies prerequisites, triggers macOS permission prompts, and generates MCP client configuration.
See CONTRIBUTING.md for building from source.
Add as an MCP server in Warp settings with:
{"command": "npx", "args": ["@l22-io/orchard-mcp"]}
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"orchard": {
"command": "npx",
"args": ["@l22-io/orchard-mcp"]
}
}
}
claude mcp add --scope user orchard -- npx @l22-io/orchard-mcp
Add to your MCP settings:
{"command": "npx", "args": ["@l22-io/orchard-mcp"]}
calendar.list_calendars -- List all calendars with account, type, colorcalendar.list_events -- Events in a date range (recurring events expanded)calendar.today -- Today's events across all calendarscalendar.search -- Search events by title/notes/locationmail.list_accounts -- List all mail accounts with mailboxes (including nested) and unread countsmail.unread_summary -- Unread count per account with recent message headersmail.search -- Search messages by subject, sender, body, or all fields. Supports cross-mailbox (mailbox: "all") and cross-account (account: "all") search with paginationmail.read_message -- Get message content by ID with configurable body truncation (default: 4000 chars)mail.flagged -- List flagged messages across all accounts with paginationmail.create_draft -- Create a draft email (opens compose window for review)mail.save_attachment -- Save an email attachment to disk by message ID and indexreminders.list_lists -- List all reminder lists with account, color, item countreminders.list_reminders -- Reminders from a list with filters (incomplete, completed, overdue, dueToday)reminders.today -- Incomplete reminders due today + overdue across all listsreminders.create_list -- Create a new reminder listreminders.create_reminder -- Create a reminder with optional due date, priority, notesreminders.complete_reminder -- Mark a reminder as completedreminders.delete_reminder -- Delete a reminderreminders.delete_list -- Delete a reminder listfiles.list -- List directory contents with metadatafiles.info -- Get detailed file metadata including Spotlight attributesfiles.search -- Search files using macOS Spotlightfiles.read -- Read/extract text from files (plain text, PDF, images via OCR, .docx/.rtf/.pages)files.move -- Move or rename files and folders (supports batch operations)files.copy -- Copy a file or folderfiles.create_folder -- Create a new directoryfiles.trash -- Move a file or folder to Trash (reversible)system.doctor -- Check permissions, list accessible accountsTwo-layer design:
src/) -- handles MCP protocol via stdio, Zod schemas, tool routingswift/) -- native binary (apple-bridge) using EventKit for Calendar/Reminders, AppleScript for MailThe TypeScript layer calls the Swift binary via child_process.execFile and parses
JSON responses. All subcommands return a {"status": "ok"|"error", "data": ..., "error": ...} envelope.
apple-bridge calendars List all calendars
apple-bridge events Events in a date range (--start, --end, --calendar)
apple-bridge search Search events by text (--start, --end)
apple-bridge reminder-lists List all reminder lists
apple-bridge reminders Reminders with filters (--list, --filter, --limit)
apple-bridge reminders-today Due today + overdue reminders
apple-bridge reminder-create-list Create a new reminder list (--name)
apple-bridge reminder-create Create a reminder (--list, --title, --due, --priority, --notes)
apple-bridge reminder-complete Mark a reminder as completed (--id)
apple-bridge reminder-delete Delete a reminder (--id)
apple-bridge reminder-delete-list Delete a reminder list (--id, --force)
apple-bridge mail-accounts List mail accounts and mailboxes
apple-bridge mail-unread Unread summary per account (--limit)
apple-bridge mail-search Search messages (--query, --account, --mailbox, --limit, --search-in, --offset)
apple-bridge mail-message Full message content (--id, --max-body-length)
apple-bridge mail-flagged Flagged messages (--limit, --offset)
apple-bridge mail-create-draft Create a draft email (--to, --subject, --body, --cc, --bcc, --account)
apple-bridge doctor Check permissions and accessible resources
APPLE_BRIDGE_BIN -- Override path to the Swift binaryMIT
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba
MCP server integration for DaVinci Resolve Studio
Run Claude Code as an MCP server so any agent can delegate coding tasks to it