A paid web scraping and search service using x402 payment protocol on Base mainnet
Both tools have minimal descriptions (under 20 chars baseline violation) and lack documented input/output schemas. The 'scrape' tool description is 34 chars; 'search' is 27 chars, both below the 50-200 char LLM-optimized range. Input schemas are inferred from examples rather than explicitly defined in tool registration. No output schemas documented. No error handling guidance. No parameter constraints (e.g., max URL length, search result limits). Tool names are acceptable (verb-noun), but lack the supporting structure needed for reliable agent use.
Scrape a URL and convert to markdown
Perform a paid web search
No documented output schemas. LLMs cannot plan downstream calls or extract required fields (e.g., does 'scrape' return title+markdown? does 'search' return position+url+snippet?). Agents must infer structure from examples.
Descriptions are 25-34 characters, below the 50-200 char LLM-optimized baseline. 'Scrape a URL and convert to markdown' lacks WHEN to use it, prerequisites (wallet/USDC requirement), or cost info. 'Perform a paid web search' omits result structure and cost.
Input schemas lack constraints. 'url' parameter has no length limit, format validation, or protocol restriction (http/https only?). 'num' parameter has no min/max bounds, LLM could request 10,000 results or negative counts.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
No error handling guidance. Examples show HTTP 402 (payment required) and error responses, but tool definitions do not document error cases, recovery steps, or how LLMs should interpret failures (retryable? user-fixable? fatal?).
Payment/cost information is buried in example code, not in tool descriptions. LLMs cannot reason about cost trade-offs or budget constraints. Descriptions should state: 'Costs $0.002 per page' and 'Costs $0.005 per query'.