
How to add Apple Events MCP Server to Cursor
Native macOS integration with Apple Reminders and Calendar via EventKit Paste the config into ~/.cursor/mcp.json and restart Cursor.
Last updated June 14, 2026 · 142★ · stdio · no auth
Cursor config for Apple Events MCP Server
npx -y mcp-server-apple-events{
"mcpServers": {
"apple-events-mcp-server": {
"command": "npx",
"args": [
"-y",
"mcp-server-apple-events"
]
}
}
}Setup steps
- 1Open Cursor → Settings → MCP → Add new MCP server (or edit ~/.cursor/mcp.json directly).
- 2Paste the Apple Events MCP Server config below into the "mcpServers" object.
- 3Fill in placeholder secrets, then save.
- 4Cursor reloads MCP servers automatically — check Settings → MCP for a green status dot.
- 5Ask Cursor to use one of Apple Events MCP Server's tools to confirm it's connected.
Before you start
- Node.js 20 or later
- macOS (required for Apple Reminders/Calendar integration)
- Xcode Command Line Tools (for compiling Swift code)
- pnpm (recommended for package management)
- macOS Reminders and Calendar permissions granted to the launching app
What Apple Events MCP Server can do in Cursor
reminders_tasksManage individual reminder tasks with full CRUD support (actions: read, create, update, delete), including priority, alarms, recurrence rules, start/due/completion dates, location triggers, tags, and subtasks.
reminders_subtasksManage subtasks/checklists within reminders (actions: read, create, update, delete, toggle, reorder). Subtasks are stored in the notes field in a human-readable format visible in the native Reminders app.
reminders_listsManage reminder lists (actions: read, create, update, delete) for organizing reminders.
calendar_eventsHandle EventKit calendar events / time blocks with CRUD capabilities (actions: read, create, update, delete), including alarms, recurrence rules, availability, and span scope for recurring changes.
calendar_calendarsReturn the available calendars from EventKit (action: read) with IDs and titles; optional date-range and account filters return scoped active calendars with event counts.
Security
Requires macOS permissions for Reminders and Calendar (Sonoma 14+/Sequoia 15 separate write-only and full-access scopes). macOS attributes EventKit access to the responsible process that launches the server, so desktop MCP clients (e.g. Claude Desktop, Codex Desktop) may hit permission failures if their bundle is missing the required NSReminders/NSCalendars usage strings. Running from a terminal-based client (Claude Code, Codex CLI) inherits the terminal's grants and is the reliable workaround. No network or API keys involved; all data access is local.
Apple Events MCP Server + Cursor FAQ
Where is the Cursor config file?
Cursor reads MCP servers from ~/.cursor/mcp.json. Paste the Apple Events MCP Server config there under the "mcpServers" key and restart the client.
Is Apple Events MCP Server safe to use with Cursor?
Requires macOS permissions for Reminders and Calendar (Sonoma 14+/Sequoia 15 separate write-only and full-access scopes). macOS attributes EventKit access to the responsible process that launches the server, so desktop MCP clients (e.g. Claude Desktop, Codex Desktop) may hit permission failures if their bundle is missing the required NSReminders/NSCalendars usage strings. Running from a terminal-based client (Claude Code, Codex CLI) inherits the terminal's grants and is the reliable workaround. No network or API keys involved; all data access is local.
Does it work on Windows or Linux?
No. It requires macOS because it integrates directly with Apple Reminders and Calendar through the EventKit framework via a bundled Swift binary.
Why does it fail with a permission error inside some desktop apps?
macOS attributes EventKit access to the responsible process that launches the server. If the desktop client's bundle is missing the NSReminders/NSCalendars usage strings, TCC refuses the request. The reliable workaround is to run the server from a terminal-based client (e.g. Claude Code or Codex CLI), which inherits the terminal's Reminders/Calendar grants.
How do I run it?
You can run it directly with `npx mcp-server-apple-events`, or configure it in your MCP client with command `npx` and args `["-y", "mcp-server-apple-events"]`. A local build can instead point `node` at `dist/index.js`.