mcp macos日历
用于macOS日历和提醒的原生Swift MCP服务器。让AI助手(Claude Desktop、OpenCode等)通过以下方式完全访问您的日历和提醒列表 EventKit 的.
完全用Swift编写 --没有桥,没有包装。直接使用苹果的EventKit框架,以获得最大的可靠性和性能。
特性
- 事件和提醒的完整CRUD
- 按文本搜索事件和提醒
- 便利工具:
today,tomorrow,list_upcoming,complete_reminder - 时间意识:
get_current_time工具和服务器指令,以便代理知道当前日期、时间和时区 - 批量操作(一次完成多个提醒)
- 重复规则(每日、每周、每月、每年,带高级选项)
- 与会者(只读)和可用性检查
- 多重报警支持
- 适用于所有日历源(iCloud、Exchange、Google、CalDAV、本地)
- 两种传输模式:stdio(用于克劳德桌面/OpenCode)和流式HTTP
- 用于浏览日历和资源的资源
- 严格的Swift 6并发
需求
- macOS 14.0(索诺玛)或更高版本
- 日历和提醒权限(首次运行时提示)
安装
预构建二进制文件(推荐)
从下载最新的通用二进制文件 :
# Download and extract the latest release
curl -L https://github.com/RodrigoCSoares/mcp-macos-calendar/releases/latest/download/mcp-macos-calendar-macos-universal.tar.gz | tar xz
# Move to a directory in your PATH
mv mcp-macos-calendar /usr/local/bin/无需Xcode或Swift工具链。
薄荷
如果你有 薄荷 安装:
mint install RodrigoCSoares/mcp-macos-calendar从源代码构建
需要Swift 6.0+(Xcode 16+)。
git clone https://github.com/RodrigoCSoares/mcp-macos-calendar.git
cd mcp-macos-calendar
swift build -c release二进制文件将位于 .build/release/MCPMacOSCalendar.
设置
克劳德桌面版
添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"calendar": {
"command": "mcp-macos-calendar",
"args": ["--transport", "stdio"]
}
}
}如果二进制文件不在您的PATH,请改用完整路径(例如。/usr/local/bin/mcp-macos-calendar).
OpenCode
添加到您的OpenCode配置(~/.config/opencode/opencode.json):
{
"mcp": {
"calendar": {
"type": "local",
"command": ["mcp-macos-calendar", "--transport", "stdio"],
"enabled": true
}
}
}HTTP模式
对于支持Streamable HTTP传输的客户端:
mcp-macos-calendar --transport http --port 8080MCP端点将在 http://127.0.0.1:8080/mcp.
权限
首次运行时,macOS会提示您授予日历和提醒访问权限。您还可以在中启用这些功能 系统设置>隐私和安全>日历 和 提醒事项.
如果您拒绝提醒访问,服务器仍将处理日历事件——提醒工具将返回错误。
工具
效用
| 工具 | 说明 |
|---|---|
get_current_time | 获取系统的当前日期、时间和时区 |
事件
| 工具 | 说明 |
|---|---|
list_events | 按日期范围查询事件,可选择按日历筛选 |
get_event | 按ID获取活动详细信息,包括与会者 |
create_event | 创建带有标题、时间、位置、注释、URL、警报、重复的事件 |
update_event | 更新任何事件字段(支持部分更新) |
delete_event | 删除事件(单次发生或全部未来) |
search_events | 在事件标题、注释和位置之间进行全文搜索 |
list_upcoming | 列出接下来的N个即将发生的事件(不需要日期范围) |
move_event | 将事件移动到新时间(保留持续时间) |
duplicate_event | 将事件克隆到其他日期/时间 |
list_recurring_events | 列出日期范围内具有重复规则的事件 |
today | 列出今天的所有事件(无需参数) |
tomorrow | 列出明天的所有活动(无需参数) |
提醒事项
| 工具 | 说明 |
|---|---|
list_reminders | 列表提醒--按列表、状态(全部/未完成/已完成)、日期范围筛选 |
get_reminder | 按ID获取提醒详细信息 |
create_reminder | 创建带有标题、注释、截止日期、优先级、警报、重复的提醒 |
update_reminder | 更新提醒字段,标记完成/未完成 |
delete_reminder | 删除提醒 |
search_reminders | 在提醒标题和注释中进行全文搜索 |
complete_reminder | 将提醒标记为完成 |
uncomplete_reminder | 将已完成的提醒标记为不完整 |
list_overdue_reminders | 列出过期未完成的提醒 |
batch_complete_reminders | 将多个提醒同时标记为完成 |
日历和来源
| 工具 | 说明 |
|---|---|
list_calendars | 列出事件日历和/或提醒列表 |
get_calendar | 按ID或姓名获取日历详细信息 |
create_calendar | 在源下创建新的日历或提醒列表 |
delete_calendar | 删除日历(及其所有事件/提醒) |
rename_calendar | 重命名现有日历或提醒列表 |
list_sources | 列出日历源(iCloud、Exchange、本地等) |
check_availability | 查找日期范围内的忙/闲时段 |
资源
| URI | 描述 |
|---|---|
calendars://event-calendars | 包含源和类型信息的所有事件日历 |
calendars://reminder-lists | 所有提醒列表 |
calendars://sources | 日历源(iCloud、Exchange等) |
CLI选项
USAGE: mcp-macos-calendar [--transport ] [--port
] [--host ] [--log-level ]
OPTIONS:
-t, --transport Transport mode: stdio or http (default: stdio)
-p, --port
HTTP port, only for http transport (default: 8080)
--host HTTP host, only for http transport (default: 127.0.0.1)
-l, --log-level trace, debug, info, notice, warning, error, critical (default: info)
--version Show the version
-h, --help Show help information路线图
- \[\]自制水龙头(
brew install RodrigoCSoares/tap/mcp-macos-calendar)
