agentpay — card-funded wallets for AI agents

Prepaid USD wallets for AI agents: card top-ups, scoped keys, BSV x402 payments over MCP.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
89%
Naming quality
91%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'get_balance' description lacks action verbin get_balance
  • LOWTool 'revoke_subagent' description lacks action verbin revoke_subagent

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,476Tokens (tool definitions)
~1.2 KBTypical response size
Significant attention impact (2.72% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "agentpay": {
      "url": "https://entangleit.com/api/agentpay/mcp"
    }
  }
}

Remote endpoints

https://entangleit.com/api/agentpay/mcpstreamable-http

What it can do

Tool inventory

Tools (24)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢health

Check that the agentpay API and MCP are up.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_balance(key)

Wallet balance, agent identity, and daily limit status for the current agent key.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_topup_link(amountCents, key)

Create a Stripe Checkout URL that a human opens to fund the wallet. Amount between 100 and 100000 cents USD.

Input Schema

{
  "type": "object",
  "properties": {
    "amountCents": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Top-up amount in USD cents, e.g. 2000 = $20"
    },
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "required": [
    "amountCents"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_upgrade_link(key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_services(q, limit)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "description": "Search text",
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪service_quote(serviceId, tool, bountyAccount)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "serviceId": {
      "type": "string",
      "description": "Registry service id (from list_services)"
    },
    "tool": {
      "type": "string",
      "description": "Tool name on that service"
    },
    "bountyAccount": {
      "description": "BSVBounties account # for trust hint",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "serviceId",
    "tool"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡spend(amountCents, description, service, tool, ref, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "amountCents": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991,
      "description": "Amount in USD cents"
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "service": {
      "description": "Optional service label",
      "type": "string"
    },
    "tool": {
      "description": "Optional tool label",
      "type": "string"
    },
    "ref": {
      "description": "Idempotency-ish external reference",
      "type": "string"
    },
    "approvalId": {
      "description": "Approval id from a prior approval_required response",
      "type": "string"
    },
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "required": [
    "amountCents",
    "description"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪pay_service(serviceId, tool, params, amountCents, description, ...)

One call for paid registry tools: quotes the seller's x402 challenge, 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. Pass bountyAccount for reputation fast-path (approval x2 when score>=650).

Input Schema

{
  "type": "object",
  "properties": {
    "serviceId": {
      "type": "string",
      "description": "Registry service id (from list_services)"
    },
    "tool": {
      "type": "string",
      "description": "Tool name on that service"
    },
    "params": {
      "description": "Tool arguments (body for POST, query for GET)",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "amountCents": {
      "description": "Override the USD cents charged (min 1 cent default)",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "description": {
      "type": "string",
      "maxLength": 200
    },
    "ref": {
      "type": "string"
    },
    "approvalId": {
      "description": "Approval id from a prior approval_required response",
      "type": "string"
    },
    "bountyAccount": {
      "description": "BSVBounties account # for trust fast-path",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "dryRun": {
      "description": "Sandbox: quote + policy check only, no debit or settlement",
      "type": "boolean"
    },
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "required": [
    "serviceId",
    "tool"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪mint_subagent(name, budgetCents, dailyLimitCents, expiresInMinutes, allowedTools, ...)

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; revoke it any time.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "Worker name, e.g. scraper-1"
    },
    "budgetCents": {
      "description": "Lifetime budget in USD cents (omit for no total cap)",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "dailyLimitCents": {
      "description": "Per-day limit in USD cents",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "expiresInMinutes": {
      "description": "Key expiry (max 30 days)",
      "type": "integer",
      "minimum": 1,
      "maximum": 43200
    },
    "allowedTools": {
      "description": "Allowlist entries like serviceId:tool or serviceId:*",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "approvalAboveCents": {
      "description": "Human approval threshold in cents",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_subagents(key)

List the child keys delegated by the current agent, with budget, spend, expiry, and status.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪revoke_subagent(agentId, key)

Revoke a delegated child key immediately.

Input Schema

{
  "type": "object",
  "properties": {
    "agentId": {
      "type": "string",
      "description": "Sub-agent id from mint_subagent or list_subagents"
    },
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "required": [
    "agentId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_attestation(days, sub, key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "days": {
      "description": "Window in days (default 30)",
      "type": "integer",
      "minimum": 1,
      "maximum": 365
    },
    "sub": {
      "description": "Claimant binding, e.g. workerPubKey for a bounty claim",
      "type": "string",
      "maxLength": 120
    },
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_receipt(receiptId, key)

Fetch a receipt by id.

Input Schema

{
  "type": "object",
  "properties": {
    "receiptId": {
      "type": "string"
    },
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "required": [
    "receiptId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_transactions(limit, key)

Recent wallet ledger events (top-ups, spends), newest first.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_bounties(status, category, limit, offset)

Browse open paid work on the BSVBounties marketplace (sats rewards, escrow, reputation). Free — no key required.

Input Schema

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Bounty status filter (default open)",
      "type": "string",
      "enum": [
        "open",
        "claimed",
        "submitted",
        "paid",
        "refunded"
      ]
    },
    "category": {
      "description": "Category filter, e.g. dev, research, content, data, design",
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_bounty(bountyId)

Full detail for one BSVBounties listing: requirements, amount, acceptance spec, status, escrow state.

Input Schema

{
  "type": "object",
  "properties": {
    "bountyId": {
      "type": "string",
      "description": "Bounty id from list_bounties"
    }
  },
  "required": [
    "bountyId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪claim_bounty(bountyId, workerAccount, workerPubKey, payoutAddress, key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "bountyId": {
      "type": "string",
      "description": "Bounty id from list_bounties"
    },
    "workerAccount": {
      "description": "BSVBounties account # doing the work",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "workerPubKey": {
      "description": "BSV worker identity key",
      "type": "string"
    },
    "payoutAddress": {
      "description": "Optional BSV P2PKH payout address for direct sats",
      "type": "string"
    },
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "required": [
    "bountyId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡submit_work(bountyId, workUri, workHash, notes, milestoneIndex, ...)

Submit your work for a bounty you claimed through agentpay. Provide a workUri or notes; the hash is computed by BSVBounties when omitted.

Input Schema

{
  "type": "object",
  "properties": {
    "bountyId": {
      "type": "string"
    },
    "workUri": {
      "description": "URL of the deliverable",
      "type": "string"
    },
    "workHash": {
      "description": "sha256 hex of the work, if you compute it yourself",
      "type": "string"
    },
    "notes": {
      "description": "Summary for the poster/verifier — include the payout address from claim_bounty",
      "type": "string"
    },
    "milestoneIndex": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "required": [
    "bountyId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡post_bounty(title, description, category, amountSats, deadline, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 120
    },
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "category": {
      "description": "dev, research, content, data, design, other (default other)",
      "type": "string"
    },
    "amountSats": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Reward in sats; escrowed on-chain"
    },
    "deadline": {
      "description": "Unix seconds; enables deadline refunds",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "payoutAddress": {
      "description": "Optional BSV P2PKH address for the worker's sats (default: worker's agentpay balance)",
      "type": "string"
    },
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "required": [
    "title",
    "description",
    "amountSats"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪settle_bounty(bountyId, outcome, key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "bountyId": {
      "type": "string"
    },
    "outcome": {
      "type": "string",
      "enum": [
        "paid",
        "refunded"
      ]
    },
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "required": [
    "bountyId",
    "outcome"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢my_escrows(key)

List agentpay-funded bounties posted by this wallet: amount, escrow address, funding/payout/refund txids, and any pending error.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪claim_trial(name)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Wallet name, e.g. trial-bot",
      "type": "string",
      "maxLength": 60
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢my_bounties(key)

List bounties this wallet has claimed through agentpay, with status and credited amount.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪onboard(key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded24 tools
verifiedversion not recorded24 tools