日历提醒管理服务

一个提供对Apple日历和提醒事项进行操作的MCP服务器,支持事件和提醒的创建、编辑、删除及搜索功能。

  • by harriscarl
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 snarris/apple-eventkit-mcp

使用说明

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

这将触发系统权限对话框。单击“确定”以授予对日历和提醒的访问权限。

如果对话框未出现,手动授予权限:

  1. 打开 系统设置 > 隐私和安全 > 日历
  2. 允许终端(和/或Python解释器)访问
  3. 打开 系统设置 > 隐私和安全 > 提醒事项
  4. 允许终端(和/或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 删除提醒

故障排除

“权限被拒绝”错误

  1. 运行安装脚本: uv run python scripts/setup_permissions.py
  2. 如果这不起作用,请在“系统设置”中手动授予权限
  3. 确保Claude Desktop(或其使用的Python解释器)具有访问权限

服务器未出现在Claude Desktop中

  1. 检查JSON配置是否存在语法错误
  2. 验证路径是否正确(使用绝对路径)
  3. 在以下网址查看克劳德桌面日志 ~/Library/Logs/Claude/mcp-server-apple-eventkit.log
  4. 尝试手动运行服务器进行测试:
    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服务器可搜索
  • 自动规范化(空格变为下划线、小写)

许可证

麻省理工学院