ChangeWarden
Allows AI coding agents to create GitHub issues, pull requests from existing branches, comments, and review requests through a governed policy and approval workflow, with execution using GitHub App credentials and auditable receipts.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ChangeWardencreate an issue in acme/web titled 'Fix login redirect'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ChangeWarden
Governed GitHub changes for AI coding agents.
ChangeWarden is a narrow execution boundary for Codex, Claude, Cursor, and custom coding agents. An Agent requests one typed GitHub change; ChangeWarden applies a default-deny policy, obtains an independent human decision when required, executes with a GitHub App credential that never enters the Agent, and records a receipt bound to GitHub's actual response.
Agent / MCP client -> policy -> independent approval -> one-time execution
-> GitHub App -> receiptIt is not a generic GitHub proxy, a raw REST relay, or a solution to model alignment. Its claim is narrower: a configured GitHub change that crosses this Gate cannot execute without the policy and approval path recorded for it.
Scope
Only four typed actions exist:
github.create_issuegithub.create_pull_requestfrom an existing branchgithub.create_commentgithub.request_review
Every repository and action must be explicitly listed in policy.yaml; the default is deny. ChangeWarden does not merge pull requests, write repository contents, alter secrets or settings, manage collaborators, or accept arbitrary GitHub URLs, methods, or headers.
Related MCP server: Laguarde
One-command local start
With Docker Desktop running, start from the repository root:
bash scripts/quickstart.shOn PowerShell:
.\scripts\quickstart.ps1The script creates a local policy.yaml, private .env, and secrets/ directory only if missing, then starts http://localhost:8080. It never creates or stores a GitHub credential. The review flow works locally; external GitHub execution fails closed until the GitHub App configuration exists.
Governed flow
An Agent submits a bounded action. It receives a review URL, not a GitHub token.
curl -X POST http://127.0.0.1:8080/v1/actions \
-H "Authorization: Bearer $CHANGEWARDEN_AGENT_TOKEN" \
-H "X-ChangeWarden-Actor: codex-demo" \
-H 'Content-Type: application/json' \
-d '{
"repository":"acme/example-repository",
"action":"github.create_issue",
"payload":{"title":"Review deployment plan","body":"Bounded demo issue."},
"reason":"Track the approved deployment review.",
"idempotency_key":"demo-issue-2026-0001"
}'Open the returned review_url. A reviewer whose identity differs from the requester approves or denies with the separate reviewer token.
auto_execute_on_approval: true is available per action in policy and is enabled in the example policy. With it, ChangeWarden rechecks the current policy and calls GitHub itself immediately after approval. The Agent never gets a second execution power and does not need polling to cause the change.
Set auto_execute_on_approval: false when an operator wants an explicit, separate dispatch step. In both modes, the approved -> executing transition is atomic and cannot be used twice.
Successful execution returns GitHub's external URL plus a hash-linked receipt. Verify local evidence with:
python scripts/verify_receipts.pyMCP setup
The stdio MCP adapter exposes two narrow tools:
governed_github_changerequests a typed change.get_governed_change_statusreads its decision and receipt state.
Example for Claude Desktop or another stdio-compatible MCP client:
{
"mcpServers": {
"changewarden": {
"command": "python",
"args": ["/absolute/path/to/changewarden/mcp/server.py"],
"env": {
"CHANGEWARDEN_URL": "http://127.0.0.1:8080",
"CHANGEWARDEN_AGENT_TOKEN": "agent-token-only",
"CHANGEWARDEN_ACTOR_ID": "claude-coding-agent"
}
}
}
}Do not expose direct GitHub write tools or a GitHub token to the same Agent. Either creates a bypass outside ChangeWarden's security boundary.
Security properties
GitHub uses an App installation token minted inside ChangeWarden, never a personal access token held by the Agent.
Policy is reloaded and evaluated immediately before any external call.
Requester and reviewer must differ; self-approval is rejected.
Idempotency keys deduplicate an intent; an atomic state transition prevents a capability from executing twice.
Common credential-shaped input is rejected before it reaches the review inbox or GitHub. This is a guardrail, not general DLP.
Each accepted outcome appends a SHA-256 receipt binding request, capability, external reference, timestamp, and previous receipt hash.
Read the threat model and GitHub App setup before deployment.
Development checks
export PYTHONPATH=src
python -m unittest discover -s tests -vLicense
Apache-2.0. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Security gateway for AI agents: policy, approval, and audited execution, no secrets shared.
Supervised API-write gateway for AI agents with policy, human approval and execution receipts.
Pre-execution governance for AI agents. Deterministic PASS/FAIL/REVIEW verdicts, replayable proof.
AI agent infrastructure for discovery, authorization, execution, identity, and signed receipts.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to securely perform privileged actions like creating GitHub issues by minting short-lived, single-purpose tokens on demand, with policy enforcement and audit logging.MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI coding agents to evaluate actions against team-defined policies, record decisions, and obtain human approvals for potentially risky operations.58 npm1-
- FlicenseNot gradedqualityCmaintenanceEnables controlled AI-agent access to enterprise-shaped tools with a deny-by-default gated write path, human approval, dry-run execution, and append-only audit logging.1-
- FlicenseAqualityAmaintenanceEnables 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.143-