Skip to main content
Glama

Guard: check text before acting on it or sending it

guard_check
Read-onlyIdempotent

Check content for prompt injection (inbound) or leaked secrets and personal data (outbound) before an agent acts on it or sends it. Returns allow / warn / block, the findings, a redacted copy for outbound secrets, and an Ed25519-signed receipt anchored on-chain, which proves the check happened. Privi does not store the text. Free for 1,000 checks a month with an organization key; otherwise 1 cent per check in USDC via x402.

Input Schema

NameRequiredDescriptionDefault
textYesThe content to check: a web page, email, document or tool result the agent is about to act on (inbound), or what the agent is about to send (outbound)
sourceNoOptional label for the receipt, e.g. the page URL or tool name
directionNoinbound = untrusted content coming in (prompt injection, hidden instructions); outbound = content going out (API keys, card numbers, data smuggled in URLs)inbound

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only declare readOnly/idempotent/closed-world, so the description carries the interesting load and does so: it discloses the return vocabulary (allow/warn/block), the findings, the redacted copy, an on-chain-anchored Ed25519 receipt, the non-storage guarantee, and the pricing model (free 1,000/month with org key, else 1 cent USDC via x402). These are concrete behavioral traits an agent can't derive from the annotations.

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?

Front-loads the purpose in the first sentence, then the return contract, then the trust/privacy and pricing facts, with no filler sentences. The one-sentence pricing/x402 tail is dense but still earns its place for a paid tool.

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?

With no output schema, the description fully compensates by explaining the return values (allow/warn/block, findings, redacted copy, signed receipt). Combined with the parameter docs and annotation-covered safety profile, an agent has everything needed to call this 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%, and the enum for direction plus the source label are fully documented in the schema, so a baseline of 3 applies. The description reinforces the inbound/outbound semantics but adds no syntax, format, or constraint detail beyond what the schema already states.

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

Purpose4/5

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

States a specific verb and resource ('Check content for prompt injection ... or leaked secrets and personal data') and adds the preconditions 'before an agent acts on it or sends it'. It does not name its closest sibling guard_check_many (the batch variant), so the boundary with that sibling is left to inference, but the core purpose is unambiguous.

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

Usage Guidelines4/5

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

Gives clear usage context via the inbound/outbound framing: check untrusted content coming in before acting on it, check content going out before sending it. No explicit when-not or alternative-tool routing (e.g. use guard_check_many for multiple texts, or guard_receipt to fetch a receipt later), so it stops short of a 5.

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.

Resources