关于 apple-reminders
apple-reminders 是原生 macOS MCP 服务,通过 EventKit 让 Claude 和其他 MCP 客户端访问 Apple Reminders。它提供稳定的提醒 ID 和结构化 JSON;不同分发方式使用相同的 13 个工具。
主要功能
- 01覆盖提醒列表和生命周期的 13 个工具
- 02基于 Swift 与 EventKit 的原生实现
- 03跨会话稳定的提醒 UUID
- 04结构化 JSON 响应
- 05只读与修改操作安全标注
- 06运行时完全本地且无网络访问
适用场景
- 01查找今天到期或已逾期的提醒
- 02跨列表搜索提醒
- 03通过 MCP 客户端创建或更新提醒
- 04在客户端安全确认下完成或删除提醒
MCP 相关
该服务提供 13 个工具,用于列出、搜索、创建、更新、完成和删除 Apple Reminders。它以 Claude Desktop 扩展、Claude Code 插件或供其他 MCP 客户端使用的 npm 包形式提供。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
适用于 Claude 的 Apple Reminders
为 Claude 提供快速、原生的 Apple Reminders 访问能力,适用于 Claude Desktop、Claude Cowork 和 Claude Code(CLI)。一个经过签名的 Swift/EventKit 二进制文件,三种分发包。
提醒事项 ID 在不同会话间保持稳定。在包含 300 多条提醒事项的数据库上,完整的 CRUD 往返操作耗时不到一秒。变音符号、重音符号、中日韩字符和表情符号均可原样保留。
由 high5 ventures GmbH 发布——使用 Developer ID Application: high5 ventures GmbH 签名,并经 Apple 公证。
快速开始
你需要一台运行 macOS 11 或更高版本的 Mac(Apple Silicon 或 Intel),以及 Claude Desktop。
- 从最新版本下载
apple-reminders.mcpb。 - 双击该文件。Claude Desktop 会打开安装对话框——点击 Install。
- 向 Claude 提问,例如 “我今天有哪些提醒事项?”
首次提问时,macOS 会请求访问提醒事项的权限。允许后,Claude 就可以读取和更改你的提醒事项。
无需配置:此安装包包含服务和签名后的二进制文件,Claude Desktop 会在安装时设置路径。
更新时,只需按照相同的三个步骤安装较新的 .mcpb。
不使用 Claude Desktop?请参阅安装,了解如何用于 Claude Code 和其他 MCP 客户端。
目录
描述
适用于 Claude 的 Apple Reminders 为 Claude 提供对 macOS Reminders 应用的完整 CRUD 访问能力。它通过经过签名的 Swift 二进制文件封装 Apple 原生的 EventKit 框架,返回稳定的 UUID 和结构化 JSON,并提供三种分发方式:
| 目标 | 安装包 | 获取方式 |
|---|---|---|
| Claude Desktop / Cowork | .mcpb 安装包 | 版本发布页 |
| Claude Code(CLI) | 带技能的插件 | 在此代码库上使用 /plugin marketplace add |
| 任何 MCP 客户端 | npm 包 | npm install -g @high5ventures/apple-reminders-mcp |
三种分发方式都包含相同的二进制文件和 13 个相同的工具,因此它们的行为没有差异。
功能
- 13 个 MCP 工具,覆盖提醒事项的完整生命周期:列出清单、列出提醒事项(未完成/已完成/全部)、全文搜索、查询今天/逾期/已安排的提醒事项,以及对单条提醒事项执行 CRUD 操作。
- 原生 EventKit——不使用 AppleScript,也不通过逆向工程抓取 SQLite 数据。
- 稳定的 UUID——提醒事项 ID 在不同会话间保持不变,不像 AppleScript URI 或 CLI 位置索引。
- 工具安全注释——每个工具都声明
readOnlyHint/destructiveHint,让 Claude 客户端可以自动运行查询,并在执行更改操作前征求确认。 - 不受语言限制——技能根据意图而非关键词匹配。无论使用德语、法语、西班牙语、日语等语言,效果都相同。
- 速度快——在包含 10 个清单和 300 多条提醒事项的环境中,完整的 CRUD 冒烟测试耗时不到 1 秒。
- 已签名并经公证——不会触发 Gatekeeper 警告;可通过 MDM 部署。
- 100% 本地运行——不进行网络 I/O。请参阅 PRIVACY.md。
使用示例
在 Claude Desktop 和 Cowork 中,这些工具会显示在 Apple Reminders 下;在 Claude Code 中,提到提醒事项时技能就会加载。以下示例展示了各个回答背后的工具调用。
示例 1 —“我今天有什么事要做?”
你: 我今天有什么事要做?
Claude(调用
get_today):{ "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: 你今天有两条未完成的提醒:10:00 的牙医预约(个人),以及 14:00 的账单核对(工作)。
示例 2 —“在购物清单中添加一条提醒”
你: 提醒我明天 18:00 买燕麦奶。
Claude(调用
create_reminder):{ "list": "Groceries", "title": "Buy oat milk", "dueDate": "2026-04-15T18:00:00" }响应:
{ "status": "ok", "data": { "reminder": { "id": "E5F6…", "name": "Buy oat milk", "due_date": "2026-04-15T18:00:00" } } }Claude: 完成——已在购物清单中添加“Buy oat milk”,时间为明天 18:00。
示例 3 —“处理逾期事项”
你: 列出所有逾期事项,然后将那条 Slack 私信标记为已完成。
Claude(调用
get_overdue):{ "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(调用
complete_reminder,参数为id: "G7H8…"):{ "status": "ok", "data": { "reminder": { "id": "G7H8…", "completed": true, "completion_date": "2026-04-14T18:22:01" } } }Claude: 有两项逾期事项:回复 Slack 消息(现已标记为已完成)和审核 PR #482(仍未完成)。
安装
Claude Desktop / Cowork
从 Releases 下载 apple-reminders.mcpb 并双击。Claude Desktop 会显示安装对话框;点击 Install,然后在首次调用工具时,在 macOS 隐私提示中授予“提醒事项”访问权限。
更新方式完全相同——下载较新的 .mcpb 并双击即可。
以上是安装此扩展的方式。以下两个部分介绍其他 MCP 客户端;在安装了 Claude Desktop 的 Mac 上,无需使用它们。
Claude Code(CLI)
/plugin marketplace add high5-ventures/apple-reminders-for-claude
在进行下一步之前,重新加载 Claude Code;在插件市场加载完成之前,看不到该插件。
/plugin install apple-reminders@high5-apple-reminders-for-claude
此方式会自动提供新版本,但不会自动安装;每次更新仍需由你确认。
其他 MCP 客户端(Cursor、Zed 等)
npm install -g @high5ventures/apple-reminders-mcp
然后将其添加到客户端的 MCP 配置中:
{
"mcpServers": {
"apple-reminders": {
"command": "apple-reminders-mcp"
}
}
}
或者跳过全局安装,让客户端按需获取:
{
"mcpServers": {
"apple-reminders": {
"command": "npx",
"args": ["-y", "@high5ventures/apple-reminders-mcp"]
}
}
}
该文件的位置因客户端而异。
从源代码构建
git clone https://github.com/high5-ventures/apple-reminders-for-claude.git
cd apple-reminders-for-claude
./build.sh
将生成 dist/reminders-eventkit(适用于 Apple Silicon 和 Intel 的通用二进制文件)、dist/skill/(Claude Code 技能)和 dist/apple-reminders.mcpb(Claude Desktop 安装包)。构建产物未经签名;签名发布工作流请参阅 CONTRIBUTING.md。
构建要求:macOS 11+、Xcode Command Line Tools、Node.js 18+。早于 Xcode 15 的工具链也可使用;它们会在不使用 macOS 14 权限 API 的情况下编译,并回退到较旧的请求方式。若只构建当前架构,请设置 ARCHS,例如 ARCHS=x86_64 ./build.sh。
配置
正常使用无需配置。该扩展使用以下默认值运行:
| 设置 | 默认值 | 备注 |
|---|---|---|
| 提醒事项权限 | 首次使用时询问 | 可在系统设置 → 隐私与安全性 → 提醒事项中撤销 |
| 二进制文件超时(Node 封装器) | 30 s | 硬编码上限;远低于任何 MCP 客户端的超时时间 |
| 响应负载上限 | 16 MB | 可处理包含数千条提醒事项的数据库 |
如果你使用通过 npm 分发的服务,并搭配非标准 MCP 客户端,请将 REMINDERS_BINARY 设置为 reminders-eventkit 二进制文件的绝对路径:
export REMINDERS_BINARY=/absolute/path/to/reminders-eventkit
.mcpb 和 Claude Code 插件安装会自动设置此变量。
MCP 工具
全部 13 个工具都会返回稳定的 JSON 信封:成功时为 { "status": "ok", "data": ... },失败时为 { "status": "error", "code": "...", "message": "..." }。
| 工具 | 注解 | 用途 |
|---|---|---|
get_lists | 只读 | 列出所有提醒事项列表及未完成/已完成数量 |
get_list_info | 只读 | 按名称或 ID 获取一个列表的元数据 |
list_reminders | 只读 | 列出某个列表中的提醒事项(未完成/已完成/全部) |
search_reminders | 只读 | 在所有列表中进行全文搜索 |
get_today | 只读 | 获取今天到期的提醒事项 |
get_overdue | 只读 | 获取已逾期且未完成的提醒事项 |
get_scheduled | 只读 | 获取所有设有到期日期且未完成的提醒事项 |
get_reminder | 只读 | 按 ID 获取一条提醒事项 |
create_reminder | 添加 | 创建一条新提醒事项 |
update_reminder | 破坏性、幂等 | 更新现有提醒事项 |
complete_reminder | 破坏性、幂等 | 标记为已完成 |
uncomplete_reminder | 破坏性、幂等 | 取消已完成标记 |
delete_reminder | 破坏性、幂等 | 永久删除 |
这里的“破坏性”遵循 MCP 规范:它表示该操作会以不可逆的方式修改现有状态(从用户的角度来看)。Claude 客户端会利用这些提示来决定何时请求确认。
隐私政策
该扩展在运行时100% 在本地运行,不会通过此扩展将任何数据传出你的 Mac。high5 ventures GmbH 不运营任何服务器,也不会收集遥测数据。唯一的网络活动是在安装期间从 GitHub Releases 一次性下载经过签名的 Swift 二进制文件(通过 Apple Developer ID 签名验证;若不匹配则拒绝安装)。
阅读完整政策:PRIVACY.md。
故障排查
Binary crashed (exit 1): spawn Unknown system error -86 — 该二进制文件是为其他 Mac 构建的。v1.0.4 及之前的版本仅包含 Apple Silicon 二进制文件,且还需要 macOS 14;从 v1.0.5 开始,二进制文件为通用版本,可在 macOS 11 及更高版本的 Apple Silicon 和 Intel 设备上运行。请更新到最新版本。
PERMISSION_DENIED — 你(或设备策略)关闭了“提醒事项”访问权限。请在 系统设置 → 隐私与安全性 → 提醒事项 中重新启用,然后重试。
PERMISSION_UNAVAILABLE — macOS 拒绝了请求,且没有显示对话框,因此隐私设置面板为空,也没有可开启的选项。授予权限或运行 tccutil reset 都无济于事,因为没有可授予或重置的条目。
macOS 会将隐私请求归因于它认定的责任进程,通常是启动服务的应用程序。如果该应用程序没有声明“提醒事项”用途说明,请求会在到达 EventKit 前被拒绝。从 v1.0.4 开始,二进制文件会自行承担此责任,因此提示不再取决于宿主应用。如果错误仍然存在,请检查归因信息:
log show --last 3m --predicate 'process == "tccd"' --info --debug | grep -i reminder
AttributionChain 行应将 reminders-eventkit 列为 responsible。如果列出的是宿主应用,则自行归因未生效——提交问题时请附上该日志行。
首次启动时二进制文件被隔离 — 发行版本均已签名并经过公证,因此不应出现这种情况。请验证:
BIN=~/Library/Application\ Support/Claude/Claude\ Extensions/local.mcpb.high5-ventures-gmbh.apple-reminders/bin/reminders-eventkit
codesign --verify --verbose "$BIN"
spctl --assess --type execute "$BIN"
如果任一项验证失败,则该副本可能已被篡改;请从 Releases 重新下载。
“找不到列表”或“存在多个同名列表” — 提醒事项列表会按精确名称匹配。先使用 get_lists 查看可用名称。对于重名列表,错误响应会包含一个 candidates 数组,其中带有稳定的 calendar_identifier;请使用 id:<calendar_identifier> 作为列表参数再次调用。
已标记的提醒事项返回空结果 — EventKit 不会公开 flagged 属性。Claude Code 技能包为需要此查询的用户提供了 AppleScript 回退方案(skills/apple-reminders/scripts/get_flagged.applescript)。.mcpb 包不包含此回退方案,因为 Claude Desktop 无法访问 shell。
仍然无法解决? 请提交问题 → 支持。
支持
- Bug 报告和功能请求: https://github.com/high5-ventures/apple-reminders-for-claude/issues
- 安全漏洞:
[email protected]— 请参阅 SECURITY.md - 一般联系:
[email protected]
架构
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
一个 Swift 源文件 → 一个二进制文件 → 三种分发方式。构建内部细节请参阅 CONTRIBUTING.md。
许可证
版权所有 © 2026 high5 ventures GmbH。根据 MIT License 发布 — 请参阅 LICENSE。
本项目与 Apple Inc. 或 Anthropic PBC 无关,也未获得其认可。
“Apple”和“Reminders”是 Apple Inc. 的商标。“Claude”是 Anthropic PBC 的商标。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。