A tiny, free, open-source MCP server that wraps the tools your AI coding agent uses and blocks destructive operations before they execute. Drop-in for Cursor, Claude Code, and any MCP host. Apache 2.0, runs entirely on your machine, no account, no telemetry.
aperion-shield; Shield spawns the upstream MCP server as a child process and transparently relays every JSON-RPC frame in both directions. The only frames it intercepts are tools/call, which it evaluates against the ruleset before forwarding. No protocol changes from the IDE's perspective — same tools, same names, same schemas.
DROP DATABASE, DROP TABLE, TRUNCATE, unscoped UPDATE / DELETE (no WHERE).git push --force to main / master / prod / release/*, filter-repo, reset --hard HEAD~, branch -D.rm -rf /, rm -rf $HOME, dd to block devices, deletes of /etc / /var / /usr / /opt.aws s3 rb, DeleteBucket API calls, terraform destroy.--shadow for the first day to surface every would-have-fired rule without breaking your workflow. Once you trust the ruleset, drop the flag — Critical rules block, High rules queue for human approval, Medium passes with a warning. For CI runners and unattended agent loops, --auto-deny-high declines anything queued instead of waiting for a human.
approve <ticket-id> to a file in your project root:
RE2 regex because they need look-behind. Shield ships SQL-aware predicates (unscoped_update, unscoped_delete) that parse the statement and reject the classic agent failure mode: UPDATE users SET email_verified = true; -- forgot the WHERE. Trailing comments, multi-statement scripts, and weird quoting don't fool them.
shield-v* tag fires a release pipeline that builds Linux x86_64 / aarch64, macOS x86_64 / aarch64, and Windows x86_64 archives — plus a multi-arch distroless Docker image (~12 MB) published to ghcr.io/aperionai/shield, plus a Homebrew tap bump. All artefacts are SHA-256 checksummed and attached to the GitHub Release.
--telemetry flag for an anonymised public block ticker is reserved and currently stubbed; setting it today prints a notice and exits without sending anything.
~/.cursor/mcp.json~/.claude/config.json or claude mcp add(tool, actor)”). Porting an in-process, single-machine version into Aperion Shield gives free-tier users a second tier of catch beyond per-call regex.
(rule_id, severity) tuples that power a community dashboard (think CVE tracker for AI-agent destructive operations). Gated on legal/DPO review; will never enable without explicit opt-in via --telemetry.
| # | Capability | Tag | Notes |
|---|---|---|---|
| 01 | Local MCP stdio bridge | Core | Transparent proxy; intercepts tools/call only |
| 02 | 12 starter rules (SQL / git / fs / cloud) | Security | Baked into binary; same as enterprise default |
| 03 | Three modes — shadow / enforce / auto-deny | Operability | Recommended path: shadow for 1 day, then enforce |
| 04 | Local approval inbox | Approvals | ./.aperion-shield/inbox; 60s default timeout |
| 05 | SQL predicates (unscoped_update, unscoped_delete) | Engine | Parses SQL; not fooled by trailing comments |
| 06 | 5 platform builds + multi-arch Docker + Homebrew tap | Distribution | GitHub Actions auto-release on shield-v* tags |
| 07 | Offline by default — no telemetry | Privacy | Future opt-in flag stubbed and gated on legal review |