RouteVerdict

io.github.QuincyGBPublished by GitHub account QuincyGBv0.1.2Updated Oct 29, 2026

MCP server for RouteVerdict — x402 endpoint trust checks ($0.05 USDC on Base)

VerifiedSTDIODesktop onlyFinanceSecurity & Monitoring

Overview

AI-generated overview

Local stdio MCP server that lets an assistant audit an x402 endpoint's trust and liveness, paying $0.05 USDC on Base per check.

What you can do
  • Audit a paid x402 resource URL: returns a TRUSTED / CAUTION / AVOID verdict with a 0-100 trust score and itemized deductions
  • Inspect the target's liveness via a live 402 probe, its published terms, discovery-schema quality and catalog presence in the CDP Bazaar and PayAI indexes
  • Compare the result against the last check of the same URL
  • Without a configured signer, return the parsed 402 payment challenge as a structured error instead of paying
When to use it
Useful when an agent is about to pay or rely on an x402 endpoint and wants a trust and liveness assessment first, or wants to see the price challenge before deciding to settle it.
Requirements
Runs locally as a Python package (Python 3.10 or newer) over stdio, installed from PyPI or a checkout. Paid calls need an EVM private key with USDC on Base, supplied via AGENT_PRIVATE_KEY or a key file path in AGENT_KEY_FILE. Optional ROUTE_VERDICT_MAX_AMOUNT_UNITS sets the per-call spend cap and ROUTE_VERDICT_URL overrides the service base URL. Network access to the service and the target endpoint is required.
Before you install
Each check spends real money: $0.05 USDC on Base, signed with the wallet key in AGENT_PRIVATE_KEY or AGENT_KEY_FILE. The key is used locally to sign EIP-3009 authorizations, so a leaked environment or config file exposes the wallet; use a dedicated agent wallet with only working funds and prefer the key-file option. The spend guard defaults to the known price, so raising ROUTE_VERDICT_MAX_AMOUNT_UNITS allows larger payments. The target URL is probed but never paid, and check results are sent…

Installation

In SourceWeft

  1. Open RouteVerdict in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

route-verdict-mcp

[M8ven Score]

Standalone home: This server was split out of QuincyGB/token-verdict-tools so each MCP server has its own GitHub repository for directory ingestion and maintenance. The PyPI package name (route-verdict-mcp), version, and install command are unchanged.

An MCP server (stdio transport) that exposes RouteVerdict as a native tool for any MCP host — Claude Desktop, Cursor, or your own agent runtime.

RouteVerdict is a pay-per-call trust and liveness check for x402 endpoints: send any paid resource URL, get back a verdict (TRUSTED / CAUTION / AVOID), a 0–100 trust score, an itemized deduction list, a live 402 probe of the target, its published terms, discovery-schema quality, catalog presence in the CDP Bazaar and PayAI indexes, and a diff against the last check of the same URL. It costs $0.05 USDC per check on Base, paid via the x402 protocol — no accounts, no API keys; the payment is the authentication. The target endpoint is probed, never paid.

The tool

route_check — one tool, the service's real contract:

InputTypeNotes
resource_urlstring (required)Full URL of the x402 resource to audit

Output is the service's check JSON: resource_url, checked_at, verdict, score, reasons (itemized deductions), liveness, terms, schema_quality, catalog, and diff.

Install

bash
pip install route-verdict-mcp
# Or from a checkout of this repository:pip install .

Requires Python ≥ 3.10. The server pins the MCP v1 SDK API (mcp>=1.2,<2).

Configuration

All configuration is the operator's own environment — whoever runs this server supplies their own wallet. No key material ships in this package, and the package author never sees your key.

Env varRequiredPurpose
AGENT_PRIVATE_KEYfor paid callsEVM private key (0x...) of a wallet holding USDC on Base. Used locally to sign the x402 EIP-3009 authorization.
AGENT_KEY_FILEalternativePath to a file containing that key.
ROUTE_VERDICT_URLnoService base URL override (default: production).
ROUTE_VERDICT_MAX_AMOUNT_UNITSnoSpend guard per call in USDC micro-units (default 50000 = $0.05, the known price). The client refuses to sign anything priced above it.

Without a signer configured the tool never pays. On a 402 it returns the parsed challenge as a structured error — error: "payment_required" with the full accepts array (scheme, network, asset, amount, payTo) — so the calling agent can see the price and decide what to do, or settle the challenge with its own x402 client.

MCP host configuration

Claude Desktop (claude_desktop_config.json) — same shape for other stdio MCP hosts:

json
{  "mcpServers": {    "route-verdict": {      "command": "route-verdict-mcp",      "env": {        "AGENT_PRIVATE_KEY": "0xYOUR_OWN_WALLET_KEY"      }    }  }}

From a checkout instead of an install:

json
{  "mcpServers": {    "route-verdict": {      "command": "python",      "args": ["-m", "route_verdict_mcp"],      "env": {        "PYTHONPATH": "/path/to/route-verdict-mcp/src",        "AGENT_KEY_FILE": "/path/to/your/agent.key"      }    }  }}

Prefer AGENT_KEY_FILE over inlining a key in a config file when your host setup allows it.

How payment works

The client mirrors the standard x402 v2 flow (the same flow used for the fleet's own live cataloging payments):

  1. POST /v1/check unpaid → HTTP 402, challenge base64-encoded in the payment-required header.
  2. Pick the exact / eip155:8453 entry from accepts.
  3. Build an EIP-3009 TransferWithAuthorization (validAfter: 0, validBefore: now + maxTimeoutSeconds, random 32-byte nonce) and sign it as EIP-712 typed data against the USDC domain the challenge advertises (extra.name / extra.version).
  4. Retry the identical POST with the payload in the PAYMENT-SIGNATURE header. The service verifies and settles through its facilitator (PayAI) server-side; the settlement receipt comes back in the payment-response header.

Tests

bash
pip install -e ".[dev]"pytest

All payments mocked (httpx MockTransport, throwaway signer generated at test time). The 402 fixture is the real challenge captured from production; the paid-flow test verifies the EIP-712 signature actually recovers to the signer address.

Security notes

  • Your private key is read from your environment at runtime and used only to sign payment authorizations locally. It is never transmitted — the x402 payload contains a signature, not a key.
  • The spend guard caps any single call at the configured amount (default: exactly the $0.05 price).
  • Run this with a dedicated agent wallet holding only working funds, the same way you would fund any agent.

Source: README.md at commit 2f58402

Tools

1

route_check

Audit an x402 endpoint's trust and liveness before paying or relying on it. Calls RouteVerdict (POST /v1/check, $0.05 USDC on Base via x402). Returns a verdict (TRUSTED / CAUTION / AVOID) with a 0-100 trust score, an itemized deduction list, a live 402 probe of the target (the target is never paid), its published terms, discovery-schema quality, catalog presence in the CDP Bazaar and PayAI indexes, and a diff against the last check of the same URL. Args: resource_url: Full URL of the x402 resource to audit.

Parametersresource_urlrequired

Version history

2
  1. v0.1.2LatestOct 26, 2026
  2. v0.1.1Oct 23, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts