addrbookFor publishers
← The evidence ledger

Evidence row 291567

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint cf1981fb-f934-486f-9f1a-d027b31c182f
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
a43c2a565b82b5d70a5041c74c4d9a38f5877d8c804cdc19b77b15667a33c18a
Leaf
0x9e6739d6cfef23a10b98b1137153880eea63433b9b506cdfaf61ecaed23c5e2f

What was observed

{
  "count": 12,
  "tools": [
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "audit_profile": {
            "description": "Sensitivity level for flagging system-tool name shadowing; defaults to 'strict' when omitted.",
            "enum": [
              "strict",
              "permissive_local",
              "enterprise_zero_trust"
            ],
            "type": "string"
          },
          "manifest_json": {
            "description": "JSON string or object containing the external MCP server's tools array to audit.",
            "type": "string"
          }
        },
        "required": [
          "manifest_json"
        ],
        "type": "object"
      },
      "name": "audit_mcp_server_manifest"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "destination_uri": {
            "description": "Outbound HTTP/HTTPS destination URI to inspect before fetching (e.g. 'https://api.example.com/v1/webhook').",
            "type": "string"
          },
          "egress_policy": {
            "description": "Network egress policy; defaults to 'block_private_and_metadata' when omitted.",
            "enum": [
              "block_private_and_metadata",
              "https_public_only",
              "strict_allowlist_domains"
            ],
            "type": "string"
          }
        },
        "required": [
          "destination_uri"
        ],
        "type": "object"
      },
      "name": "audit_outbound_egress_url"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "claim": {
            "description": "Draft agent response or factual statement to verify for hallucinations.",
            "type": "string"
          },
          "context": {
            "description": "Authoritative source text or retrieved RAG passages that the claim must be grounded in.",
            "type": "string"
          },
          "strictness": {
            "description": "Entailment threshold required for numbers and dates; defaults to 'exact_entailment' when omitted.",
            "enum": [
              "exact_entailment",
              "semantic_paraphrase",
              "citations_only"
            ],
            "type": "string"
          }
        },
        "required": [
          "claim",
          "context"
        ],
        "type": "object"
      },
      "name": "audit_response_factuality"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "action_trace_json": {
            "description": "JSON-serialized array of recent agent actions (e.g. '[{\"tool\":\"search\",\"status\":\"err\"}]').",
            "type": "string"
          },
          "sensitivity": {
            "description": "Cycle detection threshold; defaults to 'standard_3_repeats' when omitted.",
            "enum": [
              "strict_2_repeats",
              "standard_3_repeats",
              "lenient_5_repeats"
            ],
            "type": "string"
          }
        },
        "required": [
          "action_trace_json"
        ],
        "type": "object"
      },
      "name": "detect_agent_action_loop"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "baseline_tools_json": {
            "description": "JSON-serialized baseline tools/list array captured when the MCP server was first trusted.",
            "type": "string"
          },
          "current_tools_json": {
            "description": "JSON-serialized live tools/list array to compare against the baseline; defaults to '[]' when omitted.",
            "type": "string"
          },
          "diff_mode": {
            "description": "Comparison strictness across descriptions and inputSchema; defaults to 'full_structural' when omitted.",
            "enum": [
              "full_structural",
              "schema_only",
              "descriptions_only"
            ],
            "type": "string"
          }
        },
        "required": [
          "baseline_tools_json"
        ],
        "type": "object"
      },
      "name": "detect_mcp_schema_rugpull"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "python_script": {
            "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"
          },
          "timeout_profile": {
            "description": "Execution resource ceiling; defaults to 'standard_5s' when omitted.",
            "enum": [
              "fast_1s",
              "standard_5s",
              "extended_15s"
            ],
            "type": "string"
          }
        },
        "required": [
          "python_script"
        ],
        "type": "object"
      },
      "name": "execute_python_sandbox"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "redaction_style": {
            "description": "Placeholder format used for redacted spans; defaults to 'typed_token' when omitted.",
            "enum": [
              "typed_token",
              "asterisk_mask",
              "sha256_pseudonym"
            ],
            "type": "string"
          },
          "text": {
            "description": "Input text containing potential PII or secret keys to redact.",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "redact_sensitive_pii"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "raw_tool_output": {
            "description": "Untrusted text returned by an external tool, webhook, or web scraper.",
            "type": "string"
          },
          "wrap_tag": {
            "description": "XML isolation wrapper applied around the sanitized text; defaults to 'tool_data' when omitted.",
            "enum": [
              "tool_data",
              "untrusted_context",
              "none"
            ],
            "type": "string"
          }
        },
        "required": [
          "raw_tool_output"
        ],
        "type": "object"
      },
      "name": "sanitize_tool_output_stream"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "max_tokens_ceiling": {
            "description": "Maximum completion token quota allowed for server callbacks; defaults to '2048' when omitted.",
            "enum": [
              "512",
              "1024",
              "2048",
              "4096"
            ],
            "type": "string"
          },
          "sampling_request_json": {
            "description": "JSON string or object representing the inbound MCP sampling/createMessage payload.",
            "type": "string"
          }
        },
        "required": [
          "sampling_request_json"
        ],
        "type": "object"
      },
      "name": "validate_mcp_sampling_request"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "dialect": {
            "description": "SQL dialect ruleset used for AST token inspection; defaults to 'postgres' when omitted.",
            "enum": [
              "postgres",
              "mysql",
              "sqlite",
              "snowflake"
            ],
            "type": "string"
          },
          "sql_statement": {
            "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"
          }
        },
        "required": [
          "sql_statement"
        ],
        "type": "object"
      },
      "name": "validate_sql_query_ast"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "agent_card_json": {
            "description": "JSON string or object of the peer agent's /.well-known/agent.json descriptor.",
            "type": "string"
          },
          "trust_policy": {
            "description": "Verification policy for DID/DNS binding; defaults to 'require_https_and_did' when omitted.",
            "enum": [
              "require_https_and_did",
              "allow_unsigned_https",
              "strict_payment_rail_match"
            ],
            "type": "string"
          }
        },
        "required": [
          "agent_card_json"
        ],
        "type": "object"
      },
      "name": "verify_a2a_agent_card"
    },
    {
      "description": "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.",
      "inputSchema": {
        "properties": {
          "action_type": {
            "description": "Execution context of the payload; defaults to 'bash_command' when omitted.",
            "enum": [
              "bash_command",
              "tool_call",
              "user_prompt",
              "webhook_payload"
            ],
            "type": "string"
          },
          "payload": {
            "description": "Raw command string, script snippet, or untrusted prompt to inspect for safety violations.",
            "type": "string"
          }
        },
        "required": [
          "payload"
        ],
        "type": "object"
      },
      "name": "verify_agent_command_safety"
    }
  ]
}

What the leaf hashes

{"body":"a43c2a565b82b5d70a5041c74c4d9a38f5877d8c804cdc19b77b15667a33c18a","id":291567,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793048171690511,"prev":null,"subject":"cf1981fb-f934-486f-9f1a-d027b31c182f","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x9e67313f79f15198b90c8a2465fd360e52a03d31688dd843539228e5c8afdae7
  2. 0x4cbd7b04970db14def75e1a4f4f25cd9b14fe5a36d3261478c2c2acc5bd473f3
  3. 0x82cb85f7e1e3de53a6355fc523d1991ee3f376712cefd1cbcf7c50890a9b2337
  4. 0x4611b0278abbfdf5ee99a02d20090de61bdc1e129ce56cfa015fb0e496ce83d4
  5. 0x59339ded3da7d989b00ca64fe8367b33facd1f5df1037f5ed572ee984e86f4e5
  6. 0x42f471a8daa441d54c4e72f816387a8c01dca2b09b8338ad4d1475ae8ae0bf93
  7. 0x90daed265ffe7af26206e5b4520007e04d486c4cc32dda9d0f22f6a602fcd4bb
  8. 0xde2de2f63ec54795555d09cba61be688d250e78e892f80fcbe3666e264ec2288
  9. 0xfe8f32850d20cf2e7aaaf9929e81ec89f9d29af0c025e85c6b386c2b7c4e400a
  10. 0xe28c07fee0e288e36600367941f03b5da3143ee4c0b53ee2d78734dbe5523f0d
  11. 0xcf41009271d76f70a486c0f32eb0d9e4d76bad43d622f4b5d56f18872edb19e1
  12. 0x73cca5e5ba14c0aaa799d5324b89eb846e3c5546aab3b2cda0c05c5eeaa03168
  13. 0x99a4e0f8b23989f58b564c1b6e419578b4388f6e0dbf6e50177c1bd476302d0e
  14. 0x6713795704ddd9c528d421fadd9cc96b0200a4ddbba84f88e718d4968dde888b
  15. 0x62a900133713919f4eed33d8336876b7a6d538233b8a4f3ed03b29aa44f5bad0
  16. 0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f
  17. 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON