Spend policy for AI agents that pay (x402, MPP). Login-free sandbox, real sidecar, no real funds.
Connect Remote server
claude mcp add --transport http spendctl https://mcp.spendctl.dev/mcp
{
"mcpServers": {
"spendctl": {
"url": "https://mcp.spendctl.dev/mcp"
}
}
}
{
"servers": {
"spendctl": {
"type": "http",
"url": "https://mcp.spendctl.dev/mcp"
}
}
}
Settings > Connectors > Add custom connector
URL: https://mcp.spendctl.dev/mcp
Tools 8 found in our last check
sandbox_createCreates an isolated spendctl sandbox and returns its sandbox_id. Call it first: every other tool needs the sandbox_id, and one sandbox serves a whole conversation (create another only to try a different preset). The sandbox is a real spendctl sidecar with a throwaway wallet, a m…
sandbox_payFetches one of the sandbox's paid endpoints (HTTP 402, x402) through the spendctl sidecar, which applies the sandbox agent's budget, allowlist and approval policy, pays with the throwaway wallet if allowed, and returns the response. Use it for every paid call in the sandbox: wit…
await_approvalWaits for the decision on a payment that sandbox_pay reported as held, without paying again: long-polls the sandbox sidecar for up to timeoutSeconds (default 10, at most 20) and returns pending, approved, denied, expired or withdrawn, with the ledger entry and the decision deadl…
withdraw_approvalTakes back a payment that sandbox_pay reported as held, as a real agent does when the task that needed the payment was cancelled or superseded: nothing is paid, the approval closes as withdrawn (distinct from deny), a later approve on that id is refused and await_approval answer…
check_budgetShows the sandbox agent's spending limits, what has been spent in each window and what is left. Use it before a paid call when the remaining budget matters, or after a refusal to see which limit was hit. Returns the agent name and mode, the per-request limit, the approval thresh…
list_receiptsLists the sandbox agent's most recent payment attempts, newest first: paid (amount and mock transaction hash), refused (reason codes) and waiting for approval. Use it to report what happened so far or to find a receipt id; after a hold, the approval id is in the sandbox_pay resu…
get_policyReturns the sandbox's spendctl.yaml as text: the preset name and the agent's budgets, allowed hosts and approval rules. Use it to explain why a payment was refused or held, or to show what a spendctl policy file looks like. Read-only; the sandbox policy cannot be changed, create…
approveApproves or denies a payment that sandbox_pay reported as waiting for approval, as the human approver would with `spendctl approve`. Use it only with an approval id from this sandbox; in the real product a human decides, in the sandbox the model plays that role. Returns the appr…
Details
| Endpoint | https://mcp.spendctl.dev/mcp (Streamable HTTP) |
| First published | 26 Oct 2026 |
| Last updated | 26 Oct 2026 |
| Registry name | dev.spendctl/spendctl |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
