Categories › Business & Finance › Accounting & invoicing
Spend policy for AI agents that pay (x402, MPP). Login-free sandbox, real sidecar, no real funds.
Remote server: your requests and data go to mcp.spendctl.dev. Claude Code: claude mcp add --transport http spendctl https://mcp.spendctl.dev/mcp · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
sandbox_create — Creates an isolated spendctl sandbox and returns its sandbox_id. Call it first: every other tool needs the sandbox_id, and one sandbox servesandbox_pay — Fetches one of the sandbox's paid endpoints (HTTP 402, x402) through the spendctl sidecar, which applies the sandbox agent's budget, allowliawait_approval — Waits for the decision on a payment that sandbox_pay reported as held, without paying again: long-polls the sandbox sidecar for up to timeouwithdraw_approval — Takes back a payment that sandbox_pay reported as held, as a real agent does when the task that needed the payment was cancelled or supersedcheck_budget — Shows 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 remaininglist_receipts — Lists the sandbox agent's most recent payment attempts, newest first: paid (amount and mock transaction hash), refused (reason codes) and waget_policy — Returns the sandbox's spendctl.yaml as text: the preset name and the agent's budgets, allowed hosts and approval rules. Use it to explain whapprove — Approves or denies a payment that sandbox_pay reported as waiting for approval, as the human approver would with `spendctl approve`. Use it Not tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.