Описание
Eventkit — Model Context Protocol server
README
A Model Context Protocol (MCP) server that provides native integration with Apple's EventKit framework, allowing Claude to manage Reminders and Calendar events directly in macOS.
Features
Reminders
- Create reminders that appear instantly in Reminders.app
- List and search reminders with filters (completed, flagged, priority, date range)
- Complete reminders with a single command
- Update reminders (title, notes, due date, priority)
- List tags from your reminders (requires Full Disk Access)
Calendar Events
- List calendars available for events
- List events within a date range
- Create events with title, dates, location, notes
- Update events
- Delete events
Sync
- iCloud sync - changes sync automatically to all your Apple devices
Installation
Option 1: Installer Package (Recommended)
Download and run the .pkg installer:
# Build the installer (see Building the Installer below)
open dist/MCP-EventKit-Server-1.1.0.pkg
The installer will:
- Install the server binary to
/usr/local/lib/mcp-eventkit/ - Configure Claude Desktop automatically
- Install an uninstaller app in
/Applications/
Option 2: Manual Installation
- Clone the repository:
git clone https://github.com/yourusername/mcp-server-eventkit.git
cd mcp-server-eventkit
- Install dependencies:
bun install
- Build the Swift bridge:
bun run build
- Grant permissions when prompted (or manually in System Settings > Privacy & Security)
Requirements
- macOS 13.0 (Ventura) or later
- Bun runtime (for development only)
- Xcode Command Line Tools (for building from source)
Configuration
Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"eventkit": {
"command": "/usr/local/bin/mcp-eventkit"
}
}
}
Or for development:
{
"mcpServers": {
"eventkit": {
"command": "bun",
"args": ["run", "/absolute/path/to/mcp-server-eventkit/src/index.ts"]
}
}
}
Claude Code
claude mcp add --transport stdio --scope user eventkit -- /usr/local/bin/mcp-eventkit
Available Tools
Reminder Tools
| Tool | Description |
|---|---|
list_reminders |
List incomplete or completed reminders |
create_reminder |
Create a new reminder |
complete_reminder |
Mark a reminder as completed |
delete_reminder |
Delete a reminder permanently |
update_reminder |
Update reminder title, notes, due date, priority |
search_reminders |
Search reminders with text query and filters |
list_reminders_filtered |
List reminders with advanced filters |
toggle_flag |
Toggle the flagged status of a reminder |
list_calendars |
List all reminder lists/calendars |
list_tags |
List all tags from reminders (requires Full Disk Access) |
Calendar Event Tools
| Tool | Description |
|---|---|
list_event_calendars |
List all calendars available for events |
list_calendar_events |
List events within a date range |
create_calendar_event |
Create a new calendar event |
update_calendar_event |
Update an existing event |
delete_calendar_event |
Delete a calendar event |
Building the Installer
To create a distributable .pkg installer:
Prerequisites
- macOS with Xcode Command Line Tools
- Bun runtime
Build Steps
# 1. Install dependencies
bun install
# 2. Build the Swift bridge (creates libEventKitBridge.dylib)
./src/swift-bridge/build.sh
# 3. Compile standalone binary (bundles TypeScript into single executable)
bun build --compile --outfile build/mcp-eventkit src/index.ts
# 4. Build the .pkg installer
./installer/build-pkg.sh 1.1.0
The installer will be created at dist/MCP-EventKit-Server-1.1.0.pkg
Installer Contents
The .pkg installs:
| Component | Location |
|---|---|
| Server binary | /usr/local/lib/mcp-eventkit/mcp-eventkit |
| Swift library | /usr/local/lib/mcp-eventkit/libEventKitBridge.dylib |
| Symlink | /usr/local/bin/mcp-eventkit |
| Uninstaller | /Applications/Uninstall MCP EventKit.app |
Signing (Optional)
To sign the package for distribution:
productsign --sign "Developer ID Installer: Your Name" \
dist/MCP-EventKit-Server-1.1.0.pkg \
dist/MCP-EventKit-Server-1.1.0-signed.pkg
Development
Project Structure
mcp-server-eventkit/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── server.ts # Server configuration
│ ├── swift-bridge/
│ │ ├── EventKitBridge.swift # Native Swift module
│ │ ├── eventkit-bridge.ts # TypeScript FFI bindings
│ │ └── build.sh # Swift compilation script
│ ├── tools/ # MCP tool implementations
│ ├── schemas/ # Zod validation schemas
│ └── prompts/ # MCP prompts
├── installer/
│ ├── build-pkg.sh # Installer build script
│ ├── scripts/ # Pre/post install scripts
│ ├── resources/ # Installer UI resources
│ └── payload/ # Files to install
├── build/
│ ├── mcp-eventkit # Compiled binary
│ └── libEventKitBridge.dylib # Compiled Swift library
├── dist/ # Generated installers
└── docs/ # Documentation
├── adr/ # Architecture Decision Records
└── prd/ # Product Requirements Documents
Running in Development
# Build Swift bridge
bun run build
# Run server (for testing)
bun run start
# Run with hot reload
bun run dev
Architecture
The server uses a three-layer architecture:
- MCP Layer (TypeScript): Handles MCP protocol, tool registration, and validation
- FFI Bridge (Bun FFI): Connects TypeScript to Swift via C-compatible functions
- Native Layer (Swift): Interacts with EventKit framework
See Architecture Decision Records for detailed design decisions.
Permissions
Reminders Access
Required for all reminder operations. Grant in:
- System Settings > Privacy & Security > Reminders
Calendar Access
Required for calendar event operations. Grant in:
- System Settings > Privacy & Security > Calendars
Full Disk Access (Optional)
Required only for list_tags tool. Grant in:
- System Settings > Privacy & Security > Full Disk Access
- Add
/usr/local/bin/mcp-eventkit(or your terminal app for development)
Troubleshooting
"No access to Reminders" error
The app doesn't have permission to access Reminders. Grant access in System Settings > Privacy & Security > Reminders.
"No default calendar for reminders" error
You don't have any Reminders lists. Open the Reminders app and create at least one list.
Tags not working
The list_tags feature requires Full Disk Access because it reads directly from the Reminders SQLite database. Grant access in System Settings > Privacy & Security > Full Disk Access.
Build fails with Swift errors
Ensure you have Xcode Command Line Tools installed:
xcode-select --install
Calendar events not showing
Make sure you've granted Calendar access in System Settings > Privacy & Security > Calendars.
Uninstalling
If installed via .pkg
- Open Applications in Finder
- Double-click Uninstall MCP EventKit
- Confirm and enter admin password
Manual uninstall
sudo rm -rf /usr/local/lib/mcp-eventkit
sudo rm -f /usr/local/bin/mcp-eventkit
rm -rf "/Applications/Uninstall MCP EventKit.app"
Then remove the eventkit entry from your Claude Desktop config.
License
MIT
Установка Eventkit
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/pailat/mcp-server-eventkitFAQ
Eventkit MCP бесплатный?
Да, Eventkit MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Eventkit?
Нет, Eventkit работает без API-ключей и переменных окружения.
Eventkit — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Eventkit в Claude Desktop, Claude Code или Cursor?
Открой Eventkit на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Eventkit with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
