日历和提醒服务

一个原生Swift MCP服务器,为AI助手提供对macOS日历和提醒事项的完全访问权限,支持事件和提醒的CRUD操作、搜索、批量操作等功能。

  • by RodrigoCSoares
  • Swift
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 RodrigoCSoares/mcp-macos-calendar

使用说明

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)