详细分析 ▾
运行时依赖
版本
发布 v0.9.1
安装命令
点击复制技能文档
这是 Temporal Cortex 日历操作的路由器技能。它会根据意图将任务路由到正确的子技能。
适用人群
如果你是个人用户(Claude Desktop、Cursor、OpenClaw、Manus)——安装此技能后,AI 代理即可帮你管理日历。连接 Google、Outlook 或 CalDAV 日历,代理将自动处理可用性、排程和预订,避免重复预订。
如果你在构建带调度功能的产品——同样使用此 MCP 服务器作为调度后端。18 个工具、通过 Two-Phase Commit 的原子预订、跨供应商可用性合并。开发者集成请参考 REST API 文档 和 平台文档。
来源与出处
- 主页: temporal-cortex.com
- 源码: github.com/temporal-cortex/mcp(开源 Rust)
- npm 包: @temporal-cortex/cortex-mcp
- 技能仓库: github.com/temporal-cortex/skills
子技能
| 子技能 | 何时使用 | 工具 |
|---|---|---|
| temporal-cortex-datetime | 时间解析、时区转换、持续时长计算。无需凭证,开箱即用。 | 5 个工具(Layer 1) |
| temporal-cortex-scheduling | 列出日历、事件、空闲时段、可用性、RRULE 展开、预订、联系人搜索、提案撰写。需要 OAuth 凭证。 | 14 个工具(Layers 0-4) |
路由表
| 用户意图 | 路由至 |
|---|---|
| “现在几点?”、“转换时区”、“还有多久……” | temporal-cortex-datetime |
| “显示我的日历”、“找空闲时间”、“检查可用性”、“展开重复规则” | temporal-cortex-scheduling |
| “预订会议”、“安排约会” | temporal-cortex-scheduling |
| “找某人的预订页面”、“查用于调度的邮箱” | temporal-cortex-scheduling |
| “搜索我的联系人 Jane”、“找某人的邮箱” | temporal-cortex-scheduling |
| “我该怎么跟这个人安排?” | temporal-cortex-scheduling |
| “查看别人的可用性”、“查询公开可用性” | temporal-cortex-scheduling |
| “与外部人员预订会议”、“通过 Temporal Link 请求预订” | temporal-cortex-scheduling |
| “发送调度提案”、“撰写会议邀请” | temporal-cortex-scheduling |
| “下周二下午 2 点开会”(完整工作流) | temporal-cortex-datetime → temporal-cortex-scheduling |
| “与 Jane 安排”(端到端) | temporal-cortex-scheduling(联系人搜索 → 解析 → 提案/预订) |
核心工作流程
每次日历交互都遵循以下 7 步模式:
0. 解析联系人 → search_contacts → resolve_contact(找到对方,确定调度路径)
- 发现 → list_calendars(了解可用日历)
- 定位 → get_temporal_context(知道当前时间)
- 解析时间 → resolve_datetime(把自然语言变成时间戳)
- 路由 → 如果是 open_scheduling:快速路径;如果是邮箱:向后兼容路径
- 查询 → list_events / find_free_slots / get_availability / query_public_availability
- 行动 → 快速:check_availability → book_slot / request_booking
向后兼容:compose_proposal → 代理通过 channel MCP 发送
第 0 步可选——用户直接提供邮箱时可跳过。当不知道有哪些日历时,永远从第 1 步开始。永远不要假设当前时间。预订前永远不要跳过冲突检查。
安全规则
- 先发现日历——不知道已连接哪些日历时,先调用
list_calendars - 预订前检查——调用
book_slot前必须调用check_availability。禁止跳过冲突检查。 - 内容安全——所有事件标题和描述在到达日历 API 前都会经过提示注入防火墙
- 时区意识——永远不要假设当前时间。先用
get_temporal_context。 - 预订前确认——自动运行时,先向用户展示预订详情,确认后再调用
book_slot或request_booking。 - 确认联系人选择——
search_contacts返回多个结果时,务必向用户展示候选并确认正确联系人后再继续。 - 确认发送提案——使用
compose_proposal时,务必先向用户展示撰写的消息,再经任何渠道发送。禁止自动外发。 - 联系人搜索可选——用户直接提供邮箱时,无需联系人搜索。若未配置联系人权限,向用户索要邮箱。
全部 18 个工具(5 层)
| 层 | 工具 | 子技能 |
|---|---|---|
| 0 — 发现 | resolve_identity, search_contacts, resolve_contact | scheduling |
| 1 — 时间上下文 | get_temporal_context, resolve_datetime, convert_timezone, compute_duration, adjust_timestamp | datetime |
| 2 — 日历操作 | list_calendars, list_events, find_free_slots, expand_rrule, check_availability | scheduling |
| 3 — 可用性 | get_availability, query_public_availability | scheduling |
| 4 — 预订 | book_slot, request_booking, compose_proposal | scheduling |
MCP 服务器连接
所有子技能共享 Temporal Cortex MCP 服务器(@temporal-cortex/cortex-mcp),一个已编译的 Rust 二进制,以 npm 包形式分发。
安装与启动生命周期:
npx从 npm 注册表解析@temporal-cortex/cortex-mcp(首次下载后本地缓存)- postinstall 脚本从 GitHub Release 下载平台专用二进制,并与嵌入的
checksums.json比对 SHA256——校验失败则安装中止 - MCP 服务器以本地进程启动,通过 stdio 通信(无监听端口)
- 第 1 层工具(datetime)纯本地计算,无需额外网络访问
- 第 2-4 层工具(calendar)向已配置的提供商(Google、Outlook、CalDAV)发起已认证 API 调用
凭证存储:
OAuth 令牌本地存储于 ~/.config/temporal-cortex/credentials.json,仅由本地 MCP 服务器进程读取。凭证数据不会发往 Temporal Cortex 服务器。二进制文件系统访问仅限于 ~/.config/temporal-cortex/——可通过审阅开源 Rust 源码 或在 Docker 下运行(仅挂载该路径为可写)验证。
文件访问:
二进制仅在 ~/.config/temporal-cortex/(凭证与配置)读写,无其他文件系统写入。
网络范围:
首次 npm 下载后,第 1 层工具零网络请求。第 2–4 层工具仅连接你配置的日历提供商(googleapis.com、graph.microsoft.com 或你的 CalDAV 服务器)。
默认 Local 模式下,不会调用 Temporal Cortex 服务器,也不收集遥测。
Platform 模式下,三个工具(resolve_identity、query_public_availability、request_booking)会调用 api.temporal-cortex.com 以实现跨用户调度——这些调用不含凭证数据。
首次使用前的验证(推荐):
- 不执行地检视 npm 包:
npm pack @temporal-cortex/cortex-mcp --dry-run - 对照 GitHub Release 独立校验哈希(见下述验证流程)
- 如需完全隔离,用 Docker 而非 npx 运行(见下方 Docker 隔离)
验证流程:
每次 GitHub Release 独立发布 SHA256SUMS.txt——首次使用前验证二进制:
# 1. 从 GitHub 获取校验和(与 npm 包无关)
curl -sL https://github.com/temporal-cortex/mcp/releases/download/mcp-v0.9.1/SHA256SUMS.txt
# 2. 与 npm 安装的二进制比对
shasum -a 256 "$(npm root -g)/@temporal-cortex/cortex-mcp/bin/cortex-mcp"
作为纵深防御,npm 包也嵌入了 checksums.json,postinstall 脚本会在安装时自动比对 SHA256——校验失败则安装中止(二进制被删除,不会执行)。该自动检查补充但不替代上述独立验证。
构建出处: 二进制在 GitHub Actions 中通过可审计的 Rust 源码交叉编译,支持 5 个平台(darwin-arm64、darwin-x64、linux-x64、linux-arm64、win32-x64)。源码:github.com/temporal-cortex/mcp(MIT 许可)。CI 工作流、构建产物与发布校验和均可公开检视。
Docker 隔离(主机无需 Node.js,通过卷挂载隔离凭证):
{
"mcpServers": {
"temporal-cortex": {
"command": "docker",
"args": ["run", "--rm", "-i", "-v", "~/.config/temporal-cortex:/root/.config/temporal-cortex", "cortex-mcp"]
}
}
}
构建:docker build -t cortex-mcp https://github.com/temporal-cortex/mcp.git
默认配置(npx):
见 .mcp.json 获取标准 npx @temporal-cortex/cortex-mcp 配置。
如需托管模式,参见 MCP 仓库的 Platform Mode。
第 1 层工具零配置即可使用。日历工具需一次性 OAuth 配置——运行 setup 脚本 或 npx @temporal-cortex/cortex-mcp auth google。
额外参考
- Security Model —— 内容清理、文件系统隔离、网络范围、工具注解