MCP Directory

PayPal MCP Server

Official

Official PayPal server for invoices, orders, payments, disputes, subscriptions, and catalog.

Verified
stdio (local)
API key
TypeScript

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
npx -y @paypal/mcp --tools=all

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "paypal-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@paypal/mcp",
        "--tools=all"
      ],
      "env": {
        "PAYPAL_ENVIRONMENT": "SANDBOX",
        "PAYPAL_ACCESS_TOKEN": "<your-paypal-access-token>"
      }
    }
  }
}

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • Node.js 18+ (the server runs via npx)
  • A PayPal Developer account (for Sandbox) or a PayPal Business account (for Production)
  • A Client ID and Client Secret from the PayPal Developer Dashboard (https://developer.paypal.com)
  • An OAuth2 access token obtained from those credentials via the client_credentials grant, supplied as PAYPAL_ACCESS_TOKEN

About PayPal MCP Server

The PayPal MCP Server is PayPal's official Model Context Protocol integration. It connects AI agents to PayPal's commerce APIs so they can create and send invoices, create and capture orders, process refunds, manage products and subscription plans, track shipments, handle disputes, and pull transaction reports — all through tool calls.

It runs locally as a stdio server via npx @paypal/mcp and is configured in MCP hosts such as Claude Desktop, Cursor, and Cline. You select which tool groups to load with the --tools flag (e.g. --tools=all).

Authentication uses a PayPal OAuth2 access token. You obtain a Client ID and Secret from the PayPal Developer Dashboard, exchange them for an access token via the client_credentials grant, and pass it as PAYPAL_ACCESS_TOKEN. The PAYPAL_ENVIRONMENT variable switches between SANDBOX (testing) and PRODUCTION (live).

Tools & capabilities (12)

create_invoice

Create a draft invoice.

send_invoice

Send an invoice; send_invoice_reminder and cancel_sent_invoice manage it after.

generate_invoice_qr_code

Produce a QR code for an invoice.

list_invoices

List invoices; get_invoice fetches one.

create_order

Create a PayPal order.

pay_order

Capture/process payment on an order; get_order retrieves it.

create_refund

Refund a captured payment; get_refund reads refund status.

list_disputes

List disputes; get_dispute and accept_dispute_claim handle them.

create_shipment_tracking

Add tracking to a transaction; get_shipment_tracking reads it.

create_product

Create a catalog product; list_products, show_product_details, update_product manage the catalog.

create_subscription_plan

Create a subscription plan; create_subscription, update_subscription, cancel_subscription manage subscriptions.

list_transactions

Pull transaction reporting data.

When to use it

  • Use it when you want an agent to draft, send, and chase invoices (including QR-code invoices) conversationally.
  • Use it when building a checkout assistant that creates and captures PayPal orders.
  • Use it when you need automated refund handling or dispute triage from a support copilot.
  • Use it when managing a product catalog and subscription plans through natural language.
  • Use it when adding shipment tracking to orders or pulling transaction reports for reconciliation.

Quick setup

  1. 1Create an app in the PayPal Developer Dashboard and copy its Client ID and Secret.
  2. 2Exchange the credentials for an access token via the OAuth2 client_credentials grant.
  3. 3Add the server to your MCP host: command `npx`, args `["-y", "@paypal/mcp", "--tools=all"]`.
  4. 4Set env vars `PAYPAL_ACCESS_TOKEN` and `PAYPAL_ENVIRONMENT` (SANDBOX or PRODUCTION).
  5. 5Restart the MCP client and confirm the PayPal tools are listed.
  6. 6Test against SANDBOX first, then switch the environment to PRODUCTION when ready.

Security notes

Uses a PayPal access token that can create real charges and refunds; start in SANDBOX and only switch PAYPAL_ENVIRONMENT to PRODUCTION once flows are verified. Scope the access token to the minimum needed.

PayPal MCP Server FAQ

How do I authenticate?

Get a Client ID and Secret from the PayPal Developer Dashboard, exchange them for an OAuth2 access token using the client_credentials grant, and pass it as the PAYPAL_ACCESS_TOKEN env var.

Sandbox vs Production — how do I switch?

Set PAYPAL_ENVIRONMENT to SANDBOX for testing or PRODUCTION for live transactions. Test thoroughly in Sandbox before going live.

My access token stopped working — why?

PayPal OAuth access tokens expire. Re-run the client_credentials request to mint a fresh token and update PAYPAL_ACCESS_TOKEN; tokens for Sandbox and Production are not interchangeable.

Can I limit which tools are exposed?

Yes. Use the `--tools` flag to control the toolset; `--tools=all` enables every category (invoices, orders, refunds, disputes, catalog, subscriptions, reporting).

Which MCP clients does it support?

Any MCP host that supports stdio servers, including Claude Desktop, Cursor, and Cline, configured via the standard mcpServers JSON block.

Alternatives to PayPal MCP Server

Compare all alternatives →

Official Stripe server for payments, customers, subscriptions, invoices, and billing via natural language.

Featured
Verified
stdio (local)
API key
TypeScript
12 tools
Updated 1 month agoRepo

Coinbase's AgentKit MCP extension for onchain actions: transfers, swaps, and contract calls.

Verified
stdio (local)
API key
TypeScript
9 tools
Updated 1 month agoRepo

Alpaca's official trading server for stocks, ETFs, options, and crypto in plain English.

Verified
stdio (local)
API key
Python
12 tools
Updated 26 days agoRepo