x402-list-mcp
Server Details
Find and vet x402 payment APIs before your agent pays one: uptime, price, on-chain volume.
- Status
- Healthy
- Uptime
- 99.9% over 82 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- mcccsm/x402-list-mcp
- GitHub Stars
- 26
- Server Listing
- x402-list-mcp
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 7 tools
The tools form an explicitly described funnel (search → get → find_best → assess) and each description states when to prefer it over its siblings, which sharply reduces confusion. Still, x402_get_service overlaps with x402_check_health on live status/uptime, and search vs find_best_service could occasionally be misselected when a user wants both a list and a recommendation.
All tools share the x402_ prefix and snake_case, mostly following verb_noun (search_services, get_service, check_health, assess_services). Minor deviation: x402_change_events and x402_facilitator_volumes are noun-only without a leading verb, slightly breaking the pattern.
Seven tools is well-scoped for a service-directory/discovery server; each covers a distinct facet (search, detail, ranking, health, change history, facilitator volumes, paid assessment) with no filler.
The discovery lifecycle is well covered: search, inspect, rank, health-check, change-detect, and buy an assessment, plus rail-level facilitator data. The main gap is no tool to actually invoke/call a listed service endpoint directly (only implicitly via the paid probe), leaving a mild dead end for execution.
Available Tools
7 toolsx402_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.
| Name | Required | Description | Default |
|---|---|---|---|
| probe | No | Optional 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. | |
| question | Yes | The need to assess the shortlist against (1 to 1000 characters). | |
| services | Yes | Service slugs to compare for the need (1 to 8; find them with x402_search_services or x402_find_best_service). | |
| payment_signature_b64 | No | Base64 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the generic safety profile (readOnly=false, openWorld=true, idempotent=false, destructive=false); the description adds far more: the two-call challenge/retry flow, that the server holds no keys and never signs or settles, non-refundable probe fees, no-charge-if-assessment-fails, and reading amount from accepts[0]. The only small gap is that it doesn't say whether repeated identical calls are billed repeatedly, which is implied but not stated. No contradiction with annotations: spending money with no signing/settling is consistent with readOnly=false, destructive=false, idempotent=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the selection condition before the mechanics, and nearly every clause carries decision-relevant information. It is a single dense block of ~250 words; splitting the payment flow, probe behavior, and caveats into separate sentences/sections would improve scanability without cutting content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description specifies what is returned (the report, a base64 PAYMENT-RESPONSE settlement receipt, and an optional probe_report with verdict and truncated extracts, never the verbatim third-party body). For a two-call paid tool with a nested probe object, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3, but the description adds real meaning: payment_signature_b64 is a retry-only argument produced by signing accepts[0], and probe changes the price to $0.25 plus the endpoint price X and adds a probe_report block. It doesn't restate field limits, which the schema already handles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (buys one fresh AI assessment of a shortlist, priced in USDC) and explicitly distinguishes itself from x402_search_services, x402_find_best_service, and x402_get_service. An agent can tell exactly what it gets here versus the free siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition chain: 2-8 finalists held, stored fields insufficient for the stated need, and cost of a wrong choice exceeding a quarter. Names the alternative path for the non-qualifying case (free cached reads via x402_get_service), so both when-to-use and when-not-to-use are covered.
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 eventsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback window in days, 1 to 365 (default 90). Events older than the window are not in the feed. | |
| page | No | 1-based page index into the filtered event set (see total_pages). | |
| type | No | Restrict 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. | |
| service | No | Service slug to restrict the feed to, e.g. 'exa' (the same slug x402_get_service takes). Omit for changes across every listed service. | |
| per_page | No | Events per page, 1 to 100 (default 25). Each event carries the full before/after envelope snapshots, so a large page is heavy. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, it discloses non-obvious traits an agent could not infer: payTo values are masked by design so the feed reports that a payout address changed but never the address, and prices are atomic token amounts rather than dollars. It also states ordering (most recent first) and that the tool is free.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The usage trigger is front-loaded before the payload description and the caveats are grouped at the end, which is good structure. It is somewhat dense in a single paragraph and briefly repeats annotation-derived facts ('Free and read-only') and the type enum already in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated read tool with no output schema, the description supplies what the schema cannot: the shape of returned events (payTo/price/schema changes), sort order, units, and the masking caveat, while pagination mechanics are handled by the schema. An agent can call this correctly without further information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including days, type, service, page and per_page is already fully documented in the schema. The description restates the filters (service slug, type, days 1-365 default 90) and omits pagination parameters entirely, so it adds essentially no meaning beyond the structured data — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (the monitor's log of payTo, price and 402-schema changes on listed services) and enumerates the exact three event types, which cleanly separates it from siblings like x402_get_service or x402_check_health that report current state rather than change history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit trigger conditions — call before trusting cached service data and immediately after an unexplained payment failure — which tell the agent both when to reach for this feed and what it substitutes for (stale cache assumptions). No alternative tool is needed for the same job.
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 healthARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Service slug for a single-service health report. Omit for the whole directory. | |
| uptime_period | No | Daily uptime snapshot window for single-service mode. | 30d |
| include_services | No | Directory 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
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.
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.
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.
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.
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.
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 volumesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Length of the timeseries in days (only used when include_timeseries is true). | |
| page | No | ||
| per_page | No | ||
| timeframe | No | Drives the sort order of the returned facilitators. '24h' sorts by today (UTC) so far, not by a trailing 24-hour window. | 7d |
| include_chains | No | Include a per-chain (network/asset) volume breakdown per facilitator. | |
| include_timeseries | No | Include a daily volume_usd / tx_count series per facilitator. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/open-world, yet the description adds substantial non-structured context: the 'on-chain' vs 'listed' verification flag semantics, that *_24h covers today UTC so far and resets at 00:00 UTC, that volume is decimal USD, and a recommendation to prefer 7d. These are genuine behavioral caveats an agent cannot get from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the routing condition, then return contents, then caveats — a sensible ordering. It is dense and long-ish, but nearly every clause carries information; only the 'more than 30 facilitators' detail is borderline padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description fully describes the return shape: per-facilitator volume and tx counts across four timeframes, a verification flag, optional daily timeseries, and optional per-chain breakdown. Combined with the caveats, an agent has everything needed to call and interpret it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description compensates: it explains the 90-day timeseries cap, the per-chain breakdown, the timeframe caveat about today-UTC ordering, and advises preferring 7d. Page/per_page are left entirely to the schema with no semantic help, which keeps it below a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: returns on-chain-verified settlement volume and transaction counts per x402 facilitator. It explicitly scopes the tool to the 'rail rather than the service', which cleanly separates it from the service-level siblings (x402_assess_services, x402_get_service).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening clause gives a clear selection rule ('when the question is about the rail rather than the service') and the caveat 'PER-FACILITATOR, never per-service' reinforces when not to use it. It does not name the specific sibling to use instead, so routing is implied rather than explicit.
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 serviceCRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text need description to match against name/description. | |
| limit | No | How many ranked recommendations to return. | |
| prefer | No | Tie-breaking emphasis for the ranking weights. | balanced |
| network | No | Required network name or abbreviation, e.g. 'Base' or 'BSE'; any network code returned by /api/v1/networks is accepted. | |
| category | No | Desired service category. | |
| max_price_usd | No | Cap on min_price_usd in US dollars; cheaper or equal passes. | |
| require_verified | No | If true, only verified services are eligible. | |
| include_facilitator_context | No | If true, also return top facilitators by 7d settlement volume as separate ecosystem context (NOT per-service). |
TDQS
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.
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.
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.
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.
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.
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 serviceARead-onlyInspect
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. When the live 402 of an endpoint asks to be paid at a different address than the listed pay_to and the change is still in review, the response carries top-level warnings and endpoints[].pay_to_divergence. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Service slug, e.g. 'my-api'. | |
| include_series | No | If 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover readOnly and openWorld. The description adds substantial context beyond them: the pay_to divergence warning surfaced at top level and endpoints[].pay_to_divergence, the meaning of include_series and its cost, and the crucial caveat that the price field is atomic token units rather than dollars. This is exactly the kind of behavior-shaping detail an agent cannot get from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and the when-to-call condition in the first clause before piling on the returned fields. It is dense and slightly run-on across the warnings and units sentences, but every sentence carries actionable information, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carries the full burden and meets it: it describes the record's contents, optional series, the conditional warnings path, and the units convention. An agent knows what it will get and how to read it without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 reinforces include_series by tying it to concrete value ('90 daily points of on-chain volume and distinct buyers'), which slightly overlaps the schema but clarifies intent. The units-map note is about interpreting output, not the slug/include_series params, so it doesn't lift this dimension further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (fetch the full service record behind a directory row) and enumerates what it contains: live status, uptime windows, response time, networks/settlement asset, priced endpoints, assessment block. The framing 'once you hold a slug' cleanly separates it from search/find_best siblings that the agent uses before it has a slug.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger: call once you hold a slug and are deciding whether to commit. This implicitly routes the agent away from x402_search_services / x402_find_best_service, which are the pre-slug tools. No explicit when-not or named alternative, so it falls short of a 5.
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 servicesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across name, description, category, base_url. | |
| page | No | 1-based page index into the filtered result set (see meta.total_pages). | |
| sort | No | Server-side sort order. | newest |
| fields | No | Response 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 |
| status | No | Filter by live monitoring status. | all |
| network | No | Network name or abbreviation, e.g. 'Base' or 'BSE'; any network code returned by /api/v1/networks is accepted. Omit for all. | |
| category | No | Exact category name (see categories context). Omit for all. | |
| per_page | No | Services 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. | |
| signable | No | Filter 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_only | No | If true, return only verified services. Filtered server-side, so the result total covers the whole verified set, not just this page. |
TDQS
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 real value beyond them by disclosing page size limits ('up to 100 compact summaries a page'), the compact-vs-full payload tradeoff that avoids truncation, and the subtle signable semantics including the case where an unmeasured service matches neither value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the 'call this first' trigger, then capabilities, then the handoff. No filler and no repetition of the schema's enum values beyond what is needed to signal the available axes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 ('price in decimal USD, uptime, status, verification', paginated to 100), plus a clear next-step pointer. Nothing an agent needs to call a 10-parameter read-only search correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 still earns credit by summarizing the filter axes (query, category, network, live status, signable), the four sort orders, and the field-detail switch in prose. It adds interpretation ('price in decimal USD') rather than duplicating the enum lists verbatim.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ('narrows the directory of listed services to candidates') plus the exact scope of what can be filtered and sorted. It explicitly routes the follow-up to x402_get_service for full records, so an agent can separate it from that sibling 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Your first call when you do not know which x402 service exists for a job' is explicit about when to reach for it, and the closing sentence names the next step (x402_get_service). It stops short of contrasting with find_best_service or assess_services, which are the other plausible choices for a service-discovery task.
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.
4 tool updates
- Changed
x402_assess_services1 field changed- removed
Input schema / properties / probe / additionalPropertiesRemoved value: -false
- Changed
x402_change_events1 field changed- added
Input schema / properties / page / maximumAdded value: +9007199254740991
- Changed
x402_facilitator_volumes1 field changed- added
Input schema / properties / page / maximumAdded value: +9007199254740991
- Changed
x402_search_services1 field changed- added
Input schema / properties / page / maximumAdded value: +9007199254740991
13 tool updates
- Removed
assess_services - Removed
check_health - Removed
find_best_service - Removed
get_facilitator_volumes - Removed
get_service - Removed
search_x402_services - Added
x402_assess_services - Added
x402_change_events - Added
x402_check_health - Added
x402_facilitator_volumes - Added
x402_find_best_service - Added
x402_get_service - Added
x402_search_services
2 tool updates
- Changed
check_health1 field changed- added
Input schema / properties / include_servicesAdded value: +{ + "default": false, + "description": "Directory 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.", + "type": "boolean" +}
- Changed
search_x402_services3 fields changed- added
Input schema / properties / fieldsAdded value: +{ + "default": "compact", + "description": "Response 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.", + "enum": [ + "compact", + "full" + ], + "type": "string" +} - added
Input schema / properties / page / descriptionAdded value: +"1-based page index into the filtered result set (see meta.total_pages)." - added
Input schema / properties / per_page / descriptionAdded value: +"Services 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."
1 tool update
- Changed
search_x402_services1 field changed- added
Input schema / properties / signableAdded value: +{ + "description": "Filter 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.", + "type": "boolean" +}
1 tool update
- Changed
assess_services1 field changed- added
Input schema / properties / probeAdded value: +{ + "additionalProperties": false, + "description": "Optional 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.", + "properties": { + "endpoint_path": { + "description": "Optional URL path on that service to probe, beginning with '/'. Omit to let the server pick the cheapest priced USDC-on-Base endpoint.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "slug": { + "description": "Slug of one listed service to probe live (must be one of the services above or another listed slug).", + "maxLength": 200, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "slug" + ], + "type": "object" +}
1 tool update
- Added
assess_services
1 tool update
- Changed
get_service1 field changed- added
Input schema / properties / include_seriesAdded value: +{ + "default": false, + "description": "If 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.", + "type": "boolean" +}
2 tool updates
- Changed
get_facilitator_volumes1 field changed- changed
Input schema / properties / timeframe / descriptionPrevious value: -"Drives the sort order of the returned facilitators."New value: +"Drives the sort order of the returned facilitators. '24h' sorts by today (UTC) so far, not by a trailing 24-hour window."
- Changed
search_x402_services1 field changed- changed
Input schema / properties / verified_only / descriptionPrevious value: -"If true, return only verified services (filtered client-side; API has no verified query param)."New value: +"If true, return only verified services. Filtered server-side, so the result total covers the whole verified set, not just this page."
5 tool updates
- First observed
check_health - First observed
find_best_service - First observed
get_facilitator_volumes - First observed
get_service - First observed
search_x402_services
Related MCP Connectors
Find and live-check the paid x402 API for an agent task, ranked by real 30-day payers and price.
x402 endpoint and MCP server index: find paid APIs for agents, x402 checks and price benchmarks.
Find paid x402 APIs for a task: sellers, prices and networks, plus agent-economy data
1Live uptime and source-URL verification for AI agents, with per-call x402/USDC paid endpoints.
Related MCP Servers
- AlicenseAqualityAmaintenanceFind and vet paid x402 APIs before spending: nohumans.directory probes every listing, buys many with real USDC and records whether they delivered.4MIT
- AlicenseAqualityCmaintenanceDiscovers and routes across 251+ x402-enabled payment services with smart routing strategies (cheapest, fastest, most trusted) and signed attestations. Provides real-time health monitoring, facilitator compatibility checks, and service quality scoring for the x402 agent payment ecosystem.54MIT
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to search and verify machine-payable HTTP 402/x402 APIs using live probe data, providing ranked results by liveness, uptime, price, and trustworthiness.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to verify that an x402 API is live, real, and fairly priced before authorizing a payment, and to query live market data on agent commerce across Base and Solana. Exposes twelve tools covering pre-payment checks, provider ranking, liveness lookups, market snapshots and diffs, circular-settlement and whale signals, token metrics, provider revenue, and monthly report data, with free, free-key, and paid x402 tiers.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.