Guide

Payments MCP Servers Compared (2026): Stripe, PayPal, Paddle, Square and Adyen

Which payments MCP server should my AI agent use, and how do I set it up safely?

For SaaS subscriptions where you want sales tax handled for you, use Paddle: it is the merchant of record and charges 5% + 50¢ per checkout transaction, and its MCP server has a sandbox endpoint. For marketplaces, one-off payments and the widest API coverage, use Stripe's hosted MCP server at https://mcp.stripe.com (2.9% + 30¢ per US card payment), which asks a human to confirm refunds when the agent acts with your user credentials. If your buyers expect to pay with PayPal or Venmo, add PayPal's MCP server and start it with PAYPAL_ENVIRONMENT set to SANDBOX. Whatever you pick, test in the sandbox first and give the agent a key with only the permissions it needs.

Compare: the best MCP servers for scraping, search, browsers, databases, hosting, monitoring, payments, auth and design →

Coding agent settings change often

Get one email a week when a setting, flag or permission rule changes, checked against the vendor docs.

Quick comparison

  • Stripe: hosted at https://mcp.stripe.com with OAuth or an agent API key. Generic tools (stripe_api_read, stripe_api_write) reach products, prices, payment links, invoices, refunds and more, plus search_stripe_documentation. Refunds need human confirmation when the agent acts with your user credentials. US domestic cards: 2.9% + 30¢.
  • PayPal: hosted (https://mcp.paypal.com, sandbox at https://mcp.sandbox.paypal.com) or local with npx @paypal/mcp. Named tools such as create_product, create_invoice, create_order and create_refund. US rates: PayPal Checkout 3.49% + $0.49; standard card payments 2.99% + $0.49; advanced card payments 2.89% + $0.29.
  • Paddle: hosted, with separate sandbox (https://sandbox-mcp.paddle.com/mcp) and live (https://mcp.paddle.com/mcp) endpoints. Two main tools: search and execute. Paddle is the merchant of record and files sales tax for you. Fee: 5% + 50¢ per checkout transaction.
  • Square (beta): hosted at https://mcp.squareup.com/mcp (production only) or local with npx square-mcp-server start (sandbox possible). DISALLOW_WRITES=true makes the local server read-only. US online cards: 3.3% + 30¢ or 2.9% + 30¢ depending on plan; 2.9% + 30¢ for Online API payments.
  • Adyen: local only, npx -y @adyen/mcp with --env=TEST or --env=LIVE. Covers the Checkout and Management APIs. Visa and Mastercard: $0.13 + interchange + 0.60% (Adyen lists this as a global rate, not a US one).
  • Fees are the standard published rates for US online card payments (Adyen's is its global rate), checked on each vendor's pricing page on 2026-10-23. They change, and volume discounts exist.

Stripe MCP

Stripe runs one hosted MCP server. Its docs describe only the hosted server. Interactive clients sign in with OAuth, and on the consent page you can grant access to live mode accounts or sandboxes with different permissions for each. Autonomous agents use an agent API key with only the permissions they need.

Claude Code, hosted endpoint with OAuth (then run /mcp to sign in)

claude mcp add --transport http stripe https://mcp.stripe.com/

Claude Code .mcp.json, agent API key from an environment variable

{
  "mcpServers": {
    "stripe": {
      "type": "http",
      "url": "https://mcp.stripe.com",
      "headers": {
        "Authorization": "Bearer ${AGENT_API_KEY}"
      }
    }
  }
}
  • Main tools: stripe_api_search, stripe_api_details, stripe_api_read (any GET method), stripe_api_write (POST, PATCH, PUT and DELETE methods), get_stripe_account_info, stripe_analytics, search_stripe_documentation and stripe_implementation_planner.
  • Through stripe_api_write the agent can create products, prices, payment links, invoices, subscriptions, coupons and refunds, among other supported methods.
  • Test mode: work in a sandbox. Stripe's docs say to test a new key configuration in a sandbox before expiring the old key. Admins can turn MCP access on or off separately for live mode and sandboxes in the Dashboard.
  • Safety: when an agent connects with your user credentials, Stripe requires human confirmation before certain stripe_api_write actions, such as refunds and outbound payments. You approve through a URL the agent gives you, and the request expires after 24 hours.
  • Gotcha: by November 30, 2026, switch to an agent API key or OAuth. From December, Stripe MCP stops accepting full-access secret keys and restricted API keys without the Agent tag.
  • Gotcha: Connect platforms can act for a connected account by sending the Stripe-Account header, but OAuth is not supported for that; use an agent API key.
  • Stripe asks you to turn on your client's tool-approval setting and to watch for prompt injection when Stripe runs alongside other servers.

PayPal MCP

PayPal offers a remote server and a local npm package with the same tool catalog. The local server reads a PayPal access token and an environment setting, and it defaults to the sandbox. The remote server accepts your PayPal client credentials as a Bearer token.

Local (mcpServers JSON)

{
  "mcpServers": {
    "paypal": {
      "command": "npx",
      "args": ["-y", "@paypal/mcp", "--tools=all"],
      "env": {
        "PAYPAL_ACCESS_TOKEN": "YOUR_PAYPAL_ACCESS_TOKEN",
        "PAYPAL_ENVIRONMENT": "SANDBOX"
      }
    }
  }
}
  • Remote endpoints: https://mcp.paypal.com/http (streamable HTTP) or https://mcp.paypal.com/sse in production, and https://mcp.sandbox.paypal.com/http or /sse for the sandbox.
  • Catalog and subscriptions: create_product, list_products, update_product, create_subscription_plan, create_subscription, cancel_subscription.
  • Invoices: create_invoice, send_invoice, send_invoice_reminder, cancel_sent_invoice.
  • Payments: create_order, get_order, pay_order, create_refund, get_refund. Disputes and reporting: list_disputes, accept_dispute_claim, list_transactions.
  • Test mode: PAYPAL_ENVIRONMENT is SANDBOX or PRODUCTION and defaults to SANDBOX. Get sandbox credentials from the PayPal developer dashboard.
  • Gotcha: there is no payment link tool and no docs search tool in the published list. --tools=all loads every tool, including create_refund and accept_dispute_claim, so keep tool approval on.
  • Gotcha: if the remote connection fails, PayPal's docs suggest clearing cached auth files with rm -rf ~/.mcp-auth.

Paddle MCP

Paddle's MCP server became a hosted service in May 2026. Sandbox and live have separate URLs. Live connects with OAuth or a live API key. The sandbox does not support OAuth, so you pass a sandbox API key as a Bearer token.

Claude Code, live endpoint with OAuth

claude mcp add --transport http paddle-live https://mcp.paddle.com/mcp

Sandbox (mcpServers JSON)

{
  "mcpServers": {
    "paddle-sandbox": {
      "type": "http",
      "url": "https://sandbox-mcp.paddle.com/mcp",
      "headers": {
        "Authorization": "Bearer pdl_sdbx_YOUR_KEY"
      }
    }
  }
}
  • Main tools: search (finds Paddle API methods), execute (runs a JavaScript function that chains one or more Paddle API calls), report_missing_tool and show_metrics_chart.
  • Through execute the agent reaches the Paddle API, such as products, prices, transactions, subscriptions and adjustments.
  • Test mode: use the sandbox URL. Sandbox keys start with pdl_sdbx_ and only work there.
  • Key scoping: a live OAuth connection starts with read access to what your Paddle role permits. Grant more under Paddle > Connectors > MCPs. Charts need metrics.read and reports need report.write.
  • Gotcha: the server does not gate destructive operations. They carry a destructiveHint annotation and may return a warning field. Paddle recommends your client's ask permission mode so you approve each execute.
  • Docs search lives in a separate server that needs no Paddle account or API key (you sign in with Google or GitHub the first time): claude mcp add --transport http paddle-docs https://paddlehq.mcp.kapa.ai
  • The older local npm package still works but gets no new API operations, and Paddle plans to deprecate it.

Square and Adyen

  • Square: the server is in beta. The remote server at https://mcp.squareup.com/mcp signs in with your Square account but only reaches production. For testing, run it locally against a Sandbox with ACCESS_TOKEN and SANDBOX set: npx square-mcp-server start. Set DISALLOW_WRITES=true for read-only. The GitHub README lists three tools: get_service_info, get_type_info and make_api_request. Square keeps an allowlist of MCP clients.
  • Adyen: local only. Test with npx -y @adyen/mcp --env=TEST and live with --env=LIVE --livePrefix=YOUR_PREFIX_URL. The key comes from ADYEN_API_KEY. Limit tools with --tools=name1,name2. Adyen advises running only the tools you need and creating a new webservice user and API key for the agent.

Safety checklist

  • Test mode first: Stripe sandbox, PayPal SANDBOX, Paddle sandbox URL, Square local Sandbox, Adyen --env=TEST.
  • Use scoped keys: a Stripe agent API key with only the permissions needed, Paddle OAuth that starts read-only, Square DISALLOW_WRITES=true, a dedicated Adyen webservice user with limited roles.
  • Load fewer tools where you can: Adyen --tools. Avoid loading tools you do not need.
  • Confirm before refunds: Stripe enforces this for refunds when the agent acts with your user credentials. PayPal, Paddle, Square and Adyen do not say they do, so turn on your client's tool approval and read each write call.
  • Never put live keys in committed files. Reference an environment variable, as Stripe's .mcp.json example does with ${AGENT_API_KEY}, or use OAuth.
  • Revoke access you no longer use. Stripe lists OAuth sessions in your user settings.

Which one to pick

  • SaaS subscriptions with tax handled for you: Paddle. As merchant of record it collects and files sales tax, for 5% + 50¢ per checkout transaction.
  • Marketplaces, one-off payments or the broadest API: Stripe. Lower card fee (2.9% + 30¢), Connect support through the Stripe-Account header, and refund confirmation when the agent acts with your user credentials.
  • Buyers who expect PayPal or Venmo: PayPal. Its tools cover orders, invoices, subscriptions and disputes.
  • In-person sellers already on Square, or enterprise teams on Adyen: use their servers, with the limits noted above.
  • Details on this page were checked against vendor docs and pricing pages on 2026-10-23.

Get coding agent settings changes by email

When a setting, flag or permission rule in this guide changes, it goes in the weekly AgentAtlas update, checked against the vendor docs. One email a week.

Sources

More guides

Other guides

How to allow Cursor to run all commands: Run Everything, allowlist and sandboxHow to allow Claude Code to run all commands: permission modes, allow rules and skip permissionsClaude Code permissions: allow, ask and deny rules, rule syntax and allowed toolsCodex CLI: approval and sandbox modesGemini CLI: YOLO mode, auto_edit and allowing specific shell commandsCursor Privacy Mode: telemetry, training and data retentionClaude Code telemetry and data retention: what is sent and how to turn it offGemini CLI: turn off usage statistics and telemetryCLAUDE.md: where it goes, how it loads, and how it works with AGENTS.mdClaude Code hooks: all events, exit codes, PreToolUse and PermissionRequest JSON, examplesClaude Code subagents: create one, limit its tools, and call itAdd MCP servers to Cursor with mcp.json: Keep files out of Cursor with .cursorignore: Configure Codex with config.toml: Configure Gemini CLI with settings.json: Add MCP servers to Claude Code (claude mcp add, .mcp.json, scopes): Claude Code custom slash commands and skills (SKILL.md): GitHub Copilot custom instructions: Adding MCP servers to GitHub Copilot: Claude Code settings.json: file locations, precedence, and key settingsClaude Code plugins and marketplaces: install, create, and shareGemini CLI extensions and custom commands: Configuring OpenCode with opencode.json: Cline Rules: workspace, global, and conditional rulesKiro steering files: .kiro/steering, inclusion modes, and AGENTS.mdZed agent: instruction files, MCP servers, tool permissions, and ACP agentsCursor CLI: install, headless mode, permissions and CIAider: CONVENTIONS.md, .aider.conf.yml and API keysJunie guidelines, MCP and the Action Allowlist: Amp AGENTS.md, settings.json and MCP: Configure Goose extensions, hints, recipes and permissions: Customize OpenHands with skills, AGENTS.md, setup.sh and MCP: Configure Factory Droid CLI: AGENTS.md, settings.json, autonomy, custom droids and MCPConfigure Qwen Code: settings.json, providers, QWEN.md, MCP and approval modesCursor hooks: hooks.json, beforeShellExecution, afterFileEdit and exit codesCursor sandbox: sandbox.json, network allowlist and run modesCursor settings: settings.json, Cursor Settings and the ~/.cursor config filesCursor browser agent: @browser, browser automation and approval modesCursor subagents: .cursor/agents, frontmatter, built-in Explore and BrowserCursor telemetry and OpenTelemetry export (Privacy Mode, OTLP, Analytics API): Cursor rules setup: project, user and Team Rules, .mdc frontmatter, globs and AGENTS.mdClaude Code headless mode: claude -p, --output-format json, --bare and CI flagsClaude Code statusline: custom status bar in settings.json with context %, cost and git branchClaude Code /model: switch models, aliasesClaude Code /cost and /usage: check token spend, usage limits and reduce costsClaude Code VS Code extension: install, shortcuts, settings and /ideCodex AGENTS.md: global, project and override instruction files explainedCodex MCP servers: codex mcp add and [mcp_servers] in config.tomlCodex sandbox modes: read-only, workspace-write, danger-full-access and network accesscodex exec: run Codex non-interactively in scripts and CI with JSON outputCodex skills: create SKILL.md, skill folder locations and $skill invocationGEMINI.md in Gemini CLI: context file locations, imports and /memoryGemini CLI MCP servers: gemini mcp add and mcpServers in settings.jsonGemini CLI custom slash commands: TOML files, {{args}}, !{shell} and @{file}Gemini CLI headless mode: gemini -p, JSON output and exit codes for scripts and CIGemini CLI sandbox: enable Docker, Podman, macOS Seatbelt or gVisorcopilot-setup-steps.yml: set up the GitHub Copilot cloudGitHub Copilot CLI permissions: --allow-tool, --deny-tool, --allow-all-tools and trusted directoriesGitHub Copilot custom agents: .github/agents/*.agent.md profiles, tools and frontmatterGitHub Copilot code review settings: automatic PR reviews, rulesets, effort level and approvalsOpenCode MCP Server Setup: Local and Remote Servers in opencode.jsonOpenCode Permissions: Allow, Ask or Deny Bash, Edit and WebfetchOpenCode Custom Agents and Subagents: Markdown Files, Modes and @ MentionsCline MCP Setup: cline_mcp_settings.json for Local and Remote ServersCline Auto Approve and YOLO Mode: Run Commands and Edits Without PromptsCline Skills: SKILL.md Location, Format and Slash Command UseAmp MCP Setup: amp mcp add, amp.mcpServers and Workspace ApprovalAmp AGENTS.md: File Locations, @ Mentions and Glob-Scoped GuidanceAmp Skills: SKILL.md Folders, amp skill add and Search OrderKiro MCP Setup: .kiro/settings/mcp.json, autoApprove and OAuthKiro Hooks: .kiro/hooks JSON, PreToolUse, PostFileSave and StopKiro Permissions: permissions.yaml Allow, Ask and Deny RulesFactory Droid MCP Setup: droid mcp add, mcp.json Locations and /mcpFactory Droid Hooks: hooks.json, PreToolUse Matchers and Exit CodesFactory Droid Custom Droids (Subagents): .factory/droids Markdown FilesJunie MCP Setup: .junie/mcp/mcp.json for CLI and /mcp CommandJunie Brave Mode and Action Allowlist: Auto-Approve Commands in Junie CLIJunie Custom Slash Commands: .junie/commands Markdown Files and Argumentsgoose .goosehints and AGENTS.md: Global and Project Instructionsgoose Permission Modes: GOOSE_MODE auto, approve, smart_approve and chatgoose Recipes: recipe.yaml Format, Parameters and goose run --recipeZed Agent Tool Permissions: Auto-Approve Terminal Commands with tool_permissionsUse Claude, Codex and Gemini CLI in Zed: External Agents and agent_serversZed with Ollama, LM Studio and llama.cpp: Local Model Setup and Context LengthMCP 2026-07-28 Migration Guide: Stateless Protocol, No Sessions, server/discover, MRTR, and SDK v2 UpgradeSubagents and Custom Agents Compared: Claude Code vs Codex vs Cursor vs Gemini CLI vs GitHub CopilotAllow all commands in any AI coding agent: Cursor, Claude Code, Codex, Gemini CLI, Copilot CLI and 7 moreSettings file locations for every AI coding agent: Claude Code, Cursor, Codex, Gemini CLI, OpenCode, Qwen Code, Amp and Factory DroidRules and instruction files in every AI coding agent: .cursor/rules, CLAUDE.md, AGENTS.md, GEMINI.md, Copilot instructions and moreGemini CLI hooks: settings.json, BeforeTool, AfterTool, exit codes and /hooksGitHub Copilot hooks: .github/hooks/*.json for Copilot CLI and the cloud agentHooks in every AI coding agent: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, Kiro and Factory DroidAgent Skills (SKILL.md) in every AI coding agent: Claude Code, Codex, Cline, Amp and OpenHandsHow to deploy a remote MCP server (Streamable HTTP): Cloudflare Workers, Vercel, Railway and moreHeadless mode in every AI coding agent: claude -p, codex exec, gemini -p, Cursor agent -p and copilot -p for scripts and CIClaude Code sandbox: /sandbox, sandbox.enabled, allowedDomains, excludedCommands and strict modeSandbox modes in every AI coding agent: Claude Code, Cursor, Codex and Gemini CLI comparedCustom slash commands in every AI coding agent: file locations, arguments and examplesMigrate from Gemini CLI to Antigravity CLI (2026): Config, MCP, Skills, FlagsRun GitHub Copilot CLI with copilot -p in scripts and CI (2026): Agent Loops 2026: Ralph Loop, /loop, /goal and Headless Loops for AI Coding AgentsCursor skills and custom slash commands: .cursor/skills SKILL.md, .cursor/commands and /migrate-to-skillsCodex hooks: hooks.json, PreToolUse allow/deny, exit code 2 and config.toml [hooks]GitHub Copilot prompt files in VS Code: .github/prompts/*.prompt.md slash commandsOpenCode custom commands: .opencode/commands, $ARGUMENTS, shell output and subtasksQwen Code custom commands: .qwen/commands Markdown files, {{args}}, !{shell} and @{file}

Reviewed Oct 23, 2026. Settings change often; the linked vendor docs are the source of truth.