Agent Control

Two paths

Spend caps, or ask before an action

Spend caps and daily budgets are the wallet console. Action Gate asks before Slack, CRM writes, and deploys. It does not set a spend cap. Email isn't supported yet.

Spend caps

Daily budgets live in the wallet console. Start the free trial, then Starter, Pro, or Team at /connect. Set a daily limit and a per-payment limit for each agent, an allowlist, and approval for a payment over the cap or to a new address. No answer in 10 min = blocked. Get the agent key in the console, create it for that agent, and copy it. Cursor sends it as Authorization: Bearer plus the key. You keep the keys. Check a bill that's too big.

Action Gate

Ask before Slack posts, CRM writes, and deploys. Slack posts and CRM writes wait until you tap go. It asks before deploys. Action Gate is the ask-before plan. It does not set a spend cap. Email isn't supported yet. Action Gate is $49 for 30 days. /billing/pay?plan=action. We accept USDC on Base, Solana and Ethereum. Run a test ask with check_action. ask_human is the same tool. Then open Approval Inbox and tap Allow once.

curl -s https://agent-control.net/api/v1/check_action \
  -H "Authorization: Bearer YOUR_AGENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action_type":"deploy","summary":"Ship the checkout fix","preview":"Deploy the checkout fix.","target":"production"}'

Add the MCP server

Add the MCP server in Cursor or Claude. In Cursor, open Customize, then MCPs, and add a remote server. Paste the URL and the Bearer header, or use this config. In Claude, add a custom connector to the same URL. Claude signs in on that connector. Cursor uses the Bearer key. Spend caps stay on the wallet console. Action Gate stays the ask-before plan.

{
  "mcpServers": {
    "agent-control": {
      "url": "https://agent-control.net/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer ${AGENT_CONTROL_API_KEY}"
      }
    }
  }
}

AgentKit and x402 files: /adapters/agentkit.ts, /adapters/x402.ts, /adapters/check-client.ts. The first two import check-client.ts.

Connector steps · Action Gate docs