ShadowRun
Provides a local review/approval layer for PostgreSQL MCP interactions, trapping destructive tool calls such as writes, deletes, and SQL mutations and holding them for commit or discard via a local dashboard.
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., "@ShadowRuninsert a new user into the users table"
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.
ShadowRun
A local-first stdio proxy for MCP servers. It sits between an AI agent (Claude Code, Cursor, etc.) and a real MCP server, traps destructive tool calls (writes, deletes, SQL mutations, ...) before they execute, and holds them in memory until you commit or discard them from a local dashboard.
Unlike a naive "fake success" interceptor, ShadowRun does not reply to
the agent until a trapped call is resolved. Faking a response (e.g. for an
INSERT ... RETURNING id) lets the agent act on data that doesn't exist yet
and diverges its belief state from reality — so trapped calls simply wait
(with a timeout) instead.
Scope (v0.1)
This is intentionally narrow: a single-developer CLI for local MCP servers (Postgres, filesystem, etc.) used with Claude Code / Cursor. It is not a team policy-enforcement gateway, has no auth, and no persistence across restarts — see Limitations below before relying on it for anything beyond your own machine.
Related MCP server: Agentrim MCP
Install & run
npm install
npm run buildPoint your agent config at the proxy instead of the real server:
{
"mcpServers": {
"postgres": {
"command": "node",
"args": [
"/path/to/shadowrun-mcp/dist/index.js",
"npx", "-y", "@modelcontextprotocol/server-postgres",
"postgresql://localhost:5432/devdb"
]
}
}
}Open http://127.0.0.1:4040 to see pending mutations, and Commit or
Discard each one. Read-only calls (get*, list*, search*, ...) pass
through immediately and never appear in the dashboard.
How classification works
See src/interceptor.ts — DEFAULT_CONFIG. A tool call is trapped if its
name matches a mutating verb pattern (write, delete, create, ...) and
doesn't match a safe-read pattern first, or if any string argument contains
a SQL mutation keyword (insert into, drop table, ...). This is a
heuristic, not a guarantee — see Limitations.
Limitations
Heuristic classifier. Regex on tool names and argument text will miss cleverly-named mutating tools and may over-trap oddly-named read tools. Treat this as a speed bump, not a security boundary.
No auth on the dashboard. It binds to
127.0.0.1only, but any local process (or a malicious page doing DNS rebinding, in theory) that can reach that port can commit/discard. Don't run this on a shared or untrusted machine.In-memory only. Restarting the proxy drops all pending mutations — the agent's original call will simply time out.
Single developer, local use. There's no shared audit log or team-wide policy enforcement. If you need that, look at a hosted MCP gateway instead.
License
AGPL-3.0
Test note: small commit pushed via Composio (2026-08-18) to verify author config.
This server cannot be deployed
Maintenance
Related MCP Connectors
Security & DLP proxy for MCP: tool-poisoning scans, PII redaction on tool args/results. Beta.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceZero-dependency local proxy that wraps any MCP server to redact secrets, strip hidden-Unicode prompt injection, and block writes to protected paths like ~/.ssh and .env.4MIT
- AlicenseNot gradedqualityBmaintenanceA least-privilege enforcement proxy for MCP servers. It sits between MCP clients and upstream servers, enforcing tool policies, hiding denied tools, requiring human approval for risky actions, and providing a structured audit trail.MIT
- AlicenseNot gradedqualityDmaintenanceA zero-infrastructure, local proxy that wraps any stdio MCP server to add audit logging, policy enforcement with regex guards, and per-session/per-day budgets.MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP proxy that records every tool call, restores prior state on undo, and blocks irreversible actions until a human approves them.1,238 npm2MIT