# @dougbots/avenor-mcp 中文文档

规范地址：https://npmcn.com/package/%40dougbots/avenor-mcp/

版本：0\.26\.0
npm 元数据更新时间：2026-11-12T20:21:28.079Z
中文译文更新时间：2026-11-13T00:34:18.200Z
软件包许可：未声明

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dougbots/avenor-mcp
原文对照：https://npmcn.com/package/%40dougbots/avenor-mcp/?lang=original
项目主页：https://github.com/sdougbrown/avenor#readme
源码仓库：https://github.com/sdougbrown/avenor

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：42.3 kB，4 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：4 个
- 首次发布：2026-05-17T05:22:08.777Z
- 最新版本发布：2026-11-12T20:21:27.698Z
- 近 30 天下载量：2660（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：49（近 12 个月 49 个）

## 中文简介

> **说明:** 从v. 0.x, `avenor mcp` 是安装在 `avenor` 二进制本身——需要Node/Bun. 见 [`docs/mcp.md`](https://npmcn.com/package/docs/mcp.md) 用于初级MCP设置和工具参考。 此节点. js 包是一个切换器

## 安装

```sh
npm install @dougbots/avenor-mcp
```

也可以使用：`pnpm add @dougbots/avenor-mcp`、`yarn add @dougbots/avenor-mcp`、`bun add @dougbots/avenor-mcp`

## README

# @dougbots/ avenor-mcp (英语)

> **说明:** 从v. 0.x, `avenor mcp` 是安装在 `avenor` 二进制本身——需要Node/Bun. 见 [`docs/mcp.md`](https://npmcn.com/package/docs/mcp.md) 用于初级MCP设置和工具参考。 这个Node.js包是基于OpenCode的设置或者在您喜欢基于npm的工具时的替代品.

制作的 MCP 服务器 [报务员](https://github.com/dougbots/avenor) 代理在任何 MCP 兼容客户端( Claude Code, Claude Desktop, Cursor等) 内作为工具运行 .

## 当你需要这个的时候

你有过 `avenor` 安装,您希望克劳德(或另一个 MCP 主机) 来产出和管理代理运行—— 踢出一个 Codex 或 双子座会话, 检查它的状态, 回答权限提示, 跟踪事件日志, 并恢复已完成的运行 .

这个包是MCP层. 这取决于 `@dougbots/avenor-core` 用于所有实际接线(监督员生命周期、二进制发现、套接字协议)。 何须知内道取用.

## 先决条件

-   **节点20+** (或 Bun —— 服务器运行在 Bun 上但作为 无害环境管理 )
-   **`avenor` 二进制** 在你身边 `PATH`,或设置 `AVENOR_BIN=/path/to/avenor`

如果启动时找不到二进制, MCP 服务器将无法连接.

## 安装

```bash
npm install @dougbots/avenor-mcp
```

或者随叫随到 `npx` (见下文配置).

## 配置

### stdio 传输( 默认)

添加到您的 MCP 主机配置 。 对于 **克劳德代码**编辑 `~/.claude/mcp.json`数字 :

```json
{
  "mcpServers": {
    "avenor": {
      "command": "npx",
      "args": ["@dougbots/avenor-mcp"],
      "env": {
        "AVENOR_BIN": "/opt/homebrew/bin/avenor"
      }
    }
  }
}
```

对于 **克劳德桌面**,使用时 `~/.config/Claude/claude_desktop_config.json` 形状一样.

跳过 `AVENOR_BIN` 若为 `avenor` 已经在你的 `PATH`在新的会话中,主管自动启动 `avenor` 守护进程是您第一次调用工具 .

### SSE 运输

当需要以长寿HTTP服务运行的MCP服务器(多客户端,通过地道等远程访问)时,使用SSE模式. 设定 `MCP_TRANSPORT=sse` 并提供一种证明

```bash
MCP_TRANSPORT=sse \
MCP_AUTH_TOKEN="my-secret" \
MCP_PORT=3748 \
npx @dougbots/avenor-mcp
```

然后在您的 MCP 主机配置中 :

```json
{
  "mcpServers": {
    "avenor": {
      "url": "http://127.0.0.1:3748/mcp",
      "headers": {
        "Authorization": "Bearer my-secret"
      }
    }
  }
}
```

SSE 模式限制收到的请求 `localhost` 编号 : `127.0.0.1` 编号 : `[::1]` 来源。 需要认证令牌——服务器返回 `401` 没有它.

| 信封变量 | 默认 | 页:1 |
| --- | --- | --- |
| `MCP_TRANSPORT` | (日语) | 设定为 `sse` 用于 HTTP |
| `MCP_PORT` | `3748` | 仅用于 SSE 模式 |
| `MCP_AUTH_TOKEN` | —— 说 | **需求** 在 SSE 模式下 |
| `AVENOR_BIN` | —— 说 | 路径 `avenor` 二进制( 返回到 `PATH`(中文(简体) ) |

## 工具

此表面登记工具名称 **无** 页:1 `avenor_` 前缀 - `spawn`, (中文(简体) ), `status`, (中文(简体) ), `result`, (中文(简体) ), `answer_permission`, (中文(简体) ), `message`, (中文(简体) ), `peers`, (中文(简体) ), `events`, (中文(简体) ), `kill`, (中文(简体) ), `shutdown`,以及 `workflow`. MCP 客户端命名空间自己的服务器(Claude Code将其显示为 `mcp__avenor__spawn`,例如),所以前缀只会重复自己. 这个 `avenor` 二进制自有的MCP服务器使用同名名.

### `spawn`

启动新代理运行 .

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `agent` | 没有 | 代理个人运行。 后端将名称解析为即时, 工具集和权限政策 。 直接身份域:独立于 `model` 财务报告和审定财务报表 `backend`。当 `roster_entry` 设定 |
| `dir` | 对 | 运行的工作目录 |
| `prompt` | 没有 | 提示文本( 互为专属文本 ) `prompt_file`(中文(简体) ) |
| `prompt_file` | 没有 | 快速文件路径 |
| `label` | 没有 | 此运行的可读标签 |
| `timeout` | 没有 | 持续时间字符串( E)`5m`, (中文(简体) ), `1h`, (中文(简体) ), `90s`(中文(简体) ) |
| `model` | 没有 | 模型覆盖。 独立 `agent` 财务报告和审定财务报表 `backend`,因此一个模型可以单独命名 `agent` 它运行的人 在这个模型。 被拒绝时 `roster_entry` 设定 |
| `thinking` | 没有 | 运行级推理控制; 不支持的有效后端拒绝显式值 |
| `backend` | 没有 | 运行时后端( R)`opencode-acp`, (中文(简体) ), `codex-app-server`, (中文(简体) ), `agy`, (中文(简体) ), `pi`, (中文(简体) ), `claude`, (中文(简体) ), `poo`页:1 独立 `agent` 财务报告和审定财务报表 `model`;命名一个可以避免依赖运行时的默认值. 被拒绝时 `roster_entry` 设定 |
| `roster_file` | 没有 | 高级名册地图的路径; 配对 `roster_entry` |
| `roster_entry` | 没有 | 内键 `roster_file`。输入提供后端、代理和模式作为单一身份及其可选 `thinking` 只是默认。 名册模式拒绝 `agent`, (中文(简体) ), `model`,以及 `backend` |
| `server_url` | 没有 | 后端服务器 URL,由 `opencode-http` 除非由环境配置 |
| `supervisor_id` | 没有 | 多监管者设置的主管ID |

回返 `{ run_id, label, supervisor_id }`编辑 `run_id` 这是你传递给其他工具.

#### 直接模式和名册模式

使用两者 `roster_file` 财务报告和审定财务报表 `roster_entry` 用于名册模式。 名册文件中的每个条目都必须声明 `backend` 其中至少一个 `agent` 或者说 `model`。在名册模式下拨打电话也不能直接通过 `agent`, (中文(简体) ), `model`,或 `backend` 字段,因为条目提供了全部三个字段;拒绝的字段命名为下放字段。 直接模式允许所有三个身份字段独立省略,包括仅后端请求;省略了值使用运行时间默认.

```json
{
  "dir": "/repo",
  "prompt": "Analyze the repository",
  "roster_file": "/repo/roster.json",
  "roster_entry": "planner"
}
```

名册地图很严格: `system` 和未知的条目域被拒绝。 一个入口 `thinking` 是默认的,所以是运行级别 `thinking` 仍然赢了。 无论适用哪一个值,都通过直接模式或名册条目选择的有效后端验证。 续会无法切换到不同的后端.

### `status`

获取一个运行状态, 或者列出所有运行 。 使用紧凑 `lifecycle` 查看进度和等待检查的许可; `full` 仍然是兼容默认值.

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `run_id` | 没有 | 运行ID或标签查询 。 Omit 列出所有运行 . |
| `view` | 没有 | 详细反应: `lifecycle` 或者说 `full` (默认) |
| `supervisor_id` | 没有 | 多监管者设置的主管ID |

返回状态对象(或数组) `status` 作为其中之一 `running`, (中文(简体) ), `waiting`, (中文(简体) ), `done`, (中文(简体) ), `failed`, (中文(简体) ), `timeout`, (中文(简体) ), `killed`,或 `unknown` (未报告任何状况,或不承认的状况). `done`, (中文(简体) ), `failed`, (中文(简体) ), `timeout` 财务报告和审定财务报表 `killed` 终端; `unknown` 没有。 当一次运行因许可请求而受阻时,答复包括: `pending_permission` 选项.

### `result`

等待运行完成并返回其完整的最终输出,没有记录或事件细节.

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `run_id` | 对 | 运行ID或标签等待 |
| `wait` | 没有 | 等待终端结果( 默认) `true`(中文(简体) ) |
| `timeout` | 没有 | 最多等待时间( 例如 `30s` 或者说 `5m`(中文(简体) ) |
| `supervisor_id` | 没有 | 多监管者设置的主管ID |

终端响应包括: `ready: true` 财务报告和审定财务报表 `output` 当后端曝光时。 等待许可立即返回。 如果结果本身等待期满,则答复 `ready: false` 财务报告和审定财务报表 `timed_out: true` 没有改变运行.

### `answer_permission`

响应暂停运行的许可提示 .

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `run_id` | 对 | 运行ID或标签 |
| `option_id` | 对 | 选择( 从 `pending_permission` 显示于 `status`(中文(简体) ) |
| `request_id` | 没有 | 特定许可请求ID. 如果省略, 从待决请求中自动发现 . |
| `message` | 没有 | 写入回复文本, 仅在选定选项宣布时需要 `requiresMessage: true` |
| `supervisor_id` | 没有 | 多监管者设置的主管ID |

回返 `{ ok: true }` 在成功方面。 如果给定运行未等待许可请求, 则丢弃 .

### `message`

向另一个运行发送消息,撤回一个待决请求,恢复一个已完成的运行,或者发送控制回复. 交叉变量的参数规则由共享路由器执行,所以在所选动作的字段集外的参数是一个错误而不是沉默的"不".

| `action` | 所需字段 | 它会做什么 |
| --- | --- | --- |
| `tell` | `target`, (中文(简体) ), `message` | 在不创建询问边缘的情况下发送消息 |
| `ask` | `target`, (中文(简体) ), `message`选项 `timeout_ms` | 传递信息等待回复 |
| `reply` | `reply_to`, (中文(简体) ), `message` | 答一入道传. 从其索赔中答复了这一表面的询问;经纪人将这一消息传送回寄件人。 没有路由报告的信件 ID `edge-absent` |
| `resume` | `target`, (中文(简体) ), `message`选项 `label`, (中文(简体) ), `idempotency_key` | 恢复其持续届会的完成运行 |
| `withdraw` | `message_id` | 撤回待决请求 |
| `control_reply` | `target`选项 `payload` | 在供应商支持的情况下发送控制回复 |

`target` 是一个运行的id,一个对等标签,或者 `"self"`。 。 。 . `timeout_ms` 必须是不超过共享询问盖的整数。 此工具不使用 `supervisor_id`;它与默认的主管有关。 路由器工具出错作为带有合同句子的 MCP 出错结果返回 `code`。 。 。 .

每个成功的结果都是蛇案中的共享契约对象(`action`, (中文(简体) ), `outcome`, (中文(简体) ), `text`,以及 `message_id`, (中文(简体) ), `run_id`, (中文(简体) ), `label`, (中文(简体) ), `reply`, (中文(简体) ), `sentinel_file`, (中文(简体) ), `on_event` 如果结果带有,则返回为结构化内容,合同句为文本内容,与Go MCP主机完全相同.

### `peers`

列出可见代理会话,重命名运行,或读取运行中最后一个代理消息.

| `action` | 字段 | 它会做什么 |
| --- | --- | --- |
| `list` (默认) | —— 说 | 列出可见的对等点 |
| `rename` | `name`选项 `session_id` | 默认更改显示名称 |
| `last` | `target` | 读取目标最后一个代理消息及其停止原因 |

`last` 只读。 这个地表从不发表自己的转折,所以 `last` 返回共享空结果。 此工具不使用 `supervisor_id`;它与默认的主管有关。 结构化的结果是 `{peers}`, (中文(简体) ), `{renamed}` 或者说 `{last}` 中,Go MCP主机返回的同一对象.

### `events`

为运行获取事件日志 。 用来检查特工的行为.

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `run_id` | 对 | 运行ID或标签 |
| `types` | 没有 | 按事件类型过滤(字符串阵列) |
| `limit` | 没有 | 要返回的最大事件( 默认) `50`最大点 `1000`(中文(简体) ) |
| `supervisor_id` | 没有 | 多监管者设置的主管ID |

返回事件对象数组( R)`{ type, ts, ... }`),按时间顺序排列.

### `kill`

停止运行而不关闭主管。 其他运行和主管自己持续运行.

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `run_id` | 对 | 运行运行的ID或标签以终止 |
| `supervisor_id` | 没有 | 多监管者设置的主管ID |

### `shutdown`

停止检查,清理监控文件.

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `supervisor_id` | 没有 | 多监管者设置的主管ID |
| `force` | 没有 | 强制关闭而不是优雅的(`false` (默认) |

回返 `{ ok: true, cleaned_up: [...] }`。当您在会话中完成向导,或者当主管崩溃并需要重新启动时,使用此功能.

### `workflow`

驱动一个持久的工作流程实例 。 一个 `action` 选择动词; 每个动作都有一个可选 `supervisor_id` 为多监督设置. 只读动作不需要允许; `gate`, (中文(简体) ), `complete` 财务报告和审定财务报表 `cancel` 保持他们的权力检查.

| 行动 | 参数 | 目的 |
| --- | --- | --- |
| `status` | `workflow_id` | 轻量级实例状态 |
| `inspect` | `workflow_id` | 完整实例细节 |
| `events` | `workflow_id`, (中文(简体) ), `after_seq`, (中文(简体) ), `limit` | 这个案例的日志事件 |
| `wait` | `workflow_id`, (中文(简体) ), `timeout` | 等待终端状态或超时 |
| `ready` | `controller_id`, (中文(简体) ), `limit` | 申请自动派送的候选人;不给予租约 |
| `controller_status` | `controller_id` | 一个控制器的状态, 或者一个汇总列表没有它 |
| `gate` | `workflow_id`, (中文(简体) ), `node_id`, (中文(简体) ), `gate_id`, (中文(简体) ), `activation_id`, (中文(简体) ), `operation`字段 | 记录停放的门的决定 `awaiting_gate` 激活 |
| `complete` | `workflow_id`, (中文(简体) ), `node_id`, (中文(简体) ), `activation_id`, (中文(简体) ), `attempt_id`, (中文(简体) ), `lease_id`, (中文(简体) ), `owner_token`, (中文(简体) ), `outcome`, (中文(简体) ), `outputs`, (中文(简体) ), `artifacts` | 完成一台机器/外部交接激活 |
| `cancel` | `workflow_id`, (中文(简体) ), `actor`, (中文(简体) ), `reason` | 取消整个实例( 最终) `canceled`(中文(简体) ) |

基本控制方法为 [`docs/control-protocol.md`](https://npmcn.com/package/docs/control-protocol.md)。 。 。 .

## 典型的工作流程

1.  **喷出一跑:** `spawn(agent: "codex", dir: "/path/to/project", prompt: "audit the API routes for auth gaps")`
2.  **需要时检查生命周期:** `status(run_id: "<id>", view: "lifecycle")` 用于进度或待决权限.
3.  **如果请求许可:** 运行 `answer_permission` 与提供的选择.
4.  **获取结果 :** `result(run_id: "<id>")` 等待并返回完整的最终输出.
5.  **必要时检查历史:** `events(run_id: "<id>")` 返回最近发生的原始事件.
6.  **斜率 :** `message(action: "resume", target: "<id>", message: "now write tests for that")`
7.  **清理:** `shutdown()` 当你完成.

## 软件包结构

```
@dougbots/avenor-mcp
├── @dougbots/avenor-core  (workspace dep — supervisor, tool implementations)
├── @modelcontextprotocol/sdk  (MCP server + transports)
└── hono  (HTTP framework for SSE transport)
```

服务器是一个单一文件( N)`src/mcp.ts`,编译为 `dist/index.js` {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}通过Tsdown 这个 `avenor-mcp` bin 条目直接运行.

## 常见问题

### @dougbots/avenor-mcp 是什么？

说明: 从v\. 0\.x, avenor mcp 是安装在 avenor 二进制本身——需要Node/Bun\. 见 docs/mcp\.md 用于初级MCP设置和工具参考。 此节点\. js 包是一个切换器

### 如何安装 @dougbots/avenor-mcp？

在项目目录运行 npm install @dougbots/avenor-mcp，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 avenor-mcp，可以用 npx avenor-mcp 直接运行。

### @dougbots/avenor-mcp 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @dougbots/avenor-mcp 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @dougbots/avenor-mcp 可以商用吗？

@dougbots/avenor-mcp 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @dougbots/avenor-mcp 的下载量有多少？

根据 npm 官方下载统计，@dougbots/avenor-mcp 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,660 次，日均约 89 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @dougbots/avenor-mcp 还在维护吗？

最新版本 0\.26\.0 发布于 2026/11/13（今天）；至今共发布 49 个版本，其中过去 12 个月发布了 49 个；首次发布于 2026/05/17。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

