Apple 日历(iCloud)MCP 服务器
一个通过CalDAV管理Apple iCloud日历的模型上下文协议(MCP)服务器。 此构建为只读列出日历、列出/搜索事件以及查询空闲/忙碌状态。系统提供了创建/更新/删除工具,但已故意禁用。
目的
这台MCP服务器为AI助手提供了一个安全接口,使其能够使用CalDAV标准读取iCloud日历数据。
特点/功能
当前实施情况
list_calendars– 列出可用的日历(包括共享日历)。list_events– 列出时间窗口内的事件;展开重复事件。search_events– 在窗口内对摘要/位置进行文本搜索。find_freebusy– 一个范围内的空闲/忙碌信息。create_event– 在此只读构建中存在但已禁用。update_event– 在此只读构建中存在但已禁用。delete_event– 在此只读构建中存在但已禁用。
先决条件
- 启用了MCP Toolkit的Docker Desktop
- Docker MCP CLI 插件(
docker mcp) - 带有iCloud账户的 已启用双因素认证(2FA) 和一个 应用专用密码
- 要设置的秘密:
- ICLOUD_APPLE_ID – 您的Apple ID电子邮件 - ICLOUD_APP_PASSWORD – 应用专用密码(来自appleid.apple.com) - ICLOUD_DEFAULT_CALENDAR – 可选的默认日历显示名称
- 默认时区:
America/New_York(通过……覆盖APPLECAL_TZ(如需)环境变量
使用示例
在Claude Desktop中,您可以询问:
- “🔍 显示我的日历”
list_calendars - “📅 我明天默认日历上有什么安排?” →
list_events(与)一起start/end - “🧭 查找接下来两周内的‘换班’事件”
search_events(与)一起;带着;具有q="shift" - “⛔ 试图添加一个事件”
create_event返回只读消息
示例工具提示(自然语言 → 参数化)
- “列出‘主页’上从2025年10月24日到2025年10月27日的事件”\
→ list_events(calendar="Home", start="2025-10-24T00:00:00-04:00", end="2025-10-27T23:59:59-04:00")
- “在默认日历中搜索接下来30天内的‘会议’”\
→ search_events(q="meeting")
- “今天‘工作’的日程空闲/繁忙情况”\
→ find_freebusy(calendar="Work", start="2025-10-23T00:00:00-04:00", end="2025-10-23T23:59:59-04:00")
