addrbookFor publishers
← The evidence ledger

Evidence row 2500112

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint b91edac5-22c8-46f4-8a0d-c7c67964236f
Recorded
Previous row
#570455
Body SHA-256
f0865ae15da8fa3c995e5b52119e17a091f0bd2f53bd8deeb7a80cdce6bdbbbd
Leaf
0x4b570c0f623e17beeb267e75a37aa3547fb567bb977398747ce224e4b5419e83

What was observed

{
  "count": 16,
  "tools": [
    {
      "description": "Rank a CALLER-PROVIDED list of MCP tools by worst-regret if they act (a name-based heuristic that weights a name's first word most). Read-only: it mints no receipt. Cannot auto-discover the inventory -- MCP does not allow that; the caller must pass it in.",
      "inputSchema": {
        "properties": {
          "inventory": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Inventory",
            "type": "array"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Notes"
          }
        },
        "required": [
          "inventory"
        ],
        "title": "audit_my_agent_inventoryArguments",
        "type": "object"
      },
      "name": "audit_my_agent_inventory"
    },
    {
      "description": "Egress classification check. Scans a data sample for a finite list of sensitivity markers and classifies as NO_MARKERS_FOUND / INTERNAL / CONFIDENTIAL / RESTRICTED. RESTRICTED sets blocked=true; this tool cannot block anything itself, and NO_MARKERS_FOUND is not clearance to send. Returns classification, retention info, and a tamper-evident receipt.",
      "inputSchema": {
        "properties": {
          "data_sample": {
            "title": "Data Sample",
            "type": "string"
          },
          "destination": {
            "title": "Destination",
            "type": "string"
          },
          "provider": {
            "title": "Provider",
            "type": "string"
          }
        },
        "required": [
          "destination",
          "data_sample",
          "provider"
        ],
        "title": "check_egressArguments",
        "type": "object"
      },
      "name": "check_egress"
    },
    {
      "description": "Status of each proposed retest after a change (current, not current or unbound), from the proposal inputs and results you supply. Read-only view of the records you supply; it writes, signs and executes nothing. Needs TRUST_GATE_API_URL, TRUST_GATE_API_KEY and TRUST_GATE_TENANT_ID to be set, and the tenant comes from that setting, never from an argument. Returns status OK, REFUSED or UNAVAILABLE (a missing setting, a surface that is off, or an error is UNAVAILABLE, never made-up data). The Trust Gate API must be a version that serves this view; it returns UNAVAILABLE until then. A mapping or readout is not a compliance finding.",
      "inputSchema": {
        "properties": {
          "request": {
            "additionalProperties": true,
            "title": "Request",
            "type": "object"
          }
        },
        "required": [
          "request"
        ],
        "title": "compare_qualification_changeArguments",
        "type": "object"
      },
      "name": "compare_qualification_change"
    },
    {
      "description": "Acceptance-pack export for one or more cases, optionally mapped to one control id and version you name. Read-only view of the records you supply; it writes, signs and executes nothing. Needs TRUST_GATE_API_URL, TRUST_GATE_API_KEY and TRUST_GATE_TENANT_ID to be set, and the tenant comes from that setting, never from an argument. Returns status OK, REFUSED or UNAVAILABLE (a missing setting, a surface that is off, or an error is UNAVAILABLE, never made-up data). The Trust Gate API must be a version that serves this view; it returns UNAVAILABLE until then. A mapping or readout is not a compliance finding.",
      "inputSchema": {
        "properties": {
          "request": {
            "additionalProperties": true,
            "title": "Request",
            "type": "object"
          }
        },
        "required": [
          "request"
        ],
        "title": "export_acceptance_packArguments",
        "type": "object"
      },
      "name": "export_acceptance_pack"
    },
    {
      "description": "Two-phase decision gate with a real verdict. PREVIEW returns ALLOW, DENY or ESCALATE with the risk tier and reasons, plus a preview_id, without acting. COMMIT re-evaluates the same inputs and mints a signed receipt for the verdict. Only ALLOW returns a GRANTED permit; DENY returns DENIED; ESCALATE returns WITHHELD_PENDING_HUMAN and a human must decide outside this tool. Applies only to actions the caller routes through it: it does not observe or block what an agent does. Verb-tier heuristic on the action name and resource, not a proof. Stateless. Optional attestation: triggered_by_type, triggered_by_source, decision_model.",
      "inputSchema": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "context": {
            "additionalProperties": true,
            "title": "Context",
            "type": "object"
          },
          "decision_model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Decision Model"
          },
          "phase": {
            "default": "PREVIEW",
            "title": "Phase",
            "type": "string"
          },
          "preview_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Preview Id"
          },
          "resource": {
            "title": "Resource",
            "type": "string"
          },
          "triggered_by_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Triggered By Source"
          },
          "triggered_by_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Triggered By Type"
          }
        },
        "required": [
          "action",
          "resource",
          "context"
        ],
        "title": "gate_decisionArguments",
        "type": "object"
      },
      "name": "gate_decision"
    },
    {
      "description": "Evidence view, verdict and open questions for one decision and the facts you supply. Read-only view of the records you supply; it writes, signs and executes nothing. Needs TRUST_GATE_API_URL, TRUST_GATE_API_KEY and TRUST_GATE_TENANT_ID to be set, and the tenant comes from that setting, never from an argument. Returns status OK, REFUSED or UNAVAILABLE (a missing setting, a surface that is off, or an error is UNAVAILABLE, never made-up data). The Trust Gate API must be a version that serves this view; it returns UNAVAILABLE until then. A mapping or readout is not a compliance finding.",
      "inputSchema": {
        "properties": {
          "request": {
            "additionalProperties": true,
            "title": "Request",
            "type": "object"
          }
        },
        "required": [
          "request"
        ],
        "title": "get_decision_evidenceArguments",
        "type": "object"
      },
      "name": "get_decision_evidence"
    },
    {
      "description": "Evidence for whether an intervention could be shown to have taken effect, from the records you supply. Read-only view of the records you supply; it writes, signs and executes nothing. Needs TRUST_GATE_API_URL, TRUST_GATE_API_KEY and TRUST_GATE_TENANT_ID to be set, and the tenant comes from that setting, never from an argument. Returns status OK, REFUSED or UNAVAILABLE (a missing setting, a surface that is off, or an error is UNAVAILABLE, never made-up data). The Trust Gate API must be a version that serves this view; it returns UNAVAILABLE until then. A mapping or readout is not a compliance finding.",
      "inputSchema": {
        "properties": {
          "request": {
            "additionalProperties": true,
            "title": "Request",
            "type": "object"
          }
        },
        "required": [
          "request"
        ],
        "title": "get_intervention_evidenceArguments",
        "type": "object"
      },
      "name": "get_intervention_evidence"
    },
    {
      "description": "Evidence view of one receipt you supply, with what the service could and could not check. Read-only view of the records you supply; it writes, signs and executes nothing. Needs TRUST_GATE_API_URL, TRUST_GATE_API_KEY and TRUST_GATE_TENANT_ID to be set, and the tenant comes from that setting, never from an argument. Returns status OK, REFUSED or UNAVAILABLE (a missing setting, a surface that is off, or an error is UNAVAILABLE, never made-up data). The Trust Gate API must be a version that serves this view; it returns UNAVAILABLE until then. A mapping or readout is not a compliance finding.",
      "inputSchema": {
        "properties": {
          "request": {
            "additionalProperties": true,
            "title": "Request",
            "type": "object"
          }
        },
        "required": [
          "request"
        ],
        "title": "get_receipt_evidenceArguments",
        "type": "object"
      },
      "name": "get_receipt_evidence"
    },
    {
      "description": "Readiness report for one oversight case, computed from the records you supply. Read-only view of the records you supply; it writes, signs and executes nothing. Needs TRUST_GATE_API_URL, TRUST_GATE_API_KEY and TRUST_GATE_TENANT_ID to be set, and the tenant comes from that setting, never from an argument. Returns status OK, REFUSED or UNAVAILABLE (a missing setting, a surface that is off, or an error is UNAVAILABLE, never made-up data). The Trust Gate API must be a version that serves this view; it returns UNAVAILABLE until then. A mapping or readout is not a compliance finding.",
      "inputSchema": {
        "properties": {
          "request": {
            "additionalProperties": true,
            "title": "Request",
            "type": "object"
          }
        },
        "required": [
          "request"
        ],
        "title": "inspect_oversight_caseArguments",
        "type": "object"
      },
      "name": "inspect_oversight_case"
    },
    {
      "description": "Mint a signed receipt (Ed25519, plus ML-DSA-65 when the post-quantum backend is available) for an arbitrary consequential agent action. Optional attestation: triggered_by_type (human/agent/script), triggered_by_source (api/cli/cron), decision_model (the LLM model used). Attestation values are caller claims: allowlisted to safe characters, signed, not verified. Decisions that contain a gate verdict word are reserved for gate_decision.",
      "inputSchema": {
        "properties": {
          "agent_id": {
            "title": "Agent Id",
            "type": "string"
          },
          "decision": {
            "default": "ACTION_GOVERNED",
            "title": "Decision",
            "type": "string"
          },
          "decision_model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Decision Model"
          },
          "inputs": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Inputs"
          },
          "operation": {
            "title": "Operation",
            "type": "string"
          },
          "policy": {
            "default": "agent action evidence",
            "title": "Policy",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "string"
          },
          "triggered_by_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Triggered By Source"
          },
          "triggered_by_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Triggered By Type"
          }
        },
        "required": [
          "agent_id",
          "operation",
          "target"
        ],
        "title": "mint_action_receiptArguments",
        "type": "object"
      },
      "name": "mint_action_receipt"
    },
    {
      "description": "Mint a signed receipt (Ed25519, plus ML-DSA-65 when the post-quantum backend is available) for one CRM record change. Old/new values are carried as SHA-256 hashes. Works with any CRM (Relaticle, hosted CRMs, custom).",
      "inputSchema": {
        "properties": {
          "changed_by_agent": {
            "title": "Changed By Agent",
            "type": "string"
          },
          "field": {
            "title": "Field",
            "type": "string"
          },
          "new_value": {
            "title": "New Value",
            "type": "string"
          },
          "object_type": {
            "title": "Object Type",
            "type": "string"
          },
          "old_value": {
            "title": "Old Value",
            "type": "string"
          },
          "policy": {
            "default": "per-decision CRM change evidence",
            "title": "Policy",
            "type": "string"
          },
          "record_id": {
            "title": "Record Id",
            "type": "string"
          },
          "tenant": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Tenant"
          }
        },
        "required": [
          "record_id",
          "object_type",
          "field",
          "old_value",
          "new_value",
          "changed_by_agent"
        ],
        "title": "mint_receipt_for_record_changeArguments",
        "type": "object"
      },
      "name": "mint_receipt_for_record_change"
    },
    {
      "description": "Impact and a requalification PROPOSAL for a change, over the graph you supply. It never runs a retest. Read-only view of the records you supply; it writes, signs and executes nothing. Needs TRUST_GATE_API_URL, TRUST_GATE_API_KEY and TRUST_GATE_TENANT_ID to be set, and the tenant comes from that setting, never from an argument. Returns status OK, REFUSED or UNAVAILABLE (a missing setting, a surface that is off, or an error is UNAVAILABLE, never made-up data). The Trust Gate API must be a version that serves this view; it returns UNAVAILABLE until then. A mapping or readout is not a compliance finding.",
      "inputSchema": {
        "properties": {
          "request": {
            "additionalProperties": true,
            "title": "Request",
            "type": "object"
          }
        },
        "required": [
          "request"
        ],
        "title": "propose_requalificationArguments",
        "type": "object"
      },
      "name": "propose_requalification"
    },
    {
      "description": "Questions routed to a role for one oversight case, from the records and source lookups you supply. It proposes; it never asks anyone. Read-only view of the records you supply; it writes, signs and executes nothing. Needs TRUST_GATE_API_URL, TRUST_GATE_API_KEY and TRUST_GATE_TENANT_ID to be set, and the tenant comes from that setting, never from an argument. Returns status OK, REFUSED or UNAVAILABLE (a missing setting, a surface that is off, or an error is UNAVAILABLE, never made-up data). The Trust Gate API must be a version that serves this view; it returns UNAVAILABLE until then. A mapping or readout is not a compliance finding.",
      "inputSchema": {
        "properties": {
          "request": {
            "additionalProperties": true,
            "title": "Request",
            "type": "object"
          }
        },
        "required": [
          "request"
        ],
        "title": "propose_role_questionArguments",
        "type": "object"
      },
      "name": "propose_role_question"
    },
    {
      "description": "Replay of a decision's evidence path over the records you supply. It replays records; it executes nothing. Read-only view of the records you supply; it writes, signs and executes nothing. Needs TRUST_GATE_API_URL, TRUST_GATE_API_KEY and TRUST_GATE_TENANT_ID to be set, and the tenant comes from that setting, never from an argument. Returns status OK, REFUSED or UNAVAILABLE (a missing setting, a surface that is off, or an error is UNAVAILABLE, never made-up data). The Trust Gate API must be a version that serves this view; it returns UNAVAILABLE until then. A mapping or readout is not a compliance finding.",
      "inputSchema": {
        "properties": {
          "request": {
            "additionalProperties": true,
            "title": "Request",
            "type": "object"
          }
        },
        "required": [
          "request"
        ],
        "title": "replay_decisionArguments",
        "type": "object"
      },
      "name": "replay_decision"
    },
    {
      "description": "Vendor exit readiness drill. Checks local signing key, local model access (Ollama). Returns step-by-step results and a tamper-evident receipt. Informational; it signs one receipt, which creates the signing key on a host that has none yet.",
      "inputSchema": {
        "properties": {},
        "title": "run_exit_drillArguments",
        "type": "object"
      },
      "name": "run_exit_drill"
    },
    {
      "description": "Verify a Trust Gate receipt from the certificate alone (offline). ok=true means unchanged since signing, signed, kid consistent with the embedded key, and (require_pq default on) at least one post-quantum leg verified; unsigned receipts fail. It does not prove who signed: pass expected_kid to pin the signer's Ed25519 key; a pin counts only when that key's own signature verifies (see signer_pinned). The post-quantum keys in a receipt are not covered by the kid.",
      "inputSchema": {
        "properties": {
          "expected_kid": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Expected Kid"
          },
          "receipt": {
            "additionalProperties": true,
            "title": "Receipt",
            "type": "object"
          },
          "require_pq": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Require Pq"
          }
        },
        "required": [
          "receipt"
        ],
        "title": "verify_receiptArguments",
        "type": "object"
      },
      "name": "verify_receipt"
    }
  ]
}

What the leaf hashes

{"body":"f0865ae15da8fa3c995e5b52119e17a091f0bd2f53bd8deeb7a80cdce6bdbbbd","id":2500112,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793670330513734,"prev":570455,"subject":"b91edac5-22c8-46f4-8a0d-c7c67964236f","subject_kind":"endpoint"}

Proof

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

  1. 0x4b570fcd9604e3b37e4a2272386dd27e336ceefa8d57e44639c62aa19a7f8cd7
  2. 0xd1e668aa4f0aa227be4ecd4cf3b84b540b8cad9cc1ca9e69c152988dc2b8c49e
  3. 0xcb5bbcecde56ade8b77cc6bd8920797256a70e50c699aaefa95606046270d18c
  4. 0x9335f505525016c1628e7a7c9221d78fe2c0f2a4129f7563ef14fd2e97bdfb52
  5. 0xdc927e80d3555c6fe337f50ac5e31b36b5f3888a7ac04eff6f9db247584c3513
  6. 0x0be6fc4f707ae6edd7a34968aabb0d5df8245123be3e7fec5ac5889c110f9498
  7. 0x7b40f368b714f97f19abc440311d627b748c63ce173fa331b02d169c35365215
  8. 0x61833d2044b148152cc835a1d160cd490dea4e4c43c6b7e054025f8a35198ee5
  9. 0xdefdf4ebd24b59a50035f389385d0e135efd362f5037cf304f0373dc51526e8d
  10. 0x93cdccc659c31753a843463a0b75a332ed24eea2664f09200105c824f92a6d7b
  11. 0xe639bce78b0a2f17f49660809213f3502901731ed5f9d2819153c797c78c8094
  12. 0x906208dd0f61cb76c5ab46f992d0d280c98f599746784e36966fc3d12ec06bd8
  13. 0x25e7c6e3ae958d725091b9780092a534731cdfe4819dd1ffe52af56311601eb8
  14. 0x5e9968227987a7f0940fee03a33017f5e7157de7f0889921817733c1ab8871d1
  15. 0xd106fbd3b5dac57c72dd4fc8931f69b38fd5a542627e63d015b63dadf2188a2f
  16. 0x35ca4633a97853eefbf38aaf743dd7ff85a4c731ccc8e31a34fd826c3142d6ea
  17. 0x87df2ed9052c264d606c076742aa7e54b69fc8344b21e972ebcb19d020b7ecf3
  18. 0x012ad914f3f945da3b6b48eddc7a1388613e4afc04339deb76c609611864e9b9
  19. 0xe35032d4b064b015fe60638756eeb0bc24e7c7943586468d33349341ee0ed3d6
Day root
0xb646ffa569e24bf8336b0a15a9d98d0a2f1239f58e10c2b18a9d22e43343566a
Chained
0x35e926359fd19031c6b5e08fb3b44f2524386a57c8fdd353336c185603f53d43
Published
On Arc Testnet, block 70601990: 0xa5f9dadba13cde129126b950e64b815e6833cb8ff53b75026c9dbe769c3768c7

How to check it · This row as JSON