Find x402 / MCP services matching an intent or filter set.
Two usage modes (agents pick whichever fits):
A. Natural-language: `search(intent="fetch tweets for @user")`
B. Pure browse: `search(has_mcp=True, category="defi", top_k=10)`
At least one of `intent`, `category`, `chain`, `has_mcp`,
`min_confidence` must be supplied — otherwise the call is
rejected (we won't dump 2300+ rows).
Results are ranked by:
(health=ok AND tx_30d>0) → health=ok → has-quality-signal →
confidence → tx_30d → recency.
So the highest-quality real-traffic services appear first.
Each item includes (when available):
- confidence : 0.0–1.0 x402scan quality score.
- tx_30d : 30-day x402 payment count (proxy for real usage).
- match_snippet : FTS snippet showing where `intent` hit ([[token]]).
- match_reason : list[str] of human-readable ranking signals.
- mcp_url : populated when the service exposes an MCP endpoint
(you can call it directly via streamable-http).
Agents should prefer items with non-null confidence and tx_30d > 0
unless the user explicitly wants experimental endpoints.
Args:
intent: What the agent wants to do (English or Chinese). Optional
when at least one structured filter is set. Synonym expansion
covers twitter↔X↔推特, whale↔巨鲸, price↔价格 etc.
top_k: Max services to return (default 5, hard cap 25).
max_price_usd: Upper bound on per-call price in USD.
category: Filter (see `list_categories`).
chain: "base", "polygon", "solana", "arbitrum", ...
min_confidence: Minimum confidence (0.0–1.0). 0.8+ keeps only
services x402scan rates as high-quality.
has_mcp: When true, return only services with a callable MCP
endpoint. Use this when the agent wants to chain another MCP
server rather than perform raw HTTP+x402.