Apple EventKit MCP服务器
一个模型上下文协议(MCP)服务器,为Claude Desktop提供在macOS上访问Apple日历和提醒的权限。
特性
日历操作
- 列出日历:查看所有可用日历
- 列出事件:获取日期范围内的事件
- 搜索事件:按标题、位置或注释中的文本搜索
- 创建事件:添加带有位置、注释、URL和标签的新日历事件
- 编辑事件:修改现有事件(具有重复事件支持)
- 删除事件:删除事件(支持重复事件)
提醒操作
- 列出提醒列表:查看所有提醒列表
- 列出提醒:使用过滤器获取提醒(已完成,截止日期)
- 搜索提醒:按标题或注释中的文本搜索
- 创建提醒:添加带有截止日期、优先级和标签的新提醒
- 编辑提醒:修改现有提醒
- 完成提醒:将提醒标记为已完成
- 删除提醒:删除提醒
标签系统
由于苹果的EventKit不支持原生标签,因此该服务器实现了基于标签的标签系统。标签存储为 #hashtags 在笔记字段末尾,通过iCloud同步。
安装
先决条件
- macOS 10.15或更高版本
- Python 3.10或更高版本
- 紫外线 (推荐)或pip
步骤1:授予权限
在使用MCP服务器之前,您需要授予日历和提醒权限。
从终端运行安装脚本:
cd /path/to/apple-eventkit-mcp
uv run python scripts/setup_permissions.py这将触发系统权限对话框。单击“确定”以授予对日历和提醒的访问权限。
如果对话框未出现,手动授予权限:
- 打开 系统设置 > 隐私和安全 > 日历
- 允许终端(和/或Python解释器)访问
- 打开 系统设置 > 隐私和安全 > 提醒事项
- 允许终端(和/或Python解释器)访问
步骤2:配置Claude桌面
将此服务器添加到您的Claude Desktop配置中。
打开 ~/Library/Application Support/Claude/claude_desktop_config.json 并添加:
{
"mcpServers": {
"apple-eventkit": {
"command": "/path/to/uv",
"args": [
"--directory",
"/path/to/apple-eventkit-mcp",
"run",
"python",
"-m",
"apple_eventkit_mcp.server"
]
}
}
}替换 /path/to/uv 随着输出 which uv 和 /path/to/apple-eventkit-mcp 使用您的实际安装路径。
步骤3:重新启动克劳德桌面
完全退出并重新启动Claude Desktop。您应该在聊天输入区域看到MCP服务器指示器(锤子图标)。
使用示例
配置后,您可以要求Claude:
- “显示我本周的日历事件”
- “明天下午2点创建一个名为“团队同步”的会议,持续1小时”
- “列出本周到期的提醒”
- “创建一个提醒,以高优先级“审查公关”,周五到期”
- “搜索包含'牙医'的日历事件”
- “将我的‘购买杂货’提醒标记为完成”
可用工具
权限工具
| 工具 | 说明 |
|---|---|
eventkit_check_permissions | 检查日历和提醒权限状态 |
日历工具
| 工具 | 说明 |
|---|---|
calendar_list_calendars | 列出所有可用日历 |
calendar_list_events | 列出日期范围内的事件 |
calendar_get_event | 按ID获取事件详细信息 |
calendar_search_events | 按文本/标签搜索事件 |
calendar_create_event | 创建新事件 |
calendar_edit_event | 编辑现有事件 |
calendar_delete_event | 删除事件 |
提醒工具
| 工具 | 说明 |
|---|---|
reminders_list_lists | 列出所有提醒列表 |
reminders_list | 使用过滤器列出提醒 |
reminders_get | 按ID获取提醒详细信息 |
reminders_search | 按文本/标签搜索提醒 |
reminders_create | 创建新提醒 |
reminders_edit | 编辑现有提醒 |
reminders_complete | 将提醒标记为已完成 |
reminders_delete | 删除提醒 |
故障排除
“权限被拒绝”错误
- 运行安装脚本:
uv run python scripts/setup_permissions.py - 如果这不起作用,请在“系统设置”中手动授予权限
- 确保Claude Desktop(或其使用的Python解释器)具有访问权限
服务器未出现在Claude Desktop中
- 检查JSON配置是否存在语法错误
- 验证路径是否正确(使用绝对路径)
- 在以下网址查看克劳德桌面日志
~/Library/Logs/Claude/mcp-server-apple-eventkit.log - 尝试手动运行服务器进行测试:
cd /path/to/apple-eventkit-mcp
uv run python -m apple_eventkit_mcp.server未显示事件/提醒
- 检查是否选择了正确的日历或提醒列表
- iCloud同步可能需要一点时间才能反映更改
- 验证您查询的日期范围是否包括项目
标签如何工作
由于EventKit不支持本机标签,因此此服务器将标签存储为注释字段末尾的哈希标签:
Your note content here
#work #high_priority标签有:
- 日历和提醒应用程序中的可读性
- 通过iCloud与物品同步
- MCP服务器可搜索
- 自动规范化(空格变为下划线、小写)
许可证
麻省理工学院
