工程开发
dumbwaiter-mcp avatar

dumbwaiter-mcp

适用于所有供应商的 MCP 技能,可针对 GitHub PR 事件(如状态检查、合并、评论)进行自动化等待。

简介

Dumbwaiter MCP 技能为 AI 代理提供了一种强大、持久且与供应商无关的方法,可暂停编排直到代码托管平台发生特定事件。最初为 GitHub 设计,它提供了一个标准化接口来监控提取请求 (PR) 状态,使代理能够异步等待 CI/CD 检查通过、PR 被批准或发布特定评论。此技能对于需要根据外部验证或人工反馈来协调后续步骤的长期工作流程至关重要,确保在执行合并或部署等敏感任务之前验证系统状态。

  • 使用 wait.start、wait.status、wait.cancel 和 wait.await 工具原语实现精确的编排暂停。

  • 支持多种触发条件,包括 checks_succeeded、checks_failed、pr_merged、pr_approved、changes_requested 和 workflow_completed。

  • 为 comment_received 事件提供高级流式功能,允许代理实时对个别 PR 讨论、审查或反应做出反应。

  • 使用本地 SQLite 状态管理实现持久等待,使代理在程序重启或临时连接丢失后能够恢复并继续操作。

  • 通过 MCP 协议实现进度通知,确保主机和用户随时了解等待操作的状态。

  • 通过设置 GITHUB_TOKEN 和选择性的环境变量(如用于状态持久化的 DUMBWAITER_DB 或用于超时管理的 DUMBWAITER_AWAIT_TTL_SECS)来配置此技能。

  • 使用 wait.start 定义条件和选择器(owner, repo, pr),它将返回一个唯一的 wait_id 以供后续监控使用。

  • 当主机环境支持 MCP 通知时,优先使用 wait.await 以获取实时进度更新。

  • 将过滤器与 comment_received 条件结合使用以优化事件流,例如使用 author_allowlist、author_denylist 或基于时间的 since 参数进行过滤。

  • 务必处理终端状态(satisfied、failed、timeout、cancelled),并在达到速率限制时检查与身份验证相关的问题,以维护代理的可靠性。

仓库统计

Star 数
2
Fork 数
0
Open Issue 数
1
主要语言
Rust
默认分支
main
同步状态
空闲
最近同步时间
2026年5月3日 20:29
在 GitHub 查看