关于 jmap-calendar-mcp
jmap-calendar-mcp 是一个 Python MCP 服务,可查看和管理支持 JMAP 日历功能的服务器上的日历,包括 Stalwart 1.0 及更高版本。它面向 Agent 使用,默认关闭删除事件和发送邀请。
主要功能
- 01列出日历及默认日历
- 02按时间范围和文本查找事件
- 03创建和更新事件
- 04搜索时展开重复事件
- 05需显式启用删除和邀请
适用场景
- 01查看即将发生的日历事件
- 02安排或调整会议
- 03按日期范围搜索重复事件
- 04允许 Agent 受控地修改日历
MCP 相关
该服务向 MCP 客户端提供日历列表、搜索、创建、更新以及可选的删除工具。它使用配置的 JMAP 会话和 bearer token 连接服务器。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx jmap-calendar-mcpJMAP_SESSION_URLJMAP session URL, usually https://<host>/.well-known/jmapJMAP_BEARER_TOKEN密钥API key for the account, limited to calendar permissionsJMAP_ALLOW_INVITES1 to allow sending invitations when a call asks for itJMAP_ALLOW_DELETE1 to offer delete_calendar_event本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
4收录的工具列表 · 更新于 1 周前
此工具无需参数。
详细介绍
jmap-calendar-mcp
一个 MCP 服务,让 AI Agent 能查看你的日历、查找事件,并在任何支持 Calendars 的 JMAP 服务上创建、修改或(在你允许的情况下)删除事件,例如 Stalwart 1.0 及更高版本。
仅使用 Python 标准库的单个文件。
工具
| 工具 | 功能 |
|---|---|
list_calendars | 查看账户中的日历,以及哪个是默认日历 |
find_calendar_events | 查找指定时间范围内的事件(默认:未来 30 天),可选择按文本匹配;重复事件会展开 |
create_calendar_event | 创建新事件:标题、开始时间、时区、时长或全天、描述、地点、参与者 |
update_calendar_event | 仅修改现有事件中指定的字段,或将其移至其他日历 |
delete_calendar_event | 删除事件;若为重复事件,则删除所有发生项。仅在设置 JMAP_ALLOW_DELETE=1 时提供 |
设计上可放心交由 Agent 使用:
- 默认不允许删除。 Agent 可以移动或重命名事件,但不能删除事件。设置
JMAP_ALLOW_DELETE=1后才会提供delete_calendar_event;该工具不会发送取消通知。 - 默认不发送邀请。 添加参与者时不会向他们发送邮件。发送邀请需要同时在服务端设置
JMAP_ALLOW_INVITES=1,并在调用时设置send_invitations: true。 - 仅使用具有日历权限的密钥,这样 Agent 就无法通过该密钥读取或发送邮件。
设置
-
为账户创建 API 密钥。在 Stalwart 中,在管理界面打开该账户(Directory → Accounts),将 密钥权限设为 Replace all permissions,并仅授予以下权限:
- 登录服务器
- JMAP:检索日历详情和属性
- JMAP:跟踪自指定状态以来的日历变更
- JMAP:检索日历事件详情
- JMAP:跟踪自指定状态以来的日历事件变更
- JMAP:搜索符合条件的日历事件
- JMAP:跟踪日历事件查询结果的变更
- JMAP:创建新的日历事件
- JMAP:修改现有日历事件
- JMAP:删除日历事件(仅在设置
JMAP_ALLOW_DELETE=1时)
这样,该密钥就无法读取或发送邮件。
-
将服务添加到 MCP 客户端。对于 Claude Code:
claude mcp add calendar \
-e JMAP_SESSION_URL=https://mail.example.com/.well-known/jmap \
-e JMAP_BEARER_TOKEN=your-api-key \
-- uvx jmap-calendar-mcp
对于多个账户,每个账户添加一个服务(calendar-work、calendar-home)。
| 变量 | 含义 |
|---|---|
JMAP_SESSION_URL | 服务的 JMAP 会话 URL,通常为 https://<host>/.well-known/jmap |
JMAP_BEARER_TOKEN | 账户的 API 密钥 |
JMAP_ALLOW_INVITES | 设为 1 时,允许在调用请求发送邀请;默认关闭 |
JMAP_ALLOW_DELETE | 设为 1 时,提供 delete_calendar_event;默认关闭 |
尽可能避免将密钥留在 shell 历史记录和配置文件中:在服务启动时从密码管理器或 密钥存储中加载。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。