内容
# 时间守护者
一个小型、无依赖的MCP扩展,为Claude Code提供时钟和秒表功能。这样你就可以说 *"处理这件事2小时"*,而Claude可以实际跟踪截止日期,而不是靠猜测。
它分为两部分:
- **时钟** — 一个MCP服务器(`server.js`),提供时间和倒计时工具。
- **观察者** — 一个可选的Claude Code技能(`skills/vigil`),将时间盒转化为**自主观察**:给Claude一个初始任务和结束时间,它会根据自己的判断和你的目标列表,递归扩展范围,并在整个持续时间内持续推进有意义的工作,而不是在字面任务完成后立即停止。参见下面的[观察者技能](#观察者技能)。
## 新增工具
| 工具 | 功能 |
|------|--------------|
| `get_current_time` | 获取当前日期和时间(ISO格式,本地时间,Unix毫秒,时区)。 |
| `start_timer` | 开始一个命名倒计时,例如 `label="session", duration="2h"`。 |
| `check_timer` | 查看计时器运行时间,剩余时间,是否过期。 |
| `list_timers` | 列出所有活动计时器及其状态。 |
| `cancel_timer` | 停止一个计时器。 |
持续时间支持 `2h`、`30m`、`90s`、`1h30m` 或纯秒数。
## 使用方法
直接与Claude对话:
> "重构解析器并测试边缘情况2小时 — 边工作边查看时钟,时间到了就停止。"
Claude会调用 `start_timer` 一次,然后在工作块之间轮询 `check_timer`。当返回 `expired: true` 时,它会停止。
**注意:每隔几秒检查一次**:Claude只有在执行操作时才会采取行动 — 它本身无法按实时间隔触发。它会在工作的自然步骤之间检查计时器。对于真正的时钟心跳(每N秒唤醒一次,即使空闲),请将此功能与Claude Code的 `/loop` 命令配对:
`/loop 30s check the timer and keep going`。
## 安装(此机器上已完成)
在用户范围内注册,命令如下:
```bash
claude mcp add timekeeper --scope user -- node "D:/Users/gamma/Documents/Claude/Projects/timekeeper/server.js"
```
要移除:`claude mcp remove timekeeper --scope user`
要验证:`claude mcp list`
计时器持续到 `timers.json` 文件中,该文件位于服务器旁边,因此它们在Claude Code会话之间持续存在,直到它们过期或您取消它们。
## 观察者技能
`skills/vigil/SKILL.md` 是一个Claude Code技能,基于时钟构建。MCP工具让Claude **知道** 时间,而观察者技能改变了Claude对时间盒的处理方式。
说 **"处理X,持续2小时"**,安装技能后,Claude会:
1. 启动一个 `vigil` 计时器(通过时钟)并声明明确的结束时间。
2. 调查你的目标列表(内存索引),以确保扩展基于实际优先级,而不是临时决定。
3. 分周期工作,每个子目标完成后 **递归** 而不是停止 — **深化**(加强/验证刚刚完成的内容),**扩展**(进行同一项目的下一个部分),或 **提升**(选择下一个最高杠杆的目标)— 大声叙述增长的范围树以便你调整。
4. 每个周期轮询计时器,持续工作直到计时器过期;仅在遇到真正阻塞的情况时才提前停止(凭证,不可逆或公共操作,真正的意图分叉)。
5. 计时器过期时,提交 **活动报告** — 范围树,已验证的内容,遇到的阻塞,以及下一个观察者应该开始的位置。
它带有防护措施:不会推送公共内容,不会破坏实时安装,不会采取不可逆或面向外部的操作而没有检查,并且依赖于诸如 **行动而不是过度请求** 和 **不要在困难时选择容易的胜利** 这样的判断规则。
**安装技能**(每个用户):
```bash
mkdir -p ~/.claude/skills
cp -r skills/vigil ~/.claude/skills/vigil
```
然后,当使用诸如 "处理X,持续N小时 / 直到 <时间>" 的措辞时,它会自动触发,或者你可以主动调用:
`/vigil <task> until <time>`。
**跨完整持续时间**。单个响应回合不能持续两个小时,因此请将技能与Claude Code的 `/loop` 命令配对以实现时钟心跳:
```
/loop 5m /vigil harden the parser until 4pm
```
每次触发,Claude都会检查计时器,完成一个实际工作周期,并在计时器显示过期时停止循环。
> 注意:观察者技能是一种 **自主权的持续授予**。仅当您真正希望Claude在步骤之间无需询问继续工作和扩展范围时,才安装它。时钟(MCP服务器)本身在没有观察者技能的情况下也很有用。
## 为什么是零依赖?
MCP标准输入/输出协议(换行符分隔的JSON-RPC 2.0)在 `server.js` 中手动实现。无需 `npm install`,不会出现依赖问题 — 只需Node.js。