
PayPal MCP Server
OfficialOfficial PayPal server for invoices, orders, payments, disputes, subscriptions, and catalog.
Add to your client
Copy the config for your MCP client and paste it into its config file.
npx -y @paypal/mcp --tools=allPaste 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>"
}
}
}
}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_invoiceCreate a draft invoice.
send_invoiceSend an invoice; send_invoice_reminder and cancel_sent_invoice manage it after.
generate_invoice_qr_codeProduce a QR code for an invoice.
list_invoicesList invoices; get_invoice fetches one.
create_orderCreate a PayPal order.
pay_orderCapture/process payment on an order; get_order retrieves it.
create_refundRefund a captured payment; get_refund reads refund status.
list_disputesList disputes; get_dispute and accept_dispute_claim handle them.
create_shipment_trackingAdd tracking to a transaction; get_shipment_tracking reads it.
create_productCreate a catalog product; list_products, show_product_details, update_product manage the catalog.
create_subscription_planCreate a subscription plan; create_subscription, update_subscription, cancel_subscription manage subscriptions.
list_transactionsPull 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
- 1Create an app in the PayPal Developer Dashboard and copy its Client ID and Secret.
- 2Exchange the credentials for an access token via the OAuth2 client_credentials grant.
- 3Add the server to your MCP host: command `npx`, args `["-y", "@paypal/mcp", "--tools=all"]`.
- 4Set env vars `PAYPAL_ACCESS_TOKEN` and `PAYPAL_ENVIRONMENT` (SANDBOX or PRODUCTION).
- 5Restart the MCP client and confirm the PayPal tools are listed.
- 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
Official Stripe server for payments, customers, subscriptions, invoices, and billing via natural language.
Coinbase's AgentKit MCP extension for onchain actions: transfers, swaps, and contract calls.
Alpaca's official trading server for stocks, ETFs, options, and crypto in plain English.
Compare PayPal MCP Server with: