{"service":"Sage — autonomous paid user testing","summary":"Point Sage at a live product with a budget. It browses the product in a real browser, designs paid testing missions with verifiable pass criteria, and — once the founder funds it — pays human testers in USDC for verified evidence, inside on-chain limits it cannot exceed. Every payout publishes a receipt anchored to an on-chain transaction.","transport":"mcp/streamable-http","endpoint":"https://sagepays.xyz/mcp/public","pricing":{"model":"free","note":"Free per call. Funding a campaign is the founder's own wallet."},"tools":[{"name":"sage_start_inspection","description":"Start a REAL Sage product-testing inspection for a founder. Sage inspects the live product and designs paid testing missions within the budget. It PREPARES a plan only — it never funds or pays; the founder approves and funds once in the Sage web app. Poll sage_get_inspection until stage='ready', then give the founder the approvalUrl.","inputSchema":{"type":"object","properties":{"productUrl":{"type":"string","description":"Public HTTPS URL of the product to inspect."},"goal":{"type":"string","description":"What the founder wants testers to verify or learn."},"targetUsers":{"type":"string","description":"Who the testers should be."},"budgetUsd":{"type":"number","description":"Total testing budget in whole USDC."},"repoUrl":{"type":"string","description":"Optional public github.com repository URL."}},"required":["productUrl","goal","targetUsers","budgetUsd"]}},{"name":"sage_get_inspection","description":"Poll a Sage inspection by id. Returns the honest stage, any needs-input questions or a failure, and — when ready — the mission plan plus the founder approvalUrl. Only the founder's own wallet can approve and fund; the agent cannot.","inputSchema":{"type":"object","properties":{"inspectionId":{"type":"string","description":"The inspectionId from sage_start_inspection."}},"required":["inspectionId"]}},{"name":"sage_answer_questions","description":"When a Sage inspection came back needs_input, pass the founder's answer here. Sage folds the answer into the goal and RE-PLANS the missions with the missing intent. Returns right away; the founder is messaged again when the new plan is ready. Only call for an inspection that is currently needs_input (or failed).","inputSchema":{"type":"object","properties":{"inspectionId":{"type":"string","description":"The inspectionId that needs input."},"answer":{"type":"string","description":"The founder's answer to Sage's question(s), verbatim."}},"required":["inspectionId","answer"]}},{"name":"sage_get_campaign","description":"Get a Sage campaign's live status and recent tester activity: network + truthful token (testnet mUSDC vs mainnet USDC), funded/paid/remaining budget, mission slots, and each submission's Deputy decision (reviewing/verified/held/paid) with its payout tx and proof link. Read-only.","inputSchema":{"type":"object","properties":{"campaignId":{"type":"string","description":"The campaign id."}},"required":["campaignId"]}},{"name":"sage_example_plan","description":"See what Sage produces, in ONE call, with no waiting: a REAL finished testing plan from a real past inspection — the missions Sage wrote, their pass criteria, the evidence each tester must supply, and the exact budget split. Use this to evaluate the service before starting your own inspection (which takes a few minutes of real browsing). The returned inspectionId is genuine; sage_get_inspection on it returns the same plan.","inputSchema":{"type":"object","properties":{},"required":[]}},{"name":"sage_get_proof","description":"Get the verifiable proof summary for a payout transaction hash: settled/verified (recomputed on-chain, never a stored flag), the outcome, network, recipient, and explorer + proof links. Read-only.","inputSchema":{"type":"object","properties":{"txHash":{"type":"string","description":"The payout transaction hash."}},"required":["txHash"]}}],"usage":{"protocol":"JSON-RPC 2.0 over HTTP POST (Model Context Protocol, Streamable HTTP)","example":"curl -X POST https://sagepays.xyz/mcp/public -H \"content-type: application/json\" -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\",\"params\":{}}'"},"boundaries":["This surface cannot approve, fund, settle, or sign anything.","Plans are prepared under an anonymous namespace; the founder claims and funds them with their own wallet at https://sagepays.xyz/launch/<inspectionId>.","Payout receipts are recomputed from the chain, never a stored flag: https://sagepays.xyz/proof/<txHash>."],"docs":"https://sagepays.xyz"}