Apple Reminders

io.github.high5-ventures由 GitHub 帳號 high5-ventures 發布v1.1.0更新於 Oct 24, 2026

Fast, native macOS Apple Reminders via EventKit. 10-200x faster than AppleScript alternatives.

已驗證STDIO僅桌面效率與工作流

概覽

AI 產生的概覽

讓助理透過原生 EventKit 讀取、搜尋、建立、更新、完成與刪除 macOS 提醒事項。

可以做什麼
將 Apple 的 EventKit 框架包裝成已簽署的 Swift 二進位檔,並透過 stdio 提供 13 個工具。唯讀工具可列出提醒列表、依狀態列出提醒、全文搜尋,以及回傳今天、逾期與已排程的提醒;寫入工具可建立、更新、完成、取消完成與刪除單筆提醒。提醒 ID 跨工作階段保持穩定,每個工具都宣告唯讀或破壞性標註,方便用戶端在變更前詢問。
適用情境
在 Mac 上希望助理回答提醒事項相關問題或在對話中管理提醒時值得加入,例如查看今天到期的事項、找出逾期項目,或新增與完成待辦。僅支援 macOS,面向同一台機器上的 Claude Desktop、Claude Code 及其他 MCP 用戶端。
執行需求
需要執行 macOS 11 或更新版本的 Mac(Apple Silicon 或 Intel)。可透過 .mcpb 套件、Claude Code 外掛或 npm 套件 @high5ventures/apple-reminders-mcp 安裝(npm 方式需要 Node.js)。必須在 macOS 隱私提示中授予提醒事項存取權;npm 方式可能需要將 REMINDERS_BINARY 設為二進位檔的絕對路徑。不需要帳號或 API 金鑰。
安裝前請注意
此伺服器可以修改並永久刪除提醒,變更操作應先確認;delete_reminder 無法復原。它需要 macOS 提醒事項權限(可在系統設定中撤銷),並會讀取提醒內容。執行時完全在本機、無網路 I/O,但安裝時會從 GitHub Releases 下載已簽署的二進位檔。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Apple Reminders,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Apple Reminders for Claude

[License: MIT] [macOS 11+] [Notarized] [MCPB manifest]

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.

Reminder IDs are stable across sessions. A full CRUD round-trip takes under a second on a database with 300+ reminders. Umlauts, accents, CJK characters and emoji pass through unchanged.

Published by high5 ventures GmbH — signed with Developer ID Application: high5 ventures GmbH and notarized by Apple.


Quick start

You need a Mac (Apple Silicon or Intel) running macOS 11 or later, and Claude Desktop.

  1. Download apple-reminders.mcpb from the latest release.
  2. Double-click it. Claude Desktop opens an install dialog — click Install.
  3. Ask Claude something like "What's on my reminders for today?"

macOS asks for Reminders access on that first question. Allow it, and Claude can read and change your reminders.

No configuration is needed: the bundle contains the server and the signed binary, and Claude Desktop sets the paths on install.

Updating is the same three steps with the newer .mcpb.

Not using Claude Desktop? See Installation for Claude Code and other MCP clients.


Contents


Description

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:

TargetArtifactWhere to get it
Claude Desktop / Cowork.mcpb bundleReleases
Claude Code (CLI)Plugin with skill/plugin marketplace add against this repository
Any MCP clientnpm packagenpm install -g @high5ventures/apple-reminders-mcp

All three ship the same binary and the same 13 tools, so behaviour does not differ between them.

Features

  • 13 MCP tools covering the full reminder lifecycle: list lists, list reminders (open/completed/all), full-text search, today/overdue/scheduled smart queries, CRUD on individual reminders.
  • Native EventKit — not AppleScript, not reverse-engineered SQLite scraping.
  • Stable UUIDs — reminder IDs survive across sessions, unlike AppleScript URIs or CLI positional indexes.
  • Tool safety annotations — every tool declares readOnlyHint / destructiveHint so Claude clients can auto-run queries but prompt for mutations.
  • Language-neutral — the skill matches on intent, not keywords. Works identically in German, French, Spanish, Japanese, etc.
  • Speed — full CRUD smoke-test completes in under 1 s on 300+ reminders across 10 lists.
  • Signed + notarized — no Gatekeeper warnings; deployable via MDM.
  • 100% local — no network I/O. See PRIVACY.md.

Usage examples

In Claude Desktop and Cowork the tools appear under Apple Reminders; in Claude Code the skill loads when you mention reminders. The examples below show the tool calls behind each answer.

Example 1 — "What's on my plate today?"

You: Was habe ich heute zu tun?

Claude (invokes get_today):

json
{ "status": "ok", "data": { "reminders": [  { "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).

Example 2 — "Add a reminder to the groceries list"

You: Remind me to buy oat milk tomorrow at 6pm.

Claude (invokes create_reminder):

json
{ "list": "Groceries", "title": "Buy oat milk", "dueDate": "2026-04-15T18:00:00" }

Response:

json
{ "status": "ok", "data": { "reminder": { "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.

Example 3 — "Clean up what's overdue"

You: Show me everything that's overdue, then mark the Slack-DM one as done.

Claude (invokes get_overdue):

json
{ "status": "ok", "data": { "reminders": [  { "id": "G7H8…", "name": "Reply to Alex in Slack DM", "list": "Work", "due_date": "2026-04-12T17:00:00" },  { "id": "I9J0…", "name": "Review PR #482", "list": "Work", "due_date": "2026-04-13T12:00:00" }] } }

Claude (invokes complete_reminder with id: "G7H8…"):

json
{ "status": "ok", "data": { "reminder": { "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).

Installation

Claude Desktop / Cowork

Download apple-reminders.mcpb from Releases and double-click it. Claude Desktop shows an install dialog; click Install, then grant Reminders access in the macOS privacy prompt on the first tool call.

Updating works exactly the same way — download the newer .mcpb and double-click it.

This is how the extension is installed. The two sections below cover other MCP clients; on a Mac with Claude Desktop you do not need them.

Claude Code (CLI)

shell
/plugin marketplace add high5-ventures/apple-reminders-for-claude

Reload Claude Code before the next step; the plugin is not visible until the marketplace has been picked up.

shell
/plugin install apple-reminders@high5-apple-reminders-for-claude

This path offers new versions automatically, but does not install them; you still confirm each update.

Any other MCP client (Cursor, Zed, …)

shell
npm install -g @high5ventures/apple-reminders-mcp

Then add it to your client's MCP configuration:

json
{  "mcpServers": {    "apple-reminders": {      "command": "apple-reminders-mcp"    }  }}

Or skip the global install and let the client fetch it on demand:

json
{  "mcpServers": {    "apple-reminders": {      "command": "npx",      "args": ["-y", "@high5ventures/apple-reminders-mcp"]    }  }}

The location of that file differs per client.

Build from source

shell
git clone https://github.com/high5-ventures/apple-reminders-for-claude.gitcd apple-reminders-for-claude./build.sh

Produces dist/reminders-eventkit (universal binary for Apple Silicon and Intel), 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 for building: macOS 11+, Xcode Command Line Tools, Node.js 18+. Toolchains older than Xcode 15 also work; they compile without the macOS 14 permission API and fall back to the older request. To build only your own architecture, set ARCHS, e.g. ARCHS=x86_64 ./build.sh.

Configuration

No configuration is required for normal use. The extension runs with these defaults:

SettingDefaultNotes
Reminders permissionprompted on first useRevocable in System Settings → Privacy & Security → Reminders
Binary timeout (Node wrapper)30 sHardcoded ceiling; well under any MCP client timeout
Response payload cap16 MBCovers 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:

shell
export REMINDERS_BINARY=/absolute/path/to/reminders-eventkit

The .mcpb and Claude Code plugin installations set this variable automatically.

MCP tools

All 13 tools return a stable JSON envelope — { "status": "ok", "data": ... } on success, { "status": "error", "code": "...", "message": "..." } on failure.

ToolAnnotationPurpose
get_listsread-onlyList all reminder lists with open/completed counts
get_list_inforead-onlyMetadata for one list by name or id
list_remindersread-onlyList reminders in a list (open/completed/all)
search_remindersread-onlyFull-text search across all lists
get_todayread-onlyReminders due today
get_overdueread-onlyOverdue open reminders
get_scheduledread-onlyAll open reminders with a due date
get_reminderread-onlyFetch one reminder by ID
create_reminderadditiveCreate a new reminder
update_reminderdestructive, idempotentUpdate an existing reminder
complete_reminderdestructive, idempotentMark as completed
uncomplete_reminderdestructive, idempotentUnmark completed
delete_reminderdestructive, idempotentPermanently 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.

Privacy policy

This extension is 100% local at runtime — no data leaves your Mac via this extension. high5 ventures GmbH operates no server and collects no telemetry. The only network activity is the one-time download of the signed Swift binary from GitHub Releases during install (verified by Apple Developer ID signature, refuses to install on mismatch).

Read the full policy: PRIVACY.md.

Troubleshooting

Binary crashed (exit 1): spawn Unknown system error -86 — the binary was built for a different Mac. Releases up to and including v1.0.4 contain only an Apple Silicon binary that also requires macOS 14; from v1.0.5 the binary is universal and runs on Apple Silicon and Intel from macOS 11. Update to the latest release.

PERMISSION_DENIED — you (or a device policy) turned Reminders access off. Re-enable it in System Settings → Privacy & Security → Reminders, then retry.

PERMISSION_UNAVAILABLE — macOS refused the request without showing a dialog, so the privacy pane stays empty and there is nothing to switch on. Granting permissions or running tccutil reset does not help, because no entry exists to grant or reset.

macOS attributes a privacy request to the process it holds responsible, normally the application that launched the server. If that application declares no Reminders usage description, the request is refused before it reaches EventKit. Since v1.0.4 the binary takes that responsibility itself, so the prompt no longer depends on the host. If the error persists, check the attribution:

shell
log show --last 3m --predicate 'process == "tccd"' --info --debug | grep -i reminder

The AttributionChain line should name reminders-eventkit as responsible. If it names the host application instead, the self-attribution did not take effect — please include that log line when opening an issue.

Binary quarantined on first launch — releases are signed and notarized, so this should not occur. To verify:

shell
BIN=~/Library/Application\ Support/Claude/Claude\ Extensions/local.mcpb.high5-ventures-gmbh.apple-reminders/bin/reminders-eventkitcodesign --verify --verbose "$BIN"spctl --assess --type execute "$BIN"

If either fails, the copy may have been tampered with; re-download from Releases.

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

Support

Architecture

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

License

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.

來源:README.md,提交 7f65ed2

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

3
  1. v1.1.0最新Oct 19, 2026
  2. v1.0.5Oct 6, 2026
  3. v1.0.4Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分