{"$schema":"https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json","version":"1.0","protocolVersion":"2026-07-28","serverInfo":{"name":"dev.kgninja/agent-verification-utility","title":"Agent Verification Utility","version":"0.2.1"},"description":"Deterministic checks over bounded inline JSON with Ed25519-signed evidence and an x402-paid execution tool.","transport":{"type":"streamable-http","endpoint":"/mcp"},"authentication":{"required":false},"tools":[{"name":"describe_verify_evidence","title":"Describe Agent Verification Utility","description":"Describe the product, limits, discovery endpoints, and paid execution path.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"quote_verify_evidence","title":"Quote Verification","description":"Validate a complete request and return a free quote when the margin policy passes.","inputSchema":{"type":"object","properties":{"idempotency_key":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"request":{"type":"object","additionalProperties":false,"required":["client_request_id","evidence","assertions"],"properties":{"client_request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$"},"evidence":{"type":"object","additionalProperties":false,"required":["media_type","content_base64"],"properties":{"media_type":{"type":"string","const":"application/json"},"content_base64":{"type":"string","contentEncoding":"base64","contentMediaType":"application/json","maxLength":87384}}},"assertions":{"type":"array","minItems":1,"maxItems":16,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["op","expected_hex"],"properties":{"op":{"type":"string","const":"sha256_equals"},"expected_hex":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},{"type":"object","additionalProperties":false,"required":["op","path"],"properties":{"op":{"type":"string","const":"json_pointer_exists"},"path":{"type":"string","maxLength":512}}},{"type":"object","additionalProperties":false,"required":["op","path","expected"],"properties":{"op":{"type":"string","const":"json_pointer_equals"},"path":{"type":"string","maxLength":512},"expected":{}}},{"type":"object","additionalProperties":false,"required":["op","path","expected_type"],"properties":{"op":{"type":"string","const":"json_type_is"},"path":{"type":"string","maxLength":512},"expected_type":{"type":"string","enum":["null","boolean","number","string","array","object"]}}}]}}}}},"required":["idempotency_key","request"],"additionalProperties":false}},{"name":"prepare_verify_evidence_purchase","title":"Prepare HTTP Purchase","description":"Return a quote and the exact HTTP request that produces an x402 challenge.","inputSchema":{"type":"object","properties":{"idempotency_key":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"request":{"type":"object","additionalProperties":false,"required":["client_request_id","evidence","assertions"],"properties":{"client_request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$"},"evidence":{"type":"object","additionalProperties":false,"required":["media_type","content_base64"],"properties":{"media_type":{"type":"string","const":"application/json"},"content_base64":{"type":"string","contentEncoding":"base64","contentMediaType":"application/json","maxLength":87384}}},"assertions":{"type":"array","minItems":1,"maxItems":16,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["op","expected_hex"],"properties":{"op":{"type":"string","const":"sha256_equals"},"expected_hex":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},{"type":"object","additionalProperties":false,"required":["op","path"],"properties":{"op":{"type":"string","const":"json_pointer_exists"},"path":{"type":"string","maxLength":512}}},{"type":"object","additionalProperties":false,"required":["op","path","expected"],"properties":{"op":{"type":"string","const":"json_pointer_equals"},"path":{"type":"string","maxLength":512},"expected":{}}},{"type":"object","additionalProperties":false,"required":["op","path","expected_type"],"properties":{"op":{"type":"string","const":"json_type_is"},"path":{"type":"string","maxLength":512},"expected_type":{"type":"string","enum":["null","boolean","number","string","array","object"]}}}]}}}}},"required":["idempotency_key","request"],"additionalProperties":false}},{"name":"verify_evidence","title":"Verify Evidence (paid)","description":"Run deterministic checks and return Ed25519-signed evidence after x402 payment.","inputSchema":{"type":"object","properties":{"idempotency_key":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"request":{"type":"object","additionalProperties":false,"required":["client_request_id","evidence","assertions"],"properties":{"client_request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$"},"evidence":{"type":"object","additionalProperties":false,"required":["media_type","content_base64"],"properties":{"media_type":{"type":"string","const":"application/json"},"content_base64":{"type":"string","contentEncoding":"base64","contentMediaType":"application/json","maxLength":87384}}},"assertions":{"type":"array","minItems":1,"maxItems":16,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["op","expected_hex"],"properties":{"op":{"type":"string","const":"sha256_equals"},"expected_hex":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},{"type":"object","additionalProperties":false,"required":["op","path"],"properties":{"op":{"type":"string","const":"json_pointer_exists"},"path":{"type":"string","maxLength":512}}},{"type":"object","additionalProperties":false,"required":["op","path","expected"],"properties":{"op":{"type":"string","const":"json_pointer_equals"},"path":{"type":"string","maxLength":512},"expected":{}}},{"type":"object","additionalProperties":false,"required":["op","path","expected_type"],"properties":{"op":{"type":"string","const":"json_type_is"},"path":{"type":"string","maxLength":512},"expected_type":{"type":"string","enum":["null","boolean","number","string","array","object"]}}}]}}}}},"required":["idempotency_key","request"],"additionalProperties":false}}]}