Engineering
dumbwaiter-mcp avatar

dumbwaiter-mcp

Provider-agnostic MCP skill for wait-for-change automation on PR events like status checks, merges, and comments.

Introduction

The Dumbwaiter MCP skill provides AI agents with a robust, durable, and provider-agnostic way to pause orchestration until specific events occur on a code hosting platform. Originally designed for GitHub, it offers a standardized interface for monitoring Pull Request (PR) states, enabling agents to wait asynchronously for CI/CD checks to pass, PRs to be approved, or specific comments to be posted. This skill is essential for long-running workflows where an agent must coordinate its next steps based on external validation or human feedback, ensuring that system state is verified before moving to sensitive tasks like merging or deployment.

  • Enables precise orchestration pauses using wait.start, wait.status, wait.cancel, and wait.await tool primitives.

  • Supports various trigger conditions including checks_succeeded, checks_failed, pr_merged, pr_approved, changes_requested, and workflow_completed.

  • Features advanced streaming capabilities for comment_received events, allowing agents to react to individual PR discussions, reviews, or reactions in real-time.

  • Implements durable wait persistence using local SQLite state management, allowing agents to recover and resume after process restarts or temporary connectivity loss.

  • Utilizes progress notifications via the MCP protocol, ensuring the host and user stay informed about the status of the wait operation.

  • Configure the skill by setting your GITHUB_TOKEN and optional environment variables like DUMBWAITER_DB for state persistence or DUMBWAITER_AWAIT_TTL_SECS for timeout management.

  • Use wait.start to define a condition and selector (owner, repo, pr), which returns a unique wait_id for subsequent monitoring.

  • Prefer wait.await for real-time progress updates when the host environment supports MCP notifications.

  • Use filters with the comment_received condition to refine event streaming, such as author_allowlist, author_denylist, or time-based filtering with the since parameter.

  • Always handle terminal states (satisfied, failed, timeout, cancelled) and check for auth-related issues when rate limits are reached to maintain agent reliability.

Repository Stats

Stars
2
Forks
0
Open Issues
1
Language
Rust
Default Branch
main
Sync Status
Idle
Last Synced
May 3, 2026, 08:29 PM
View on GitHub