MCP server for Snap Router — task-to-tool discovery over the x402/MCP catalog. A thin client for the hosted Snap Router API that forwards tool discovery calls to a remote service.
Single tool 'snap_router' has a well-structured input schema with proper types, enums, and descriptions. The tool description is comprehensive (280+ chars) and explains the discovery use case clearly. Output schema is documented with typed fields. However, the tool performs a single, narrow function (discovery only, not execution) and lacks error recovery guidance. Parameter descriptions are adequate but could be more prescriptive about constraints. No multi-step composition patterns or batch operations. The server is a thin client wrapper around a hosted API, which limits complexity but also limits the depth of tool design patterns that can be demonstrated.
Tool/service DISCOVERY, not execution. Input: an agent task in plain words. Output: a ranked shortlist of x402 services and MCP tools from the merged x402 Bazaar + MCP Registry catalog (16k+ entries) that can do it, each with price and a 'works well with' hint. One vector pass, ~200ms, no LLM call, hybrid keyword-fill so nothing is missed. Call this FIRST, before loading candidate tools into context, whenever you do not already know which tool serves a task. Example task: 'check a Base token for a honeypot before trading'.
Error handling lacks recovery guidance. HTTP 402 (payment_required) returns a hint, but other HTTP errors (4xx, 5xx) return raw status + truncated text with no actionable next steps for the LLM.
Parameter 'registries' is an array enum but lacks guidance on what happens if both are omitted (default behavior not explicit in description). Parameter 'max_price_usdc' has no minimum/maximum bounds or format guidance.
Output schema documents 'picks' array structure but does not specify result limits or pagination. Tool description mentions '~200ms' and 'ranked shortlist' but does not explicitly cap results or explain what happens if k > available matches.
Tool is discovery-only and does not compose with execution tools. No guidance on how the LLM should use the returned tool names/resources to load and call those tools. Missing 'works_well_with' population logic in the response.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2025-06-18+ | v2 |
STDIO transport only. Server is not remotely accessible and cannot be used by hosted MCP clients. This is a hard architectural limitation.