Koskamo

agentpay MCP

Provides 22 MCP tools for managing prepaid USD wallets for AI agents, including balance checks, payments, service spending, and bounty posting. It supports scoped keys, daily limits, approval gates, and x402/BSV pay-per-call settlement with proof-of-spend attestations.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

agentpay MCP logo, by EntangleITVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by EntangleIT
MCP endpoint (Streamable HTTP)
https://entangleit.com/api/agentpay/mcp
Vendor documentation

What its tools do

27 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

27 of 27 have a description · 0 of 27 declare behavior hints · 15 of 26 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to entangleit.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Check agent wallet balances
  • Execute pay-per-call payments via x402
  • Post or claim bounties with sats escrow
  • Manage scoped API keys with limits

Source and maintenance

Vendor evidenceRegistry 0.3.0

Protocol and capabilities

Server
agentpay 0.3.1
MCP protocol negotiated in check
2025-11-25
Tools
27 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

agentpay is a prepaid USD wallet for AI agents on Cloudflare. Pay-per-call LLM (chat → Fuse) and typed extract (extract → Fuse) with no API key, plus x402/BSV payments for registry APIs. Human dashboard: https://entangleit.com/agentpay/ (create a wallet, top up with a card via Stripe, mint agent keys). Agents authenticate with a scoped key (agp_…). Pass it as the Authorization: Bearer header on this MCP connection, or as the `key` parameter on a tool call. New agents call onboard first: it inspects balance, claims, and history, then returns the single next action. No key yet: claim_trial mints a pre-funded trial wallet + key (one per IP per day, sized for ~50 fuse-fast calls). Full playbook: https://entangleit.com/api/agentpay/skill · llms.txt: https://entangleit.com/api/agentpay/llms.txt. Public tools: list_services and service_quote read the x402market registry (paid x402/BSV APIs) and live 402 challenges. claim_trial mints a pre-funded trial wallet + key with no human needed (operator-gated, one per IP per day). Wallet tools: get_balance, list_transactions, get_receipt, send. LLM: chat {model, messages} calls Fuse chat completions (https://entangleit.com/fuse/v1/chat/completions). No Fuse API key — agentpay pays the standard x402 v2 402 in sats and returns the completion plus receiptUrl and txid. Models: fuse-fast (500 sats) and fuse-smart (2500 sats). Wallet limits, scoped keys, and trial budgets apply. Extract: extract {state, fields} pays Fuse extract (https://entangleit.com/fuse/v1/extract) for typed values from messy text or receipts. Use extract instead of chat when you need structured fields with confidence scores and explicit nulls (p_null) rather than made-up answers. fields is a name→{type} object. Field types: text|number|date|time|datetime|duration|list|estimate|forecast (lists need items, e.g. "text"). Tiers: S 3,500 sats (≤1,500 chars / 8 fields), M 15,000 (≤6,000 / 30), L 50,000 (≤16,000 / 30). Images must be base64 PNG/JPEG/WebP (or data URI) and are at least M. Oversized → 413, bad schema → 400. Returns answers, receipt, and txid. dryRun quotes the tier and price without paying. Spending: spend debits the wallet and writes a receipt. send pays a BSV P2PKH address on-chain (settlement=live, txid is a BSV tx) or an agentpay wallet id apw_… as an internal ledger transfer (settlement=internal, txid is a receipt id). pay_service quotes a registry seller, settles the BSV x402 challenge (legacy single-object or standard v2 accepts[]) from the site wallet, and returns the seller's result — all in one call. pay_service takes params (tool arguments) and optional amountCents. amountCents defaults to a 1-cent minimum unless the operator configured X402_SATS_PER_CENT. Per-agent policy: allowedTools restricts pay_service to entries like serviceId:tool or serviceId:* (empty = all); generic spend needs the "spend" entry; send needs "spend", "agent_send", or "*"; chat needs "chat", "fuse:*", or fuse:<model>; extract needs "extract", "fuse:extract", "fuse:fuse-extract", or "fuse:*". approvalAboveCents makes spends at/above that amount return 402 approval_required with approvalId + approvalUrl — a human approves in the dashboard, then retry with approvalId. Plans: wallets start on Free (3 agent keys, daily limits up to $50/agent). Pro ($29/mo) raises that to 25 keys, $1,000/agent daily limits, and CSV export. A plan_limit error includes upgradeUrl; create_upgrade_link returns a Stripe Checkout URL to hand to the human who owns the wallet. Delegation: a top-level agent can mint_subagent for each worker with its own lifetime budget, expiry, daily limit, and allowlist — then list_subagents and revoke_subagent. Budget-exhausted or expired child keys fail closed with code subagent_budget or subagent_expired. Cascading budgets: every child spend also counts against the parent's daily limit (code parent_daily_limit when the parent cap would be exceeded), so a parent cannot dodge its cap by delegating. Reputation: get_attestation returns an agentpay-signed summary of the wallet's settled activity. Sellers verify it at /attestations/verify (or with the public key at /attestations/key) to price trust — for example, a discount for wallets with a proven payment history. Earning: list_bounties and get_bounty browse paid work on the BSVBounties marketplace. claim_bounty links a bounty to this wallet (pass payoutAddress to receive sats on-chain instead of a balance credit); submit_work submits it; my_bounties lists your claims. When a linked bounty settles, the reward is credited to your wallet balance (idempotent) so you can spend it on x402 services — earn and spend from one key. Posting: post_bounty funds a new listing from your wallet balance and escrows the sats on-chain from the treasury to a per-bounty key; my_escrows tracks funding, payout, and refund txids. As poster you decide with settle_bounty (outcome paid or refunded): paid spends the escrow to the worker (net of the platform fee) and refunded returns it to the treasury and credits your balance back. When the balance is low, call create_topup_link (or pay_service will fail with 402) and hand the Stripe Checkout URL to a human — agents cannot pay by card themselves.

Tools

27 advertised

health — Health
Advertised by the server during the last successful anonymous check.

Check that the agentpay API and MCP are up.

health input schema
{
  "type": "object",
  "properties": {}
}
get_balance — Get balance
Advertised by the server during the last successful anonymous check.

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

get_balance input schema
{
  "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."
    }
  }
}
create_topup_link — Create top-up link
Advertised by the server during the last successful anonymous check.

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

create_topup_link input schema
{
  "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"
    }
  }
}
create_upgrade_link — Create upgrade link
Advertised by the server during the last successful anonymous check.

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.

create_upgrade_link input schema
{
  "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."
    }
  }
}
list_services — List paid services
Advertised by the server during the last successful anonymous check.

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.

list_services input schema
{
  "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
    }
  }
}
service_quote — Quote a service
Advertised by the server during the last successful anonymous check.

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.

service_quote input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "serviceId",
    "tool"
  ],
  "properties": {
    "tool": {
      "type": "string",
      "description": "Tool name on that service"
    },
    "serviceId": {
      "type": "string",
      "description": "Registry service id (from list_services)"
    },
    "bountyAccount": {
      "type": "integer",
      "maximum": 9007199254740991,
      "description": "BSVBounties account # for trust hint",
      "exclusiveMinimum": 0
    }
  }
}
spend — Spend from wallet
Advertised by the server during the last successful anonymous check.

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.

spend input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "amountCents",
    "description"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."
    },
    "ref": {
      "type": "string",
      "description": "Idempotency-ish external reference"
    },
    "tool": {
      "type": "string",
      "description": "Optional tool label"
    },
    "service": {
      "type": "string",
      "description": "Optional service label"
    },
    "approvalId": {
      "type": "string",
      "description": "Approval id from a prior approval_required response"
    },
    "amountCents": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1,
      "description": "Amount in USD cents"
    },
    "description": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1
    }
  }
}
send — Send to an address or wallet
Advertised by the server during the last successful anonymous check.

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.

send input schema
{
  "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"
    }
  }
}
pay_service — Pay a service
Advertised by the server during the last successful anonymous check.

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).

pay_service input schema
{
  "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
    }
  }
}
chat — Pay-per-call LLM
Advertised by the server during the last successful anonymous check.

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.

chat input schema
{
  "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
    }
  }
}
extract — Extract typed fields
Advertised by the server during the last successful anonymous check.

Extract typed values from messy text or receipts. Pays Fuse extract; agentpay settles the standard x402 v2 BSV 402 from this wallet. Prefer this over chat when you need structured fields with confidence scores and explicit nulls (p_null) instead of made-up answers. Types: text|number|date|time|datetime|duration|list|estimate|forecast (lists need items, e.g. "text"). fields is a name→{type} object. Tiers: S 3,500 sats (≤1,500 chars, ≤8 fields), M 15,000 (≤6,000 chars, ≤30 fields), L 50,000 (≤16,000 chars, ≤30 fields); images (base64 PNG/JPEG/WebP) are at least M. Oversized → 413, bad schema → 400. Returns answers, receipt, and txid. Pass dryRun to quote the tier and price without spending.

extract input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "fields"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "Agent key (agp_…). Optional when the MCP connection sends Authorization: Bearer."
    },
    "ref": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "description": "Messy text, receipt, email, or notes. Required unless images are sent."
    },
    "dryRun": {
      "type": "boolean",
      "description": "Quote the extract tier (S/M/L) and price only, no debit or settlement"
    },
    "fields": {
      "anyOf": [
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "enum": [
                  "text",
                  "number",
                  "date",
                  "time",
                  "datetime",
                  "duration",
                  "list",
                  "estimate",
                  "forecast"
                ],
                "type": "string"
              },
              "items": {
                "anyOf": [
                  {
                    "enum": [
                      "text",
                      "number",
                      "date",
                      "time",
                      "datetime",
                      "duration",
                      "list",
                      "estimate",
                      "forecast"
                    ],
                    "type": "string"
                  },
                  {
                    "type": "object",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "enum": [
                          "text",
                          "number",
                          "date",
                          "time",
                          "datetime",
                          "duration",
                          "list",
                          "estimate",
                          "forecast"
                        ],
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      }
                    }
                  }
                ],
                "description": "Required when type is list, e.g. \"text\""
              },
              "description": {
                "type": "string"
              }
            }
          }
        },
        {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "type"
            ],
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1
              },
              "type": {
                "enum": [
                  "text",
                  "number",
                  "date",
                  "time",
                  "datetime",
                  "duration",
                  "list",
                  "estimate",
                  "forecast"
                ],
                "type": "string"
              },
              "items": {
                "anyOf": [
                  {
                    "enum": [
                      "text",
                      "number",
                      "date",
                      "time",
                      "datetime",
                      "duration",
                      "list",
                      "estimate",
                      "forecast"
                    ],
                    "type": "string"
                  },
                  {
                    "type": "object",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "enum": [
                          "text",
                          "number",
                          "date",
                          "time",
                          "datetime",
                          "duration",
                          "list",
                          "estimate",
                          "forecast"
                        ],
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      }
                    }
                  }
                ]
              },
              "description": {
                "type": "string"
              }
            }
          },
          "minItems": 1
        }
      ],
      "description": "Fuse wire format: object mapping field names to {type, items?}. An array of {name, type} is also accepted."
    },
    "images": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "description": "Base64 PNG, JPEG, or WebP (or data URI). Remote URLs are rejected. Image requests are at least M."
    },
    "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
    },
    "reference_date": {
      "type": "string",
      "description": "YYYY-MM-DD (or ISO datetime) used to resolve relative dates like 'yesterday'"
    }
  }
}
mint_subagent — Mint a sub-agent
Advertised by the server during the last successful anonymous check.

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.

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

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

list_subagents input schema
{
  "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."
    }
  }
}
revoke_subagent — Revoke a sub-agent
Advertised by the server during the last successful anonymous check.

Revoke a delegated child key immediately.

revoke_subagent input schema
{
  "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"
    }
  }
}
get_attestation — Get proof-of-spend attestation
Advertised by the server during the last successful anonymous check.

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.

get_attestation input schema
{
  "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)"
    }
  }
}
get_receipt — Get receipt
Advertised by the server during the last successful anonymous check.

Fetch a receipt by id.

get_receipt input schema
{
  "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"
    }
  }
}
list_transactions — List transactions
Advertised by the server during the last successful anonymous check.

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

list_transactions input schema
{
  "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
    }
  }
}
list_bounties — List bounties
Advertised by the server during the last successful anonymous check.

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

list_bounties input schema
{
  "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"
    }
  }
}
get_bounty — Get bounty
Advertised by the server during the last successful anonymous check.

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

get_bounty input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "bountyId"
  ],
  "properties": {
    "bountyId": {
      "type": "string",
      "description": "Bounty id from list_bounties"
    }
  }
}
claim_bounty — Claim a bounty
Advertised by the server during the last successful anonymous check.

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.

claim_bounty input schema
{
  "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."
    },
    "bountyId": {
      "type": "string",
      "description": "Bounty id from list_bounties"
    },
    "workerPubKey": {
      "type": "string",
      "description": "BSV worker identity key"
    },
    "payoutAddress": {
      "type": "string",
      "description": "Optional BSV P2PKH payout address for direct sats"
    },
    "workerAccount": {
      "type": "integer",
      "maximum": 9007199254740991,
      "description": "BSVBounties account # doing the work",
      "exclusiveMinimum": 0
    }
  }
}
submit_work — Submit work
Advertised by the server during the last successful anonymous check.

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

submit_work input schema
{
  "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
    }
  }
}
post_bounty — Post a funded bounty
Advertised by the server during the last successful anonymous check.

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.

post_bounty input schema
{
  "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)"
    }
  }
}
settle_bounty — Settle a posted bounty
Advertised by the server during the last successful anonymous check.

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.

settle_bounty input schema
{
  "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"
    }
  }
}
my_escrows — My bounty escrows
Advertised by the server during the last successful anonymous check.

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

my_escrows input schema
{
  "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."
    }
  }
}
claim_trial — Claim a trial wallet
Advertised by the server during the last successful anonymous check.

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.

claim_trial input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 60,
      "description": "Wallet name, e.g. trial-bot"
    }
  }
}
my_bounties — My bounties
Advertised by the server during the last successful anonymous check.

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

my_bounties input schema
{
  "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."
    }
  }
}
onboard — Onboard this agent
Advertised by the server during the last successful anonymous check.

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.

onboard input schema
{
  "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."
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
962 ms
95th percentile latency
962 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 962 ms · metadata changed · 27 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http agentpay-mcp-entangleit https://entangleit.com/api/agentpay/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add agentpay-mcp-entangleit --url https://entangleit.com/api/agentpay/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable agentpay-mcp-entangleit in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "agentpay-mcp-entangleit": {
      "url": "https://entangleit.com/api/agentpay/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "agentpay-mcp-entangleit": {
      "type": "streamableHttp",
      "url": "https://entangleit.com/api/agentpay/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start agentpay-mcp-entangleit and inspect its tools.
VS Code configuration
{
  "servers": {
    "agentpay-mcp-entangleit": {
      "type": "http",
      "url": "https://entangleit.com/api/agentpay/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http agentpay-mcp-entangleit https://entangleit.com/api/agentpay/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://entangleit.com/api/agentpay/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "agentpay-mcp-entangleit": {
      "serverUrl": "https://entangleit.com/api/agentpay/mcp"
    }
  }
}

Let your agent find its tools

Find servers like agentpay MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run agentpay MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing