← The evidence ledger
Evidence row 123803
Observed , by baseline/1.
- Kind
- listing
- About
- source_record x402_bazaar:https://verdict.kechlab.com/v1/mcp-vet
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 5323aa4cbab6b7c00707213b5e01e3cc5fb1bf3d2d6552e35d525539ed99d2ad
- Leaf
- 0xb3d8dd667dbc337b262c93d477f79c3c51219ea9497954f3073bdcf828fbdaf1
What was observed
{
"endpoints": [
[
"x402",
"https://verdict.kechlab.com/v1/mcp-vet"
]
],
"name": "Verdict L402",
"owner_address": "0xb36c56a749f81ffeb44a134082dd4744e1d254eb",
"raw": {
"accepts": [
{
"amount": "21400",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 120,
"network": "eip155:8453",
"payTo": "0xb36c56A749f81FFeb44a134082DD4744E1d254Eb",
"scheme": "exact"
}
],
"description": "Before an agent installs an MCP server, skill or tool: is the description poisoned (hidden orders to the agent), does it ask for more permissions than its purpose, does it imitate a known tool? Code checks (lookalike names, broad permissions, hidden text) then a reading of the descriptions. Judges t",
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"description": "Returns the current weather for a city name.",
"name": "weather-lookup",
"permissions": [
"network"
],
"tools": [
{
"description": "Current weather for a city",
"name": "get_weather"
}
]
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"mode": "mcp-vet",
"paid_sats": 20,
"payment_hash": "x402:<sha256 hex>",
"receipt": {
"payload": {
"at": "<ISO 8601 time>",
"kid": "<signing key id>",
"mode": "mcp-vet",
"payment_hash": "x402:<sha256 hex>",
"v": 1,
"verdict_sha256": "<sha256 hex of the verdict>"
},
"signature": "<base64url Ed25519 signature>"
},
"verdict": {
"checks": {
"broad_permissions": [],
"hidden_text": 0,
"lookalike": null
},
"decision": "allow",
"reasons": [],
"rule": "block if data-sending request >= 0.7, or orders to the agent >= 0.7 with leak >= 0.4 or deception >= 0.5, or hidden text with orders >= 0.5 ; review if a code check or any score >= 0.6 ; otherwise allow",
"scores": {
"deceptive": 0.02,
"exfiltration": 0.01,
"overreach": 0.03,
"poisoned": 0.02
}
}
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"description": {
"description": "description of the tool",
"type": "string"
},
"name": {
"description": "name of the tool or server",
"type": "string"
},
"permissions": {
"description": "(optional) list of requested permissions (e.g. filesystem:write, network, shell)",
"items": {
"type": "string"
},
"type": "array"
},
"tools": {
"description": "(optional) list of { name, description } of the exposed functions",
"items": {
"type": "object"
},
"type": "array"
}
},
"required": [
"name",
"description"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"lastUpdated": "2026-10-20T13:33:30.002Z",
"quality": {
"l30DaysTotalCalls": 1,
"l30DaysUniquePayers": 1,
"lastCalledAt": "2026-10-20T13:33:29.4Z"
},
"resource": "https://verdict.kechlab.com/v1/mcp-vet",
"serviceName": "Verdict L402",
"tags": [
"mcp",
"supply-chain",
"ai-agents"
],
"type": "http",
"x402Version": 2
},
"source": "x402_bazaar",
"summary": "Before an agent installs an MCP server, skill or tool: is the description poisoned (hidden orders to the agent), does it ask for more permissions than its purpose, does it imitate a known tool? Code checks (lookalike names, broad permissions, hidden text) then a reading of the descriptions. Judges t"
}What the leaf hashes
{"body":"5323aa4cbab6b7c00707213b5e01e3cc5fb1bf3d2d6552e35d525539ed99d2ad","id":123803,"kind":"listing","method":"baseline/1","observed_us":1793025623731265,"prev":null,"subject":"x402_bazaar:https://verdict.kechlab.com/v1/mcp-vet","subject_kind":"source_record"}Proof
Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.