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 + Microsoft Copilot
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.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET, PAYPAL_API_URL
Step 1 — Get credentials
- 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.
Step 2 — Install the adapter
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
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
PayPaltools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
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."
FAQ
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
Was this guide helpful?