Skip to content
VS Code

PayPal, guarded for VS Code

io.github.fizzl13/paypal-guard

PayPal's Agent Toolkit with limits on refunds and the owner's Approve/Deny above them.

client:VS Code transport:stdio runtime:npm

Install PayPal, guarded in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "paypal-client-id",
      "description": "PAYPAL_CLIENT_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "paypal-client-secret",
      "description": "PAYPAL_CLIENT_SECRET",
      "password": true
    },
    {
      "type": "promptString",
      "id": "paypal-environment",
      "description": "PAYPAL_ENVIRONMENT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "limit-refund",
      "description": "LIMIT_REFUND",
      "password": true
    },
    {
      "type": "promptString",
      "id": "limit-refund-per-day",
      "description": "LIMIT_REFUND_PER_DAY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "limit-refunds-per-day",
      "description": "LIMIT_REFUNDS_PER_DAY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "limit-currency",
      "description": "LIMIT_CURRENCY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "guard-policy",
      "description": "GUARD_POLICY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "fizzl-agent-key",
      "description": "FIZZL_AGENT_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "telegram-bot-token",
      "description": "TELEGRAM_BOT_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "telegram-chat-id",
      "description": "TELEGRAM_CHAT_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "approval-in-chat",
      "description": "APPROVAL_IN_CHAT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "approval-minutes",
      "description": "APPROVAL_MINUTES",
      "password": true
    }
  ],
  "servers": {
    "paypal-guard": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "fizzl-paypal-guard-mcp"
      ],
      "env": {
        "PAYPAL_CLIENT_ID": "${input:paypal-client-id}",
        "PAYPAL_CLIENT_SECRET": "${input:paypal-client-secret}",
        "PAYPAL_ENVIRONMENT": "${input:paypal-environment}",
        "LIMIT_REFUND": "${input:limit-refund}",
        "LIMIT_REFUND_PER_DAY": "${input:limit-refund-per-day}",
        "LIMIT_REFUNDS_PER_DAY": "${input:limit-refunds-per-day}",
        "LIMIT_CURRENCY": "${input:limit-currency}",
        "GUARD_POLICY": "${input:guard-policy}",
        "FIZZL_AGENT_KEY": "${input:fizzl-agent-key}",
        "TELEGRAM_BOT_TOKEN": "${input:telegram-bot-token}",
        "TELEGRAM_CHAT_ID": "${input:telegram-chat-id}",
        "APPROVAL_IN_CHAT": "${input:approval-in-chat}",
        "APPROVAL_MINUTES": "${input:approval-minutes}"
      }
    }
  }
}

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

PayPal, guarded in other clients