{"serverId":"mcp-registry/com.entangleit/agentpay","tools":[{"name":"chat","fixed":{"name":"chat","description":"Pay-per-call LLM, no API key. Sends messages to Fuse chat completions; agentpay settles the standard x402 v2 BSV 402 from this wallet and returns the completion plus receiptUrl and txid. Models: fuse-fast (500 sats) or fuse-smart (2500 sats). Wallet limits, scoped keys, and trial budgets apply. Pass dryRun to quote without spending.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["messages"],"properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."},"ref":{"type":"string"},"model":{"enum":["fuse-fast","fuse-smart"],"type":"string","description":"Fuse model (default fuse-fast). fuse-fast = 500 sats, fuse-smart = 2500 sats."},"dryRun":{"type":"boolean","description":"Quote + policy check only, no debit or settlement"},"messages":{"type":"array","items":{"type":"object","required":["role","content"],"properties":{"role":{"enum":["system","user","assistant"],"type":"string"},"content":{"type":"string","minLength":1}}},"minItems":1,"description":"OpenAI-style chat messages"},"approvalId":{"type":"string","description":"Approval id from a prior approval_required response"},"max_tokens":{"type":"integer","maximum":9007199254740991,"minimum":1},"amountCents":{"type":"integer","maximum":9007199254740991,"minimum":1,"description":"Override the USD cents charged (min 1 cent default)"},"description":{"type":"string","maxLength":200}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Pay-per-call LLM"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":418,"tokensAfter":418},{"name":"create_topup_link","fixed":{"name":"create_topup_link","description":"Create a Stripe Checkout URL that a human opens to fund the wallet. Amount between 100 and 100000 cents USD.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["amountCents"],"properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."},"amountCents":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991,"description":"Top-up amount in USD cents, e.g. 2000 = $20"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create top-up link"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":154,"tokensAfter":154},{"name":"create_upgrade_link","fixed":{"name":"create_upgrade_link","description":"Create a Stripe Checkout URL to upgrade the wallet to agentpay Pro (more agent keys, higher daily limits, CSV export). Hand the URL to the human who owns the wallet.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create upgrade link"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"get_attestation","fixed":{"name":"get_attestation","description":"Ask agentpay to sign a summary of this wallet's settled activity (payments, distinct services/payees, spend, refunds, bounty earnings) for a window. Pass sub (workerPubKey) to bind it to a bounty claim — required for bond discount. Free.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."},"sub":{"type":"string","maxLength":120,"description":"Claimant binding, e.g. workerPubKey for a bounty claim"},"days":{"type":"integer","maximum":365,"minimum":1,"description":"Window in days (default 30)"}}},"annotations":{"readOnlyHint":true},"title":"Get proof-of-spend attestation"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":198,"tokensAfter":198},{"name":"get_balance","fixed":{"name":"get_balance","description":"Wallet balance, agent identity, and daily limit status for the current agent key.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."}}},"annotations":{"readOnlyHint":true},"title":"Get balance"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":96,"tokensAfter":96},{"name":"get_bounty","fixed":{"name":"get_bounty","description":"Full detail for one BSVBounties listing: requirements, amount, acceptance spec, status, escrow state.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["bountyId"],"properties":{"bountyId":{"type":"string","description":"Bounty id from list_bounties"}}},"annotations":{"readOnlyHint":true},"title":"Get bounty"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"get_receipt","fixed":{"name":"get_receipt","description":"Fetch a receipt by id.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["receiptId"],"properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."},"receiptId":{"type":"string"}}},"annotations":{"readOnlyHint":true},"title":"Get receipt"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"health","fixed":{"name":"health","description":"Check that the agentpay API and MCP are up.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true},"title":"Health"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":35,"tokensAfter":35},{"name":"list_bounties","fixed":{"name":"list_bounties","description":"Browse open paid work on the BSVBounties marketplace (sats rewards, escrow, reputation). Free — no key required.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":"integer","maximum":50,"minimum":1},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0},"status":{"enum":["open","claimed","submitted","paid","refunded"],"type":"string","description":"Bounty status filter (default open)"},"category":{"type":"string","description":"Category filter, e.g. dev, research, content, data, design"}}},"annotations":{"readOnlyHint":true},"title":"List bounties"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":171,"tokensAfter":171},{"name":"list_services","fixed":{"name":"list_services","description":"Browse the x402market registry of pay-per-call services for agents. Public — no key needed. Returns tools, network, payTo, and per-tool price in sats.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"q":{"type":"string","description":"Search text"},"limit":{"type":"integer","maximum":50,"minimum":1}}},"annotations":{"readOnlyHint":true},"title":"List paid services"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":111,"tokensAfter":111},{"name":"list_subagents","fixed":{"name":"list_subagents","description":"List the child keys delegated by the current agent, with budget, spend, expiry, and status.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."}}},"annotations":{"readOnlyHint":true},"title":"List sub-agents"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"list_transactions","fixed":{"name":"list_transactions","description":"Recent wallet ledger events (top-ups, spends), newest first.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."},"limit":{"type":"integer","maximum":100,"minimum":1}}},"annotations":{"readOnlyHint":true},"title":"List transactions"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"pay_service","fixed":{"name":"pay_service","description":"One call for paid registry tools: quotes the seller's x402 challenge (legacy single-object or standard v2 accepts[] — BSV exact only), pays it from the site wallet on BSV mainnet, debits the agent wallet, and returns the seller's result plus txid. If the seller rejects the payment, the debit is refunded. For pay-per-call LLM with no API key, use chat; for typed values from messy text or receipts, use extract. Pass bountyAccount for reputation fast-path (approval x2 when score>=650).","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["serviceId","tool"],"properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."},"ref":{"type":"string"},"tool":{"type":"string","description":"Tool name on that service"},"dryRun":{"type":"boolean","description":"Sandbox: quote + policy check only, no debit or settlement"},"params":{"type":"object","description":"Tool arguments (body for POST, query for GET)","propertyNames":{"type":"string"},"additionalProperties":{}},"serviceId":{"type":"string","description":"Registry service id (from list_services)"},"approvalId":{"type":"string","description":"Approval id from a prior approval_required response"},"amountCents":{"type":"integer","maximum":9007199254740991,"minimum":1,"description":"Override the USD cents charged (min 1 cent default)"},"description":{"type":"string","maxLength":200},"bountyAccount":{"type":"integer","maximum":9007199254740991,"description":"BSVBounties account # for trust fast-path","exclusiveMinimum":0}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Pay a service"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":456,"tokensAfter":456},{"name":"post_bounty","fixed":{"name":"post_bounty","description":"Create a bounty funded from this wallet's balance. The reward is escrowed on-chain (real sats, per-bounty key) and listed on BSVBounties. Debits your balance at the posted rate plus the platform fee on payout.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["title","description","amountSats"],"properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."},"title":{"type":"string","maxLength":120},"category":{"type":"string","description":"dev, research, content, data, design, other (default other)"},"deadline":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Unix seconds; enables deadline refunds"},"amountSats":{"type":"integer","maximum":9007199254740991,"description":"Reward in sats; escrowed on-chain","exclusiveMinimum":0},"description":{"type":"string","maxLength":2000},"payoutAddress":{"type":"string","description":"Optional BSV P2PKH address for the worker's sats (default: worker's agentpay balance)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Post a funded bounty"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":308,"tokensAfter":308},{"name":"revoke_subagent","fixed":{"name":"revoke_subagent","description":"Revoke a delegated child key immediately.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["agentId"],"properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."},"agentId":{"type":"string","description":"Sub-agent id from mint_subagent or list_subagents"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false},"title":"Revoke a sub-agent"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":119,"tokensAfter":119},{"name":"send","fixed":{"name":"send","description":"Pay sats to a BSV P2PKH address (on-chain, settlement=live, txid is a BSV transaction) or to an agentpay wallet id apw_… (internal ledger credit, settlement=internal, txid is a receipt id). Idempotent per idempotency_key. Daily limits, allowlists (spend or agent_send), and approval thresholds apply. Pass the public wallet id, never the secret apw_ token.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["dest","sats"],"properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."},"dest":{"type":"string","description":"BSV P2PKH address (1… / 3…) or public agentpay wallet id (apw_…, not the secret token)"},"memo":{"type":"string","maxLength":200,"description":"Optional note stored on the send"},"sats":{"type":"integer","maximum":9007199254740991,"description":"Amount in satoshis","exclusiveMinimum":0},"approvalId":{"type":"string","description":"Approval id from a prior approval_required response"},"idempotency_key":{"type":"string","maxLength":120,"description":"Replay key: a retry with the same key returns the original txid/receipt instead of sending twice"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Send to an address or wallet"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":342,"tokensAfter":342},{"name":"settle_bounty","fixed":{"name":"settle_bounty","description":"As the poster, approve a submitted bounty (paid) or refund it. Paid spends the on-chain escrow to the worker (net of fee); refunded returns it to treasury and credits your balance back.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["bountyId","outcome"],"properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."},"outcome":{"enum":["paid","refunded"],"type":"string"},"bountyId":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Settle a posted bounty"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":159,"tokensAfter":159},{"name":"submit_work","fixed":{"name":"submit_work","description":"Submit your work for a bounty you claimed through agentpay. Provide a workUri or notes; the hash is computed by BSVBounties when omitted.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["bountyId"],"properties":{"key":{"type":"string","description":"Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."},"notes":{"type":"string","description":"Summary for the poster/verifier — include the payout address from claim_bounty"},"workUri":{"type":"string","description":"URL of the deliverable"},"bountyId":{"type":"string"},"workHash":{"type":"string","description":"sha256 hex of the work, if you compute it yourself"},"milestoneIndex":{"type":"integer","maximum":9007199254740991,"minimum":0}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Submit work"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":226,"tokensAfter":226}],"toolsChanged":18,"tokensSaved":0,"todo":[{"tool":"chat","params":["ref","max_tokens","description"]},{"tool":"extract","params":["ref","description"]},{"tool":"get_receipt","params":["receiptId"]},{"tool":"list_bounties","params":["limit","offset"]},{"tool":"list_services","params":["limit"]},{"tool":"list_transactions","params":["limit"]},{"tool":"pay_service","params":["ref","description"]},{"tool":"post_bounty","params":["title","description"]},{"tool":"settle_bounty","params":["outcome","bountyId"]},{"tool":"spend","params":["description"]},{"tool":"submit_work","params":["bountyId","milestoneIndex"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}