工程開發
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日 下午08:29
在 GitHub 查看