DCL Trust Oracle — AI/LLM Output Audit (x402 MCP)
by fronesislabs.com · remote · no sign-in to list tools · v2.3.1 · published by com.fronesislabs
AI/LLM agent output audit MCP: policy eval, tamper-evident chain, AI safety, x402 USDC on Base.
18 tools: 1 do something that can't be undone and 17 change things.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things17Claude Code: ask: see these tools
- Only reads0Claude Code: allow
9 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http dcl-trust-oracle https://mcp.fronesislabs.com/mcpFindings
Matches of fixed checks, with the text they matched.
The description contains "ignore previous instructions", an instruction to set earlier instructions aside.
What this check looks forMatched text
description: "...ing check against 3 forbidden phrases ("ignore previous instructions", "jailbreak", "bypass safety") with a..."
The description contains "ignore previous instructions", an instruction to set earlier instructions aside.
What this check looks forMatched text
description: "...ing check against 6 forbidden phrases ("ignore previous instructions", "jailbreak", "bypass safety", "preten..."
The description refers to "secrets/credentials".
What this check looks forMatched text
description: "...Post-processing checkpoint that strips secrets/credentials, PII, crypto material (seed phrases, pr..."
- Warndcl_audit_decode
The server marks "dcl_audit_decode" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "post": a word for a change.
The server marks "dcl_audit_decode_deep" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "post": a word for a change.
The title mentions "Credential".
What this check looks forMatched text
title: "Secret & Credential Leak Scan"
Show 3 more findingsShow fewer
The description mentions "Credential".
What this check looks forMatched text
description: "POST-ACTION Secret & Credential Leak Scan ($0.02). Regex-based scan acr..."
The input schema at properties.response.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.response.description: "...okens, private keys, DB URLs, and other credentials."
The input schema at properties.response.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.response.description: "...allet addresses, and wallet-context API credentials."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
18 tools
Can't be undone 1Claude Code: ask
dcl_evaluate_strictSTRICT Pre-Action Audit ($0.05).No findings
Why it is in this group
- The name "dcl_evaluate_strict" says "evaluate": a word for a change.
- The description says "irreversible".
Description, as the server wrote it STRICT Pre-Action Audit ($0.05). Runs the response against a broader, higher-bar "strict" policy: the union of all forbidden phrases from the default, anti-jailbreak, and safety policies (8 phrases total), with a 0.85 minimum-confidence threshold instead of the default policy's 0.7. Each matched phrase costs 0.4 confidence; if confidence falls below 0.85, or any phrase matches, the verdict is NO_COMMIT with `reason` listing every match found. Use this instead of dcl_evaluate_fast when the cost of a false COMMIT is high — e.g. before an irreversible or high-stakes agent action — since it catches jailbreak- and safety-adjacent phrasing that the plain default policy would miss.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Changes things 17Claude Code: ask
dcl_audit_decodePOST-ACTION Basic Audit ($0.10).1 finding
Why it is in this group
- The description's first verb is "post": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "dcl_audit_decode" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "post": a word for a change.
Description, as the server wrote it POST-ACTION Basic Audit ($0.10). Retrieves a record from the tamper-evident chain by tx_hash.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dcl_audit_decode_deepPOST-ACTION Deep Forensic Audit ($0.50).1 finding
Why it is in this group
- The description's first verb is "post": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "dcl_audit_decode_deep" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "post": a word for a change.
Description, as the server wrote it POST-ACTION Deep Forensic Audit ($0.50). Extended output with drift_context and full chain integrity verification.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dcl_commitFINAL-STEP Leibniz Layer Crypto Commit ($0.01).No findings
Why it is in this group
- The name "dcl_commit" says "commit": a word for a change.
Description, as the server wrote it FINAL-STEP Leibniz Layer Crypto Commit ($0.01). Writes a trading/agent decision to the append-only Leibniz Layer audit chain and returns a Merkle-proof-style receipt: `tx_hash` (proof of this specific commit), `chain_hash` (the previous commit's hash, linking this one into the chain), and `chain_depth` (this commit's position in the chain). Unlike the evaluate_* tools, this call has no pass/fail verdict of its own — it always succeeds and simply seals the decision. Passing `prior_checks` is optional but recommended: it records which earlier pipeline steps (firewall/wallet/trade/MEV) this specific commit is downstream of, in one auditable record. Always run this LAST, after every other crypto-suite check has passed.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_batchPRE-ACTION Bulk Processing ($0.10).No findings
Why it is in this group
- The name "dcl_evaluate_batch" says "evaluate": a word for a change.
Description, as the server wrote it PRE-ACTION Bulk Processing ($0.10). Evaluates a list of items in one call; each item is a dict shaped {"response": str, "policy"?: str}, where policy defaults to "default" if omitted and may be any built-in policy name (default, strict, anti_jailbreak, safety, content_quality). Each item gets its own independent COMMIT/NO_COMMIT verdict via the same logic as the matching single-item evaluate_* tool; results are returned in input order under `results`, plus a shared `batch_id`. Capped at 200 items per call — oversized batches are rejected. Use this instead of multiple single-item evaluate_* calls when checking several responses — optionally against different policies — in one priced call rather than paying per item separately.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_fastFAST Pre-Action Audit ($0.01).1 finding
Why it is in this group
- The name "dcl_evaluate_fast" says "evaluate": a word for a change.
Findings
- High
The description contains "ignore previous instructions", an instruction to set earlier instructions aside.
What this check looks forMatched text
description: "...ing check against 3 forbidden phrases ("ignore previous instructions", "jailbreak", "bypass safety") with a..."
Description, as the server wrote it FAST Pre-Action Audit ($0.01). Runs the response through the server's "default" policy: a substring check against 3 forbidden phrases ("ignore previous instructions", "jailbreak", "bypass safety") with a 0.7 minimum-confidence threshold. Each forbidden match found costs 0.4 confidence; if confidence falls below 0.7, or any match is found, the verdict is NO_COMMIT and `reason` lists which phrase triggered it. Otherwise COMMIT. Use this as the default low-cost first-pass gate before a risky agent action; switch to dcl_evaluate_strict for a broader, higher-bar check, or to dcl_evaluate_jailbreak / dcl_evaluate_safety / dcl_evaluate_quality for a narrower, single-topic check instead of the general-purpose default policy.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_jailbreakPRE-ACTION Instruction Adherence Check ($0.02).1 finding
Why it is in this group
- The name "dcl_evaluate_jailbreak" says "evaluate": a word for a change.
Findings
- High
The description contains "ignore previous instructions", an instruction to set earlier instructions aside.
What this check looks forMatched text
description: "...ing check against 6 forbidden phrases ("ignore previous instructions", "jailbreak", "bypass safety", "preten..."
Description, as the server wrote it PRE-ACTION Instruction Adherence Check ($0.02). Runs the "anti_jailbreak" policy: a substring check against 6 forbidden phrases ("ignore previous instructions", "jailbreak", "bypass safety", "pretend you are", "act as if", "DAN") with a 0.8 minimum-confidence threshold — each match costs 0.4 confidence. Returns COMMIT if no phrase matches and confidence stays at or above 0.8, otherwise NO_COMMIT with `reason` listing the matched phrase(s). Use this as a targeted, cheaper check when the concern is specifically prompt-injection / persona-hijack risk; use dcl_evaluate_strict instead when you also want safety- and default-policy phrases covered in the same call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_jailbreak_cryptoPRE-ACTION Crypto Jailbreak & Injection Detection ($0.02).No findings
Why it is in this group
- The name "dcl_evaluate_jailbreak_crypto" says "evaluate": a word for a change.
Description, as the server wrote it PRE-ACTION Crypto Jailbreak & Injection Detection ($0.02). Crypto-specialized instruction-override/jailbreak/injection screen: standard role-switch and instruction-override patterns, plus crypto-specific drain-wallet injection (e.g. "transfer all funds to...", fake "test transaction" requesting full balance) and unlimited-approval injection (e.g. type(uint256).max, "approve unlimited allowance", skip-slippage-confirmation framing). Any match returns NO_COMMIT with `reason` and `findings` naming the matched category/categories; run this FIRST in the DCL crypto pipeline, before wallet/trade/MEV checks, since it screens the input itself rather than a decision built on top of it.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_mevPOST-ACTION MEV & Market-Abuse Compliance Screen ($0.03).No findings
Why it is in this group
- The name "dcl_evaluate_mev" says "evaluate": a word for a change.
Description, as the server wrote it POST-ACTION MEV & Market-Abuse Compliance Screen ($0.03). Text-level screen (not a mempool/transaction analyzer) for front-running/sandwich-attack language, wash trading/layering/spoofing, KYC/AML red flags (mixers, structuring, obscuring fund origin), and pump-and-dump/rug-pull language. Any critical-severity finding, or two or more major-severity findings, returns NO_COMMIT; a single major-severity finding is also returned as NO_COMMIT but with a distinctly higher `confidence` (~0.55 vs ~0.05-0.2 for harder violations) so downstream callers can tell a soft single flag apart from a hard multi-finding block. Each finding includes an illustrative `regulatory_reference` tag (MiFID II, FCA, or an EU AI Act article).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_output_sanitizerFINAL-GATE Output Sanitizer ($0.02).1 finding
Why it is in this group
- The name "dcl_evaluate_output_sanitizer" says "evaluate": a word for a change.
Findings
- High
The description refers to "secrets/credentials".
What this check looks forMatched text
description: "...Post-processing checkpoint that strips secrets/credentials, PII, crypto material (seed phrases, pr..."
Description, as the server wrote it FINAL-GATE Output Sanitizer ($0.02). Post-processing checkpoint that strips secrets/credentials, PII, crypto material (seed phrases, private keys, wallet addresses), internal network details (private IPs, MAC addresses, .internal/.local/.corp hostnames), and unsafe shell/SQL/path-traversal fragments from a raw model response — plus a narrow, high-precision safety net for direct self-harm-instruction-seeking and targeted-harassment phrasing (not a general toxicity classifier). Returns a single `sanitized_output` with every match replaced by `[REDACTED]`; use that instead of the original whenever verdict is NO_COMMIT. Run this as the LAST gate before a response reaches its destination — after `dcl_evaluate_jailbreak_crypto`/other input-side checks have already run, and immediately before `dcl_commit` seals the final decision. Internally re-uses the same detection tables as `dcl_evaluate_secrets`/`dcl_evaluate_pii` for the secrets/PII categories, so results stay consistent with those tools.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_piiPOST-ACTION PII Detection Scan ($0.02).No findings
Why it is in this group
- The name "dcl_evaluate_pii" says "evaluate": a word for a change.
Description, as the server wrote it POST-ACTION PII Detection Scan ($0.02). Regex-based scan across 8 personal-data categories, with a Luhn checksum on card numbers to reduce false positives. Any finding results in NO_COMMIT.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_qualityPRE-ACTION Content Quality & Drift Check ($0.03).No findings
Why it is in this group
- The name "dcl_evaluate_quality" says "evaluate": a word for a change.
Description, as the server wrote it PRE-ACTION Content Quality & Drift Check ($0.03). Runs the "content_quality" policy: flags 12 absolutist or unverifiable-claim phrases (e.g. "guaranteed returns", "100% accurate", "studies show", "without a doubt") with a 0.85 minimum-confidence threshold — the highest bar of any single-policy tool. Returns NO_COMMIT if any phrase matches or confidence falls below 0.85, with `reason` listing the matched phrase(s). Use this to catch overconfident or unsubstantiated claims in generated content — a different concern from jailbreak or safety phrasing — e.g. before publishing agent-written copy or reports.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_safetyPRE-ACTION Baseline Safety Check ($0.01).No findings
Why it is in this group
- The name "dcl_evaluate_safety" says "evaluate": a word for a change.
Description, as the server wrote it PRE-ACTION Baseline Safety Check ($0.01). Runs the "safety" policy: flags 2 forbidden disclaimers ("I cannot be held responsible", "no guarantees") and additionally REQUIRES the substring "AI" to appear somewhere in the response — missing it costs 0.2 confidence even with no forbidden phrase present. Minimum confidence is 0.75. Returns NO_COMMIT if confidence drops below 0.75, with `reason` naming the forbidden phrase found or the missing required pattern. Use this when you specifically need to confirm an AI-disclosure marker is present and the two disclaimer phrases are absent — not as a general-purpose safety net; for broader coverage use dcl_evaluate_fast or dcl_evaluate_strict instead.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_secretsPOST-ACTION Secret & Credential Leak Scan ($0.02).3 findings
Why it is in this group
- The name "dcl_evaluate_secrets" says "evaluate": a word for a change.
Findings
- Info
The title mentions "Credential".
What this check looks forMatched text
title: "Secret & Credential Leak Scan"
- Info
The description mentions "Credential".
What this check looks forMatched text
description: "POST-ACTION Secret & Credential Leak Scan ($0.02). Regex-based scan acr..."
- Info
The input schema at properties.response.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.response.description: "...okens, private keys, DB URLs, and other credentials."
Description, as the server wrote it POST-ACTION Secret & Credential Leak Scan ($0.02). Regex-based scan across 8 categories (API keys, cloud credentials, tokens/JWTs, private keys, DB URLs, connection strings, env assignments, webhook secrets, internal endpoints with auth). Any finding results in NO_COMMIT.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_signalPOST-ACTION Market Signal Fabrication Screen ($0.03).No findings
Why it is in this group
- The name "dcl_evaluate_signal" says "evaluate": a word for a change.
Description, as the server wrote it POST-ACTION Market Signal Fabrication Screen ($0.03). Pattern-based heuristic on the output text alone (no source price feed) — flags guaranteed-price-prediction language ("will definitely hit $X"), absolute-certainty claims ("100% certain", "cannot go down"), a fabricated-price flag when a specific dollar figure co-occurs with a guaranteed-outcome claim, and an invented-token flag when a "$TICKER" cashtag doesn't match a small set of well-known symbols (false positives are possible for legitimate lesser-known tickers — this is a heuristic pre-check, not ground truth). For a full claim-by-claim check against an actual price-feed snapshot, use the local grounding workflow instead of this live tool. Verdict/confidence collapsing follows the same rule as dcl_evaluate_mev: any critical finding or 2+ major findings is a hard NO_COMMIT; exactly one major finding is a softer NO_COMMIT at ~0.55 confidence.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_tradePRE-ACTION Trade Decision Verifier ($0.02).No findings
Why it is in this group
- The name "dcl_evaluate_trade" says "evaluate": a word for a change.
Description, as the server wrote it PRE-ACTION Trade Decision Verifier ($0.02). Screens trade-decision language for guaranteed-return claims, zero-risk/"can't lose" framing, and unqualified "buy/sell X now" directives — any match is NO_COMMIT. If no unsafe language is found, COMMIT additionally requires the word "risk" to appear anywhere in the text as a minimum disclosure marker; its absence alone triggers NO_COMMIT with `reason` noting the missing disclosure. Produces an immutable `trade_receipt` (tx_hash/chain_hash/chain_depth) distinct from the top-level audit hash, for downstream systems that specifically need a trade-shaped receipt object.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_evaluate_walletPOST-ACTION Wallet Secret Guardian ($0.02).1 finding
Why it is in this group
- The name "dcl_evaluate_wallet" says "evaluate": a word for a change.
Findings
- Info
The input schema at properties.response.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.response.description: "...allet addresses, and wallet-context API credentials."
Description, as the server wrote it POST-ACTION Wallet Secret Guardian ($0.02). Scans for BIP-39 seed phrases (12 or 24 consecutive wordlist words), raw hex or WIF-format private keys, Ethereum/Bitcoin wallet addresses, and API keys/bearer tokens appearing near wallet/custody/signing terminology. Any finding results in NO_COMMIT — wallet secrets have no safe threshold, unlike other DCL evaluators. Returns a `sanitized_output` with all matches redacted (null if nothing was found) and a masked `redacted_sample` per finding — the real value is never returned or stored server-side.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dcl_pipeline_startSESSION Management ($0.05).No findings
Why it is in this group
- The name "dcl_pipeline_start" says "start": a word for a change.
Description, as the server wrote it SESSION Management ($0.05). Generates a new `pipeline_id` and returns session metadata (scope, expiry, initial drift_mode) for organizing a series of related checks under one identifier. Note: this call does not currently link the returned pipeline_id to later evaluate_* calls — there is no server-side session state that ties subsequent audits back to it; it is an identifier/timestamp issuer, not an active tracking session. Use this to obtain a shared reference ID for your own client-side grouping of a multi-step audit sequence; do not rely on it to automatically aggregate drift across calls.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 2.3.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http dcl-trust-oracle https://mcp.fronesislabs.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [],
"ask": [
"mcp__dcl-trust-oracle__dcl_evaluate_fast",
"mcp__dcl-trust-oracle__dcl_evaluate_strict",
"mcp__dcl-trust-oracle__dcl_evaluate_jailbreak",
"mcp__dcl-trust-oracle__dcl_evaluate_safety",
"mcp__dcl-trust-oracle__dcl_evaluate_quality",
"mcp__dcl-trust-oracle__dcl_evaluate_secrets",
"mcp__dcl-trust-oracle__dcl_evaluate_pii",
"mcp__dcl-trust-oracle__dcl_evaluate_batch",
"mcp__dcl-trust-oracle__dcl_pipeline_start",
"mcp__dcl-trust-oracle__dcl_audit_decode",
"mcp__dcl-trust-oracle__dcl_audit_decode_deep",
"mcp__dcl-trust-oracle__dcl_evaluate_jailbreak_crypto",
"mcp__dcl-trust-oracle__dcl_evaluate_wallet",
"mcp__dcl-trust-oracle__dcl_evaluate_trade",
"mcp__dcl-trust-oracle__dcl_evaluate_mev",
"mcp__dcl-trust-oracle__dcl_evaluate_signal",
"mcp__dcl-trust-oracle__dcl_evaluate_output_sanitizer",
"mcp__dcl-trust-oracle__dcl_commit"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as dcl-trust-oracle. Review it before you use it.