Skip to main content
Glama

VITNA – Containment for rogue AI agents

vitna_preflight

SAFETY / OVERSIGHT CHECK before a dangerous or destructive action (shell command, file deletion, DB statement, network call). Call this to have VITNA check the action BEFORE you run it: it flags dangerous shell / SQL / secret-exfil / prompt-injection / suspicious-network patterns and returns { decision: allowed|blocked|flagged }. RESPONSE SHAPE DEPENDS ON THE KEY: an unclaimed trial key gets the decision label only, because the pattern detail is what makes the classifier worth stealing. A claimed key additionally gets threat_category, severity, reason (the rule names that matched, never the matched text), a threats[] array and a redacted echo of what was scanned, plus a signed audit record the user can review. VITNA evaluates and records; it does NOT enforce, so treat blocked / flagged as a stop and get human approval. Act on decision: when the account's owner has switched it to shadow mode, decision is allowed even where flagged is true, and shadow.would_have says what VITNA would have answered when enforcing. This is how a user keeps you in check. Heuristic pattern match, not a sandbox: novel or obfuscated payloads can pass.

Input Schema

NameRequiredDescriptionDefault
actionNoThe proposed action / command text, e.g. "rm -rf /" or "DROP TABLE users".
payloadNoOptional structured payload to scan alongside the action text.
action_typeNoOptional short label for the action kind (shell, file_delete, db_query, network).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that VITNA evaluates and records but does NOT enforce, that response shape varies by key tier (trial gets only the decision label), that the reason field lists rule names but never matched text, and that a signed audit record is produced. It even discloses the core limitation ('heuristic pattern match, not a sandbox'), though it leaves the exact blocking semantics for shadow mode partly implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The safety purpose and the pre-execution timing are front-loaded, and most sentences add new information (response tiers, enforcement vs. recording, shadow mode, limitations). It is dense rather than bloated, though the key-tier/payload details run long for something an agent must read before every risky call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must explain return values and it does: decision, threat_category, severity, reason, threats[], redacted echo, and the signed audit record, plus how the shape differs for trial vs. claimed keys. Combined with the enforcement caveat and the heuristic limitation, an agent has enough to call it and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the three parameters are already documented in the schema, and the description adds only the framing that the action text is what gets scanned. It does not clarify that action is effectively required despite required=0, nor what action_type does when omitted, so it does not exceed the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: a pre-execution safety/oversight check on a dangerous action (shell, file deletion, DB statement, network call), and says what it returns (decision: allowed|blocked|flagged). This is clearly distinguishable from siblings such as vitna_claim and vitna_help, which handle key claiming and documentation rather than scanning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the timing ('BEFORE you run it') and what to do with the result ('treat blocked / flagged as a stop and get human approval'). It also explains the shadow-mode case where decision is allowed but flagged is true, so the agent knows how to act in that branch rather than inferring it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.