Agent Verification Utility

Deterministic JSON checks with signed evidence and x402-paid execution

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
68%
命名质量
84%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(1)

  • LOWTool 'prepare_verify_evidence_purchase' name length outside 3-30 range在 prepare_verify_evidence_purchase 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,060token 数(工具定义)
~8.0 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.17%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "agent-verification-utility": {
      "url": "https://agent-economy.kgninja.dev/mcp"
    }
  }
}

远程端点

https://agent-economy.kgninja.dev/mcpstreamable-http

它能做什么

工具清单

工具(5)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢describe_verify_evidence

Describe when deterministic verification is useful, when it is not, free request validation, recipes, limits, and the explicit paid MCP path.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_revenue_goal_status

Read the active revenue goal, measured funnel, contribution margin, and the next bounded improvement recommendation. This tool never changes price, spends funds, or sends messages.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡quote_verify_evidence(idempotency_key, intent)

Obtain a free bound quote for deterministic checks on supplied JSON before deciding to purchase. After a successful free precheck at POST /validate-request, supply the unchanged intent and its precheck_receipt.receipt_digest. Creates or reuses a persisted quote and records observability events; no payment, signing or paid verification is performed. The bound quote ties request/evidence digests, precheck digest, spend policy, quoted amount, network, asset, recipient and expiry together. Server availability, fresh cost basis and conservative contribution-margin thresholds must pass. Returns the quote as JSON text and structuredContent: quote_id, request_hash, price (atomic USDC, 6 decimals), expires_at, economic_guard, purchase instructions and paid_verification_binding in state quoted, not a paid receipt. Application failures return isError=true with JSON error.code, message, retryable and optional details (for example PRECHECK_STALE, PRICE_CAP_EXCEEDED, IDEMPOTENCY_KEY_CONFLICT, IDEMPOTENCY_KEY_EXPIRED or UNPROFITABLE_TRANSACTION); invalid argument shapes are rejected by MCP schema validation. Re-run precheck after request/policy changes; do not pay on refusal. Next use prepare_verify_evidence_purchase with the same key and intent for the HTTP purchase request, or explicitly authorize the separate paid verify_evidence flow.

输入模式

{
  "type": "object",
  "properties": {
    "idempotency_key": {
      "type": "string",
      "minLength": 16,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "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."
    },
    "intent": {
      "type": "object",
      "properties": {
        "request": {
          "type": "object",
          "properties": {
            "client_request_id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "pattern": "^[A-Za-z0-9._:-]+$",
              "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."
            },
            "evidence": {
              "type": "object",
              "properties": {
                "media_type": {
                  "type": "string",
                  "const": "application/json",
                  "description": "Required literal application/json."
                },
                "content_base64": {
                  "type": "string",
                  "minLength": 4,
                  "maxLength": 87384,
                  "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."
                }
              },
              "required": [
                "media_type",
                "content_base64"
              ],
              "additionalProperties": false,
              "description": "Required caller-supplied JSON bytes; no remote evidence is fetched."
            },
            "assertions": {
              "minItems": 1,
              "maxItems": 16,
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "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."
                      }
                    },
                    "required": [
                      "op",
                      "expected_hex"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "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."
                      }
                    },
                    "required": [
                      "op",
                      "path"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "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."
                      }
                    },
                    "required": [
                      "op",
                      "path",
                      "expected"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "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": {
                        "type": "string",
                        "enum": [
                          "null",
                          "boolean",
                          "number",
                          "string",
                          "array",
                          "object"
                        ],
                        "description": "Required JSON type: null, boolean, number, string, array or object."
                      }
                    },
                    "required": [
                      "op",
                      "path",
                      "expected_type"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "description": "Required 1-16 deterministic assertions. Each operation accepts only its documented fields. Precheck validates input, not assertion truth."
            }
          },
          "required": [
            "client_request_id",
            "evidence",
            "assertions"
          ],
          "additionalProperties": false,
          "description": "Required complete bounded verification request, unchanged from precheck; no optional fields or defaults."
        },
        "spend_policy": {
          "type": "object",
          "properties": {
            "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."
            },
            "network": {
              "type": "string",
              "enum": [
                "eip155:84532",
                "eip155:8453"
              ],
              "description": "Required eip155:8453 (Base) or eip155:84532 (Base Sepolia); must match current advertised terms."
            },
            "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."
            }
          },
          "required": [
            "policy_version",
            "max_amount_atomic",
            "network",
            "asset",
            "pay_to"
          ],
          "additionalProperties": false,
          "description": "Required caller spending limits and allowed terms; preserve from precheck. All five fields required; no defaults."
        },
        "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."
        }
      },
      "required": [
        "request",
        "spend_policy",
        "precheck_receipt_digest"
      ],
      "additionalProperties": false,
      "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."
    }
  },
  "required": [
    "idempotency_key",
    "intent"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡prepare_verify_evidence_purchase(idempotency_key, intent)

Prepare an HTTP purchase request for deterministic JSON verification after a successful free precheck; a prior quote tool call is optional. After a successful free precheck at POST /validate-request, supply the unchanged intent and its precheck_receipt.receipt_digest. Creates or reuses a persisted quote and records observability events; no payment, signing or paid verification is performed. The bound quote ties request/evidence digests, precheck digest, spend policy, quoted amount, network, asset, recipient and expiry together. Server availability, fresh cost basis and conservative contribution-margin thresholds must pass. Returns JSON text and structuredContent containing quote, request (POST /verify-evidence, content-type and X-Quote-ID headers, unchanged intent body), expected_first_status=402 and expected_payment_header=PAYMENT-REQUIRED. It does not send this request. Application failures return isError=true with JSON error.code, message, retryable and optional details (for example PRECHECK_STALE, PRICE_CAP_EXCEEDED, IDEMPOTENCY_KEY_CONFLICT, IDEMPOTENCY_KEY_EXPIRED or UNPROFITABLE_TRANSACTION); invalid argument shapes are rejected by MCP schema validation. Re-run precheck after request/policy changes; do not pay on refusal. Next send the returned request to obtain a challenge, check binding, amount, network, asset, payTo and expiry against local policy, then authorize payment separately. Use quote_verify_evidence when only quote terms are needed.

输入模式

{
  "type": "object",
  "properties": {
    "idempotency_key": {
      "type": "string",
      "minLength": 16,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "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."
    },
    "intent": {
      "type": "object",
      "properties": {
        "request": {
          "type": "object",
          "properties": {
            "client_request_id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "pattern": "^[A-Za-z0-9._:-]+$",
              "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."
            },
            "evidence": {
              "type": "object",
              "properties": {
                "media_type": {
                  "type": "string",
                  "const": "application/json",
                  "description": "Required literal application/json."
                },
                "content_base64": {
                  "type": "string",
                  "minLength": 4,
                  "maxLength": 87384,
                  "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."
                }
              },
              "required": [
                "media_type",
                "content_base64"
              ],
              "additionalProperties": false,
              "description": "Required caller-supplied JSON bytes; no remote evidence is fetched."
            },
            "assertions": {
              "minItems": 1,
              "maxItems": 16,
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "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."
                      }
                    },
                    "required": [
                      "op",
                      "expected_hex"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "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."
                      }
                    },
                    "required": [
                      "op",
                      "path"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "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."
                      }
                    },
                    "required": [
                      "op",
                      "path",
                      "expected"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "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": {
                        "type": "string",
                        "enum": [
                          "null",
                          "boolean",
                          "number",
                          "string",
                          "array",
                          "object"
                        ],
                        "description": "Required JSON type: null, boolean, number, string, array or object."
                      }
                    },
                    "required": [
                      "op",
                      "path",
                      "expected_type"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "description": "Required 1-16 deterministic assertions. Each operation accepts only its documented fields. Precheck validates input, not assertion truth."
            }
          },
          "required": [
            "client_request_id",
            "evidence",
            "assertions"
          ],
          "additionalProperties": false,
          "description": "Required complete bounded verification request, unchanged from precheck; no optional fields or defaults."
        },
        "spend_policy": {
          "type": "object",
          "properties": {
            "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."
            },
            "network": {
              "type": "string",
              "enum": [
                "eip155:84532",
                "eip155:8453"
              ],
              "description": "Required eip155:8453 (Base) or eip155:84532 (Base Sepolia); must match current advertised terms."
            },
            "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."
            }
          },
          "required": [
            "policy_version",
            "max_amount_atomic",
            "network",
            "asset",
            "pay_to"
          ],
          "additionalProperties": false,
          "description": "Required caller spending limits and allowed terms; preserve from precheck. All five fields required; no defaults."
        },
        "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."
        }
      },
      "required": [
        "request",
        "spend_policy",
        "precheck_receipt_digest"
      ],
      "additionalProperties": false,
      "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."
    }
  },
  "required": [
    "idempotency_key",
    "intent"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪verify_evidence(idempotency_key, intent)

Run deterministic checks and return Ed25519-signed evidence after one explicitly authorized x402 payment. A free precheck receipt and a matching bound payment requirement are required before signing.

输入模式

{
  "type": "object",
  "properties": {
    "idempotency_key": {
      "type": "string",
      "minLength": 16,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$"
    },
    "intent": {
      "type": "object",
      "properties": {
        "request": {
          "type": "object",
          "properties": {
            "client_request_id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "pattern": "^[A-Za-z0-9._:-]+$"
            },
            "evidence": {
              "type": "object",
              "properties": {
                "media_type": {
                  "type": "string",
                  "const": "application/json"
                },
                "content_base64": {
                  "type": "string",
                  "minLength": 4,
                  "maxLength": 87384
                }
              },
              "required": [
                "media_type",
                "content_base64"
              ],
              "additionalProperties": false
            },
            "assertions": {
              "minItems": 1,
              "maxItems": 16,
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "op": {
                        "type": "string",
                        "const": "sha256_equals"
                      },
                      "expected_hex": {
                        "type": "string",
                        "pattern": "^[a-f0-9]{64}$"
                      }
                    },
                    "required": [
                      "op",
                      "expected_hex"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "op": {
                        "type": "string",
                        "const": "json_pointer_exists"
                      },
                      "path": {
                        "type": "string",
                        "maxLength": 512
                      }
                    },
                    "required": [
                      "op",
                      "path"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "op": {
                        "type": "string",
                        "const": "json_pointer_equals"
                      },
                      "path": {
                        "type": "string",
                        "maxLength": 512
                      },
                      "expected": {}
                    },
                    "required": [
                      "op",
                      "path",
                      "expected"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "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": [
                      "op",
                      "path",
                      "expected_type"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            }
          },
          "required": [
            "client_request_id",
            "evidence",
            "assertions"
          ],
          "additionalProperties": false
        },
        "spend_policy": {
          "type": "object",
          "properties": {
            "policy_version": {
              "type": "string",
              "const": "agent-economy/precheck-policy/2.0"
            },
            "max_amount_atomic": {
              "type": "string"
            },
            "network": {
              "type": "string",
              "enum": [
                "eip155:84532",
                "eip155:8453"
              ]
            },
            "asset": {
              "type": "string",
              "pattern": "^0x[a-fA-F0-9]{40}$"
            },
            "pay_to": {
              "type": "string",
              "pattern": "^0x[a-fA-F0-9]{40}$"
            }
          },
          "required": [
            "policy_version",
            "max_amount_atomic",
            "network",
            "asset",
            "pay_to"
          ],
          "additionalProperties": false
        },
        "precheck_receipt_digest": {
          "type": "string",
          "pattern": "^sha256:[a-f0-9]{64}$"
        }
      },
      "required": [
        "request",
        "spend_policy",
        "precheck_receipt_digest"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "idempotency_key",
    "intent"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本5 个工具
已验证未记录版本5 个工具
已验证未记录版本5 个工具