mcp-eventkit
MCP server for Apple Reminders using the native EventKit framework via PyObjC. No tokens, no sync services — reads and writes directly to the Reminders database on macOS.
Requirements
- macOS (Apple Silicon or Intel)
- Python 3.13+
uv- Reminders access granted in System Settings → Privacy & Security → Reminders
---
Running
uv run --with mcp --with pyobjc-framework-EventKit python server.py
On first run, macOS will prompt for Reminders access. If denied, grant it in System Settings → Privacy & Security → Reminders, then restart.
---
Available Tools
| Tool | Description | Destructive | | ---- | ----------- | ----------- | | reminders_list_lists | List all reminder lists | No | | reminders_list | List reminders, filtered by list and/or completion status | No | | reminders_create | Create a new reminder | No | | reminders_update | Update title, notes, due date, priority, or completion | No | | reminders_delete | Permanently delete a reminder | Yes |
All read tools support response_format: "markdown" (default) or "json".
---
Claude Desktop / Claude Code Config
Add to your MCP server config:
{
"mcpServers": {
"reminders": {
"command": "/opt/homebrew/bin/uv",
"args": [
"run",
"--with", "mcp",
"--with", "pyobjc-framework-EventKit",
"python",
"/path/to/server.py"
]
}
}
}
Replace /path/to/server.py with the absolute path to this file.
---
Known Limitations
- No support for subtasks, tags, location reminders, or recurring reminders
- Due dates are stored as
NSDateComponents— timezone behavior depends on the system calendar - macOS only (EventKit is not available on Linux/Windows)
Contributing
Bug fixes and clear improvements are welcome — open a PR. For new features, please open an issue first to discuss before writing code. I'll merge fixes that are unambiguously correct, but make no guarantees on feature additions.
License
MIT






