Skip to content
VS Code

Spend Guard for VS Code

io.github.vulinh1704/spend-guard

Budgets, payee allowlists, price-spike checks and human approval for agents paying x402 paywalls

client:VS Code transport:stdio runtime:npm

Install Spend Guard in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "spend-guard-policy",
      "description": "SPEND_GUARD_POLICY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "spend-guard-rails",
      "description": "SPEND_GUARD_RAILS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "spend-guard-ledger",
      "description": "SPEND_GUARD_LEDGER",
      "password": true
    },
    {
      "type": "promptString",
      "id": "spend-guard-dashboard-port",
      "description": "SPEND_GUARD_DASHBOARD_PORT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "spend-guard-approval-timeout",
      "description": "SPEND_GUARD_APPROVAL_TIMEOUT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "spend-guard-mock-network",
      "description": "SPEND_GUARD_MOCK_NETWORK",
      "password": true
    },
    {
      "type": "promptString",
      "id": "arc-private-key",
      "description": "ARC_PRIVATE_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "near-account-id",
      "description": "NEAR_ACCOUNT_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "near-private-key",
      "description": "NEAR_PRIVATE_KEY",
      "password": true
    }
  ],
  "servers": {
    "spend-guard": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@vulinh1704/spend-guard"
      ],
      "env": {
        "SPEND_GUARD_POLICY": "${input:spend-guard-policy}",
        "SPEND_GUARD_RAILS": "${input:spend-guard-rails}",
        "SPEND_GUARD_LEDGER": "${input:spend-guard-ledger}",
        "SPEND_GUARD_DASHBOARD_PORT": "${input:spend-guard-dashboard-port}",
        "SPEND_GUARD_APPROVAL_TIMEOUT": "${input:spend-guard-approval-timeout}",
        "SPEND_GUARD_MOCK_NETWORK": "${input:spend-guard-mock-network}",
        "ARC_PRIVATE_KEY": "${input:arc-private-key}",
        "NEAR_ACCOUNT_ID": "${input:near-account-id}",
        "NEAR_PRIVATE_KEY": "${input:near-private-key}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

Spend Guard in other clients