MCP server for private web search, scraping, and screenshots via x402 micropayments. Zero logging, no API keys, no human signup.
The server provides three well-structured tools with proper Zod schemas and reasonable descriptions. Naming follows verb_noun convention (web_search, web_scrape, screenshot). Descriptions are concise (60-80 chars) and mention pricing/zero-logging, which is helpful context. However, descriptions are at the lower end of the 194-char baseline and lack critical metadata about when to use each tool vs alternatives. Parameter descriptions are present and constrained with min/max ranges, but several lack detail about expected formats. Error handling returns basic error messages but does not provide recovery guidance per pattern:recovery-guide. The tools form a coherent composition for web intelligence gathering, but lack downstream chaining information (e.g., what IDs are returned that other tools might need). No output schemas are documented.
Take a screenshot of a URL. Returns base64 image. $0.002 USDC/shot on Base.
Scrape and extract readable content from a URL. $0.005 USDC/page on Base.
Private web search — zero logging, no tracking. $0.002 USDC/query on Base.
Descriptions are concise (60-80 chars) but lack context for tool selection. They state WHAT the tool does and pricing, but not WHEN to use it vs alternatives or what the LLM should expect in response. Baseline for A-tier tools is 194 chars average.
Output schemas are not documented. LLMs cannot determine what fields web_search returns (e.g., do results include URL, description, publication date?). Similarly, web_scrape and screenshot return structures but their field names and types are not documented. This forces LLMs to guess and makes chaining between tools unpredictable.
Error responses return basic error messages ('Search failed: 400 Bad Request') without recovery guidance. Per pattern:recovery-guide, errors should hint at what the LLM should do next (e.g., 'URL invalid, use http:// or https://'). Current error handling gives the agent no path forward.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Parameter descriptions are minimal and do not fully document constraints. For example, 'Query search string' (web_search.query) lacks guidance on length, special characters, or search syntax. 'URL to scrape' (web_scrape.url) does not mention timeout behavior, content size limits, or JavaScript execution. These constraints should be stated in descriptions per pattern:constrained-input.
No confirmation or dry-run pattern for tools that consume resources (each call is charged in USDC). screenshot and web_scrape cost $0.002 - $0.005 per call. An agent in a retry loop could incur significant costs. Per pattern:confirmation-request, expensive or irreversible operations should support a preview or confirmation step.