Skip to main content
Glama

x402-list-mcp

Glama MCP server

Discover x402 payment APIs, check uptime and pricing, and inspect on-chain-verified settlement volume per facilitator through MCP.

What is x402-list

x402-list is a directory of services that accept x402 (HTTP 402 stablecoin) payments. It monitors listed services for uptime, response time and status, and measures facilitator settlement volume on-chain.

This package is a thin wrapper over the public x402-list HTTP JSON API. It holds no keys, touches no database, and makes no writes to the directory. It exposes the directory to AI agents through the Model Context Protocol as seven tools: six are free and read-only, and the seventh, x402_assess_services, is the only paid one, a pass-through that relays an x402 payment challenge you sign yourself client-side (the package never holds keys, never signs, and never settles).

Related MCP server: Tilde x402 MCP Server

Install and quick start

Connect to the hosted server at https://mcp.x402-list.com/mcp using Streamable HTTP, or run the npm package locally over stdio. Local use requires Node.js 20 or newer and npm; the hosted connection needs no local Node.js installation.

Claude Code

Connect to the hosted server:

claude mcp add --transport http x402-list https://mcp.x402-list.com/mcp

Or use the local package instead:

claude mcp add --transport stdio x402-list -- npx -y x402-list-mcp

Choose one transport. See the Claude Code MCP documentation for configuration scopes.

Cursor

Add the hosted server to Cursor, then confirm the installation in Cursor.

The install link encodes the same configuration as this manual entry in .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "x402-list": {
      "url": "https://mcp.x402-list.com/mcp"
    }
  }
}

See the Cursor MCP documentation and install-link format.

VS Code

Add this entry to .vscode/mcp.json in your project, then start the server from the editor and use it in Copilot agent mode:

{
  "servers": {
    "x402-list": {
      "type": "http",
      "url": "https://mcp.x402-list.com/mcp"
    }
  }
}

See the VS Code MCP documentation for other configuration locations.

Codex

Add the hosted server with the Codex CLI:

codex mcp add x402-list --url https://mcp.x402-list.com/mcp

Or add this entry to ~/.codex/config.toml; the CLI and IDE extension share this configuration:

[mcp_servers.x402-list]
url = "https://mcp.x402-list.com/mcp"

See the Codex MCP documentation.

Claude Desktop and other local stdio clients

Add this entry to claude_desktop_config.json, or the equivalent configuration for your stdio client, and restart the client:

{
  "mcpServers": {
    "x402-list": {
      "command": "npx",
      "args": ["-y", "x402-list-mcp"]
    }
  }
}

See the local MCP connection guide for the Claude Desktop configuration file location.

The client launches the same command you can run in a terminal:

npx -y x402-list-mcp

Self-host Streamable HTTP

To run your own HTTP instance in a POSIX shell:

MCP_HTTP_PORT=3000 npx -y x402-list-mcp --http

Connect your client to http://localhost:3000/mcp. The health probe at http://localhost:3000/healthz returns {"status":"ok"}.

Environment variables

Variable

Default

Purpose

X402_LIST_BASE_URL

https://x402-list.com

API base URL. The /api/v1 prefix is appended automatically.

X402_LIST_TIMEOUT_MS

15000

Per-request timeout in milliseconds.

MCP_HTTP_PORT / PORT

3000

HTTP port. Setting MCP_HTTP_PORT selects HTTP transport.

MCP_ALLOWED_ORIGINS

(empty, permissive)

Comma list of allowed CORS origins for HTTP mode.

MCP_ALLOWED_HOSTS

(empty, off)

Comma list that enables DNS-rebinding protection in HTTP mode.

Tools

Tool

What it does

x402_search_services

Search and filter the directory by query, category, network, status, and signable (whether the last observed 402 envelope carries the EIP-712 domain parameters a standard x402 client needs in order to sign); sort by newest/uptime/cheapest/endpoints.

x402_get_service

Full detail for one service by slug: endpoints, per-endpoint USD pricing, uptime windows, networks, settlement asset.

x402_find_best_service

Ranked recommendation for a need, computed server-side (GET /api/v1/best). Ranks mostly by reliability, x402 compliance and price (status, verified, uptime, response time, USD price), with a small (~10%) weight on per-service on-chain traction that can never dominate those three. Read the answer's ranking_version to identify its scoring generation (see below), and its units map for scoring caveats.

x402_check_health

Live status, directory-wide or per service (uptime snapshots, consecutive failures).

x402_facilitator_volumes

Per-facilitator on-chain-verified settlement volume (today UTC/7d/30d/all) in USD, tx counts, and an on-chain vs listed flag. The *_24h fields cover today (UTC) so far, not a trailing 24-hour window.

x402_change_events

Free, read-only feed of what the monitor observed changing on listed services, most recent first, in exactly three event types (payto_changed, price_changed, schema_changed). Filter by service (the listing slug: the parameter is named service, not slug), by type, and by days (1 to 365, default 90); page with page / per_page (up to 100 per page). Each event carries the observation timestamp, a diff summary, and the before/after 402 snapshots. Prices inside an event are atomic token amounts, never dollars, and every payout address is returned masked by the API: the feed reports THAT the payTo changed, never the address.

x402_assess_services

Paid ($0.25 USDC on Base, x402). Fresh on-demand AI comparison of a shortlist of listed services for a stated need. Pass-through: it never holds keys, never signs, and never settles. Call without payment_signature_b64 to get the x402 challenge verbatim, sign it client-side, then retry with the signature to get the report. Optionally add a probe target { slug, endpoint_path? } to also test one listed service live: the price becomes $0.25 plus that endpoint price X (non-refundable), and the report gains a probe_report block with a verdict and truncated extracts, never the verbatim third-party body.

Ranking generations

x402_find_best_service returns its scoring generation in ranking_version. Compare scores only within the same generation. The changes below explain why scores across generations differ:

  • Generation 2 capped the compliance term at 0.6, the floor of the C band, when at least one of a service's EVM routes was observed missing the EIP-712 domain parameters (extra.name, extra.version) a standard x402 client needs in order to sign a payment. A fact about the envelope on the wire, not a judgement on the merit of the service.

  • Generation 3 added the anti-wash rules on the traction term: an absolute floor of $10 on 30d settlement volume, below which the term scores 0 because sub-floor volume is indistinguishable from dust and must not move rank; a discount on a payout concentrated in one buyer, up to half the traction term when a single buyer accounts for all of it, since one buyer is one relationship and not the broad demand the term is meant to reward; and a service that publishes no mappable payTo now scores 0 on that term instead of having the weight renormalized away, so hiding the payout address no longer beats having a measured one.

Units note

All monetary values are decimal US dollars and are passed through verbatim. There is no cents conversion anywhere. The per-endpoint pricing[].price field is a raw atomic on-chain token amount (a uint256 string), not dollars; only price_usd is the dollar figure.

Honesty note

Two different on-chain volume signals; do not conflate them. Facilitator volume (x402_facilitator_volumes) is the ecosystem headline, aggregated per facilitator. Per-service traction (the traction block on each service, weighed at ~10% inside x402_find_best_service) is settlement measured over a service's own payTo via recognized settlers - a deliberate conservative undercount, not an estimate: unattributed settlements are left out, never scaled up. When a payTo is shared across services (shared_payout: true), only settlement VOLUME is attributed pro-quota, the operator-level volume over that address divided across the services sharing it, which is a declared convention and not an individually observed measure, while transaction count and unique buyers stay whole operator-level integers; a service on a network not yet measured, or a shared-payout member whose probe has been failing, carries no traction term at all and the remaining weights are renormalized over it. Never read shared, pro-quota or unmeasured volume as one service's revenue. To ask "which facilitators have real on-chain volume", use x402_facilitator_volumes and read the verification flag.

Source

Source code: mcccsm/x402-list-mcp. This repository mirrors the MCP package when it is published. The public REST API is documented at x402-list.com/api.

License

MIT

Available Tools

7 tools
x402_assess_servicesAssess x402 services (paid)AInspect

Call this when the free signals have run out: you hold 2 to 8 finalists from x402_search_services or x402_find_best_service, their stored fields do not separate them for YOUR stated need, and choosing wrong costs more than a quarter. It buys one fresh AI assessment reasoned against your question, not a cached grade; reading an already-computed assessment stays free via x402_get_service. Price: a one-time $0.25 USDC on Base, over two calls. Call once WITHOUT payment_signature_b64 to receive the x402 payment challenge verbatim (accepts[], amount, payTo, and a base64 PAYMENT-REQUIRED header); sign accepts[0] client-side with your own wallet; call again with the SAME question and services plus payment_signature_b64 to receive the report and a base64 PAYMENT-RESPONSE settlement receipt. This server holds no keys, never signs and never settles: it only relays the challenge. Optionally add probe { slug, endpoint_path? } to have one listed service paid and called for real and its answer analyzed: the challenge is then priced at $0.25 plus that endpoint price X, and the report gains a probe_report block with a verdict and truncated extracts, never the verbatim third-party body. When live probing is not armed the probe is ignored. Caveats: read the amount to sign from accepts[0].amount, never from a fixed figure, since a probe changes it; probe fees are non-refundable whatever the verdict; if the fresh run cannot be produced the server answers before settling, so you are never charged for nothing; there is no refund. Prices are US dollars.

ParametersJSON Schema
NameRequiredDescriptionDefault
probeNoOptional live-probe request: pay one listed service for real and analyze what it returns. When the server has probing armed the price becomes $0.25 plus that endpoint price X (non-refundable); the report gains a probe_report block with a verdict and truncated extracts, never the verbatim third-party body. Ignored when probing is not armed.
questionYesThe need to assess the shortlist against (1 to 1000 characters).
servicesYesService slugs to compare for the need (1 to 8; find them with x402_search_services or x402_find_best_service).
payment_signature_b64NoBase64 PAYMENT-SIGNATURE for the x402 payment, produced by signing the accepts[0] challenge client-side. Omit on the first call to receive the challenge; set it on the retry to run the paid assessment.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations (which don't indicate paid or two-call behavior) to disclose the full payment flow: call without signature to get challenge, sign accepts[0], retry with signature; it explains probe pricing, non-refundable fees, no charge if fresh run cannot be produced, and that probe responses are truncated and never verbatim. It also warns to read amount from accepts[0].amount. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and thorough, front-loading the core purpose and payment flow. It earns its length by covering substantive caveats (pricing, refund, probe truncation). A slight deduction because the description is very long and repeats the $0.25 fee and 'never charged for nothing' concepts in a slightly redundant way, but every sentence adds important security or usage detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete: it explains the required two-call protocol, how to compute the correct amount, what happens with probes, fee consequences, error/refund behavior, and the report contains probe_report. Given there is no output schema, the description fully compensates by describing what is returned (report, probe_report, verdict, truncated extracts) and what is never returned (verbatim body).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all 4 parameters with high coverage, and the description adds critical semantic meaning for the key 'payment_signature_b64' parameter (omit on first call, set on retry), the 'probe' object's behavior (pricing, ignored when not armed), and the 'services' array (1-8, found via siblings). It explains the exact relationship between parameters and the two-call flow.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a paid assessment of service slugs against a user's need, and explicitly distinguishes it from sibling tools search (find services) and get (read cached assessment). It specifies a paid action with a $0.25 USDC fee and a two-call challenge/response flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to call this tool: when free signals are exhausted and choosing wrong costs more than a quarter, and it contrasts with x402_search_services and x402_find_best_service, and references x402_get_service for already-computed assessments, giving clear alternatives and conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x402_change_eventsx402 service change eventsA
Read-only
Inspect

Call this before you trust anything you cached about a service, and right after a payment failed for no obvious reason: the monitor's log of what moved under you. Returns payTo, price and 402-schema changes observed on listed services, most recent first, in exactly three event types (payto_changed, price_changed, schema_changed). Filter with service (the slug), type, and days (1 to 365, default 90). Caveats: prices here are atomic token amounts, never dollars, and every payTo is masked by design, so the feed reports THAT the payout address changed, never the address. Free and read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window in days, 1 to 365 (default 90). Events older than the window are not in the feed.
pageNo1-based page index into the filtered event set (see total_pages).
typeNoRestrict to one kind of change: 'payto_changed' (the payout address set changed), 'price_changed' (at least one endpoint's price changed), 'schema_changed' (the 402 envelope gained or lost accepts entries or priced endpoints). Omit for all three.
serviceNoService slug to restrict the feed to, e.g. 'exa' (the same slug x402_get_service takes). Omit for changes across every listed service.
per_pageNoEvents per page, 1 to 100 (default 25). Each event carries the full before/after envelope snapshots, so a large page is heavy.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Matches the readOnlyHint annotation with 'Free and read-only' and adds important caveats beyond the annotation: prices are atomic token amounts not dollars, and payTo values are masked (only change is reported, not the address).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single run-on sentence with colon-separated lists, making it a bit dense, but it packs all essential details without redundancy. Could be split into clearer sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description compensates by mentioning the return shape (most recent first, event types, full snapshots). It could be more explicit about the exact output fields, but the 'before/after envelope snapshots' hint provides enough context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All five parameters have schema descriptions, and the description enriches them: the type enum is explained with concrete meanings, service is tied to the same slug as x402_get_service, and per_page notes that large pages are heavy due to full before/after snapshots.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly identifies the resource (service change events) and the action (returns a log of payTo, price, and schema changes), with specific triggers for when to call it. Distinguished from siblings by being the change-feed tool rather than search/get/health.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete scenarios: before trusting cached service data and after a payment failure. Does not explicitly name alternatives, but the two use cases make the intended context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x402_check_healthCheck x402 service healthA
Read-only
Inspect

Call this before you send a payment, or right after a call unexpectedly failed: is this service up right now. With no slug, the directory snapshot: five status counts across the directory (include_services=true attaches every row). With a slug: that service's status, its 24h/7d/30d/90d uptime windows, response time, consecutive failures, daily snapshots. No money fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoService slug for a single-service health report. Omit for the whole directory.
uptime_periodNoDaily uptime snapshot window for single-service mode.30d
include_servicesNoDirectory mode only (no slug): if true, also attach the full per-service status array. Off by default so a directory health check returns just the five status counts, not every service.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds real value by stating 'No money fields' (meaningful in a payment protocol) and enumerating what each mode returns, but it does not disclose rate limits, auth requirements, or how large the include_services=true payload could be.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is compact and front-loads the when-to-call guidance before the mode breakdown. The telegraphic fragment style ('is this service up right now') is dense but every clause conveys distinct information about inputs or outputs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so for both modes, listing status counts, uptime windows, response time, consecutive failures, and daily snapshots. The main gap is the lack of any mention of pagination or size limits when include_services=true attaches every row.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description goes beyond the schema by explaining the slug/no-slug mode split and explicitly tying include_services=true to attaching 'every row'. It adds the operational meaning of the parameters rather than restating them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific purpose (is this service up right now) and clearly separates its two modes: directory snapshot with five status counts versus single-service status with uptime windows. It distinguishes itself functionally by noting 'No money fields', though it never names sibling tools like x402_get_service or x402_assess_services to sharpen the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit triggering conditions: 'Call this before you send a payment, or right after a call unexpectedly failed.' That is clear when-to-use context, but there are no exclusions or named alternatives, so the agent must infer why this differs from x402_get_service or x402_assess_services.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x402_facilitator_volumesx402 facilitator volumesA
Read-only
Inspect

Call this when the question is about the rail rather than the service: which x402 facilitator actually settles money, and how much. Returns on-chain-verified settlement volume and transaction counts per facilitator for today (UTC), 7d, 30d and all-time, plus a verification flag ('on-chain' once volume has been observed on-chain, else 'listed'), across more than 30 facilitators. Optional daily timeseries (up to 90 days) and per-chain breakdown. Volume is decimal USD. Caveats: PER-FACILITATOR, never per-service; the *_24h fields cover today (UTC) so far, not a trailing 24 hours, and reset at 00:00 UTC, so prefer 7d.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLength of the timeseries in days (only used when include_timeseries is true).
pageNo
per_pageNo
timeframeNoDrives the sort order of the returned facilitators. '24h' sorts by today (UTC) so far, not by a trailing 24-hour window.7d
include_chainsNoInclude a per-chain (network/asset) volume breakdown per facilitator.
include_timeseriesNoInclude a daily volume_usd / tx_count series per facilitator.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true, so the description isn't required to state that. However, it adds substantial behavioral detail: the on-chain verification flag, the meaning of 'listed' vs 'on-chain', the exact definition of *_24h fields (today UTC so far, not trailing 24h), and that volume is decimal USD. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the trigger condition, then the return payload, then optional features, then caveats — a logical flow. Every sentence carries information; the caveats are essential and not redundant. It's longer than a single sentence but earns its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only data tool with no output schema, the description covers the key output elements (volume, counts, verification flag, timeframes), the units, the optional breakdowns, and the critical temporal caveat. An agent has enough to invoke it correctly and interpret results. Nothing crucial is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 67% of parameters (4 of 6 have descriptions). The description reinforces include_timeseries and include_chains by calling out 'optional daily timeseries (up to 90 days) and per-chain breakdown', and it reiterates the critical timeframe nuance ('prefer 7d'). While page/per_page lack descriptions in both, they are conventional pagination parameters. The description adds meaningful clarification beyond the schema for the most important params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise trigger condition — 'question is about the rail rather than the service' — and names the exact resource (facilitator settlement volumes) and the data returned (volume and tx counts per facilitator). This clearly separates it from sibling tools like x402_search_services or x402_get_service, which target services.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to call ('about the rail rather than the service') and what not to do ('never per-service'), plus a strong caveat to prefer 7d over 24h due to reset semantics. While it doesn't name specific alternatives, the per-service/per-facilitator distinction is sufficient routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x402_find_best_serviceFind best x402 serviceC
Read-only
Inspect

Call this when you have a need in words and want one service to call rather than a list to read: it is the free ranking step between searching and paying. Pass the need as q, plus any category, network, price cap or verification requirement, and get up to 20 ranked recommendations with the basis each one placed on. Ranking is mostly per-service reliability (live status, verification, uptime, response time), x402 compliance, and price in USD, with a small (about 10%) weight on measured on-chain settlement traction that can never dominate those three. The response carries ranking_version (currently 3), need_blind_ranking (true when no q was given, so the order is global quality rather than your need), and a units map holding every scoring caveat in full: the compliance cap, the pro-quota rule for shared payout addresses, renormalization, the $10 volume floor, and the single-buyer discount. Read units before comparing scores across generations.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFree-text need description to match against name/description.
limitNoHow many ranked recommendations to return.
preferNoTie-breaking emphasis for the ranking weights.balanced
networkNoRequired network name or abbreviation, e.g. 'Base' or 'BSE'; any network code returned by /api/v1/networks is accepted.
categoryNoDesired service category.
max_price_usdNoCap on min_price_usd in US dollars; cheaper or equal passes.
require_verifiedNoIf true, only verified services are eligible.
include_facilitator_contextNoIf true, also return top facilitators by 7d settlement volume as separate ecosystem context (NOT per-service).

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, and the description does not contradict them. The description adds details on ranking methodology but does not explicitly mention that the tool makes no modifications or that results may change (open-world). Given the annotations cover the key behavioral aspects, a neutral score is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is unusually long and repetitive, with multiple sentences restating ranking weights and output fields. It lacks a clear front-loaded summary; the first sentence is confusing and the subsequent paragraphs ramble. A concise version would improve readability without losing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description attempts to describe the response structure (ranking_version, need_blind_ranking, units map) and the meaning of include_facilitator_context. However, it leaves ambiguities (e.g., what 'units map' keys are, how caveats apply) and does not fully compensate for the lack of a formal output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides complete descriptions for all 8 parameters. The description adds context on ranking criteria and mentions some parameters indirectly (e.g., 'price cap' for max_price_usd), but it does not meaningfully enhance parameter understanding beyond the schema. The addition of the 'units map' is unclear and could be considered more about output than input semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clarifies that this tool returns ranked service recommendations based on a free-text need and optional filters, distinguishing it from a simple search. However, the phrase 'free ranking step' is ambiguous (likely 'first ranking step' or 'the ranking step'), and the long sentence structure initially obscures the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a broad trigger ('when you have a need in words') but does not explicitly compare with sibling tools (e.g., when to use x402_search_services vs. x402_find_best_service). No 'use X instead' guidance is provided, leaving the agent to infer the tool's relationship to others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x402_get_serviceGet x402 serviceA
Read-only
Inspect

Call this once you hold a slug and are deciding whether to commit to that service: the full record behind a directory row. Live status, uptime over 24h/7d/30d/90d, average response time, networks and settlement asset, every priced endpoint, and the assessment block. include_series=true adds 90 daily points of on-chain volume and distinct buyers. Read the units map in the response: the per-endpoint price field is atomic token units, not dollars.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesService slug, e.g. 'my-api'.
include_seriesNoIf true, also attach this service's daily on-chain series under `series` (settlement volume and distinct buyers, one point per UTC day over the most recent 90 days, oldest first). Off by default to keep the response small.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint and openWorldHint annotations already cover the read-only nature, and the description adds meaningful behavioral detail beyond that, such as the optional include_series behavior and the important units-map warning that prices are atomic token units, not dollars.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the purpose and use case. It lists response contents efficiently and keeps the optional-series explanation brief, though the phrasing is slightly awkward in places.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema provided, the description supplies a useful inventory of the response fields and flags the key units caveat. It is sufficient for an agent to understand what it will receive, though 'assessment block' is mentioned without explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description restates what the schema already explains for slug and include_series without adding significant new meaning beyond the schema text itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: retrieve the full service record for a given slug, and it lists the key contents (status, uptime, response time, networks, endpoints, assessment). It also frames the intended moment of use ('once you hold a slug and are deciding whether to commit'), which differentiates it from search or health-check siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells the agent when to call it: after obtaining a slug and before committing to a service. It implies this is the comprehensive lookup rather than a lighter health check, though it does not explicitly contrast with x402_check_health or x402_find_best_service.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x402_search_servicesSearch x402 servicesA
Read-only
Inspect

Your first call when you do not know which x402 service exists for a job: it narrows the directory of listed services to candidates. Filter by free-text query, category, network, live status, and whether the last observed 402 envelope is signable by a standard x402 client; sort by newest, uptime, cheapest, or endpoints. Returns up to 100 compact summaries a page: price in decimal USD, uptime, status, verification. Then x402_get_service for the full record.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFree-text search across name, description, category, base_url.
pageNo1-based page index into the filtered result set (see meta.total_pages).
sortNoServer-side sort order.newest
fieldsNoResponse detail: 'compact' (default) = lean summaries (identity, price, status, uptime, verification, networks, compliance grade), 'full' = every field including the per-service assessment block. Compact keeps a directory sweep small enough to not truncate.compact
statusNoFilter by live monitoring status.all
networkNoNetwork name or abbreviation, e.g. 'Base' or 'BSE'; any network code returned by /api/v1/networks is accepted. Omit for all.
categoryNoExact category name (see categories context). Omit for all.
per_pageNoServices per page, 1 to 100 (default 25). Higher values return larger results; with fields='full' a large page can be very heavy, so prefer compact when raising it.
signableNoFilter on the signability of the last observed 402 envelope: true = no EVM route of the service was observed missing the EIP-712 domain parameters (extra.name and extra.version) that a standard x402 client requires in order to sign a payment, false = at least one such route was observed. It describes the payment envelope on the wire, not the merit of the service. A service whose latest assessment has not measured that check yet matches NEITHER value, so omit this parameter to include it. Filtered server-side, so the result total covers the whole filtered set.
verified_onlyNoIf true, return only verified services. Filtered server-side, so the result total covers the whole verified set, not just this page.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds genuinely useful behavioral context beyond that: result-payload shape (compact summaries, price in decimal USD, uptime, status, verification) and the one-page-of-up-to-100 boundary. It stops short of rate limits or server-side filtering cost caveats that the schema's 'per_page' note hints at.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the routing instruction that matters most. The middle sentence is dense with filter/sort enumeration that largely duplicates the schema, costing a little against pure conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 params, no output schema, and a directory-scale read, the description covers the essentials: trigger, filter/sort axes, response granularity and size, and the escalation path to the detail tool. Minor gaps are pagination mechanics and how it relates to the sibling ranking/assessment tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter carries its own detailed description, including the nuanced signable semantics. The description only restates the filter dimensions (query, category, network, status, signable) and sort orders in prose, adding no syntax or format information beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('narrows the directory of listed services to candidates') and frames itself as the discovery entry point. It explicitly distinguishes itself from the sibling x402_get_service, whose job is the full record, so an agent can route without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening clause gives a clear trigger condition ('Your first call when you do not know which x402 service exists for a job') and names the follow-up alternative x402_get_service. It does not address when to prefer x402_find_best_service or x402_assess_services instead, so the guidance is strong but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv0.5.1
    • Removedassess_services
    • Removedcheck_health
    • Removedfind_best_service
    • Removedget_facilitator_volumes
    • Removedget_service
    • Removedsearch_x402_services
    • Addedx402_assess_services
    • Addedx402_change_events
    • Addedx402_check_health
    • Addedx402_facilitator_volumes
    • Addedx402_find_best_service
    • Addedx402_get_service
    • Addedx402_search_services
  2. 6 tool updatesv0.4.2
    • First observedassess_services
    • First observedcheck_health
    • First observedfind_best_service
    • First observedget_facilitator_volumes
    • First observedget_service
    • First observedsearch_x402_services

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation4/5

The tools mostly partition cleanly by workflow stage (search → rank → inspect → assess → monitor), and descriptions explicitly cross-reference each other ('Then x402_get_service for the full record'), which resolves most ambiguity. There is residual overlap: x402_search_services vs x402_find_best_service both discover services, and x402_get_service vs x402_check_health both describe a single service's status/uptime.

Naming Consistency4/5

All names share the x402_ prefix and snake_case, and most follow a verb_noun shape (get_service, search_services, assess_services, check_health, find_best_service). Two names break the verb pattern (x402_change_events, x402_facilitator_volumes), a minor but real deviation.

Tool Count5/5

Seven tools is well-scoped for a read-only x402 directory and rail-monitoring server. Each tool occupies a distinct role (discovery, ranking, detail, health, change log, facilitator volumes, paid assessment) with no filler.

Completeness4/5

The discovery-to-decision pipeline (search, rank, get record, health, changes, facilitator volumes) is well covered, plus a paid assessment path. Minor gaps: no explicit category/network enumeration and live endpoint calling exists only as an optional probe, not a first-class tool.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers