@dougbots/avenor-mcp

中文文档
0.26.0发布于 2026/11/13TypeScriptES Module构建来源已验证近 30 天下载 2660

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

中文使用文档
文档目录19 节
  1. 当你需要这个的时候
  2. 先决条件
  3. 安装
  4. 配置
  5. stdio 传输( 默认)
  6. SSE 运输
  7. 工具
  8. spawn
  9. status
  10. result
  11. answer_permission
  12. message
  13. peers
  14. events
  15. kill
  16. shutdown
  17. workflow
  18. 典型的工作流程
  19. 软件包结构

@dougbots/ avenor-mcp (英语)

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

制作的 MCP 服务器 报务员 代理在任何 MCP 兼容客户端( Claude Code, Claude Desktop, Cursor等) 内作为工具运行 .

当你需要这个的时候

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

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

先决条件

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

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

安装

npm install @dougbots/avenor-mcp

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

配置

stdio 传输( 默认)

添加到您的 MCP 主机配置 。 对于 克劳德代码编辑 ~/.claude/mcp.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 并提供一种证明

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

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

{
  "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_PORT3748仅用于 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 字段,因为条目提供了全部三个字段;拒绝的字段命名为下放字段。 直接模式允许所有三个身份字段独立省略,包括仅后端请求;省略了值使用运行时间默认.

{
  "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所需字段它会做什么
telltarget, (中文(简体) ), message在不创建询问边缘的情况下发送消息
asktarget, (中文(简体) ), message选项 timeout_ms传递信息等待回复
replyreply_to, (中文(简体) ), message答一入道传. 从其索赔中答复了这一表面的询问;经纪人将这一消息传送回寄件人。 没有路由报告的信件 ID edge-absent
resumetarget, (中文(简体) ), message选项 label, (中文(简体) ), idempotency_key恢复其持续届会的完成运行
withdrawmessage_id撤回待决请求
control_replytarget选项 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 (默认)—— 说列出可见的对等点
renamename选项 session_id默认更改显示名称
lasttarget读取目标最后一个代理消息及其停止原因

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 保持他们的权力检查.

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

基本控制方法为 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 共发布 49 个版本,首次发布于 2026/05/17;过去 12 个月发布了 49 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.26.0latest2026/11/13今天
0.25.02026/11/13今天
0.24.02026/11/093 天前
0.23.02026/11/057 天前
0.22.02026/11/0310 天前
0.21.02026/11/0112 天前

关于 @dougbots/avenor-mcp 的常见问题

@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 和提交记录判断。