{"name": "402Signal", "version": "0.4.0", "description": "402Signal route: pay $0.01 USDC (10000 atomic, 6 decimals) for a live payable URL or an honest miss. Unpaid tools/call returns HTTP 402. Retry with PAYMENT-SIGNATURE. HTTP 200 = live unpaid 402 envelope plus target contract (method, inputSchema, outputSchema, accepts, facilitator, amountAtomic, displayAmount, timeoutSeconds). HTTP 503 = miss (typed miss_reason). POST, not GET, to pay. Solana/Algorand accepts include extra.feePayer. x402scan skips Algorand/GoPlausible; POST /route returns a currently-alive Algo 402 plus the target contract when that's what is live. Do not default facilitator to x402.org. Live MCP: https://402signal.com/mcp and https://402signal.com/mcp.json.", "tools": [{"name": "route", "description": "402Signal route: pay $0.01 USDC (10000 atomic, 6 decimals) for a live payable URL or an honest miss. Unpaid tools/call returns HTTP 402. Retry with PAYMENT-SIGNATURE. HTTP 200 = live unpaid 402 envelope plus target contract (method, inputSchema, outputSchema, accepts, facilitator, amountAtomic, displayAmount, timeoutSeconds). HTTP 503 = miss (typed miss_reason). POST, not GET, to pay. Solana/Algorand accepts include extra.feePayer. x402scan skips Algorand/GoPlausible; POST /route returns a currently-alive Algo 402 plus the target contract when that's what is live. Do not default facilitator to x402.org. Live MCP: https://402signal.com/mcp and https://402signal.com/mcp.json.", "inputSchema": {"type": "object", "properties": {"need": {"type": "string", "description": "What to route (plain English)."}, "url": {"type": "string", "description": "Optional https URL to probe."}}, "required": ["need"]}, "outputSchema": {"type": "object", "properties": {"live": {"type": "boolean"}, "url": {"type": ["string", "null"]}, "invocable": {"type": "boolean"}, "target": {"type": ["object", "null"], "properties": {"method": {"type": "string"}, "inputSchema": {"type": ["object", "null"]}, "outputSchema": {"type": ["object", "null"]}, "accepts": {"type": "array"}, "facilitator": {"type": ["string", "null"]}, "amountAtomic": {"type": ["string", "null"]}, "displayAmount": {"type": ["string", "null"]}, "timeoutSeconds": {"type": "integer"}}}, "miss_reason": {"type": ["string", "null"], "enum": ["no_candidates", "no_402_envelope", "reachable_200", "probe_timeout", "quote_expired", "invalid_need", "upstream_5xx", "ssrf", "no_input_schema"]}, "tried": {"type": "integer"}, "latency_ms": {"type": ["integer", "null"]}}}}, {"name": "preview", "description": "Cached catalog preflight from /pulse. Returns hits, prices, freshness, not_probed:true. Does not probe and does not charge. Pay POST /route or tools/call route for a fail-closed live probe.", "inputSchema": {"type": "object", "properties": {"need": {"type": "string", "description": "What to look up in the cache."}}, "required": ["need"]}, "outputSchema": {"type": "object", "properties": {"need": {"type": "string"}, "not_probed": {"type": "boolean"}, "freshness": {"type": ["string", "null"]}, "cached_s": {"type": ["number", "null"]}, "hits": {"type": "array"}, "miss_reason": {"type": ["string", "null"]}}}}]}