使用说明
Apple Reminders MCP 服务器
一个模型上下文协议(MCP)服务器,实现Claude与macOS上的Apple Reminders应用之间的无缝集成。该服务器采用TypeScript和AppleScript构建,以确保可靠地访问原生的Reminders功能。
特点
- 完整的提醒管理创建、读取、更新和删除提醒
- 列表管理跨多个列表访问和管理提醒事项
- 高级过滤按文本搜索,按完成状态筛选,或针对特定列表
- 丰富的元数据截止日期、优先级、备注、创建/修改时间戳
- 原生集成与AppleScript直接集成,无任何外部依赖
- 类型安全使用TypeScript构建,以确保可靠性和可维护性
要求
- **macOS(发音为“Mac OS”)**此服务器使用AppleScript,并需要安装了Reminders应用的macOS系统
- Node.js版本16或更高版本
- Claude Desktop(可译为“Claude桌面版”或保持原样,若“Claude”是特定产品名且无需意译) 或者 **Claude 命令行接口(CLI)**用于MCP集成
安装
来自来源
- 克隆此存储库:
git clone https://github.com/dbmcco/apple-reminders-mcp.git
cd apple-reminders-mcp
- 安装依赖项:
npm install
- 构建服务器:
npm run build
配置
对于Claude Desktop
将此添加到您的Claude桌面配置文件中(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"reminders": {
"command": "node",
"args": ["/absolute/path/to/apple-reminders-mcp/dist/index.js"]
}
}
}
对于Claude Code CLI
运行此命令:
claude mcp add -s user reminders node /absolute/path/to/apple-reminders-mcp/dist/index.js
重要的替换 /absolute/path/to/apple-reminders-mcp 以及你克隆此仓库的实际路径。
可用的MCP工具
list_reminder_lists
获取所有可用的提醒列表。
退货包含列表的数组 name 和 id 属性。
示例:
// Response:
[
{"name": "Reminders", "id": "x-apple-reminder://..."},
{"name": "Work", "id": "x-apple-reminder://..."},
{"name": "Personal", "id": "x-apple-reminder://..."}
]
get_reminders
检索提醒,并可选择性地进行过滤。
参数:
listName(字符串,可选):通过特定列表名称进行过滤completed(布尔值,可选):按完成状态过滤searchTerm(字符串,可选):在名称和正文中搜索
回报包含完整元数据的提醒对象数组。
示例:
// Get all incomplete reminders
get_reminders(undefined, false)
// Get all reminders from "Work" list
get_reminders("Work")
// Get completed reminders from "Personal" list
get_reminders("Personal", true)
// Search for reminders containing "meeting"
get_reminders(undefined, undefined, "meeting")
create_reminder
在指定列表中创建一个新的提醒。
参数:
name(字符串,必填):提醒标题listName(字符串,必填):目标列表名称body(字符串,可选):备注/描述dueDate(字符串,可选):截止日期,格式为“MM/DD/YYYY HH:MM AM/PM”priority(数字,可选):0=无,1=高,5=中,9=低
退货创建的提醒的ID。
示例:
// Simple reminder
create_reminder("Buy groceries", "Personal")
// Reminder with due date and priority
create_reminder(
"Submit report",
"Work",
"Include Q4 metrics",
"12/31/2025 5:00 PM",
1
)
// Reminder with notes
create_reminder(
"Call dentist",
"Personal",
"Schedule annual checkup"
)
update_reminder
更新现有的提醒。
参数:
reminderId(字符串,必填):要更新的提醒的IDname(字符串,可选):新标题body(字符串,可选):新备注completed(布尔值,可选):完成状态dueDate(字符串,可选):新的截止日期priority(数字,可选):新优先级
示例:
// Mark reminder as complete
update_reminder("x-apple-reminder://...", {completed: true})
// Update due date
update_reminder("x-apple-reminder://...", {
dueDate: "01/15/2026 2:00 PM"
})
// Update multiple fields
update_reminder("x-apple-reminder://...", {
name: "Updated title",
body: "New notes",
priority: 1
})
delete_reminder
永久删除提醒。
参数:
reminderId(字符串,必填):要删除的提醒的ID
示例:
delete_reminder("x-apple-reminder://...")
search_reminders
在名称或内容中按文本搜索提醒。
参数:
searchTerm(字符串,必填):要搜索的文本
退货匹配的提醒对象数组。
示例:
// Find all reminders mentioning "Claude"
search_reminders("Claude")
使用示例
示例1:日常任务管理
You: Show me all incomplete tasks from my "Today" list
Claude: [uses get_reminders("Today", false)]
You: Mark the first one as complete
Claude: [uses update_reminder with completed: true]
示例2:快速捕捉
You: Remind me to call John tomorrow at 2pm
Claude: [uses create_reminder with due date]
示例3:项目组织
You: Show me all reminders related to the "Website" project
Claude: [uses search_reminders("Website")]
You: Move them all to the "Work" list
Claude: [uses update_reminder for each result]
示例4:每周回顾
You: What did I complete this week in my "Personal" list?
Claude: [uses get_reminders("Personal", true)]
数据模型
提醒对象
{
id: string; // Unique reminder ID
name: string; // Reminder title
body?: string; // Optional notes/description
completed: boolean; // Completion status
list: string; // Parent list name
dueDate?: string; // Optional due date
priority: number; // 0=none, 1=high, 5=medium, 9=low
creationDate: string; // When reminder was created
modificationDate: string; // When last modified
}
提醒列表对象
{
name: string; // List display name
id: string; // Unique list ID
}
发展
构建
npm run build
观看模式
npm run dev
直接运行服务器
npm run start
建筑学
这个MCP服务器采用了整洁架构:
- MCP服务器层 (
index.ts): 处理MCP协议通信 - AppleScript 执行器 (
applescript-executor.ts):管理所有与“提醒事项”应用的交互 - 类型安全Zod验证与TypeScript确保可靠性
AppleScript 集成使用 osascript 为了实现直接系统集成,避免外部依赖和应用程序迁移问题。
故障排除
权限问题
如果你遇到权限错误,请确保:
- 终端(或您的应用程序)已获得提醒事项的自动化权限
- 前往“系统偏好设置”>“安全性与隐私”>“隐私”>“自动化”
- 启用运行此服务器的应用程序的访问权限
日期格式问题
截止日期必须使用以下格式: "MM/DD/YYYY HH:MM AM/PM"
示例:
"12/25/2025 9:00 AM""01/01/2026 11:30 PM"
提醒ID
提醒ID是系统生成的Apple URL(例如。, x-apple-reminder://...)。 它们在不同系统之间无法移植,但在单一macOS安装环境中是稳定的。
功劳/贡献
使用Model Context Protocol SDK,基于Claude(Anthropic)构建。
许可证
MIT 许可证 - 详情请参见 LICENSE 文件
做出贡献
欢迎贡献!请随时提交问题或拉取请求。
支持
对于问题、疑问或功能请求,请在GitHub上提交一个议题。