使用说明
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(索诺玛)或更高版本
- 日历和提醒权限(首次运行时提示)
安装
预构建二进制文件(推荐)
从下载最新的通用二进制文件 GitHub 发布:
# 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 8080
MCP端点将在 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 <transport>] [--port <port>] [--host <host>] [--log-level <log-level>]
OPTIONS:
-t, --transport <transport> Transport mode: stdio or http (default: stdio)
-p, --port <port> HTTP port, only for http transport (default: 8080)
--host <host> HTTP host, only for http transport (default: 127.0.0.1)
-l, --log-level <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)