Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the PayPal in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Let your AI work with your PayPal business account: create and capture orders, refund payments, create, send and chase invoices, search the transaction history and balances, review disputes, and look up subscription plans, subscriptions and payout batches. Sandbox or live, with your own REST app keys.
Try asking
Example prompts for PayPal
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → PayPal, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
PayPal
Let your AI work with your PayPal business account: create and capture orders, refund payments, create, send and chase invoices, search the transaction history and balances, review disputes, and look up subscription plans, subscriptions and payout batches. Sandbox or live, with your own REST app keys.
Setup
- Sign in at developer.paypal.com with your PayPal business account and open Apps & Credentials. The toggle at the top switches between Sandbox and Live; each has its own apps and keys.
- Use the Default Application or click Create App, choose the type Merchant and, in the sandbox, pick the sandbox business account the app should act for.
- Open the app and, under its features, tick what the AI should reach: Invoicing, Transaction Search, Subscriptions (also covers catalog products), Customer Disputes and Payouts.
- Copy the Client ID into
PAYPAL_CLIENT_IDand Secret key 1 (click to show it) intoPAYPAL_CLIENT_SECRET. Both must come from the same app and the same Sandbox or Live section. - Set
PAYPAL_API_URLtohttps://api-m.sandbox.paypal.comfor sandbox keys orhttps://api-m.paypal.comfor live keys, without a trailing slash. - Install the connector. There is no Authorize with Provider step and no PayPal consent screen: the connector signs in as your REST app with the client ID and secret.
- Start with
paypal_get_balancesto check that the keys reach the right account (it needs Transaction Search on the app).
Staying signed in: the connector fetches access tokens with the client ID and secret and renews them before they expire, so there is no sign-in to repeat.
New features take time: PayPal can take up to 9 hours to grant a newly ticked feature to an app that has already issued tokens. Until then those calls answer 403 NOT_AUTHORIZED, so tick everything you need before the first install.
Payments and emails: paypal_capture_order, paypal_refund_capture and paypal_cancel_subscription move or stop real money on a live account, and paypal_send_invoice, paypal_remind_invoice and paypal_cancel_invoice email the customer. The AI states what will happen (amount, currency, customer, ids) and waits for your yes first. Captures and refunds carry a request id, so a retry cannot act twice.
Permissions and read-only setup: the app reaches only the features you tick, so leave out the ones the AI should not use. For a read-only setup, disable paypal_create_order, paypal_capture_order, paypal_refund_capture, paypal_create_draft_invoice, paypal_send_invoice, paypal_remind_invoice, paypal_cancel_invoice and paypal_cancel_subscription. Sandbox keys are a safe way to try everything first.
Switched off at install: paypal_delete_draft_invoice, which deletes a draft or scheduled invoice for good. Turn it on only if the AI should delete drafts; sent invoices are cancelled with paypal_cancel_invoice instead.
Orders and refunds: paypal_create_order charges nothing. It returns an approval link the buyer has to open and approve; only then can paypal_capture_order collect the money. paypal_refund_capture refunds a capture in full, or in part when you name an amount, up to what is left after earlier refunds.
Invoices and history: paypal_create_draft_invoice emails nothing until paypal_send_invoice sends it, and PayPal allows at most 2 reminders a day. paypal_search_transactions covers at most 31 days per call (longer periods are asked month by month), goes back 3 years, and new transactions and balances show up with up to 3 hours delay. Disputes reach back 180 days.
Common errors: 401 invalid_client or invalid_token means a wrong client ID or secret, or keys from the other environment than PAYPAL_API_URL (sandbox keys need the sandbox URL, live keys the live URL). 403 NOT_AUTHORIZED or PERMISSION_DENIED means the feature is not ticked on the app, or was ticked less than 9 hours ago. 422 UNPROCESSABLE_ENTITY names the broken business rule, for example ORDER_NOT_APPROVED (the buyer has not approved yet), AMOUNT_MISMATCH or CAPTURE_FULLY_REFUNDED. 429 RATE_LIMIT_REACHED means PayPal is rate limiting the app: wait a minute and try again.
The connector does not handle card payments and vaulting, webhooks, sending payouts, accepting or answering disputes, or editing subscription plans.
Prerequisites: PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET, PAYPAL_API_URL
Install the connector locally
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Open http://localhost:3000/connectors/store, pick PayPal and paste in the env vars listed under Prerequisites.
Available tools
| Tool | What it does |
|---|---|
paypal_create_order | Create a checkout order (nothing is charged yet) |
paypal_get_order | Read one checkout order: status (CREATED, APPROVED, COMPLETED, VOIDED, ...), amounts, payer, and for completed orders the captures under… |
paypal_capture_order | Collect the money of an order the buyer has approved (intent CAPTURE) |
paypal_get_capture | Read one captured payment: amount, status (COMPLETED, PENDING, PARTIALLY_REFUNDED, REFUNDED, DECLINED), seller fees and net amount, and… |
paypal_refund_capture | Refund a captured payment, in full (no amount) or in part |
paypal_get_refund | Read one refund: amount, status (COMPLETED, PENDING, FAILED, CANCELLED), note to the payer and the capture it belongs to |
paypal_get_authorization | Read one authorized payment (an order created with intent AUTHORIZE): amount, status (CREATED, CAPTURED, PARTIALLY_CAPTURED, VOIDED… |
paypal_list_invoices | List invoices, newest first, with id, number, status, recipient, amount and due date |
paypal_search_invoices | Search invoices by recipient, number, status, currency, dates or amount (all filters combined with AND) |
paypal_create_draft_invoice | Create a draft invoice |
paypal_get_invoice | Read one invoice: status, recipient, items, amounts, due amount, payments and refunds recorded on it, and the payer link (links[] rel… |
paypal_send_invoice | Send a draft invoice |
paypal_remind_invoice | Email a payment reminder for a sent, unpaid invoice (PayPal allows 2 reminders a day) |
paypal_cancel_invoice | Cancel a sent invoice so it can no longer be paid; by default the recipient is told by email |
paypal_delete_draft_invoice | Delete a draft or scheduled invoice for good (sent invoices are cancelled with paypal_cancel_invoice instead) |
paypal_search_transactions | Search the account history (Transaction Search): payments received and sent, refunds, fees, transfers and their payer and cart details |
paypal_get_balances | Read the account balances per currency (available, withheld and total), now or as of a past time: balances[] with as_of_time |
paypal_list_disputes | List disputes, claims and chargebacks raised against the account (last 180 days), with dispute_id, reason, status, dispute_state, amount… |
paypal_get_dispute | Read one dispute in full: reason, status, amounts, disputed transactions, messages, offers, evidence and the deadline to respond… |
paypal_list_products | List catalog products (the products subscription plans belong to): id, name, description, type and dates |
paypal_get_product | Read one catalog product: name, description, type (PHYSICAL, DIGITAL, SERVICE), category, image and home URLs |
paypal_list_plans | List subscription plans, optionally for one product: id, name, status (CREATED, ACTIVE, INACTIVE), product_id and dates |
paypal_get_plan | Read one subscription plan: billing cycles with prices and frequency, trial periods, setup fee, taxes and payment failure settings |
paypal_list_subscriptions | List subscriptions, filtered by plan and status: id, status, plan_id, subscriber, start time and next billing time |
paypal_get_subscription | Read one subscription: status, plan, subscriber (name, email, shipping address), billing info (outstanding balance, last payment, next… |
paypal_list_subscription_transactions | List the payments of one subscription between two times: id, status, amounts with fees and net, payer and time |
paypal_cancel_subscription | Cancel a subscription for good: no further payments are collected and it cannot be reactivated |
paypal_get_payout_batch | Read one payout batch: batch status and totals, and its items (receiver, amount, status, fees, errors) |
Example prompts
- "What is my current PayPal balance, and which payments came in over the last 7 days?"
- "Create a draft invoice for Acme Ltd: 10 hours of consulting at 90 EUR, due in 30 days. Show it to me before you send it."
- "Which disputes are waiting for my response, and by when do I have to answer each one?"
- "List the active subscriptions on our Pro Monthly plan and tell me which ones have failed payments."
Next steps
Was this guide helpful?