Human-in-the-loop safety middleware for MCP servers. Require explicit approval before state-mutating operations.
Cite-Before-Act MCP implements a standardized "dry-run → approval → execute" workflow for any MCP (Model Context Protocol) server. It acts as a transparent proxy that intercepts tool calls, detects mutating operations, and requires human approval before execution.
Watch a live demonstration of Cite-Before-Act MCP
Join the discussion on LinkedIn
Client → Cite-Before-Act Proxy → Middleware → Detection → Explain → Approval → Upstream Server
↓
(if mutating)
↓
Concurrent Approval Methods
(run in parallel, first response wins)
↓
┌───────────────┼───────────────┬───────────────┐
│ │ │ │
Native Dialog Slack Button Webex Card Teams Card
(macOS/Win) (interactive msg) (adaptive) (adaptive)
│ │ │ │
└───────────────┼───────────────┴───────────────┘
↓
User responds via any method
↓
Execute or Reject
write_file tool callwrite_ prefix conventionRead-only operations (like read_file, list_directory) execute immediately without approval.
All enabled methods run concurrently - respond via any platform, first response wins:
macOS/Windows popup
No Config RequiredInteractive buttons
Webhook RequiredAdaptive cards
Bot RequiredBot Framework
Azure App RequiredJSON response file
Always AvailableGet started in minutes with the interactive setup wizard:
git clone https://github.com/bisonbet/Cite-Before-Act-MCP.git cd Cite-Before-Act-MCP python3 setup_wizard.py
The wizard will:
Wrap any MCP server with minimal configuration:
{
"mcpServers": {
"github-cite": {
"command": "python",
"args": ["-m", "server.main", "--transport", "stdio"],
"env": {
"UPSTREAM_COMMAND": "docker",
"UPSTREAM_ARGS": "run,-i,--rm,ghcr.io/github/github-mcp-server",
"UPSTREAM_TRANSPORT": "stdio",
"ENABLE_SLACK": "true",
"SLACK_CHANNEL": "#approvals"
}
}
}
}
Start using Cite-Before-Act MCP today and gain human-in-the-loop control over state-mutating operations.
Require approval before deleting files, modifying databases, or changing system configurations.
Prevent accidental charges, refunds, or payment processing without explicit consent.
Review and approve emails, messages, or notifications before they're sent.
Gate API calls to external services, ensuring controlled automation.
Control data creation, updates, and deletions across systems.
Approve deployments, infrastructure changes, and production operations.