calendar-mcp 是一个 Deno 单仓库项目,提供对 macOS 日历(Calendar)的访问能力,主要面向 LLM 集成场景。仓库地址为 https://github.com/wyattjoh/calendar-mcp。
项目包含两个包:
- @wyattjoh/calendar:用于只读访问 macOS 日历数据库的核心库。
- @wyattjoh/calendar-mcp:用于 LLM 集成的 Model Context Protocol(MCP)服务器。
主要能力(MCP 服务器提供的工具):
- get-recent-events:获取近期过去的日历事件。可选参数 limit(事件数量,1-100,默认 10)、includeRescheduled(是否包含原始重新安排的事件,默认 false)。
- get-upcoming-events:获取即将到来的日历事件。可选参数同上 limit 和 includeRescheduled。
- get-events-by-date-range:获取指定日期范围内的事件。必需参数 startDate(ISO 格式起始日期,例如 "2024-01-01")、endDate(ISO 格式结束日期,例如 "2024-01-31");可选参数 includeRescheduled。
- search-events:按标题/摘要搜索事件。必需参数 query(搜索查询);可选参数 limit(最大结果数,1-100,默认 20)、timeRange("all"、"past" 或 "future",默认 "all")、includeRescheduled。
- get-todays-events:获取今天安排的所有事件,支持冲突检测。可选参数 includeRescheduled。
- get-event-details:获取特定事件的详细信息,包括地点、URL 和重复规则。必需参数 eventId(事件的 ROWID)。
使用方式:
- 环境要求:macOS(Calendar 仅在 macOS 上可用)、Deno 2.x 或更高版本、对 ~/Library/Calendars/Calendar.sqlitedb 的读取权限。
- 与 Claude Desktop 应用集成时,可将配置添加到 claude_desktop_config.json。
- 从源码运行:克隆仓库后,进入 packages/calendar-mcp 目录,执行 deno run --allow-read --allow-env --allow-ffi --allow-sys mod.ts,或使用任务 deno task dev。
限制:
- 服务器以只读方式访问日历数据库,无法创建、修改或删除任何事件。
- 仅访问本地数据。
- 仅支持 macOS 系统。
- 使用 Deno 单仓库结构,根目录命令会影响所有包。
关于响应格式和详细事件字段的更多信息,资料中暂未提供具体细节。