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