Server data from the Official MCP Registry
Fast, native macOS Apple Reminders via EventKit. 10-200x faster than AppleScript alternatives.
Fast, native macOS Apple Reminders via EventKit. 10-200x faster than AppleScript alternatives.
Valid MCP server (2 strong, 4 medium validity signals). No known CVEs in dependencies. ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.
7 files analyzed · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-high5-ventures-apple-reminders": {
"args": [
"-y",
"@high5ventures/apple-reminders-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
Fast, native Apple Reminders access for Claude — works in Claude Desktop, Claude Cowork, and Claude Code (CLI). One signed Swift/EventKit binary, three distribution packages.
No AppleScript, no unstable positional IDs, no 30-second MCP timeouts. Sub-second latency on databases with hundreds of reminders. Full UTF-8 support for German umlauts, accents, CJK characters, and emoji.
Published by high5 ventures GmbH — signed with Developer ID Application: high5 ventures GmbH and notarized by Apple.
Apple Reminders for Claude gives Claude full CRUD access to your macOS Reminders app. It wraps Apple's native EventKit framework in a signed Swift binary that returns stable UUIDs and structured JSON, and ships three ways:
| Target | Artifact | Distribution |
|---|---|---|
| Claude Desktop / Cowork | .mcpb bundle | Anthropic Desktop Extensions Directory |
| Claude Code (CLI) | Plugin with skill | Claude Code Plugin Directory |
| Any MCP client | npm package | MCP Registry (io.github.high5-ventures/apple-reminders) |
All three paths share the same Swift binary and the same MCP protocol surface, so behavior is identical everywhere.
readOnlyHint / destructiveHint so Claude clients can auto-run queries but prompt for mutations.Install from the Anthropic Desktop Extensions Directory (in-app search) or download the latest signed .mcpb from Releases and double-click it. Claude Desktop shows an install dialog; click Install, then on the first tool call, grant Reminders access in the macOS privacy prompt.
/plugin install apple-reminders@claude-plugins-official
…or add the high5 ventures marketplace directly from GitHub:
/plugin marketplace add high5-ventures/apple-reminders-for-claude
/plugin install apple-reminders@high5-apple-reminders-for-claude
npm install -g @high5ventures/apple-reminders-mcp
Then point your client at @high5ventures/apple-reminders-mcp as a stdio MCP server. See your client's documentation for configuration specifics.
git clone https://github.com/high5-ventures/apple-reminders-for-claude.git
cd apple-reminders-for-claude
./build.sh
Produces dist/reminders-eventkit (binary), dist/skill/ (Claude Code skill), and dist/apple-reminders.mcpb (Claude Desktop bundle). Builds are unsigned; see CONTRIBUTING.md for the signed release workflow.
Requirements: macOS 11+, Xcode Command Line Tools, Node.js 18+.
No configuration is required for normal use. The extension runs with these defaults:
| Setting | Default | Notes |
|---|---|---|
| Reminders permission | prompted on first use | Revocable in System Settings → Privacy & Security → Reminders |
| Binary timeout (Node wrapper) | 30 s | Hardcoded ceiling; well under any MCP client timeout |
| Response payload cap | 16 MB | Plenty for databases with thousands of reminders |
If you use the npm-distributed server with a non-standard MCP client, set REMINDERS_BINARY to the absolute path of the reminders-eventkit binary:
export REMINDERS_BINARY=/absolute/path/to/reminders-eventkit
The .mcpb and Plugin Directory installations set this variable automatically.
The skill loads automatically in Claude Code when you mention reminders. In Claude Desktop / Cowork, the tools appear under Apple Reminders. You talk to Claude naturally — these examples show what Claude does behind the scenes.
You: Was habe ich heute zu tun?
Claude (invokes
get_today):{ "status": "ok", "data": [ { "id": "A1B2…", "name": "Zahnarzt-Termin bestätigen", "list": "Persönlich", "due_date": "2026-04-14T10:00:00" }, { "id": "C3D4…", "name": "Rechnung #2026-0412 prüfen", "list": "Arbeit", "due_date": "2026-04-14T14:00:00" } ] }Claude: Du hast heute zwei offene Erinnerungen: den Zahnarzt-Termin um 10:00 (Persönlich) und die Rechnungs-Prüfung um 14:00 (Arbeit).
You: Remind me to buy oat milk tomorrow at 6pm.
Claude (invokes
create_reminder):{ "list": "Groceries", "title": "Buy oat milk", "dueDate": "2026-04-15T18:00:00" }Response:
{ "status": "ok", "data": { "id": "E5F6…", "name": "Buy oat milk", "due_date": "2026-04-15T18:00:00" } }Claude: Done — added "Buy oat milk" to Groceries for tomorrow at 18:00.
You: Show me everything that's overdue, then mark the Slack-DM one as done.
Claude (invokes
get_overdue):{ "status": "ok", "data": [ { "id": "G7H8…", "name": "Reply to Alex in Slack DM", "list": "Arbeit", "due_date": "2026-04-12T17:00:00" }, { "id": "I9J0…", "name": "Review PR #482", "list": "Arbeit", "due_date": "2026-04-13T12:00:00" } ] }Claude (invokes
complete_reminderwithid: "G7H8…"):{ "status": "ok", "data": { "id": "G7H8…", "completed": true, "completion_date": "2026-04-14T18:22:01" } }Claude: Two overdue items: Slack reply (now marked done) and PR #482 review (still open).
All 13 tools return a stable JSON envelope — { "status": "ok", "data": ... } on success, { "status": "error", "code": "...", "message": "..." } on failure.
| Tool | Annotation | Purpose |
|---|---|---|
get_lists | read-only | List all reminder lists with open/completed counts |
get_list_info | read-only | Metadata for one list by name |
list_reminders | read-only | List reminders in a list (open/completed/all) |
search_reminders | read-only | Full-text search across all lists |
get_today | read-only | Reminders due today |
get_overdue | read-only | Overdue open reminders |
get_scheduled | read-only | All open reminders with a due date |
get_reminder | read-only | Fetch one reminder by ID |
create_reminder | additive | Create a new reminder |
update_reminder | destructive, idempotent | Update an existing reminder |
complete_reminder | destructive, idempotent | Mark as completed |
uncomplete_reminder | destructive, idempotent | Unmark completed |
delete_reminder | destructive, idempotent | Permanently delete |
"Destructive" here follows the MCP specification: it means the operation mutates existing state irreversibly from the user's point of view. Claude clients use these hints to decide when to prompt for confirmation.
This extension is 100% local. No data leaves your Mac via this extension. high5 ventures GmbH operates no server and collects no telemetry.
Read the full policy: PRIVACY.md.
"Reminders access denied" — open System Settings → Privacy & Security → Reminders and enable access for Claude Desktop (or your MCP client). Then retry.
Binary quarantined on first launch — our releases are signed and notarized, so this should not happen. If it does, verify the signature:
codesign --verify --verbose /Applications/Claude.app/Contents/Resources/mcpb/apple-reminders/bin/reminders-eventkit
spctl --assess --type execute /Applications/Claude.app/Contents/Resources/mcpb/apple-reminders/bin/reminders-eventkit
If either fails, you may have downloaded a tampered copy — re-download from the official Releases page.
"List not found" or "Multiple lists with that name" — reminder lists are matched by exact name. Use get_lists first to see available names. For duplicates, the error response includes a candidates array with stable calendar_identifiers; re-call with id:<calendar_identifier> as the list argument.
Flagged reminders return empty — EventKit does not expose the flagged attribute. The Claude Code skill ships an AppleScript fallback (skills/apple-reminders/scripts/get_flagged.applescript) for users who need this query. The .mcpb bundle does not include this fallback because Claude Desktop does not have shell access.
Still stuck? Open an issue → Support.
info@h5ventures.de — see SECURITY.mdinfo@h5ventures.deClaude Desktop / Cowork Claude Code CLI Any MCP client (Cursor, Zed, …)
│ │ │
│ (stdio MCP) │ (Bash via plugin) │ (stdio MCP)
▼ ▼ ▼
Node wrapper reminders-eventkit Node wrapper
(server/index.js) (Swift binary, direct) (npm @high5ventures/…)
│ │ │
▼ │ ▼
reminders-eventkit │ reminders-eventkit
(same Swift binary) │ (downloaded on install)
│ │ │
└────────────────────────────────┴───────────────────────────────────┘
│
▼
Apple EventKit framework
│
▼
macOS Reminders database
One Swift source → one binary → three distribution paths. See CONTRIBUTING.md for build internals.
Copyright © 2026 high5 ventures GmbH. Released under the MIT License — see LICENSE.
This project is not affiliated with or endorsed by Apple Inc. or Anthropic PBC.
"Apple" and "Reminders" are trademarks of Apple Inc. "Claude" is a trademark of Anthropic PBC.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.