Agent Verification Utility
Qué hace este MCP
Performs deterministic verification checks and returns signed evidence after an explicitly authorized x402 payment.
Herramientas
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['idempotency_key', 'intent'], 'properties': {'intent': {'type': 'object', 'required': ['request', 'spend_policy', 'precheck_receipt_digest'], 'properties': {'request': {'type': 'object', 'required': ['client_request_id', 'evidence', 'assertions'], 'properties': {'evidence': {'type': 'object', 'required': ['media_type', 'content_base64'], 'properties': {'media_type': {'type': 'string', 'const': 'application/json', 'description': 'Required literal application/json.'}, 'content_base64': {'type': 'string', 'maxLength': 87384, 'minLength': 4, 'description': 'Required strict standard Base64 of UTF-8 JSON; 4-87384 encoded characters and at most 65536 decoded bytes. JSON limits: depth 32, object keys 2048, values 8192; integers must be JavaScript safe integers.'}}, 'description': 'Required caller-supplied JSON bytes; no remote evidence is fetched.', 'additionalProperties': False}, 'assertions': {'type': 'array', 'items': {'oneOf': [{'type': 'object', 'required': ['op', 'expected_hex'], 'properties': {'op': {'type': 'string', 'const': 'sha256_equals', 'description': 'Compare SHA-256 of the raw decoded evidence bytes.'}, 'expected_hex': {'type': 'string', 'pattern': '^[a-f0-9]{64}$', 'description': 'Required expected digest as exactly 64 lowercase hex characters, without sha256: prefix.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['op', 'path'], 'properties': {'op': {'type': 'string', 'const': 'json_pointer_exists', 'description': 'Check whether the JSON Pointer resolves.'}, 'path': {'type': 'string', 'maxLength': 512, 'description': 'Required RFC 6901 JSON Pointer, at most 512 characters; empty string selects the document root. Escape tilde as ~0 and slash as ~1.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['op', 'path', 'expected'], 'properties': {'op': {'type': 'string', 'const': 'json_pointer_equals', 'description': 'Compare the selected JSON value with expected.'}, 'path': {'type': 'string', 'maxLength': 512, 'description': 'Required RFC 6901 JSON Pointer, at most 512 characters; empty string selects the document root. Escape tilde as ~0 and slash as ~1.'}, 'expected': {'description': 'Required expected JSON value, including null; JSON depth/key/value and safe-integer limits apply.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['op', 'path', 'expected_type'], 'properties': {'op': {'type': 'string', 'const': 'json_type_is', 'description': 'Check the selected JSON value type.'}, 'path': {'type': 'string', 'maxLength': 512, 'description': 'Required RFC 6901 JSON Pointer, at most 512 characters; empty string selects the document root. Escape tilde as ~0 and slash as ~1.'}, 'expected_type': {'enum': ['null', 'boolean', 'number', 'string', 'array', 'object'], 'type': 'string', 'description': 'Required JSON type: null, boolean, number, string, array or object.'}}, 'additionalProperties': False}]}, 'maxItems': 16, 'minItems': 1, 'description': 'Required 1-16 deterministic assertions. Each operation accepts only its documented fields. Precheck validates input, not assertion truth.'}, 'client_request_id': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 64, 'minLength': 1, 'description': 'Required caller request identifier, 1-64 characters from A-Z, a-z, 0-9, dot, underscore, colon or hyphen; included in the request hash.'}}, 'description': 'Required complete bounded verification request, unchanged from precheck; no optional fields or defaults.', 'additionalProperties': False}, 'spend_policy': {'type': 'object', 'required': ['policy_version', 'max_amount_atomic', 'network', 'asset', 'pay_to'], 'properties': {'asset': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$', 'description': 'Required USDC contract address, 0x plus 40 hex characters; must match current advertised asset.'}, 'pay_to': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$', 'description': 'Required allowed payment recipient, 0x plus 40 hex characters; must match current advertised payTo.'}, 'network': {'enum': ['eip155:84532', 'eip155:8453'], 'type': 'string', 'description': 'Required eip155:8453 (Base) or eip155:84532 (Base Sepolia); must match current advertised terms.'}, 'policy_version': {'type': 'string', 'const': 'agent-economy/precheck-policy/2.0', 'description': 'Required literal agent-economy/precheck-policy/2.0.'}, 'max_amount_atomic': {'type': 'string', 'description': 'Required positive decimal integer string in atomic USDC units (1000000 = 1 USDC), at most 16 digits and within JavaScript safe-integer range. No leading zero; must cover the current quoted price.'}}, 'description': 'Required caller spending limits and allowed terms; preserve from precheck. All five fields required; no defaults.', 'additionalProperties': False}, 'precheck_receipt_digest': {'type': 'string', 'pattern': '^sha256:[a-f0-9]{64}$', 'description': 'Required sha256: followed by 64 lowercase hex characters, copied from precheck_receipt.receipt_digest of the successful free precheck. Recomputed against request, policy and current discovery contract; mismatches return PRECHECK_STALE.'}}, 'description': 'Required prechecked purchase intent: request, spend_policy and precheck_receipt_digest are all required, with no defaults or optional fields. Preserve the request and policy used in the successful free POST /validate-request.', 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 16, 'description': 'Required 16-128 characters from A-Z, a-z, 0-9, underscore or hyphen. Reuse with the unchanged intent to reuse an unexpired quote; changed bindings return IDEMPOTENCY_KEY_CONFLICT. An expired key returns IDEMPOTENCY_KEY_EXPIRED; use a new key.'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['idempotency_key', 'intent'], 'properties': {'intent': {'type': 'object', 'required': ['request', 'spend_policy', 'precheck_receipt_digest'], 'properties': {'request': {'type': 'object', 'required': ['client_request_id', 'evidence', 'assertions'], 'properties': {'evidence': {'type': 'object', 'required': ['media_type', 'content_base64'], 'properties': {'media_type': {'type': 'string', 'const': 'application/json', 'description': 'Required literal application/json.'}, 'content_base64': {'type': 'string', 'maxLength': 87384, 'minLength': 4, 'description': 'Required strict standard Base64 of UTF-8 JSON; 4-87384 encoded characters and at most 65536 decoded bytes. JSON limits: depth 32, object keys 2048, values 8192; integers must be JavaScript safe integers.'}}, 'description': 'Required caller-supplied JSON bytes; no remote evidence is fetched.', 'additionalProperties': False}, 'assertions': {'type': 'array', 'items': {'oneOf': [{'type': 'object', 'required': ['op', 'expected_hex'], 'properties': {'op': {'type': 'string', 'const': 'sha256_equals', 'description': 'Compare SHA-256 of the raw decoded evidence bytes.'}, 'expected_hex': {'type': 'string', 'pattern': '^[a-f0-9]{64}$', 'description': 'Required expected digest as exactly 64 lowercase hex characters, without sha256: prefix.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['op', 'path'], 'properties': {'op': {'type': 'string', 'const': 'json_pointer_exists', 'description': 'Check whether the JSON Pointer resolves.'}, 'path': {'type': 'string', 'maxLength': 512, 'description': 'Required RFC 6901 JSON Pointer, at most 512 characters; empty string selects the document root. Escape tilde as ~0 and slash as ~1.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['op', 'path', 'expected'], 'properties': {'op': {'type': 'string', 'const': 'json_pointer_equals', 'description': 'Compare the selected JSON value with expected.'}, 'path': {'type': 'string', 'maxLength': 512, 'description': 'Required RFC 6901 JSON Pointer, at most 512 characters; empty string selects the document root. Escape tilde as ~0 and slash as ~1.'}, 'expected': {'description': 'Required expected JSON value, including null; JSON depth/key/value and safe-integer limits apply.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['op', 'path', 'expected_type'], 'properties': {'op': {'type': 'string', 'const': 'json_type_is', 'description': 'Check the selected JSON value type.'}, 'path': {'type': 'string', 'maxLength': 512, 'description': 'Required RFC 6901 JSON Pointer, at most 512 characters; empty string selects the document root. Escape tilde as ~0 and slash as ~1.'}, 'expected_type': {'enum': ['null', 'boolean', 'number', 'string', 'array', 'object'], 'type': 'string', 'description': 'Required JSON type: null, boolean, number, string, array or object.'}}, 'additionalProperties': False}]}, 'maxItems': 16, 'minItems': 1, 'description': 'Required 1-16 deterministic assertions. Each operation accepts only its documented fields. Precheck validates input, not assertion truth.'}, 'client_request_id': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 64, 'minLength': 1, 'description': 'Required caller request identifier, 1-64 characters from A-Z, a-z, 0-9, dot, underscore, colon or hyphen; included in the request hash.'}}, 'description': 'Required complete bounded verification request, unchanged from precheck; no optional fields or defaults.', 'additionalProperties': False}, 'spend_policy': {'type': 'object', 'required': ['policy_version', 'max_amount_atomic', 'network', 'asset', 'pay_to'], 'properties': {'asset': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$', 'description': 'Required USDC contract address, 0x plus 40 hex characters; must match current advertised asset.'}, 'pay_to': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$', 'description': 'Required allowed payment recipient, 0x plus 40 hex characters; must match current advertised payTo.'}, 'network': {'enum': ['eip155:84532', 'eip155:8453'], 'type': 'string', 'description': 'Required eip155:8453 (Base) or eip155:84532 (Base Sepolia); must match current advertised terms.'}, 'policy_version': {'type': 'string', 'const': 'agent-economy/precheck-policy/2.0', 'description': 'Required literal agent-economy/precheck-policy/2.0.'}, 'max_amount_atomic': {'type': 'string', 'description': 'Required positive decimal integer string in atomic USDC units (1000000 = 1 USDC), at most 16 digits and within JavaScript safe-integer range. No leading zero; must cover the current quoted price.'}}, 'description': 'Required caller spending limits and allowed terms; preserve from precheck. All five fields required; no defaults.', 'additionalProperties': False}, 'precheck_receipt_digest': {'type': 'string', 'pattern': '^sha256:[a-f0-9]{64}$', 'description': 'Required sha256: followed by 64 lowercase hex characters, copied from precheck_receipt.receipt_digest of the successful free precheck. Recomputed against request, policy and current discovery contract; mismatches return PRECHECK_STALE.'}}, 'description': 'Required prechecked purchase intent: request, spend_policy and precheck_receipt_digest are all required, with no defaults or optional fields. Preserve the request and policy used in the successful free POST /validate-request.', 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 16, 'description': 'Required 16-128 characters from A-Z, a-z, 0-9, underscore or hyphen. Reuse with the unchanged intent to reuse an unexpired quote; changed bindings return IDEMPOTENCY_KEY_CONFLICT. An expired key returns IDEMPOTENCY_KEY_EXPIRED; use a new key.'}}}
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['idempotency_key', 'intent'], 'properties': {'intent': {'type': 'object', 'required': ['request', 'spend_policy', 'precheck_receipt_digest'], 'properties': {'request': {'type': 'object', 'required': ['client_request_id', 'evidence', 'assertions'], 'properties': {'evidence': {'type': 'object', 'required': ['media_type', 'content_base64'], 'properties': {'media_type': {'type': 'string', 'const': 'application/json'}, 'content_base64': {'type': 'string', 'maxLength': 87384, 'minLength': 4}}, 'additionalProperties': False}, 'assertions': {'type': 'array', 'items': {'oneOf': [{'type': 'object', 'required': ['op', 'expected_hex'], 'properties': {'op': {'type': 'string', 'const': 'sha256_equals'}, 'expected_hex': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['op', 'path'], 'properties': {'op': {'type': 'string', 'const': 'json_pointer_exists'}, 'path': {'type': 'string', 'maxLength': 512}}, 'additionalProperties': False}, {'type': 'object', 'required': ['op', 'path', 'expected'], 'properties': {'op': {'type': 'string', 'const': 'json_pointer_equals'}, 'path': {'type': 'string', 'maxLength': 512}, 'expected': {}}, 'additionalProperties': False}, {'type': 'object', 'required': ['op', 'path', 'expected_type'], 'properties': {'op': {'type': 'string', 'const': 'json_type_is'}, 'path': {'type': 'string', 'maxLength': 512}, 'expected_type': {'enum': ['null', 'boolean', 'number', 'string', 'array', 'object'], 'type': 'string'}}, 'additionalProperties': False}]}, 'maxItems': 16, 'minItems': 1}, 'client_request_id': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 64, 'minLength': 1}}, 'additionalProperties': False}, 'spend_policy': {'type': 'object', 'required': ['policy_version', 'max_amount_atomic', 'network', 'asset', 'pay_to'], 'properties': {'asset': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$'}, 'pay_to': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$'}, 'network': {'enum': ['eip155:84532', 'eip155:8453'], 'type': 'string'}, 'policy_version': {'type': 'string', 'const': 'agent-economy/precheck-policy/2.0'}, 'max_amount_atomic': {'type': 'string'}}, 'additionalProperties': False}, 'precheck_receipt_digest': {'type': 'string', 'pattern': '^sha256:[a-f0-9]{64}$'}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 16}}}
Cambios recientes en herramientas
Servidores MCP similares
Robyn — Gasless Cross-Chain for AI Agents
Supports gasless cross-chain transfers, wallet and transaction checks, spending mandates, privacy-preserving messaging, and signe…
x402-endpoints
Offers paid x402 API tools for crypto intelligence, wallet and transaction analysis, compliance screening, content safety, due di…
Cofferline
Provides policy-controlled agent wallet treasury operations, token conversions, gas top-ups, prediction-market orders, delegation…
xrpl-referee
Supports XRPL-based agent hiring, escrow payments, job marketplaces, wallet trust scoring, sanctions and KYC checks, and AI-assis…
blindoracle
Offers paid, verifiable research and data services alongside agent trust checks, settlement attestations, crypto market analysis,…
SALT19 Agent Utility Grid
Provides paid agent decision gates, code and dependency risk checks, repository intelligence, blockchain facts, payment-policy ch…
InsureLink
Manages agent reputation, insurance coverage, SLA agreements, transaction safety checks, attestations, claims, and x402-mediated …
biii
Evaluates Base wallets, tokens, agents, merchants, payment authorization, transaction settlement, approvals, theft traces, and on…