{"server":{"name":"com.entangleit/agentpay","title":"agentpay — card-funded wallets for AI agents","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://entangleit.com/api/agentpay/mcp","type":"streamable-http","headers":[{"name":"Authorization","isSecret":true,"description":"Agent key: Bearer agp_… (mint one at entangleit.com/agentpay). Optional — list_services, service_quote, and claim_trial are public. chat needs a key."}]}],"version":"0.2.0","description":"Pay-per-call LLM (no API key) plus prepaid USD wallets, scoped keys, and BSV x402 over MCP."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-17T23:00:54.700441Z","publishedAt":"2026-10-17T23:00:54.700441Z","statusChangedAt":"2026-10-17T23:00:54.700441Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://entangleit.com/api/agentpay/mcp","transport":"streamable-http","templated":false,"headers":[{"name":"Authorization","required":false,"secret":true,"value":null,"secret_names":["AGENTPAY_TOKEN"]}],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2026-07-28"],"stateless":true},"health":{"reachable":true,"uptime_30d":0.973913,"latency_ms_p50":421,"consecutive_failures":0,"last_probe_at":"2026-10-19T20:54:10.121Z","last_ok_at":"2026-10-19T20:54:10.121Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"chat","title":"Pay-per-call LLM","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.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"claim_bounty","title":"Claim a bounty","description":"Claim a bounty for this wallet. Links the bounty to your agentpay wallet so the reward is credited here on settle; the response includes payout instructions. Pass workerAccount/workerPubKey (BSV identity) to bind trust.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"claim_trial","title":"Claim a trial wallet","description":"Self-serve onboarding: mint a real wallet pre-funded with trial credit plus a tight agent key. No human or card needed. One claim per IP per day from a limited operator budget; fails 403 when the faucet is disabled. Free.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"create_topup_link","title":"Create top-up link","description":"Create a Stripe Checkout URL that a human opens to fund the wallet. Amount between 100 and 100000 cents USD.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"create_upgrade_link","title":"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.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"get_attestation","title":"Get proof-of-spend 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.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"get_balance","title":"Get balance","description":"Wallet balance, agent identity, and daily limit status for the current agent key.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"get_bounty","title":"Get bounty","description":"Full detail for one BSVBounties listing: requirements, amount, acceptance spec, status, escrow state.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"get_receipt","title":"Get receipt","description":"Fetch a receipt by id.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"health","title":"Health","description":"Check that the agentpay API and MCP are up.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"list_bounties","title":"List bounties","description":"Browse open paid work on the BSVBounties marketplace (sats rewards, escrow, reputation). Free — no key required.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"list_services","title":"List paid 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.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"list_subagents","title":"List sub-agents","description":"List the child keys delegated by the current agent, with budget, spend, expiry, and status.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"list_transactions","title":"List transactions","description":"Recent wallet ledger events (top-ups, spends), newest first.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"mint_subagent","title":"Mint a sub-agent","description":"Delegate a scoped child key for a worker: its own lifetime budget (cents), expiry (minutes), daily limit, and tool allowlist. Only top-level agents can delegate. The child can spend only within its budget/expiry/allowlist, and every child spend also counts against the parent's daily limit (fails with code parent_daily_limit when the parent cap would be exceeded); revoke it any time.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"my_bounties","title":"My bounties","description":"List bounties this wallet has claimed through agentpay, with status and credited amount.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"my_escrows","title":"My bounty escrows","description":"List agentpay-funded bounties posted by this wallet: amount, escrow address, funding/payout/refund txids, and any pending error.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"onboard","title":"Onboard this agent","description":"First call for a new agent: inspects balance, claims, earnings, and spend history, then returns the single next action (earn first, dry-run spend, link identity, or scale). Free.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"pay_service","title":"Pay a 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 instead. Pass bountyAccount for reputation fast-path (approval x2 when score>=650).","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"post_bounty","title":"Post a funded 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.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"revoke_subagent","title":"Revoke a sub-agent","description":"Revoke a delegated child key immediately.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"service_quote","title":"Quote a service","description":"Call a registry tool unsigned and return the live 402 payment requirements (price/payTo). Public — no key needed. Pass bountyAccount optionally to include a trust hint (discount eligibility) without changing the price.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"settle_bounty","title":"Settle a posted 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.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"spend","title":"Spend from wallet","description":"Debit the wallet and mint a receipt. Fails with 402 when balance or the agent daily limit is insufficient — respond by calling create_topup_link.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"},{"name":"submit_work","title":"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.","annotations":null,"source":"probe","observed_at":"2026-10-19T20:54:10.121Z"}],"dev.protogrid/trust":{"score":79,"components":{"hygiene":80,"liveness":99,"freshness":100,"provenance":45},"drivers":["+dns-namespace","+reachable","+uptime-97%","+updated-2d-ago","-no-repository"],"flags":["no-repository"],"blocked":false,"computed_at":"2026-10-19T22:06:09.911Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":78,"label":"good","components":{"auth":null,"hygiene":71,"protocol":88,"stability":75,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"supports 2026-07-28 (server/discover)","status":"pass","category":"protocol"},{"id":"protocol.stateless","detail":"answers without a session","status":"pass","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"tools/list declares ttlMs 0, so clients re-fetch it on every use","status":"warn","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones","status":"fail","category":"hygiene"},{"id":"tools.directory_hints","detail":"no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_balance (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_services (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); service_quote (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …","status":"fail","category":"hygiene"},{"id":"tools.token_cost","detail":"about 3,795 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"10 tool changes in 30 days","status":"warn","category":"stability"},{"id":"stability.rug_pull","detail":"no tool changed its meaning under the same name","status":"pass","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["-tools.annotations","-tools.directory_hints","~protocol.list_ttl","~stability.changes"],"flags":[],"tool_count":25,"token_estimate":3795,"tools_hash":"c14561badb7b94c9af9a0a3dbec9fbe5","tools_changed_at":"2026-10-17T21:09:25.620Z","computed_at":"2026-10-19T21:42:09.986Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"com.entangleit/agentpay","aliases":[],"alias_count":0,"repository_key":null,"owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/com.entangleit%2Fagentpay/tools","arguments":{"name":"com.entangleit/agentpay"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/com.entangleit%2Fagentpay/connection?target=mcpServers","arguments":{"name":"com.entangleit/agentpay","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}