Apple Reminders MCP Server 
English | 简体中文
一个与 macOS 上的 Apple Reminders 原生集成的模型上下文协议(MCP)服务器。该服务器允许您通过标准接口与 Apple Reminders 进行交互。
功能
- 列出所有提醒事项和提醒事项列表
- 创建带有标题和可选详细信息的提醒事项
- 更新现有提醒事项(标题、笔记、截止日期、完成状态)
- 将提醒事项标记为已完成/未完成
- 为提醒事项添加笔记
- 为提醒事项设置截止日期
- 原生 macOS 集成
前置条件
- Node.js 18 或更高版本
- macOS(用于 Apple Reminders 集成所需)
- Xcode 命令行工具(用于编译 Swift 代码)
快速入门
通过 npm 全局安装:
npm install -g mcp-server-apple-reminders
配置
配置 Cursor
- 打开 Cursor
- 打开 Cursor 设置
- 在侧边栏中点击 "MCP"
- 点击 "添加新的全局 MCP 服务器"
- 使用以下设置配置服务器:
{ "mcpServers": { "apple-reminders": { "command": "mcp-server-apple-reminders", "args": [] } } }
配置 ChatWise
- 打开 ChatWise
- 进入设置
- 导航到工具部分
- 点击 "+" 按钮
- 使用以下设置配置工具:
- 类型:
stdio - ID:
apple-reminders - 命令:
mcp-server-apple-reminders - Args: (留空)
- 类型:
配置 Claude Desktop
您需要配置 Claude Desktop 以识别 Apple Reminders MCP 服务器。访问配置有两种方式:
选项 1:通过 Claude Desktop UI
- 打开 Claude Desktop 应用
- 从左上角菜单栏启用开发者模式
- 打开设置并导航到开发者选项
- 点击编辑配置按钮以打开
claude_desktop_config.json
选项 2:直接文件访问
对于 macOS:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
对于 Windows:
code %APPDATA%\Claude\claude_desktop_config.json
2. 添加服务器配置
将以下配置添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"apple-reminders": {
"command": "mcp-server-apple-reminders",
"args": []
}
}
}
3. 重启 Claude Desktop
为使更改生效:
- 完全退出 Claude Desktop(不只是关闭窗口)
- 重新启动 Claude Desktop
- 查找工具图标以验证 Apple Reminders 服务器已连接
使用示例
配置完成后,您可以要求 Claude 与您的 Apple Reminders 进行交互。以下是一些示例提示:
创建提醒事项
创建一个提醒事项 "购买杂货",时间安排在明天下午 5 点。
添加一个提醒事项 "给妈妈打电话",备注为 "询问周末计划"。
在我的 "工作" 列表中创建一个提醒事项 "提交报告",截止日期为下周五。
更新提醒事项
将提醒事项 "购买杂货" 的新标题更新为 "购买有机杂货"。
将 "给妈妈打电话" 提醒事项的截止日期更新为今天下午 6 点。
更新提醒事项 "提交报告" 并将其标记为已完成。
将 "购买杂货" 的备注更改为 "别忘了牛奶和鸡蛋"。
管理提醒事项
显示我所有的提醒事项。
列出我的 "购物" 列表中的所有提醒事项。
显示我的已完成提醒事项。
与列表交互
显示我所有的提醒事项列表。
显示我的 "工作" 列表中的提醒事项。
服务器将:
- 处理您的自然语言请求
- 与 Apple 的原生 Reminders 应用交互
- 向 Claude 返回格式化结果
- 维持与 macOS 的原生集成
可用的 MCP 工具
此服务器提供以下 MCP 服务,用于与 Apple Reminders 进行交互:
创建提醒事项
create_reminder(title: string, dueDate?: string, list?: string, note?: string, url?: string)
创建一个带有指定标题和可选参数的新提醒事项:
title: 提醒事项的标题(必需)dueDate: 可选的截止日期,格式为 'YYYY-MM-DD HH:mm:ss'(例如,'2025-03-12 10:00:00')list: 可选的提醒事项列表名称note: 可选的备注文本url: 可选的 URL
示例响应:
{
"content": [
{
"type": "text",
"text": "成功创建提醒事项:购买杂货,备注"
}
],
"isError": false
}
更新提醒事项
update_reminder(title: string, newTitle?: string, dueDate?: string, note?: string, completed?: boolean, list?: string, url?: string)
通过标题更新现有提醒事项。注意:如果多个提醒事项具有相同的标题,则仅更新找到的第一个提醒事项。
title: 要更新的提醒事项的当前标题(必需)newTitle: 提醒事项的新标题(可选)dueDate: 新的截止日期,格式为 'YYYY-MM-DD HH:mm:ss'(可选)note: 新的备注文本(可选)completed: 将提醒事项标记为已完成/未完成(可选)list: 包含提醒事项的列表名称(建议以提高准确性)url: 新的 URL(可选)
示例响应:
{
"content": [
{
"type": "text",
"text": "成功更新提醒事项 \"购买杂货\":标题为 \"购买有机杂货\",备注"
}
],
"isError": false
}
列出提醒事项
list_reminders(list?: string, showCompleted?: boolean, search?: string, dueWithin?: string)
列出所有提醒事项或特定列表中的提醒事项:
list: 可选的提醒事项列表名称showCompleted: 是否显示已完成的提醒事项(默认:false)search: 在标题或备注中搜索包含此文本的提醒事项dueWithin: 按截止日期范围筛选("今天"、"明天"、"本周"、"过期"、"无日期")
示例响应:
{
"reminders": [
{
"title": "购买杂货",
"list": "购物",
"isCompleted": false,
"dueDate": "2024-03-25 18:00:00",
"notes": "别忘了牛奶"
}
],
"total": 1,
"filter": {
"list": "购物",
"showCompleted": false
}
}
删除提醒事项
delete_reminder(title: string, list?: string)
通过标题删除提醒事项:
title: 要删除的提醒事项的标题(必需)list: 可选的包含提醒事项的列表名称(建议以提高准确性)
示例响应:
{
"content": [
{
"type": "text",
"text": "成功删除提醒事项:购买杂货"
}
],
"isError": false
}
移动提醒事项
move_reminder(title: string, fromList?: string, toList: string)
将提醒事项在不同列表之间移动:
title: 要移动的提醒事项的标题(必需)fromList: 可选的源列表名称toList: 目标列表名称(必需)
示例响应:
{
"content": [
{
"type": "text",
"text": "成功将提醒事项 '购买杂货' 移动到列表 '购物'"
}
],
"isError": false
}
列出提醒事项列表
list_reminder_lists()
返回所有可用的提醒事项列表。
示例响应:
{
"lists": [
{
"id": 1,
"title": "购物"
},
{
"id": 2,
"title": "工作"
}
],
"total": 2
}
许可证
MIT
贡献
欢迎贡献!请先阅读贡献指南。
开发
- 安装依赖项:
npm install
- 构建项目(TypeScript 和 Swift 二进制文件):
npm run build
项目结构
.
├── src/ # 源代码目录
│ ├── index.ts # 主入口
│ ├── server/ # MCP 服务器实现
│ ├── swift/ # 原生 Swift 集成代码
│ │ ├── bin/ # 编译后的 Swift 二进制文件
│ │ └── src/ # Swift 源文件
│ ├── tools/ # CLI 工具和实用工具
│ ├── types/ # TypeScript 类型定义
│ └── utils/ # 辅助函数和实用工具
├── dist/ # 编译后的 JavaScript 输出
├── node_modules/ # Node.js 依赖项
└── tests/ # 测试文件和测试实用工具
可用脚本
npm run build- 构建 TypeScript 代码和 Swift 二进制文件(启动服务器前必需)npm run dev- TypeScript 监视模式npm test- 运行测试套件npm start- 启动 MCP 服务器npm run clean- 清理构建工件
