ridge-mcp-dispatchlisted
Install: claude install-skill MySetsuna/ridge
# Ridge 内置 MCP —— 终端内多 agent 调度
Ridge(桌面 app)与 `rdg`(无头 host)内建一个 **MCP server**,让运行在某个 pane 里的
你,去驱动**同一工作区其它 pane** 里的 teammate agent:拆分屏、派活、传数据、读上下文。
协议是 JSON-RPC 2.0,三条传输:**stdio(`rdg mcp`)/ HTTP(`POST /api/v1/mcp`)/ WebSocket**。
桌面与 rdg 是**同一份实现**(crate `ridge-mcp`),工具与资源完全对等。
## 1. 我在 Ridge 里吗?怎么连?
只有当下面两个环境变量都存在时,本 MCP 才可用(Ridge PTY 注入,子进程继承):
```
RIDGE_TEAMMATE_URL # 例 http://127.0.0.1:52731 —— HTTP base,端口是 ephemeral
RIDGE_TEAMMATE_TOKEN # 鉴权 token
RIDGE_WORKSPACE_ID # 发起方工作区 UUID(HTTP 放置路由需要,作 X-Ridge-Workspace 头)
```
**端点**(任选其一):
```
POST http://127.0.0.1:<port>/api/v1/mcp # 一发一收 JSON-RPC,最省事
ws://127.0.0.1:<port>/api/v1/mcp/ws # 长连
rdg mcp # stdio 桥,端点/token 自动发现,端口漂移自愈
```
给别的 MCP 客户端接入直接用:`claude mcp add ridge -- rdg mcp`。
**鉴权**:升级请求带头 `x-ridge-token: <RIDGE_TEAMMATE_TOKEN>`(或 `Authorization: Bearer <token>`)。缺/错 → 401。
> 端点会漂移:后端 panic 自重启会换端口。env 里的值可能过期。权威副本落在 sidecar 文件
> `TMPDIR/ridge-teammate-endpoint-<sanitized>.json`(`{"url","token"}`),其中 `<sanitized>` =
> `$TMUX` 第一段路径里非字母数字全替换成 `_`。连不上先读这个文件刷新 url/token。
## 2. 协议方法(JSON-RPC 2.0)
| method | 说明 |
|---|---|
| `initialize` | 握手,返回 serverInfo/capabilities。可选,直接调工具也行。 |
| `tools/list` | 列出全部工具规格。 |
| `tools/call` | `params: { "name": <tool>, "arguments": {...} }` 调工具。 |
| `resources/list` · `resources/templates/list` | 列可读资源。 |
| `resources/read` | `params: { "uri": "ridge://..." }` 读资源。 |
| `ping` | 心跳。通知(无 `id`)**不会有响应**(HTTP 回 202