Diogenes Agent Guardrails & Sandbox MCP
Server Details
Autonomous agent guardrails, bash sandboxing, MCP rugpull diffing & prompt firewalls.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
- Repository
- stand-out-of-my-sun/diogenes-agent-guardrails-mcp
- GitHub Stars
- 2
- Server Listing
- Diogenes Agent Guardrails & Command Sandbox MCP
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 12 tools
Each tool targets a distinct artifact surface (MCP manifest, egress URI, response claims, action trace, Python source, raw tool output, sampling request, SQL AST, A2A card, shell payload), and the descriptions actively disambiguate near-neighbors with explicit 'use X instead' pointers (manifest audit vs schema rugpull, PII redaction vs output sanitization, command safety vs SQL validation). No two tools appear interchangeable.
All twelve names follow a strict snake_case verb_noun pattern with security-specific verbs (audit_, detect_, validate_, verify_, sanitize_, redact_, execute_) that map to the tool's actual action. No camelCase or bare-noun outliers.
Twelve tools sits squarely in the well-scoped band and each one covers a separate guardrail checkpoint (ingress, egress, execution, loop control, peer trust). Nothing looks like padding or a redundant variant.
Coverage spans inbound sanitization, manifest/sampling vetting, outbound egress and PII filtering, sandboxed execution, loop detection, and A2A trust — a coherent lifecycle. The main gap is that detect_mcp_schema_rugpull depends on a pinned baseline snapshot but no tool exists to create or persist that baseline, and there is no aggregate 'run all guardrails' check for a full turn.
Available Tools
12 toolsaudit_mcp_server_manifestExternal MCP Server Manifest & Tool-Poisoning Security AuditorARead-onlyIdempotentInspect
Scans an external MCP server's initial tools/list manifest to detect tool-name shadowing (read_file, bash) and hidden prompt-injection directives in descriptions. Use when vetting a newly discovered third-party MCP server before mounting it into an agent session; for comparing a previously pinned MCP baseline against a live mid-session tools/list response, use detect_mcp_schema_rugpull instead. Stateless read-only edge call (max 32 KB, 60 RPM): accepts 'manifest_json' ('audit_profile' defaults to 'strict'), supports '?demo=true' or L402 (25 sats), and returns HTTP 400 if invalid.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_profile | No | Sensitivity level for flagging system-tool name shadowing; defaults to 'strict' when omitted. | |
| manifest_json | Yes | JSON string or object containing the external MCP server's tools array to audit. |
Output Schema
| Name | Required | Description |
|---|---|---|
| manifest_safe | Yes | True if zero shadowed tools or description injections are found. |
| security_grade | Yes | Overall manifest safety grade ('A+', 'C', or 'F'). |
| shadowed_tools | Yes | Tool names attempting to shadow host privileges (e.g. 'bash', 'read_file'). |
| suspicious_tools | Yes | Tools containing covert prompt-injection or exfiltration instructions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnly/idempotent/non-destructive annotations it discloses statelessness, a 32 KB payload cap, 60 RPM rate limit, payment options (demo=true or L402 at 25 sats), and the HTTP 400 failure mode for invalid input. These are operational traits the annotations cannot express and materially affect how an agent calls it.
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?
Front-loads purpose, then routing, then operational constraints — a sensible order with no filler sentences. The final clause is dense (size, rate, auth, error all in one line), which slightly hurts scannability but every element earns its place.
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?
For a 2-param read-only audit tool with an output schema, the description covers purpose, alternative routing, payload limits, auth/payment, and error behavior — everything needed to invoke it correctly. Nothing material is missing.
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 coverage is 100% and the audit_profile enum is fully documented, so the schema carries most weight. The description still adds value by noting manifest_json accepts a JSON string or object form and that audit_profile 'defaults to strict', reinforcing default behavior beyond the enum list.
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?
States a specific verb (Scans) and resource (external MCP server's initial tools/list manifest), and names the exact threat classes detected (tool-name shadowing, hidden prompt-injection directives). It explicitly distinguishes itself from the closest sibling detect_mcp_schema_rugpull, so an agent can route without opening either schema.
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?
Gives an explicit when-to-use condition (vetting a newly discovered third-party MCP server before mounting) and an explicit when-to-use-the-other condition (comparing a pinned baseline against a live mid-session tools/list → detect_mcp_schema_rugpull). Alternatives and exclusions are both named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_outbound_egress_urlOutbound Agent URL SSRF, Metadata & Secret Exfiltration FirewallARead-onlyIdempotentInspect
Static validation firewall for outbound network destination URIs against cloud metadata IP addresses (169.254.169.254), RFC 1918 private IP blocks, and query-string secret exfiltration before agent dispatch. Use when validating a user-supplied or tool-supplied URI destination before network dispatch; for auditing local shell commands or general prompts, use verify_agent_command_safety instead. Read-only edge call (32 KB, 60 RPM): accepts 'destination_uri' ('egress_policy' defaults to 'block_private_and_metadata'), supports '?demo=true' or L402 (15 sats), and returns HTTP 400 if invalid.
| Name | Required | Description | Default |
|---|---|---|---|
| egress_policy | No | Network egress policy; defaults to 'block_private_and_metadata' when omitted. | |
| destination_uri | Yes | Outbound HTTP/HTTPS destination URI to inspect before fetching (e.g. 'https://api.example.com/v1/webhook'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| verdict | Yes | Firewall decision ('ALLOW_EGRESS_REQUEST' or 'BLOCK_SSRF_OR_EXFIL'). |
| egress_allowed | Yes | True if the URL targets a safe public endpoint with no exfiltration tokens. |
| ssrf_risk_detected | Yes | True if loopback, RFC1918 private IP, or cloud metadata IP is targeted. |
| exfiltration_query_params | Yes | Query parameters suspected of carrying leaked secrets or base64 payloads. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/idempotent/non-destructive, and the description adds operationally important traits those annotations cannot express: a 32 KB input ceiling, 60 RPM rate limit, HTTP 400 on invalid input, and a payment/demo access mode (L402, 15 sats). This is exactly the added context the dimension rewards.
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?
Front-loaded with the core purpose in the first clause, then usage, then operational constraints — a sensible information order. It is dense and slightly crammed with parentheticals, but nearly every clause carries actionable detail.
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?
An output schema exists so return values need no explanation, and the description still covers invocation preconditions, limits, error signaling, and payment handling. Nothing an agent needs to call this correctly is missing.
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 coverage is 100% and it documents both parameters and the enum, so the baseline is 3. The description adds value by restating the egress_policy default and, more usefully, disclosing a '?demo=true' / L402 access mechanism that appears nowhere in the input schema.
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?
States a specific verb ('static validation firewall') and a precise resource ('outbound network destination URIs') plus the exact threat classes blocked (169.254.169.254, RFC 1918, query-string secrets). It explicitly names the sibling it is not (verify_agent_command_safety), so an agent can distinguish it without opening schemas.
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?
Gives an explicit trigger ('Use when validating a user-supplied or tool-supplied URI destination before network dispatch') and an explicit exclusion routing to verify_agent_command_safety for local shell commands or general prompts. Both when-to-use and the alternative are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_response_factualityDraft Agent Response Groundedness & Hallucination AuditorARead-onlyIdempotentInspect
Cross-references factual claims, numbers, and citations in a draft agent response against retrieved source passages to flag unsupported hallucinations before delivery. Use when verifying that a generated answer is 100% grounded in source evidence before returning it to the user; for scrubbing inbound tool outputs for prompt-injection and invisible Unicode, use sanitize_tool_output_stream instead. Stateless read-only edge call (max 32 KB, 60 RPM): accepts 'claim' ('context' defaults to 'standard'), supports '?demo=true' or L402 (25 sats), and returns HTTP 400 if invalid.
| Name | Required | Description | Default |
|---|---|---|---|
| claim | Yes | Draft agent response or factual statement to verify for hallucinations. | |
| context | Yes | Authoritative source text or retrieved RAG passages that the claim must be grounded in. | |
| strictness | No | Entailment threshold required for numbers and dates; defaults to 'exact_entailment' when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| verdict | Yes | Audit outcome ('PASS', 'SUSPICIOUS', or 'FAIL'). |
| verified_claims | Yes | Assertions directly entailed by the provided source context. |
| unverified_claims | Yes | Hallucinated or unsupported assertions flagged for removal. |
| groundedness_score | Yes | Factual support ratio from 0.0 (fabricated) to 1.0 (fully entailed). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real operational context: a 32 KB payload cap, 60 RPM, a stateless edge call, L402 payment of 25 sats or '?demo=true', and an HTTP 400 on invalid input. The one flaw is the claim that "'context' defaults to 'standard'", which is misleading, because the schema marks context as required and no such default exists.
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 tool's purpose is front-loaded in the first sentence, followed by usage, the sibling exclusion, and constraints. The final sentence crams four unrelated facts (size cap, rate limit, payment, error code) into one clause, but there's no filler.
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?
Given that an output schema exists, the description needn't explain return values, and it covers the operational envelope (limits, auth/payment, failure mode) that an agent needs before calling. The gaps are the undocumented strictness parameter behavior and the inaccurate 'context' default, both of which an agent would rely on.
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 100%, so each of the three parameters is already documented in the schema, and the baseline of 3 applies. The description restates parameter purpose loosely and introduces a default for 'context' that contradicts the required list, but it never touches the 'strictness' enum (exact_entailment / semantic_paraphrase / citations_only), which is where added semantics would have mattered most.
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 gives a specific verb and resource: cross-references factual claims, numbers, and citations in a draft response against retrieved source passages and flags hallucinations. That is far more concrete than the name alone. It only differentiates itself from one sibling (sanitize_tool_output_stream) and says nothing about the near-identical sibling verify_factual_claims, so an agent can't fully separate the two from this text.
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?
It states an explicit trigger ('before returning it to the user' / 'before delivery') and names an alternative with the condition that selects it: use sanitize_tool_output_stream for prompt-injection and invisible Unicode scrubbing. However, the closest alternative, verify_factual_claims, is never mentioned, leaving the most likely routing ambiguity unresolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_agent_action_loopAutonomous Agent Action-Trace Loop & Token-Burn Circuit BreakerARead-onlyIdempotentInspect
Analyzes an agent's recent tool-call trace to detect identical retry spins, A/B state oscillation, and runaway token burn. Use when monitoring autonomous agent execution loops to decide whether to continue or trip a token-burn breaker; for inspecting a single command payload for security threats before execution, use verify_agent_command_safety instead. Stateless read-only edge call (max 32 KB, 60 RPM): accepts 'action_trace_json' ('sensitivity' defaults to 'strict_2_repeats'), supports '?demo=true' or L402 (15 sats), and returns HTTP 400 if invalid.
| Name | Required | Description | Default |
|---|---|---|---|
| sensitivity | No | Cycle detection threshold; defaults to 'standard_3_repeats' when omitted. | |
| action_trace_json | Yes | JSON-serialized array of recent agent actions (e.g. '[{"tool":"search","status":"err"}]'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| loop_pattern | Yes | Detected cycle topology ('NONE', 'IDENTICAL_RETRY_SPIN', or 'ABAB_STATE_OSCILLATION'). |
| loop_detected | Yes | True if a repetitive retry spin or A/B oscillation cycle is active. |
| circuit_breaker_action | Yes | Recommended control action ('CONTINUE_EXECUTION' or 'HALT_AND_ESCALATE_OR_SWITCH_TOOL'). |
| estimated_tokens_saved | Yes | Projected token burn prevented by tripping the circuit breaker. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, it discloses statelessness, a 32 KB payload cap, 60 RPM rate limit, demo and L402 (15 sats) access paths, and an HTTP 400 failure mode for invalid input — operationally useful facts an agent cannot infer from structured fields.
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?
Front-loaded with the purpose and sibling routing before operational details, with no filler. The final sentence is dense with comma-spliced constraints (size, rate, auth, error code), which is efficient but slightly overpacked.
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?
With an output schema present and annotations carrying the safety profile, the description still covers the limit, auth, and error behaviors an agent needs before calling. Everything required to invoke it correctly is present, apart from the default-value defect noted above.
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 coverage is 100%, so the baseline would be 3, but the description actively misleads: it says 'sensitivity' defaults to 'strict_2_repeats' while the schema says it defaults to 'standard_3_repeats' when omitted. That direct conflict on the one behavioral knob can cause an agent to assume a stricter threshold than the server actually applies.
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?
States a specific verb and resource (analyzes an agent's recent tool-call trace) plus the three concrete failure patterns it detects: identical retry spins, A/B state oscillation, and runaway token burn. It also names the sibling verify_agent_command_safety and the scope that separates them, so an agent can route without opening either schema.
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?
Explicitly says when to use it ('monitoring autonomous agent execution loops to decide whether to continue or trip a token-burn breaker') and names the alternative for the adjacent case ('for inspecting a single command payload for security threats before execution, use verify_agent_command_safety instead'). Both the include and exclude conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_mcp_schema_rugpullMid-Session MCP tools/list Rug-Pull & Schema Mutation DetectorARead-onlyIdempotentInspect
Computes structural diffs between a pinned baseline MCP tools/list snapshot and a live server response to catch mid-session description or schema tampering. Use when verifying that a connected MCP server has not mutated its tool definitions mid-session; for performing a first-time static security audit on a single MCP manifest, use audit_mcp_server_manifest instead. Stateless read-only edge call (max 32 KB, 60 RPM): accepts 'baseline_tools_json' ('current_tools_json' defaults to 'standard'), supports '?demo=true' or L402 (20 sats), and returns HTTP 400 if invalid.
| Name | Required | Description | Default |
|---|---|---|---|
| diff_mode | No | Comparison strictness across descriptions and inputSchema; defaults to 'full_structural' when omitted. | |
| current_tools_json | No | JSON-serialized live tools/list array to compare against the baseline; defaults to '[]' when omitted. | |
| baseline_tools_json | Yes | JSON-serialized baseline tools/list array captured when the MCP server was first trusted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| verdict | Yes | Connection verdict ('SCHEMA_INTEGRITY_VERIFIED' or 'REVOKE_MCP_SERVER_IMMEDIATELY'). |
| mutated_tools | Yes | Detailed list of modified tools and their exact mutation type. |
| timestamp_utc | Yes | ISO-8601 UTC timestamp of the diff audit. |
| rugpull_detected | Yes | True if any tool was surreptitiously added or had its description/schema altered. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides critical behavioral traits beyond the annotations, including resource limitations (32 KB, 60 RPM), operational mode (Stateless read-only edge call), and specific failure modes (HTTP 400 if invalid). This level of detail is essential for an agent operating in a system integrity 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?
The definition is dense and highly technical, which is appropriate for its subject matter. While long, every phrase serves a functional purpose, successfully front-loading the primary goal and scoping constraints within the initial sentences.
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?
Given its high complexity and focus on security, the description is nearly exhaustive. It covers input requirements, operational limits, error handling, use cases, and explicit differentiation from related tools, leaving no critical operational gaps.
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?
Although the schema coverage is 100%, the description adds significant semantic context. It clarifies the functional role of the inputs (baseline is the trusted past, live is the current measurement) and details advanced invocation parameters like the use of 'demo=true' and specific payment units (L402).
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 purpose is highly specific: it computes structural differences between a pinned baseline and a live response. It clearly states the outcome—catching mid-session description or schema tampering—which is distinct from general auditing functions like `audit_mcp_server_manifest`.
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 usage guidelines are explicitly defined by the operational context. It identifies the primary use case (mid-session verification) and provides a direct alternative sibling tool for a related but different use case (first-time static security audit).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_python_sandboxAST-Audited Ephemeral Python Code Execution SandboxARead-onlyIdempotentInspect
Audits Python source code for forbidden syscalls (os, subprocess, socket, open, eval) inside an AST-governed WebAssembly sandbox with no host filesystem access. Use when executing LLM-generated Python snippets safely; for checking shell commands without executing code, use verify_agent_command_safety instead. Stateless read-only edge call (max 32 KB, 60 RPM): accepts 'python_script' ('timeout_profile' defaults to 'fast_1s'), supports '?demo=true' or MPP (250 sats), and returns HTTP 400 if invalid.
| Name | Required | Description | Default |
|---|---|---|---|
| python_script | Yes | Python 3 source script to audit and execute strictly inside an isolated AST-governed, non-privileged WebAssembly sandbox with no host filesystem access. | |
| timeout_profile | No | Execution resource ceiling; defaults to 'standard_5s' when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| exit_code | Yes | Process exit status (0 on clean execution, 1 on security block). |
| syntax_valid | Yes | True if the Python source parses without syntax errors. |
| simulated_stdout | Yes | Captured standard output from the isolated execution. |
| ast_security_audit | Yes | Static syscall audit summary including flagged_calls and safety_verdict. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds genuinely useful operational context beyond the annotations: 32 KB payload cap, 60 RPM rate limit, stateless edge call, no host filesystem, HTTP 400 on invalid input, demo/MPP payment path. However it never explains what the AST audit actually rejects at runtime (blocklist behavior, false-positive handling) or whether execution results include partial output on timeout. The readOnly/idempotent claims are consistent with the annotations but are simply restated, so the surplus value is mostly limits rather than semantics.
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?
Front-loaded with the core action and the sibling differentiation, with no filler sentences. The final sentence crams limits, defaults, payment modes, and error codes into one long clause, which costs some scannability.
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?
For a two-parameter tool with an output schema, the description covers what an agent needs to call it correctly: isolation guarantees, size/rate limits, default profile, payment/demo affordance, and failure signaling. Return-value explanation is correctly omitted since the output schema carries it.
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?
The description says timeout_profile 'defaults to fast_1s', while the schema description says it 'defaults to standard_5s when omitted'. That is a direct conflict on the most consequential parameter, and an agent trusting the prose would mis-size execution ceilings. Otherwise the prose just restates python_script and the enum, both of which the 100% coverage schema already documents.
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?
States a specific verb and resource (audit + execute Python source) plus the execution mechanism (AST-governed WebAssembly sandbox, no host filesystem). It explicitly contrasts itself with the sibling verify_agent_command_safety, so an agent can route between them without opening either schema.
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?
Gives a positive trigger (executing LLM-generated Python snippets safely) and a named alternative with the discriminating condition (checking shell commands without executing). The routing decision is fully determined by the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redact_sensitive_piiZero-PII & Secret Credential Redaction EngineARead-onlyIdempotentInspect
Redacts emails, phone numbers, SSNs, credit cards, API keys, and crypto private keys from text before logging or external transmission. Use when stripping personal data or secret credentials from prompts, logs, or outbound messages; for neutralizing indirect prompt injections and invisible Unicode in inbound tool responses, use sanitize_tool_output_stream instead. Stateless read-only edge call (max 32 KB, 60 RPM): accepts 'text' ('redaction_style' defaults to 'typed_token'), supports '?demo=true' or L402 (25 sats), and returns HTTP 400 if invalid.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Input text containing potential PII or secret keys to redact. | |
| redaction_style | No | Placeholder format used for redacted spans; defaults to 'typed_token' when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scrubbed_text | Yes | Sanitized text with all sensitive entities replaced by redaction tokens. |
| redactions_count | Yes | Total number of sensitive entities redacted. |
| zero_pii_certified | Yes | True when post-scan verification confirms zero residual PII patterns. |
| categories_redacted | Yes | Types of sensitive data detected (e.g. 'EMAIL', 'SSN', 'PRIVATE_KEY'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, but the description adds substantial operational context beyond that: stateless edge call, max 32 KB payload, 60 RPM rate limit, payment options (?demo=true or L402 at 25 sats), and HTTP 400 on invalid input.
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?
Three sentences, zero waste, and front-loaded with the core purpose and sibling distinction before operational limits. Every clause carries useful information.
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?
An output schema exists so return values need not be explained. The description covers size limits, rate limits, auth/payment paths, default behavior, and error handling, which is complete for an agent to call it correctly.
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 coverage is 100% and both parameters are already documented there, including the redaction_style enum and its default. The description mostly restates the default and text input, adding no syntax or format details beyond the schema.
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?
States the specific verb 'redacts' and enumerates the exact resource classes (emails, phone numbers, SSNs, credit cards, API keys, crypto private keys), and explicitly distinguishes itself from the sibling sanitize_tool_output_stream by naming the different use case.
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?
Explicitly says when to use it ('stripping personal data or secret credentials from prompts, logs, or outbound messages') and names the alternative tool plus the condition that selects it (neutralizing indirect prompt injections and invisible Unicode in inbound tool responses).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanitize_tool_output_streamIndirect Prompt-Injection, Invisible Unicode & Beacon Output ScrubberARead-onlyIdempotentInspect
Sanitizes untrusted external tool or web-scrape outputs by stripping invisible Unicode Tag characters (U+E0000), neutralizing Markdown tracking image beacons, and defusing indirect prompt overrides. Use when cleaning raw third-party tool outputs or scraped web text before inserting it into the LLM context window; for redacting personal identifiable information (emails, SSNs, keys) from outbound text, use redact_sensitive_pii instead. Read-only edge call (32 KB, 60 RPM): accepts 'raw_tool_output' (with enum defaults), uses '?demo=true' or L402 (15 sats); HTTP 400 if invalid.
| Name | Required | Description | Default |
|---|---|---|---|
| wrap_tag | No | XML isolation wrapper applied around the sanitized text; defaults to 'tool_data' when omitted. | |
| raw_tool_output | Yes | Untrusted text returned by an external tool, webhook, or web scraper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sanitized_output | Yes | Cleaned text with invisible Unicode, tracking beacons, and overrides neutralized. |
| threats_neutralized | Yes | List of smuggling or injection vectors stripped from the input. |
| injection_risk_score | Yes | Threat score from 0.0 to 0.99 prior to sanitization. |
| safe_for_context_ingestion | Yes | True once the sanitized payload is safe to feed to the LLM. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description goes well beyond them by disclosing the 32 KB payload ceiling, 60 RPM rate limit, auth paths (?demo=true or L402 at 15 sats), and the HTTP 400 failure mode for invalid input. That is exactly the operational context an agent needs before calling a metered edge endpoint.
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?
Purpose, threats, usage, alternative, and operational limits are all front-loaded and each clause carries information. It is a dense semicolon-chained paragraph, however, and the trailing auth/error clause could be tightened without losing anything.
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?
An output schema exists, so return values need no explanation, and the description still covers the input contract, size and rate limits, payment path, and error behavior. Nothing material for correct invocation is missing given the annotations and schema richness.
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 coverage is 100%, so both parameters are already documented in structured form, which sets the baseline at 3. The description only references 'raw_tool_output' and never explains wrap_tag or what the isolation wrappers mean for prompt safety, and the phrase "(with enum defaults)" attaches the enum to the wrong parameter, adding a small amount of confusion rather than meaning.
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 names a specific verb ("Sanitizes") and enumerates the exact threats removed: Unicode Tag characters U+E0000, Markdown tracking-image beacons, and indirect prompt overrides. It explicitly routes the PII case to the sibling redact_sensitive_pii, so an agent can separate this from the other ~90 tools without opening a schema.
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?
It states the trigger condition precisely ("cleaning raw third-party tool outputs or scraped web text before inserting it into the LLM context window") and names the alternative for the adjacent use case ("for redacting personal identifiable information ... use redact_sensitive_pii instead"). Both when-to-use and when-to-use-something-else are explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_mcp_sampling_requestInbound MCP sampling/createMessage Reverse-Injection FirewallARead-onlyIdempotentInspect
Audits inbound MCP sampling/createMessage callbacks from connected servers to block cross-server context snooping (includeContext='allServers') and token quota hijacking. Use when filtering a connected MCP server's request to sample the host LLM; for scrubbing text returned from a standard synchronous tools/call response, use sanitize_tool_output_stream instead. Stateless read-only edge call (max 32 KB, 60 RPM): accepts 'sampling_request_json' ('max_tokens_ceiling' defaults to '512'), supports '?demo=true' or L402 (20 sats), and returns HTTP 400 if invalid.
| Name | Required | Description | Default |
|---|---|---|---|
| max_tokens_ceiling | No | Maximum completion token quota allowed for server callbacks; defaults to '2048' when omitted. | |
| sampling_request_json | Yes | JSON string or object representing the inbound MCP sampling/createMessage payload. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sampling_safe | Yes | True if the sampling request respects context isolation and token caps. |
| timestamp_utc | Yes | ISO-8601 UTC timestamp of the inspection. |
| recommended_action | Yes | Host enforcement action ('APPROVE_SAMPLING_REQUEST' or 'REJECT_SAMPLING_REQUEST'). |
| violations_detected | Yes | Specific policy violations found in the sampling request. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already say read-only, idempotent, non-destructive, but the description adds substantial operational context the agent cannot get from them: statelessness, a 32 KB payload cap, 60 RPM rate limit, auth via '?demo=true' or L402 (20 sats), and the HTTP 400 failure mode. That is exactly the kind of beyond-schema behavior disclosure this dimension rewards.
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?
Two dense sentences that front-load the purpose, then usage routing, then constraints; very little waste. The parenthetical constraint block (limits, auth, error code) is packed tightly but remains scannable.
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?
With only 2 params, full schema coverage, a rich annotation set and an output schema, the description covers nearly everything an agent needs to call it correctly. The one gap is the wrong stated default for max_tokens_ceiling, which should be reconciled with the schema.
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 coverage is 100%, so the baseline would be 3, but the description actively conflicts with the schema: it claims 'max_tokens_ceiling' defaults to '512', while the schema says it 'defaults to 2048' when omitted. That contradiction is worse than silence, since an agent may assume a tighter quota than is actually applied.
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?
States a specific verb and resource ('Audits inbound MCP sampling/createMessage callbacks') and names the two concrete threats it blocks (includeContext='allServers' snooping and token quota hijacking). It is unmistakable against siblings like sanitize_tool_output_stream or audit_mcp_server_manifest.
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?
Gives an explicit use condition ('when filtering a connected MCP server's request to sample the host LLM') and explicitly routes the adjacent case elsewhere ('for scrubbing text returned from a standard synchronous tools/call response, use sanitize_tool_output_stream instead'). The when/when-not split is fully resolved in the text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_sql_query_astAST-Level Read-Only SQL Query & Injection Safety ValidatorARead-onlyIdempotentInspect
Performs static AST syntax tree parsing on SQL statements to verify strictly read-only SELECT clauses and reject mutations, stacked queries, or comment bypasses. Use when verifying that an agent-authored SQL statement is strictly read-only before running it on a database; for screening non-SQL bash commands or general agent prompts, use verify_agent_command_safety instead. Stateless read-only edge call (max 32 KB, 60 RPM): accepts 'sql_statement' ('dialect' defaults to 'postgres'), supports '?demo=true' or L402 (15 sats), and returns HTTP 400 if invalid.
| Name | Required | Description | Default |
|---|---|---|---|
| dialect | No | SQL dialect ruleset used for AST token inspection; defaults to 'postgres' when omitted. | |
| sql_statement | Yes | SQL statement string to statically parse and audit for read-only SELECT compliance (e.g. 'SELECT id, email FROM users WHERE active = 1'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| verdict | Yes | Execution decision ('ALLOW_EXECUTION' or 'BLOCK_EXECUTION'). |
| safe_read_only | Yes | True when the query is a pure SELECT statement with zero injection clauses. |
| blocked_clauses | Yes | List of destructive or injection SQL tokens detected. |
| tables_accessed | Yes | Table identifiers referenced in FROM and JOIN clauses. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds genuinely new operational context: statelessness, a 32 KB input cap, 60 RPM rate limit, an L402 payment path (15 sats), a '?demo=true' mode, and HTTP 400 on invalid input. These are exactly the constraints an agent needs and are not derivable from annotations or schema.
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?
Two dense sentences, front-loaded with the verb and compliance guarantee, followed by routing and operational limits — no wasted framing. The payment/rate-limit clause is packed tightly mid-sentence, which slightly hurts scannability but every element carries information.
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?
An output schema exists, so return values need no explanation, and the description still covers the remaining gaps an agent would hit: input size ceiling, throughput limit, payment mechanics, and error signaling (HTTP 400). Nothing needed to invoke it correctly is missing.
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 100%, so the baseline is 3; the description modestly exceeds it by restating the 'sql_statement' and default-'postgres' dialect behavior and by surfacing the '?demo=true' selector, which is not represented in the input schema at all. No syntax or size-per-dialect guidance beyond the 32 KB cap.
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?
States a specific verb and resource ('static AST syntax tree parsing on SQL statements') plus the exact success condition ('verify strictly read-only SELECT clauses') and failure modes rejected (mutations, stacked queries, comment bypasses). An agent can immediately tell this apart from synthesize_sql_query or transpile_sql_dialect.
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?
Explicitly says when to use it ('verifying that an agent-authored SQL statement is strictly read-only before running it on a database') and names an alternative for out-of-scope input ('use verify_agent_command_safety instead'). It does not address the closely overlapping sibling audit_sql_injection_ast, whose injection-rejection remit overlaps the 'stacked queries or comment bypasses' language, leaving one ambiguity unresolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_a2a_agent_cardA2A /.well-known/agent.json Identity & Capability Card VerifierARead-onlyIdempotentInspect
Verifies a remote agent's A2A /.well-known/agent.json discovery card, checking JWS/DID signature binding, endpoint HTTPS enforcement, and capability spoofing. Use when authenticating a peer autonomous agent before delegating subtasks or exchanging payments over A2A; for auditing an MCP tool server's tools/list manifest rather than a peer agent's A2A card, use audit_mcp_server_manifest instead. Read-only edge call (32 KB, 60 RPM): accepts 'agent_card_json' ('trust_policy' defaults to 'require_https_and_did'), supports '?demo=true' or L402 (15 sats), and returns HTTP 400 if invalid.
| Name | Required | Description | Default |
|---|---|---|---|
| trust_policy | No | Verification policy for DID/DNS binding; defaults to 'require_https_and_did' when omitted. | |
| agent_card_json | Yes | JSON string or object of the peer agent's /.well-known/agent.json descriptor. |
Output Schema
| Name | Required | Description |
|---|---|---|
| agent_id | Yes | Canonical identifier of the verified peer agent. |
| card_valid | Yes | True when the A2A agent card schema, transport, and identity claims pass verification. |
| spoofing_flags | Yes | List of impersonation or downgrade anomalies detected. |
| delegation_verdict | Yes | Handshake decision ('SAFE_TO_DELEGATE_A2A' or 'REJECT_UNVERIFIED_AGENT'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), but the description adds material operational detail annotations cannot express: a 32 KB payload ceiling, a 60 RPM rate limit, the default trust_policy, the '?demo=true'/L402 15-sat access path, and an HTTP 400 on invalid input. That is exactly the kind of cost, limit, and failure-mode disclosure the description is supposed to carry.
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?
Front-loaded with the purpose and the sibling routing before the operational details, which is the right ordering. The second half is dense — size, rate limit, parameters, default, demo/L402, and error code packed into one sentence — costing a little scannability but no clause is filler.
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?
An output schema exists so return values need no explanation, and the description still flags the HTTP 400 failure path. For a two-parameter read-only validator, every decision an agent needs — when to call it, what to pass, defaults, limits, and cost — is present.
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 100% and the enum is documented, so the schema already does the semantic work; baseline 3 applies. The description does restate the trust_policy default and add the non-schema '?demo=true' access flag, but it adds no meaning about what the three policies actually accept or reject.
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?
States a specific verb and resource ('Verifies a remote agent's A2A /.well-known/agent.json discovery card') and enumerates the exact checks performed (JWS/DID signature binding, HTTPS enforcement, capability spoofing). It explicitly names the closest sibling, audit_mcp_server_manifest, and the axis that distinguishes them (peer agent card vs. MCP tools/list manifest).
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?
Gives an explicit trigger ('Use when authenticating a peer autonomous agent before delegating subtasks or exchanging payments over A2A') and an explicit exclusion with the correct alternative for the MCP-manifest case. Nothing is left to inference about when to reach for this tool versus its nearest sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_agent_command_safetyAutonomous Agent Pre-Execution Command & Prompt Injection GateARead-onlyIdempotentInspect
Evaluates untrusted agent prompts, bash commands, and tool arguments to block prompt injection, destructive shell commands, and private-key exfiltration. Use when screening a general shell command or user prompt before autonomous agent execution; for statically validating SQL database queries at the AST level, use validate_sql_query_ast instead. Stateless read-only edge call (max 32 KB, 60 RPM): accepts 'payload' ('action_type' defaults to 'bash_command'), supports '?demo=true' or L402 (20 sats), and returns HTTP 400 if invalid.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Raw command string, script snippet, or untrusted prompt to inspect for safety violations. | |
| action_type | No | Execution context of the payload; defaults to 'bash_command' when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| safe | Yes | True when zero injection, exfiltration, or destructive patterns are found. |
| verdict | Yes | Enforcement decision ('ALLOW', 'BLOCK', or 'QUARANTINE'). |
| risk_score | Yes | Normalized threat probability from 0.0 (benign) to 1.0 (critical). |
| threats_detected | Yes | List of specific threat categories triggered by the payload. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (which already declare readOnly, idempotent, non-destructive, closed-world): it discloses statelessness, a 32 KB payload ceiling, a 60 RPM rate limit, the demo/L402 pricing path, and the HTTP 400 failure mode for invalid input. These are exactly the operational constraints an agent cannot infer from structured fields.
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?
Front-loads the action and the sibling differentiation, then compresses pricing/limits/errors into one trailing sentence — efficient overall. The final clause is somewhat dense with operational trivia (L402, 20 sats, 20 s timeout) that slightly crowds the core guidance, but nothing is wasted.
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?
With an output schema present, return-value detail is correctly omitted, and the description still covers the constraints that block a correct call: size cap, rate limit, auth/payment options, and error behavior. Nothing an agent needs before invoking is missing.
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 100% and already documents both fields, including the 'bash_command' default. The description restates the default and names the payload field but adds no new syntax, size-per-field, or format guidance beyond the schema, so the baseline of 3 applies.
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?
States a specific verb (evaluates/blocks) against specific resources (untrusted prompts, bash commands, tool arguments) and names the exact threat classes it addresses (prompt injection, destructive shell commands, key exfiltration). It also explicitly contrasts itself with validate_sql_query_ast, so an agent can route correctly without opening either schema.
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?
Gives a positive trigger ('use when screening a general shell command or user prompt before autonomous agent execution') and a negative one with the named alternative ('for statically validating SQL database queries at the AST level, use validate_sql_query_ast instead'). Both the when-and the when-not are explicit.
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.
3 tool updates
- Changed
audit_outbound_egress_url3 fields changed- added
Input schema / properties / destination_uriAdded value: +{ + "description": "Outbound HTTP/HTTPS destination URI to inspect before fetching (e.g. 'https://api.example.com/v1/webhook').", + "type": "string" +} - removed
Input schema / properties / target_urlRemoved value: -{ - "description": "Full outbound HTTP/HTTPS URL to inspect before fetching (e.g. 'https://api.example.com/v1/webhook').", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "target_url" -]New value: +[ + "destination_uri" +]
- Changed
execute_python_sandbox3 fields changed- removed
Input schema / properties / codeRemoved value: -{ - "description": "Python 3 source code snippet to audit and execute in the isolated sandbox.", - "type": "string" -} - added
Input schema / properties / python_scriptAdded value: +{ + "description": "Python 3 source script to audit and execute strictly inside an isolated AST-governed, non-privileged WebAssembly sandbox with no host filesystem access.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "code" -]New value: +[ + "python_script" +]
- Changed
validate_sql_query_ast3 fields changed- removed
Input schema / properties / queryRemoved value: -{ - "description": "SQL query string to parse and validate (e.g. 'SELECT id, email FROM users WHERE active = 1').", - "type": "string" -} - added
Input schema / properties / sql_statementAdded value: +{ + "description": "SQL statement string to statically parse and audit for read-only SELECT compliance (e.g. 'SELECT id, email FROM users WHERE active = 1').", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "query" -]New value: +[ + "sql_statement" +]
21 tool updates
- Removed
agent_loop_circuit_breaker - Removed
agent_mcp_manifest_auditor - Removed
agent_sql_guard - Added
audit_mcp_server_manifest - Added
audit_outbound_egress_url - Added
audit_response_factuality - Removed
code_sandbox - Added
detect_agent_action_loop - Added
detect_mcp_schema_rugpull - Added
execute_python_sandbox - Removed
guardrail_verify - Removed
mcp_rugpull_diff - Removed
mcp_sampling_guard - Added
redact_sensitive_pii - Added
sanitize_tool_output_stream - Removed
scrub_pii - Removed
tool_output_firewall - Added
validate_mcp_sampling_request - Added
validate_sql_query_ast - Added
verify_a2a_agent_card - Added
verify_agent_command_safety
9 tool updates
- First observed
agent_loop_circuit_breaker - First observed
agent_mcp_manifest_auditor - First observed
agent_sql_guard - First observed
code_sandbox - First observed
guardrail_verify - First observed
mcp_rugpull_diff - First observed
mcp_sampling_guard - First observed
scrub_pii - First observed
tool_output_firewall
Related MCP Connectors
Real-time MCP & A2A prompt-injection, jailbreak, and tool-schema poisoning firewall for AI agents.
AgentGuard — 20-tool AI safety MCP: policy preflight, risk scoring, audit logging, rate limits.
Safety tools for AI agents: safe page reader, prompt-injection, secrets, PII and MCP server scans
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceLocal security layer for AI coding agents: MCP policy proxy, kernel sandbox, tamper-evident audit logMIT
- AlicenseAqualityBmaintenanceEnables running AI coding agents and MCP servers inside an OS-level least-privilege sandbox that hides credentials and blocks network access by default, with tool firewalling, rug-pull protection, audit logging, and boundary verification.82AGPL 3.0
- AlicenseNot gradedqualityNot gradedmaintenanceEnables real-time indirect prompt injection fuzzing, exfiltration canary detection, least-privilege tool sandboxing, and cryptographic audit proofs over MCP.MIT
- AlicenseNot gradedqualityDmaintenanceRuntime safety guardrails for AI coding agents. Checks file access, validates shell commands, and scores your repo's AI safety — all via MCP.8 npm8MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.