diff --git a/forge-engine/README.md b/forge-engine/README.md index 16ce64f..7414e15 100644 --- a/forge-engine/README.md +++ b/forge-engine/README.md @@ -63,19 +63,39 @@ bun install } ``` -3. 注册为 Claude Code MCP server(`.claude.json` 或 `claude_desktop_config.json`): -```json -{ - "mcpServers": { - "engine": { - "command": "bun", - "args": ["path/to/forge-engine/engine-channel.ts"] - } - } -} +3. 注册 engine 为 Claude Code 的 MCP server(二选一): + + **方式 A(推荐)**:CLI 一行注册(user scope,所有 session 共享) + ```bash + claude mcp add --transport stdio --scope user engine -- bun /absolute/path/to/forge-engine/engine-channel.ts + ``` + + **方式 B**:手写到 `~/.claude.json` 的 `mcpServers` + ```json + { + "mcpServers": { + "engine": { + "command": "bun", + "args": ["/absolute/path/to/forge-engine/engine-channel.ts"] + } + } + } + ``` + +4. **启动 Claude Code 时把 engine 加入 channels 白名单**——这一步**必不可少**,否则 engine 的定时通知会被 Claude Code 静默丢弃: + +```bash +claude --dangerously-load-development-channels server:engine ``` -4. 用 `fh engine` 管理任务: +> [!IMPORTANT] +> Channels 是 research preview(详见 [Channels Reference](https://code.claude.com/docs/en/channels-reference)),自定义 channel server(包括 forge-engine、forge-hub 的 hub-channel)必须用 `--dangerously-load-development-channels server:` 显式白名单才被识别。`claude mcp list` 显示 `✓ Connected` **只代表 MCP 子进程成功启动**,**不代表 channel 通知能投递**——后者还需要这一步。 +> +> 和 forge-hub 一起用要带两个,**空格分隔**:`server:hub server:engine`(不是逗号)。如果你用 [forge-launcher](https://github.com/LinekForge/forge-launcher) 启动菜单栏会话管理器,它会自动带上这俩 flag。 + +5. 验证 channel 通知接通:在跑 Claude Code 的窗口里让 agent 调用 `engine_add_task` 工具(设 `delay_seconds: 30`)。30 秒后窗口收到 `` 包裹的消息说明白名单生效;收不到 → 检查是否漏了 `server:engine`。 + +6. 用 `fh engine` 管理任务: ```bash fh engine list fh engine pause 30