AI/LLM agent output audit MCP: policy eval, tamper-evident chain, AI safety, x402 USDC on Base.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
POST-ACTION Basic Audit ($0.10). Retrieves a record from the tamper-evident chain by tx_hash.
Transaction hash of the audit chain record to retrieve.
POST-ACTION Basic Audit ($0.10). Retrieves a record from the tamper-evident chain by tx_hash.
| Argument | Type | Description |
|---|---|---|
| tx_hash* | string | Transaction hash of the audit chain record to retrieve. |
{
"type": "object",
"title": "dcl_audit_decodeArguments",
"required": [
"tx_hash"
],
"properties": {
"tx_hash": {
"type": "string",
"title": "Tx Hash",
"description": "Transaction hash of the audit chain record to retrieve."
}
}
}POST-ACTION Deep Forensic Audit ($0.50). Extended output with drift_context and full chain integrity verification.
| Argument | Type | Description |
|---|---|---|
| tx_hash* | string | Transaction hash of the audit chain record to retrieve. |
{
"type": "object",
"title": "dcl_audit_decode_deepArguments",
"required": [
"tx_hash"
],
"properties": {
"tx_hash": {
"type": "string",
"title": "Tx Hash",
"description": "Transaction hash of the audit chain record to retrieve."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent whose decision is being committed. |
| decision* | string | The final trading/agent decision text to commit to the audit chain. |
| prior_checks | any | Optional dict of tx_hashes from earlier pipeline steps (e.g. {'prompt_firewall_tx_hash': ..., 'trade_verifier_tx_hash': ..., 'mev_compliance_tx_hash': ...}), linking this commit to the specific checks that passed before it. |
{
"type": "object",
"title": "dcl_commitArguments",
"required": [
"decision",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent whose decision is being committed."
},
"decision": {
"type": "string",
"title": "Decision",
"description": "The final trading/agent decision text to commit to the audit chain."
},
"prior_checks": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Prior Checks",
"default": null,
"description": "Optional dict of tx_hashes from earlier pipeline steps (e.g. {'prompt_firewall_tx_hash': ..., 'trade_verifier_tx_hash': ..., 'mev_compliance_tx_hash': ...}), linking this commit to the specific checks that passed before 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.
| Argument | Type | Description |
|---|---|---|
| items* | array | List of items to evaluate, each shaped like {'response': str, 'policy'?: str}. |
| agent_id* | string | Identifier of the agent that produced the responses. |
{
"type": "object",
"title": "dcl_evaluate_batchArguments",
"required": [
"items",
"agent_id"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"title": "Items",
"description": "List of items to evaluate, each shaped like {'response': str, 'policy'?: str}."
},
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the responses."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced the response. |
| response* | string | The agent or LLM response text to audit. |
{
"type": "object",
"title": "dcl_evaluate_fastArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the response."
},
"response": {
"type": "string",
"title": "Response",
"description": "The agent or LLM response text to audit."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced the response. |
| response* | string | The agent or LLM response text to check for jailbreak attempts. |
{
"type": "object",
"title": "dcl_evaluate_jailbreakArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the response."
},
"response": {
"type": "string",
"title": "Response",
"description": "The agent or LLM response text to check for jailbreak attempts."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced or received the text. |
| response* | string | The incoming prompt or agent response to screen for crypto-specialized jailbreak/injection attempts. |
{
"type": "object",
"title": "dcl_evaluate_jailbreak_cryptoArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced or received the text."
},
"response": {
"type": "string",
"title": "Response",
"description": "The incoming prompt or agent response to screen for crypto-specialized jailbreak/injection attempts."
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced the response. |
| response* | string | The agent or LLM response text describing or proposing an on-chain/trading action, to screen for MEV and market-abuse language. |
{
"type": "object",
"title": "dcl_evaluate_mevArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the response."
},
"response": {
"type": "string",
"title": "Response",
"description": "The agent or LLM response text describing or proposing an on-chain/trading action, to screen for MEV and market-abuse language."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced the response. |
| response* | string | The raw LLM/agent response to sanitize before it is delivered to a user, downstream agent, or external system. |
{
"type": "object",
"title": "dcl_evaluate_output_sanitizerArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the response."
},
"response": {
"type": "string",
"title": "Response",
"description": "The raw LLM/agent response to sanitize before it is delivered to a user, downstream agent, or external system."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced the response. |
| response* | string | The text to scan for personal data: emails, phone numbers, national IDs, bank cards, IBANs, crypto addresses, IP addresses, passport numbers. |
{
"type": "object",
"title": "dcl_evaluate_piiArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the response."
},
"response": {
"type": "string",
"title": "Response",
"description": "The text to scan for personal data: emails, phone numbers, national IDs, bank cards, IBANs, crypto addresses, IP addresses, passport numbers."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced the response. |
| response* | string | The agent or LLM response text to check for quality and drift. |
{
"type": "object",
"title": "dcl_evaluate_qualityArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the response."
},
"response": {
"type": "string",
"title": "Response",
"description": "The agent or LLM response text to check for quality and drift."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced the response. |
| response* | string | The agent or LLM response text to check for safety violations. |
{
"type": "object",
"title": "dcl_evaluate_safetyArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the response."
},
"response": {
"type": "string",
"title": "Response",
"description": "The agent or LLM response text to check for safety violations."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced the response. |
| response* | string | The text to scan for exposed API keys, tokens, private keys, DB URLs, and other credentials. |
{
"type": "object",
"title": "dcl_evaluate_secretsArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the response."
},
"response": {
"type": "string",
"title": "Response",
"description": "The text to scan for exposed API keys, tokens, private keys, DB URLs, and other credentials."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced the response. |
| response* | string | The market signal, analysis, or price-prediction text to screen. |
{
"type": "object",
"title": "dcl_evaluate_signalArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the response."
},
"response": {
"type": "string",
"title": "Response",
"description": "The market signal, analysis, or price-prediction text to screen."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced the response. |
| response* | string | The agent or LLM response text to audit. |
{
"type": "object",
"title": "dcl_evaluate_strictArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the response."
},
"response": {
"type": "string",
"title": "Response",
"description": "The agent or LLM response text to audit."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced the response. |
| response* | string | The trade decision or recommendation text to screen. |
{
"type": "object",
"title": "dcl_evaluate_tradeArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the response."
},
"response": {
"type": "string",
"title": "Response",
"description": "The trade decision or recommendation text to screen."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | Identifier of the agent that produced the response. |
| response* | string | The text to scan for seed phrases, private keys, wallet addresses, and wallet-context API credentials. |
{
"type": "object",
"title": "dcl_evaluate_walletArguments",
"required": [
"response",
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that produced the response."
},
"response": {
"type": "string",
"title": "Response",
"description": "The text to scan for seed phrases, private keys, wallet addresses, and wallet-context API credentials."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| scope | string | Scope label for the session. |
| agent_id* | string | Identifier of the agent that owns this session. |
| ttl_seconds | integer | Session time-to-live, in seconds. |
{
"type": "object",
"title": "dcl_pipeline_startArguments",
"required": [
"agent_id"
],
"properties": {
"scope": {
"type": "string",
"title": "Scope",
"default": "default",
"description": "Scope label for the session."
},
"agent_id": {
"type": "string",
"title": "Agent Id",
"description": "Identifier of the agent that owns this session."
},
"ttl_seconds": {
"type": "integer",
"title": "Ttl Seconds",
"default": 3600,
"description": "Session time-to-live, in seconds."
}
}
}