MCP Directory

How to add Apple Events MCP Server to Windsurf

Native macOS integration with Apple Reminders and Calendar via EventKit Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 14, 2026 · 142 · stdio · no auth

Windsurf 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

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the Apple Events MCP Server config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5Apple Events MCP Server's tools become available to Cascade.

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 Windsurf

reminders_tasks

Manage 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_subtasks

Manage 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_lists

Manage reminder lists (actions: read, create, update, delete) for organizing reminders.

calendar_events

Handle 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_calendars

Return 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 + Windsurf FAQ

Where is the Windsurf config file?

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.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 Windsurf?

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`.

View repo Full Apple Events MCP Server page