apple-reminders-mcp-server
by yzheeng
README.md
# apple-reminders-mcp-server
一个基于 [MCP(Model Context Protocol)](https://modelcontextprotocol.io) 的 macOS 提醒事项工具服务。
通过 AppleScript 操作系统原生「提醒事项」,以标准 MCP 协议(stdio 传输)暴露增删改查工具,
可被任何 MCP 兼容的 Agent / Host 接入使用。
> 本项目从 [calendar-agent](https://github.com/yzheeng/calendar-agent) 的内置工具层重构而来——
> 将进程内硬编码的工具函数解耦为独立、可复用的 MCP Server。
## 提供的工具
| 工具 | 说明 |
| --- | --- |
| `create_reminder` | 创建提醒事项,支持指定截止时间 |
| `list_reminders` | 列出未完成提醒,支持按时间范围过滤 |
| `list_completed_reminders` | 列出已完成提醒,按完成时间范围过滤 |
| `update_reminder` | 修改指定提醒的标题或时间 |
| `complete_reminder` | 标记指定提醒为已完成 |
| `delete_reminder` | 删除指定提醒 |
## 环境要求
- macOS(依赖系统「提醒事项」与 AppleScript)
- Python 3.12+
- [uv](https://github.com/astral-sh/uv)
## 快速开始
```bash
git clone https://github.com/yzheeng/apple-reminders-mcp-server
cd apple-reminders-mcp-server
uv sync
uv run apple-reminders-mcp-server
```
首次调用工具时,macOS 会弹窗请求「自动化」权限(控制提醒事项),允许即可。
## 在 MCP Host 中接入
在你的 Host 配置中按如下方式声明(以通用 JSON 配置为例):
```json
{
"mcpServers": {
"reminders": {
"command": "uv",
"args": ["--directory", "/path/to/reminder-mcp-server", "run", "reminder-mcp-server"]
}
}
}
```
## 协议说明
- 传输方式:stdio(JSON-RPC 2.0,行分帧)
TDQS
A4.1/5.0
Scored across 6 tools
Disambiguation5/5
Each tool targets a distinct action: create, list (incomplete), list completed, complete, update, delete. No overlapping functionality.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_reminder, list_reminders, complete_reminder). No deviations.
Tool Count5/5
With 6 tools, the set covers the essential operations for reminders without bloat. It is well-scoped for the domain.
Completeness4/5
Covers full CRUD plus listing completed reminders. Missing a dedicated 'get' for a single reminder by ID, but list_reminders can serve that purpose. Minor gap.
Maintenance
ActivityInactive
ResponsivenessNo issues