TripWire MCP Server
Provides deployment instructions for the authenticated Streamable HTTP policy gateway, which exposes preflight_command and is advisory until Replit offers a non-bypassable execution hook.
Click on "Install 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., "@TripWire MCP Servershow me the files in the demo workspace"
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.
TripWire
TripWire is a sandbox-first prototype of a command safety layer for MCP-compatible coding agents. It protects only commands sent through its safe_exec MCP tool; it is not host-wide enforcement and cannot protect an agent that bypasses the tool.
Safety model
Commands execute only in the configured, marker-protected demo sandbox.
Safe read/test commands run immediately. Known destructive commands and shell/parser evasions are blocked.
Unresolved environment, command, and home-directory expansion syntax (including
$HOME,%USERPROFILE%,!HOME!,$env:HOME,$(...),~, and~/...) is a policy violation even for an otherwise harmless command such asls $HOME. This is deliberate: TripWire detects syntax but does not resolve shell-dependent paths.Test/seed/cleanup operations that target a production-marked URL or connection string are blocked when destructive, or held for human review when lower-confidence. Built-in production markers are always active;
TRIPWIRE_PRODUCTION_MARKERScan add comma-separated private markers. This is heuristic detection only: an unlabelled production resource that matches no known marker cannot be identified by this layer.Ambiguous commands enter a bounded GPT-5.6 Terra tool-calling loop in
livemode, or a visibly labelled deterministic fixture indemomode. The live agent may only requestget_contextandsnapshot_state; it has no execution, rollback, cache, audit, or rule-writing authority. A model allow/flag result always waits for human approval.A workspace tarball and SQLite backup are created before a pending mutation or cached mutation runs. Rollback is explicit.
Human review is two-step: authorization creates a short-lived, signed confirmation capability; only an explicit confirmation consumes it and starts execution. A dashboard disconnect before confirmation leaves the command unexecuted. Once confirmation is accepted, execution is authoritative even if the browser loses its response.
The local JSONL audit log is hash chained and validated by the dashboard. It is tamper-evident, not immutable.
After an escalated incident is logged, the agent drafts a short dashboard report. Repeated normalized patterns may produce a cache proposal, but a human must explicitly accept it. Proposals never edit safety rules and accepting one starts no command.
Related MCP server: repo-seatbelt
Run the judge demo
export TRIPWIRE_API_KEY="replace-with-a-long-random-local-secret"
docker compose up --buildOpen http://localhost:8000, enter the same API key to unlock the dashboard, then approve the seeded touch agent-note.txt replay and roll it back. The dashboard seeds replay incidents in its own process, so pending commands remain approvable. The Compose profile runs as a non-root user with a read-only root filesystem, dropped Linux capabilities, resource limits, and required Landlock enforcement. Docker Desktop with WSL2 and a Landlock-capable Linux kernel are required; the service refuses protected execution when its Landlock probe fails.
It also records two non-executing risk-taxonomy examples: rm -rf ~ and a synthetic test cleanup aimed at a production-marked database URL. Credentials in connection strings are redacted from the dashboard, audit record, and model prompt.
For a real reasoning call, set TRIPWIRE_MODE=live and OPENAI_API_KEY; no missing-key fallback is allowed in live mode.
Run the shipped test suite in the same image with:
docker compose run --rm --entrypoint pytest tripwireRun the scripted acceptance scenario used for a fast judge check with:
docker compose run --rm --entrypoint python tripwire scenario_runner.pyIt proves the safe, destructive, human-review, approval, rollback, cached-verdict, model-failure, and audit-chain paths in a fresh temporary sandbox. The interactive dashboard replay remains the best route for the visual demo.
MCP configuration
Add this to the Codex configuration appropriate to your machine, then start the dashboard separately with tripwire-dashboard:
[mcp_servers.tripwire]
command = "tripwire-mcp"
[mcp_servers.tripwire.env]
TRIPWIRE_MODE = "demo"
TRIPWIRE_SANDBOX_ROOT = "./demo/workspace"
TRIPWIRE_STATE_ROOT = "./demo/state"
TRIPWIRE_API_KEY = "replace-with-a-long-random-local-secret"
TRIPWIRE_APPROVAL_KEY = "same-long-random-local-secret-or-a-separate-shared-secret"The MCP server exposes safe_exec(command, cwd, intent) and rollback(snapshot_id). safe_exec is the integration boundary: do not expose a raw shell tool alongside it for a safety demonstration. The dashboard and MCP process must share TRIPWIRE_SANDBOX_ROOT, TRIPWIRE_STATE_ROOT, and TRIPWIRE_APPROVAL_KEY. Every pending mutation is persisted as an HMAC-bound, one-time record tied to its exact canonical command, cwd, sandbox root, snapshot, expiry, and nonce; dashboard approval consumes it once.
Development
python -m pip install -e ".[dev]"
pytest
tripwire-demoThe project intentionally rejects redirection, pipelines, command substitution, encoded payloads, network/cloud tooling, executable paths, unsupported flags, path operands outside the sandbox, and symlink operands. pytest and git are review-required because they can execute repository-controlled behavior. Those restrictions make the demo boundary inspectable; production enforcement needs stronger isolated workers in addition to this application layer.
Execution integrations
The integrations/ directory contains the next product layer:
terminal/: Bash and PowerShelltwwrappers that preflight or submit commands to a running local gateway. They enforce only commands deliberately routed throughtw; MCP cannot intercept arbitrary shell input on its own.cursor-extension/: an experimental Cursor/VS Code protected-terminal prototype. The packaged.vsixis included for development evaluation, but is not the primary judge or video path for this submission.antigravity/: a workspace plugin that installs the local MCP server and a rule directing agent command calls tosafe_exec.replit/: deployment instructions for the authenticated Streamable HTTP policy gateway. It exposespreflight_commandand is advisory until Replit offers a non-bypassable execution hook.
Local fallback (unprotected demo)
If Docker Desktop cannot start the protected stack, the approval, audit, snapshot, and rollback demo can run directly from a local terminal. This mode does not provide Docker or Landlock execution isolation and must not be presented as protected execution.
From the repository root in VS Code or PowerShell:
.\scripts\run-local-demo.ps1The script prints a one-time API key and starts a localhost-only dashboard at http://127.0.0.1:8000. Enter that key in the dashboard. Press Ctrl+C in the same terminal to stop it.
VS Code demo path
The submission demo uses VS Code as the local development environment and the browser dashboard as the approval surface; it does not rely on the experimental VSIX. Open the repository folder in VS Code, run Tasks: Run Task → TripWire: Start local demo, and choose a local dashboard key when prompted. The task disables Docker Compose Bake (a Docker Desktop compatibility workaround), starts the protected stack, and seeds the dashboard. Open http://127.0.0.1:8000, enter the same key, then run the approval-and-rollback walkthrough in docs/VIDEO_DEMO.md.
Security validation
Run the deterministic validation report with python scripts/security_report.py. The Docker/Landlock, live GPT-5.6, Cursor/Codex, and Railway validation procedures are in docs/SECURITY_VALIDATION.md. Live validation is opt-in, uses a disposable sandbox, requires current input/output rate values, and defaults to a US$5 estimated-cost ceiling.
For a fast evaluation walkthrough, see the judge guide.
For a judge-run live GPT-5.6 validation, copy .env.example to .env, enter a dedicated revocable API key and the current input/output rates, then explicitly set TRIPWIRE_TEST_LIVE=1. Run python scripts/live_validation.py. The runner loads that local file without overriding shell/CI variables, never confirms a mutation, and writes a redacted latency, usage, tool-call, and estimated-cost report. .env is gitignored and is used by this validation runner only; it does not silently switch the Docker dashboard out of demo mode.
Available Tools
2 toolsrollbackC
Restore a TripWire snapshot in the configured demo sandbox.
| Name | Required | Description | Default |
|---|---|---|---|
| snapshot_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. 'Restore a snapshot' signals a state-changing operation, and 'demo sandbox' scopes its blast radius, which is helpful. However, it doesn't disclose whether the restore is reversible, destructive to current sandbox state, or requires specific permissions. A state-changing tool with no annotation coverage could do more, though the 'demo sandbox' caveat adds meaningful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence that names the action, the resource type, and the deployment context. Zero filler, no redundancy, every word earns its place. This is appropriately concise for a tool with one parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a state-changing, destructive-ish operation (restoring a snapshot) with no annotations, no output schema, and no param detail. For a mutation tool with a sibling (safe_exec), the description is thin. It doesn't explain what happens to current sandbox state, whether assets are wiped, or what the expected outcome is on success. Given its complexity as a restore operation, more detail is warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only one parameter (snapshot_id) at 0% schema description coverage, the description doesn't mention the parameter at all. However, the schema title 'Snapshot Id' is reasonably self-explanatory given the tool is about restoring snapshots. The description adds little beyond the schema, but the single-parameter schema is simple enough that a baseline of 3 seems fair — though there's no info on format (UUID? name? custom format?) for snapshot_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Restore a TripWire snapshot in the configured demo sandbox' — a verb+resource with a scoping qualifier ('demo sandbox'). It's clear enough about the primary action but doesn't elaborate on what 'restore' entails (overwrites current state? creates new resources?). It doesn't explicitly distinguish from the sibling tool safe_exec, though the distinct purpose is evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus safe_exec. The description implies a demo-sandbox context but offers no exclusions, prerequisites, or alternatives. Given the sibling relationship with safe_exec, explicit guidance on when rollback vs safe_exec is appropriate would be valuable but is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
safe_execD
Classify and safely route a command inside TripWire's sandbox.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | . | |
| intent | No | ||
| command | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description says 'Classify and safely route a command inside TripWire's sandbox' but never explains what 'safely route' means—what happens to the command, what the sandbox does, whether it executes or just evaluates/classifies the command, what happens on unsafe commands, or what the output indicates. This is a security-sensitive tool and the description is almost entirely uninformative about behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise, but it is under-specified rather than efficiently specified. The word 'process' fills the sentence with no additional behavioral content. It earns credit for brevity but the content is thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a security-critical tool with no annotations, no output schema, and 0% schema description coverage for its parameters. The description fails to explain return values, what 'safe' classification means, failure modes, or how it relates to the sibling rollback tool. It is grossly incomplete for a sandbox-routing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must clarify parameter meaning, but it mentions none of the three parameters (command, cwd, intent). The 'intent' parameter is particularly opaque—its purpose in classification is never explained. Even 'cwd' with its default is left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Classify and safely route' names an action on a resource (a command in TripWire's sandbox), which gives partial clarity. However, it is ambiguous whether the tool actually executes the command or merely classifies it for later execution, and there is no differentiation from the sibling rollback tool or any other command tool. The core action is unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use safe_exec versus rollback or other alternatives. It does not specify when execution is appropriate, what commands are suitable, or how the classification decision is made. Usage context is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.1.0- First observed
rollback - First observed
safe_exec
TDQS
The two tools have clearly distinct purposes: safe_exec routes commands into a sandbox, while rollback restores snapshots. There is no ambiguity between executing a command and restoring an earlier state.
Both names use a single-word verb (safe_exec, rollback) without a noun component, showing some inconsistency with the typical verb_noun pattern. They're readable and somewhat consistent in being commands, but 'safe_exec' mixes an adjective+verb while 'rollback' is a single verb.
Two tools is on the thin side even for a focused sandbox MCP server. The domain (sandbox command execution and snapshot management) could reasonably warrant a few more operations like listing snapshots or checking sandbox state.
There is no way to inspect snapshot state before executing or understand what command is being routed, and no visibility into sandbox status. The surface covers execution and rollback but leaves out key supporting operations that agents would need to make informed decisions.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP enforcement layer that intercepts AI agent actions and blocks rule violations before execution.
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
Pre-execution safety layer for autonomous agent wallets via MCP and x402.
AgentGuard — 20-tool AI safety MCP: policy preflight, risk scoring, audit logging, rate limits.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePolicy-enforcing MCP proxy that blocks dangerous tool calls before they execute. Protects credentials, filesystem, shell, and databases across Claude Desktop, Cursor, Windsurf, and OpenClaw.1538Apache 2.0
- AlicenseNot gradedqualityDmaintenanceRuntime safety guardrails for AI coding agents. Checks file access, validates shell commands, and scores your repo's AI safety — all via MCP.108MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that vets package installations and shell commands to block dangerous actions by AI coding agents.111MIT
- AlicenseNot gradedqualityAmaintenanceA local-first MCP safety layer that blocks dangerous files and redacts secrets before AI agents can access them, ensuring safe vibe coding.13Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/owen-25-AI/tripwire-mcp-server-tool'
If you have feedback or need assistance with the MCP directory API, please join our Discord server