Skip to main content
Glama

Agent Bridge MCP

agent-bridge-mcp 是一个本地 Model Context Protocol (MCP) 服务器,为 MCP 主机提供一种受控的方式,将任务委派给本地编码代理 CLI 和 Manus API。它刻意不是具有环境文件系统访问权限的代理编排器:正常安装需要配置,项目根目录被列入允许列表,默认执行模式为只读,调用者选择的权限不能超过配置的上限。

v0.3.0-rc.8 中实现的内容

后端

传输

原生恢复

文件系统控制

桥接使用的认证

Codex

本地 codex CLI;托管模型提供商

是

read-only、workspace-write 或 full-access

Codex CLI 登录

Claude

本地 claude (Claude Code) CLI;托管模型提供商

是

由所选沙箱派生的 Claude 权限模式

Claude CLI 登录/OAuth 或钥匙串;不使用 Claude Desktop/Cowork 登录

Manus

通过 HTTPS 的 Manus API v2

是,按 Manus 任务 ID

无。Manus 是远程的,无法检查或编辑本地文件。

凭据文件或 MANUS_API_KEY

Gemini

本地 gemini CLI;托管模型提供商

否

无法强制只读;它拒绝该模式

Gemini CLI 自身的认证

Gemini 和 Manus 默认禁用。Manus 必须在其凭据和账户能力确认配置完成后,才能被有意启用。远程提示传输也默认单独禁用,需要代理/根/数据类允许列表、allow_remote_egress=true、data_classification,以及每次调用时消耗的精确范围 remote_egress 批准。每次直接远程调用还需要单独的 paid_or_unknown_cost 批准,因为调用者提供的零无法证明提供商成本为零。这两类批准始终是新鲜的、一次性的记录;可重复使用的记录在任何提供商启动之前就被拒绝。可选的 policy.cumulativeRemoteCost 断路器在启动前,跨所有会话原子性地预留已批准的最大值(以整美分计)。未知、零、分以下、超上限、损坏/缺失账本以及并发超额订阅的情况,都会在提供商调用之前失败。持久化的预留不会在成功、错误、超时、取消或进程崩溃后补充,因为桥接无法证明已接受的请求未被计费。预留有意先于批准消耗,因此后续的本地失败可能保守地消耗预算而不调用提供商。这是已批准成本核算,而非提供商发票对账;突然的 OS/断电持久性仍取决于主机文件系统。list_agents 报告可达性/认证/能力和协作就绪状态;它是健康探测,而非证明付费任务能完成或远程代理能访问请求的工作区。

Manus 任务引用仅在符合提供商 22 字符字母数字任务 ID 契约时才被接受。在 task.create 之后,RC6 允许 15 秒的有界可见性宽限期:task.listMessages 的 404 会在分类前与 task.detail 核对。经 detail 确认的任务,其消息仍不可用,则报告为 unknown 且可恢复;只有在该宽限期内两个表面都缺失的任务才变为 not_found 且不可恢复。公开结果仅暴露 SHA-256 请求关联,绝不暴露原始提供商请求 ID 或原生任务 ID。

在预览批准或消耗权限之前,桥接执行仅本地的 Manus 预检:必须存在非空的已配置凭据,必须确认账户默认能力,模型必须是受支持的 Manus 配置文件之一,最终提示必须符合保守的 4,500 UTF-8 字节上限。此预检不发起任何提供商请求。普通继续仅向持久化状态为 stopped 的提供商任务发送新消息。waiting 任务必须使用专门的等待操作路径。对于持久化的 timed_out、aborted、error 或 unknown 结果,reconcile_manus_task 需要远程出口同意、数据分类和当前会话修订,然后执行仅 GET 的提供商轮询,而不发送用户消息。本地协调超时会将任务记录为仍未解决,且绝不发送提供商停止请求;一旦协调达到 stopped,普通继续再次可用。

这些持久的每次调用出口/成本批准保护桥接管理的直接远程 API(如 Manus)。Codex、Claude 和 Gemini 是本地 CLI 进程,但可以将提示和工作区派生内容发送到其托管提供商;其账户、提供商和 CLI 策略是外部信任边界。list_agents 分别报告 directRemoteApi 和 offMachineEgress,因此本地可执行文件绝不会被误认为仅本地处理。

在 Windows 上,直接可执行文件在没有 shell 的情况下生成。规范的静态 npm 生成的 .cmd 垫片仅在它们命名一个包含的 node_modules 入口点时被识别;该入口使用桥接自身的 Node 可执行文件启动,因此提示、模型、根和扩展参数绝不会通过 cmd.exe 传递。动态/自定义 .cmd 文件和所有 .bat 启动器以 UNSAFE_WINDOWS_BATCH_SHIM 失败关闭。配置其底层 .exe 或使用规范的静态 npm .cmd 垫片。这防止批处理元字符逃逸桥接根、沙箱和批准边界。

Related MCP server: Local-MCP-Bridge

安装和配置

需要 Node.js 20+ 以及您在 PATH 上启用的 CLI。

选择与工作匹配的路径:

  • 从源代码开发或验证: 使用下面的命令和源代码开发配置。

  • 操作已安装的发布版: 从 构建、测试和打包 开始,包括其不可变的 Windows 安装/金丝雀序列,然后遵循 创建者操作。不要将客户端指向源代码 dist 或直接指向版本化发布目录。

npm ci
npm run verify
New-Item -ItemType Directory -Force "$env:USERPROFILE\.agent-bridge" | Out-Null
Copy-Item config.example.json "$env:USERPROFILE\.agent-bridge\config.json"

上述命令在 %USERPROFILE%\.agent-bridge\config.json 创建源代码开发配置。模板故意具有空的 allowedRoots 数组,并且直到您将其替换为一个或多个现有的绝对项目目录才会启动。不可变的已安装发布版改用 %USERPROFILE%\.codex\agent-bridge\config.json 处的共享配置,并且每个 Codex/Claude 注册必须在启动稳定垫片时设置 AGENT_BRIDGE_CONFIG 为该共享文件。否则,可以使用 --config <path> 或 AGENT_BRIDGE_CONFIG 选择配置;服务器旁边的 config.json 仅在存在时使用。缺失、格式错误或无根配置会被拒绝,而不是回退到不受限制的目录。不要让源代码开发回退和已安装的共享配置静默分歧。

运行时默认值为 600 秒超时和 read-only 沙箱。config.example.json 故意使用 900 秒的示例超时;它不是运行时默认值。沙箱优先级为:提供时的每次请求,否则为 defaults.sandbox;该请求/默认权限随后受 agents.<id>.sandboxCeiling 和 policy.sandboxCeiling 两者约束,最严格的结果获胜。workspace-write 上限允许单独请求的写入轮次,但本身不会使写入成为默认值。policy.sandboxCeiling 默认为 workspace-write 以保持兼容性,因此旧配置仍可请求写入,但不能再请求 full-access。完全访问要求配置明确说 "sandboxCeiling": "full-access"。agents.<id>.sandboxCeiling 可以为一个后端降低限制。示例 cumulativeRemoteCost.maxReservedCents 是当前账本的状态级生命周期预留上限;增加它是明确的操作员操作,并且故意没有重置 MCP 工具。在第一次预留之后,初始化标记使仅删除账本失败关闭。能够删除账本和标记的本地 OS 用户可以重置此核算边界,因此将 stateDir 保留在共享/工作区存储之外并保护其 ACL。省略该策略以禁用该断路器。桥接规范化允许的根和工作目录,然后在启动前立即再次规范化,因此连接点/符号链接逃逸被拒绝。

MCPB 包可以通过设置 AGENT_BRIDGE_BUNDLE_MODE=1 并提供 AGENT_BRIDGE_ALLOWED_ROOT 来选择相同的验证器,而无需安装虚假的相邻配置。捆绑模式默认为只读权限,启用 Codex 和 Claude,禁用 Gemini、Manus 和远程出口。MCPB 清单还可以提供 AGENT_BRIDGE_STATE_DIR、后端 AGENT_BRIDGE_ENABLE_* 开关、AGENT_BRIDGE_DEFAULT_SANDBOX 和 AGENT_BRIDGE_SANDBOX_CEILING。启用远程出口还需要 Manus 加上 AGENT_BRIDGE_REMOTE_EGRESS=true 和一个 AGENT_BRIDGE_REMOTE_DATA_CLASS。显式 --config 或 AGENT_BRIDGE_CONFIG 选择始终优先于捆绑模式。

Manus 凭据

从 PowerShell 运行提供的设置脚本:

.\scripts\setup-manus.ps1

它将密钥写入 %USERPROFILE%\.agent-bridge\secrets\manus-api-key,并具有仅用户 ACL。启用 agents.manus,将 credentialFile 设置为该路径,并仅在审查 Manus 账户的已启用默认技能后,设置 acknowledgeAccountDefaultCapabilities=true 以及稳定的非秘密 accountCapabilityProfile 标签。Agent Bridge 在创建时发送空的每消息 connectors、force_skills 和任务引用,并在继续时清除连接器,但 Manus API v2 不提供桥接可强制执行的开关来证明账户默认技能已禁用。确认记录接受该提供商侧能力边界;它不授予本地文件系统访问权限或授权连接器操作。提供商端点、请求能力策略版本和账户配置文件标签被绑定到每个远程批准信封中,因此更改的账户/能力审查需要新的批准。不要将密钥放入源代码控制或 MCP 清单中。Manus 端点仅限于 HTTPS api.manus.ai(或其子域);开发覆盖仅接受环回 HTTP(S)。Manus 通过其 API 接收任务文本,并且没有本地文件系统访问权限;请提供相关文件内容或远程可访问的工件。

粘贴到聊天中的密钥会暴露。轮换是推荐的补救措施。如果操作员明确拒绝轮换,请将该决定记录为已接受的残余风险,仅将密钥保留在 ACL 保护的凭据文件中,并将凭据卫生本身标记为失败或已确认,而不是称为通过。

MCP 操作

get_creator_status 是仅本地的创建者概览。它聚合运行时/配置状态、已配置能力、已批准成本预留以及会话、批准和工作板状态的无突变有界样本,而不启动 CLI 或联系提供商。其 scanned、truncated 和 unreadable 字段是采样证据而非无界总数;不完整状态会强制引起注意。后端健康状态通过 list_agents 有意分开。

服务器暴露了顺序桥接操作(list_agents、delegate_task、continue_session、handoff、list_sessions、get_session 以及可分页的 get_turn_output)、被动式 diagnose_install、只读的 get_budget_status、持久化审批操作(request_approval、decide_approval、list_approvals)、通过 preview_turn_approval 和 preview_recommendation_approval 实现的精确远程规划、仅 GET 的 reconcile_manus_task、窄化的 Manus 等待操作(get_manus_waiting_action、preview_manus_confirmation、confirm_manus_action)、独立的 collect_recommendations,以及协作工作板的创建、执行、审查、检查、生命周期、取消、重试和条目审批操作。会话在内部保留后端原生 ID 以支持兼容的恢复。当不同的代理接管,或原生恢复不可用/不兼容时,桥接会前置一段有界、转义的转录,并明确标记为不可信上下文。远程预览返回两个不同的哈希:prompt_sha256 标识最终确定的出站提示以供比较,而 payload_sha256 标识完整的审批信封,包括模型、沙箱、超时、连续性/恢复状态、会话修订、扩展策略、提供方端点、请求能力策略版本以及非机密账户能力配置文件。审批记录必须使用信封哈希。在继续或交接时传回预览的 session_revision,以便并发转录更改需要新的预览。内联代理输出会被截断;使用返回的 output_ref 或 get_turn_output 以有界页面检索完整的持久化输出。

Manus 等待操作

Manus 任务可以暂停在 waiting 状态。Agent Bridge 仅持久化原生任务 ID、事件 ID 和已知事件类型;提供方描述和动态模式被有意丢弃,因为它们可能包含机密、个人数据或新的权限。公共工具从不返回原生任务 ID。尽管 Manus 记录了许多确认类型,并且可能添加更多,但此版本仅允许四种固定决策:

Manus 事件

允许的桥接决策

额外审批

needConnectMyBrowser

browser_skip

browser_or_connectors

gmailSendAction, outlookSendMailsAction

email_save_draft

browser_or_connectors

videoGenerate

video_standard

paid_or_unknown_cost 且具有正的有界成本

apiHighCreditNotice

high_credit_reject

paid_or_unknown_cost 固定为零美元

每个决策还需要一次全新的一次性 remote_egress 审批、允许的数据类/根、精确的预览摘要以及未更改的会话修订。确认预览暴露了一个执行信封,该信封绑定提供方端点、连接器/默认技能能力策略版本以及非机密账户配置文件。适配器在消耗任一审批或预留预算之前,会重新读取最新的实时提供方操作。仅当重新验证成功后才提交权限,在非幂等的 task.confirmAction POST 之前立即持久化尝试确认记录,然后要求响应返回 ok=true、confirmed=true 并返回相同的任务 ID。接受的确认在桥接恢复轮询之前持久化。未知操作、用户问题、浏览器选择、实际发送电子邮件、高级视频、信用接受、机密、部署、终端命令、日历/营销操作、连接器授权以及持久的 global_allow/always_allow 授权均以失败关闭。这个有意更窄的契约位于 Manus 任务生命周期 和 task.confirmAction API 之上。

从 docs/CREATOR_OPERATIONS.md 开始。其配套的 威胁矩阵、实时验收清单、证据约定、隐私边界 和 示例 定义了支持的创建者工作流以及提升前所需的证据。

协作工作板

工作板具有明确的 active、paused、completed、canceled 和 archived 生命周期状态。条目可以声明种类、验收标准、数据/文件系统/网络/能力要求、惰性类型化工件/证据引用以及工作流审批门。生命周期更改拒绝实时租约;重试清除结果而不补充尝试次数或使用量。

工作板在 stateDir/workboards 下保存依赖感知的工作条目。持久化的板使用显式模式版本,并在加载/保存时递归验证。原始的未版本化 v0.3-dev 形状在读取时在内存中迁移,并在下一次锁定保存时持久化,避免未锁定的迁移竞争。未知的未来模式、损坏的记录以及不一致的状态/提交/审查组合均以失败关闭。每个条目都有尝试/时间预算、所有权租约、隔离的桥接会话、提交和独立审查。执行和审查的墙钟时间/轮次使用分别核算。审查尝试限制从 maxAttempts 内部派生;失败的审查者调用消耗它,保留提交以供重试,并在耗尽时阻止条目。token_budget_hint 是建议性的,因为后端令牌核算不可比较或不可一致地获得。独立的就绪条目可以并发运行,最多 maxParallel,但每个工作板执行和审查都被强制为 read-only,无论桥接默认值如何。严格的协作轮次抑制配置的 extraArgs 和 extraEnv,因此这些设置不能覆盖只读标志。审查者不能是提交条目的代理。只有被接受的提交才包含在有界的集成者简报中。

当前工作板传递本地 cwd 和文本,而不是远程可访问、哈希验证的工件包。因此,Manus 无法运行或独立审查工作板条目,并被报告为对本地代码证据不协作就绪。仅通过明确批准的直接远程委派使用它,直到实现工件准备流程。建议 brief 范围被有意隔离到报告无本地文件系统能力的后端;Codex 和 Claude 必须使用 workspace 范围,而 Manus 只能审查提供的简报。此边界仅证明后端无法通过 Agent Bridge 检查本地工作区。它不强制提供方端的只读或无副作用行为;Manus 账户默认技能仍然是公认的外部能力。集合记录 briefSha256,以便在不暗示工作区访问的情况下识别内联工件。

此开发版本有意不允许协作写入工作。每会话锁无法阻止两个独立的代理会话编辑相同的文件,因此安全的并行写入需要后续的工作区所有权设计。

被动诊断

diagnose_install 和 --doctor --json 报告运行时/配置身份、可读时的配置内容哈希、根范围警告、状态大小/会话计数、清理后的后端状态以及可执行文件路径漂移提示。它们有意暴露选定的本地路径:运行时路径、状态路径、配置/解析的可执行文件路径以及由范围警告命名的根。它们省略原始配置字节、代理环境值、凭据值、原始提供方/CLI 详细信息、提示和转录。不要将机密嵌入文件系统路径。本地认证结果为 unknown 不被视为可用。这些命令探测启用的后端;使用 scripts/inspect-install.ps1 获取被动注册/进程/ACL 证据,而无需启动或委派给代理。其 fallbackConfig.divergentRegistrationRisk=true 结果意味着桥接注册可以读取与已安装共享配置不同的相邻/状态配置,并且是切换阻塞器。RC6 还识别 Codex 注册证据中有效的单引号 TOML 字符串。

实验性守护进程/代理运行时

源代码包含一个实验性的本地 IPC 守护进程/代理运行时,构建在有界帧 RPC 编解码器和协议/配置绑定的相互 HMAC 握手之上。它仅使用 Windows 命名管道或 Unix 域套接字——绝不使用 TCP——并实现显式生命周期、独占端点绑定、严格握手状态、请求关联、连接/在途限制、断开时的处理程序取消以及干净关闭。导入或构造它不会启动任何内容;测试仅使用一次性端点。它未连接到 MCP 入口点或发布包,因此直接 stdio 仍然是唯一受支持的运行时路径。

在 Unix 上,运行时对套接字应用模式 0600。Node 的 net API 无法配置或验证仅用户的 Windows 命名管道 ACL 或暴露对等身份,因此 Windows 安全证据如实报告该差距,并提供失败关闭的授权钩子。在实现并审查 Windows ACL 配置/验证层和 MCP 路由适配器之前,不要部署实验性守护进程。

在将其添加到 MCP 主机之前,使用进程诊断:

node .\dist\agent-bridge.mjs --config "$env:USERPROFILE\.agent-bridge\config.json" --doctor

--doctor 如果任何启用的后端不可用,则退出非零。它报告配置源、根、沙箱和后端健康;它不运行功能性的委派任务。

数据、锁和限制

桥接状态位于 stateDir(默认 %USERPROFILE%\.agent-bridge)下:明文会话、工作板、审批、累计预算预留及其锁目录。会话和预算写入是原子替换写入;预算临时字节在重命名前刷新,并在平台允许的情况下同步父目录。运行中的会话持有锁;另一个轮次等待最多 sessionLockWaitMs,然后以 SESSION_BUSY 失败。累计直接远程账本使用单独的令牌拥有的锁,因此不同的会话不能过度订阅它。与普通会话/工作板锁不同,支出锁永远不会自动回收:否则暂停的旧所有者可能覆盖较新的预留。如果其进程崩溃,直接远程启动将失败关闭,直到所有桥接主机停止,并且操作员仅删除 stateDir\budget-locks\cumulative-remote-cost.lock。

会话转录在静态时是明文 JSON。它们可能包含提示、输出、错误尾部、路径和敏感任务上下文。保护 stateDir,不要将机密放入提示中,并将 get_session 视为其存储转录的披露。get_session 有意移除原生后端 ID 和元数据,并限制每个返回的字段,但它不是加密或编辑。桥接在代理之间传递有界的明文上下文摘要;截断可能省略早期上下文,因此关键决策应在当前提示中重复。

构建、测试和打包

npm run verify
node .\scripts\package.mjs

npm run package 会先构建;npm pack 也会通过其 prepack 钩子执行构建。发布命令要求已检出的 Git 提交,创建全新的 .release-staging 目录,生成 agent-bridge-v<package-version>.mcpb,并验证打包后的 server/agent-bridge.mjs、其 source map 以及 Windows 操作脚本与已提交的候选输入逐字节一致。该 bundle 包含 manifest.json、运行时、其 source map、operations/ 和 release-metadata.json;每个运行时和操作负载都在发布元数据中以 SHA-256 和字节数固定。操作集刻意保持精简:就绪检查、单锁切换、不可变发布回滚、被动检查、客户端注册及其共享安全模块。它拒绝已存在的输出路径,且绝不修改已安装的 MCP 服务器。请勿将开发包安装到活跃主机之上;应使用新的不可变目录,并推迟注册变更直至运行中的任务完成。

该 MCPB 使用 manifest schema 0.3 和宿主提供的 user_config;不嵌入可变的占位配置。打包命令会同时报告 bundle 和运行时的 SHA-256 值。在发布前,请使用官方 MCPB CLI 校验 manifest.template.json。在 Windows 上,安装并检查构件时不得触碰活动指针:

.\scripts\install-release.ps1 -BundlePath .\agent-bridge-v0.3.0-rc.8.mcpb -ExpectedBundleSha256 <reported-bundle-sha256>
$candidate = "$env:USERPROFILE\.codex\agent-bridge\releases\<release-id>"
& "$candidate\operations\inspect-install.ps1"
node .\scripts\canary-release.mjs --release-path "$env:USERPROFILE\.codex\agent-bridge\releases\<release-id>" --install-root "$env:USERPROFILE\.codex\agent-bridge" --expected-version 0.3.0-rc.8 --expected-runtime-sha256 <reported-runtime-sha256> --evidence-dir "<durable-private-root>\installed-canary"
node .\scripts\canary-windows-shim.mjs --release-path "$env:USERPROFILE\.codex\agent-bridge\releases\<release-id>" --install-root "$env:USERPROFILE\.codex\agent-bridge" --expected-version 0.3.0-rc.8 --expected-runtime-sha256 <reported-runtime-sha256> --evidence-dir "<durable-private-root>\windows-shim-canary"

提供方禁用的已安装发布 canary 会以一次性配置/状态/根目录启动绝对不可变运行时,验证所有必需的 MCP 工具和诊断身份,并证明稳定 shim、共享配置和提升标记未发生变化。Windows shim canary 在带空格的路径中,通过规范的 npm .cmd 以本地模拟 CLI 运行同一已安装运行时;它验证运行时身份、精确的恶意 argv 保留、只读委托、无 shell 注入哨兵以及稳定文件未变,且不调用提供方。请在稳定安装根目录之外创建新的持久私有证据目录。提供方支持的发布测试接受绝对路径 AGENT_BRIDGE_SERVER_PATH 以及必需的 AGENT_BRIDGE_INSTALL_ROOT、AGENT_BRIDGE_EXPECTED_VERSION 和 AGENT_BRIDGE_EXPECTED_RUNTIME_SHA256;它们验证运行时恰好位于该安装的 releases\<release-id>\server 之下。设置 AGENT_BRIDGE_LIVE_REQUIRED=1,使源 dist、认证或配额跳过不会被误认为发布通过,并将每个结构化结果保留为脱敏 JSON。

Manus harness 是一个两阶段、持久的一次性事务。使用 node test/live-manus.mjs --evidence-dir <new-absolute-private-directory> 预览;预览仅执行本地身份/凭据检查,创建加密 nonce 和待处理票据,不发起任何 Manus API 或健康检查调用。审阅预览后,运行其打印的精确 nonce 绑定命令。执行会在桥接启动、审批征询、健康探测或有偿工作之前原子性地消耗票据;重放将失败。它会清除环境中的 MANUS_API_KEY 和 MANUS_API_BASE_URL,要求精确的输出和停止状态,验证预算差额和两次已消耗的审批,并保留私有配置/状态/工作/结果证据而非删除。

被忽略的 RC5/RC6/RC7 bundle 及其 .release-staging 目录仅为历史产物。它们不是 RC8 输入,绝不能被提升为当前候选。

在提升和重启客户端验收之后,请根据示例在操作员控制的证据根目录内创建严格描述符,并运行 npm run evidence:release -- --descriptor <absolute-descriptor.json> --output-dir <evidence-root>\<packet-id> --require-accepted。输出目录的基名必须等于 packet ID。导出器验证已安装的元数据、提升标记、共享配置、bundle 内容、候选哈希和指定的验收配置文件;它只接受来自该规范证据根目录的输入构件,拒绝机密/受限数据和覆盖写入,即使私有状态被重命名也会对叙述/提供方 ID JSON 字段进行脱敏,并在生成同步的 evidence-report.json、evidence-report.md 和 manifest.json 之前扫描 JSON 键和值中的 Manus 原生标识符。运行 npm run evidence:verify -- --packet-dir <absolute-packet-directory> 以检测缺失、多余或变更的文件。manifest 是完整性交叉校验,而非针对恶意本地编辑器的签名。请单独保护证据根目录的 Windows ACL。提升是临时的,直到最终验收导出成功。被阻止的提升前 packet 可在不带 --require-accepted 的情况下导出;它是证据,而非验收。

使用 <candidate-release>\operations\configure-clients.ps1 预览 Codex、Claude Code 和已检测到的 Claude Desktop 配置文件的注册规范化。它默认是 dry-run,拒绝活跃目标进程或歧义注册,并支持对已变更文件进行逐字节精确的还原清单。正常发布切换请勿使用其独立的 -Apply 模式。请从候选的已安装不可变目录运行发布操作,而非可变的源检出目录。

发布切换是刻意的维护窗口操作,而非无人值守的 watcher 动作。完全退出 Codex、Claude Code、Claude Desktop 及其他 MCP 宿主,然后运行 <candidate-release>\operations\check-cutover-readiness.ps1。它要求在 Agent Bridge 节点以及已知的 Codex/Claude 宿主家族和后代上重复取得空样本。使用 <candidate-release>\operations\cutover-release.ps1 -ReleaseId <version+sha7> 执行实际的单锁注册与发布事务。watcher 可以报告就绪状态,但绝不得调用任何变更命令。这是操作层面的静默,而非操作系统强制的启动屏障;窗口期间打开的宿主会使事务中止并在可检测处恢复。

切换前,scripts\rehearse-rollback.ps1 可将精确哈希的候选和先前 bundle 安装到全新的外部夹具中,按候选 → 先前 → 候选的顺序切换,运行夹具的稳定 shim 和提供方禁用的 MCP canary,并保留带哈希的证据清单。它不接受任何实时安装或客户端注册路径。可信切换原语仍要求所有 MCP 宿主关闭,且此一次性证明不能替代切换后的实时回滚演练。

<trusted-release>\operations\switch-release.ps1 是较低层的发布/回滚原语。它验证目标已安装运行时,使用拒绝式维护 shim,在启用实时 shim 之前写入发布标记,创建精确的回滚备份,并在存在活跃进程时安全失败。即使其 -ReleaseId 目标是较旧的已安装运行时,也请使用最新验证过的操作脚本字节。protect-state.ps1 将继承的状态目录 ACL 替换为当前用户、SYSTEM 和管理员的显式访问权限;使用 -Force 前请检查其目标。

发布和回滚流程请参阅 HANDOFF.md,安全模型请参阅 SECURITY.md。

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    B
    maintenance
    Enables coding agents to perform workspace-confined file operations, read-only Git inspection, and structured shell commands, while requiring out-of-band human approval for mutations and external executions and maintaining an audit trail.
    14
    3
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude Code to offload bounded, read-heavy tasks to external agent CLIs (agy, opencode, copilot) with preflight validation, circuit breakers, and a local dashboard for monitoring delegation and subagent activity.
    33 npm
    1
    MIT