Connectors · Accounting & finance
PayPal MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to PayPal and the rest of your systems. It gives your agent 118 PayPal actions (43 reads, 54 writes and 21 that wait for a confirmation) and holds the PayPal credential itself, so the agent never does. It paces PayPal's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "paypal.invoicing.invoices_list", intent: "check which PayPal account is connected"}# Invoices List · read · 1 upstream call- 118actionsin one signed file
- 43readlook, never change
- 54writecreate and update
- 21wait for a yesdestructive, confirmed first
Set up
Connect PayPal in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect PayPal.
OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in. actionlake stores what you paste write-only, sealed under your tenant's key.
client_idPayPal app client idclient_secretPayPal app secretapi_hostWhere your PayPal lives: your api host
account { op: "connections.requirements", service: "paypal" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "paypal.invoicing.invoices_list" }# invoices list · read · 1 upstream callcheck { action: "paypal.invoicing.invoices_create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
PayPal at a glance
- Sign-in
- OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in.
- You provide
client_idclient_secret- Setup fields
api_host- Limits we pace to
- 300 calls a minute, per connection
- API covered
- PayPal API 2
api-m.paypal.com - Built from
- PayPal's documentation, read 15 September 2026GitHub
- Service file
- Version 2.0.0, signed (Ed25519)
- Cached reads
- 39 of 43 reads, for up to an hour; a write clears what it affects
- Ready-made plans
- 8 in the store
- Shared entities
- 7, so ask can line PayPal up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in PayPal.
118 actions in 12 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 43readlook, never change
- 54writecreate and update
- 21destructivewait for a confirmation
Invoicing
227 read · 9 write · 6 destructive
Invoices List · Invoices Create · Invoices Payments · Invoices Get
Payments
189 read · 2 write · 7 destructive
Captures Get · Authorizations Reauthorize · Authorizations Get · Customer Payment Tokens Get
Billing
164 read · 10 write · 2 destructive
Subscriptions Get · Subscriptions Transactions · Subscriptions Create · Subscriptions Patch
Webhooks
169 read · 5 write · 2 destructive
Webhooks Events List · Webhooks Lookup Post · Webhooks Post · Webhooks List
Disputes
152 read · 13 write · 0 destructive
Disputes List · Disputes Get · Disputes Acknowledge Return Item · Disputes Deny Offer
Orders
91 read · 5 write · 3 destructive
Orders Authorize · Orders Get · Orders Create · Orders Patch
Checkout
62 read · 3 write · 1 destructive
Web Profile Get · Web Profile Create · Web Profile Get List · Web Profile Partial Update
Fulfilment
52 read · 3 write · 0 destructive
Trackers Batch Post · Trackers Post · Trackers Batch Get · Trackers Get
4 more areas · 11 actions
- Catalog 4
- Auth 3
- Reporting 2
- Onboarding 2
PayPal's own MCP server
PayPal's MCP server, or actionlake?
PayPal runs a remote MCP server at mcp.paypal.com (and one for its sandbox), and publishes a local one, @paypal/mcp, that takes a PayPal access token.
Use PayPal's server when one person wants to work in PayPal from their own AI client. Use actionlake when you also want PayPal behind the same endpoint as your other systems: a key per agent with allowed actions and a spending cap, a named person's approval before destructive actions, a sealed record of every call, and one ask across PayPal and another system.
Source: PayPal's documentation, checked 22 October 2026.
Top actions
The PayPal API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 79 of PayPal's 85 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
paypal.invoicing.invoices_listInvoices List | List invoices | read | finance.invoice.list101 connectors |
paypal.payments.captures_getCaptures Get | Show captured payment details | read | finance.payment.get80 connectors |
paypal.billing.subscriptions_getSubscriptions Get | Show subscription details | read | finance.subscription.get33 connectors |
paypal.billing.subscriptions_transactionsSubscriptions Transactions | List transactions for subscription | read | finance.payment.list75 connectors |
paypal.invoicing.invoices_createInvoices Create | Create draft invoice | write | finance.invoice.create74 connectors |
paypal.orders.orders_authorizeOrders Authorize | Authorize payment for order | destructive | finance.payment.create67 connectors |
paypal.identity.identity_userinfoIdentity Userinfo | Get the profile of the PayPal account the current token was issued for. | read | identity.current_user.get307 connectors |
paypal.products.products_listProducts List | List products | read | commerce.product.list112 connectors |
paypal.billing.subscriptions_createSubscriptions Create | Create subscription | write | finance.subscription.create27 connectors |
paypal.orders.orders_getOrders Get | Show order details | read | commerce.order.get87 connectors |
paypal.products.products_createProducts Create | Create product | write | commerce.product.create92 connectors |
paypal.orders.orders_createOrders Create | Create order | write | commerce.order.create67 connectors |
Try it
Prompts to paste into Claude.
Each one names the PayPal actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which PayPal invoices are more than 30 days overdue? Group them by customer with the total owed.
calls
paypal.invoicing.invoices_list - Planwrite
Raise and send an invoice from a stored template in PayPal. Ask me before anything is sent or changed.
calls
paypal.invoicing.templates_getpaypal.invoicing.invoicing_generate_next_invoice_numberpaypal.invoicing.invoices_createpaypal.invoicing.invoices_getpaypal.invoicing.invoices_send+1 more - Plandestructive
Authorize, capture and track an order in PayPal. Ask me before anything is sent or changed.
calls
paypal.orders.orders_getpaypal.orders.orders_authorizepaypal.payments.authorizations_capturepaypal.payments.captures_getpaypal.orders.orders_track_create - Writewrite
Invoices Create in PayPal. Show me exactly what you will send before you save it.
calls
paypal.invoicing.invoices_create
The plan store
Ready-made plans for PayPal.
8 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.
Triage open disputes and their transactions
Use it when You need a worked-up view of recent PayPal disputes with the underlying payment detail before deciding how to respond.
Remind every unpaid invoice after approval
Use it when You want to chase a batch of unpaid or overdue PayPal invoices in one pass with a human signing off first.
A person decides
Send a payment reminder to chase count PayPal invoices with status status.
Create a product, billing plan and first subscriber
Use it when You are launching a new recurring product on PayPal and want the product, plan, activation and a first subscription done in one go.
A person decides
Activate billing plan name (id) on product id and take the first live subscriber.
Offer a refund to settle one dispute
Use it when You have decided to settle a single PayPal dispute by offering the buyer money back and want the offer checked before it goes out.
A person decides
Offer value currency code to settle dispute dispute id against a capture of value.
Raise and send an invoice from a stored template
Use it when A customer needs a fresh invoice raised from one of your saved invoice templates and emailed once someone approves it.
A person decides
Send invoice invoice number to recipient email.
Cancel a subscription and refund its last charge
Use it when A subscriber is leaving unhappy and you need the subscription stopped and their latest payment returned in one controlled pass.
A person decides
Cancel subscription subscription id for email address and refund capture last capture.
Authorize, capture and track an order
Use it when A buyer has approved a PayPal order and you are ready to take the money and post the goods.
A person decides
Authorize and capture the payment for PayPal order order id (value currency code). This moves real money.
Pay a batch of recipients after a balance check
Use it when You need to pay a list of contractors or affiliates in one PayPal payout batch with a balance check and a sign-off first.
A person decides
Pay recipient count recipients in payout batch sender batch id against an available balance of value.
account { op: "plans.install", slug: "paypal-dispute-triage-report" }
# then ask for it by name; a schedule can run it on a timetableGovernance for PayPal
Destructive actions wait for a yes.
21 PayPal actions are destructive. These are all of them:
- Orders Authorize
paypal.orders.orders_authorize - Authorizations Reauthorize
paypal.payments.authorizations_reauthorize - Invoices Delete
paypal.invoicing.invoices_delete - Invoices Payments Delete
paypal.invoicing.invoices_payments_delete - Invoices Cancel
paypal.invoicing.invoices_cancel - Subscriptions Cancel
paypal.billing.subscriptions_cancel - Authorizations Void
paypal.payments.authorizations_void - Captures Refund
paypal.payments.captures_refund - Invoices Refunds
paypal.invoicing.invoices_refunds - Orders Capture
paypal.orders.orders_capture - Subscriptions Capture
paypal.billing.subscriptions_capture - Authorizations Capture
paypal.payments.authorizations_capture - Payouts Post
paypal.payouts.payouts_post - Payment Tokens Delete
paypal.vault.payment_tokens_delete - Invoices Refunds Delete
paypal.invoicing.invoices_refunds_delete - Webhooks Delete
paypal.webhooks.webhooks_delete - Webhooks Lookup Delete
paypal.webhooks.webhooks_lookup_delete - Payouts Item Cancel
paypal.payouts.payouts_item_cancel - Orders Confirm
paypal.orders.orders_confirm - Templates Delete
paypal.invoicing.templates_delete - Web Profile Delete
paypal.web_profiles.web_profile_delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Orders Authorize?
intent: the user asked me to orders Authorize
account { op: "keys.create", name: "paypal-agent", allowed_actions: ["paypal.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "paypal.orders.orders_authorize", approver: "[email protected]" }, { match: "paypal.payments.authorizations_reauthorize", approver: "[email protected]" }, { match: "paypal.invoicing.invoices_delete", approver: "[email protected]" } ]}Cost
What PayPal costs on actionlake.
Every PayPal action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call PayPal refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 118 PayPal actions
- 118actions pageeach page of a long list is one call
- 39reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every PayPal action.
118 actions by area: the id your agent calls, what it does, and its effect.
Invoicing22
paypal.invoicing.connections_getConnections Getreadpaypal.invoicing.invoice_connection_details_getInvoice Connection Details Getreadpaypal.invoicing.invoices_cancelInvoices Canceldestructivepaypal.invoicing.invoices_createInvoices Createwritepaypal.invoicing.invoices_deleteInvoices Deletedestructivepaypal.invoicing.invoices_generate_qr_codeInvoices Generate Qr Codewritepaypal.invoicing.invoices_getInvoices Getreadpaypal.invoicing.invoices_listInvoices Listreadpaypal.invoicing.invoices_paymentsInvoices Paymentswritepaypal.invoicing.invoices_payments_deleteInvoices Payments Deletedestructivepaypal.invoicing.invoices_refundsInvoices Refundsdestructivepaypal.invoicing.invoices_refunds_deleteInvoices Refunds Deletedestructivepaypal.invoicing.invoices_remindInvoices Remindwritepaypal.invoicing.invoices_search_invoicesInvoices Search Invoicesreadpaypal.invoicing.invoices_sendInvoices Sendwritepaypal.invoicing.invoices_updateInvoices Updatewritepaypal.invoicing.invoicing_generate_next_invoice_numberInvoicing Generate Next Invoice Numberwritepaypal.invoicing.templates_createTemplates Createwritepaypal.invoicing.templates_deleteTemplates Deletedestructivepaypal.invoicing.templates_getTemplates Getreadpaypal.invoicing.templates_listTemplates Listreadpaypal.invoicing.templates_updateTemplates Updatewrite
Payments18
paypal.payments.authorizations_captureAuthorizations Capturedestructivepaypal.payments.authorizations_getAuthorizations Getreadpaypal.payments.authorizations_reauthorizeAuthorizations Reauthorizedestructivepaypal.payments.authorizations_voidAuthorizations Voiddestructivepaypal.payments.captures_getCaptures Getreadpaypal.payments.captures_refundCaptures Refunddestructivepaypal.payments.find_eligible_methodsFind Eligible Methodsreadpaypal.payments.refunds_getRefunds Getreadpaypal.payouts.payouts_getPayouts Getreadpaypal.payouts.payouts_item_cancelPayouts Item Canceldestructivepaypal.payouts.payouts_item_getPayouts Item Getreadpaypal.payouts.payouts_postPayouts Postdestructivepaypal.vault.customer_payment_tokens_getCustomer Payment Tokens Getreadpaypal.vault.payment_tokens_createPayment Tokens Createwritepaypal.vault.payment_tokens_deletePayment Tokens Deletedestructivepaypal.vault.payment_tokens_getPayment Tokens Getreadpaypal.vault.setup_tokens_createSetup Tokens Createwritepaypal.vault.setup_tokens_getSetup Tokens Getread
Billing16
paypal.billing.plans_activatePlans Activatewritepaypal.billing.plans_createPlans Createwritepaypal.billing.plans_deactivatePlans Deactivatewritepaypal.billing.plans_getPlans Getreadpaypal.billing.plans_listPlans Listreadpaypal.billing.plans_patchPlans Patchwritepaypal.billing.plans_update_pricing_schemesPlans Update Pricing Schemeswritepaypal.billing.subscriptions_activateSubscriptions Activatewritepaypal.billing.subscriptions_cancelSubscriptions Canceldestructivepaypal.billing.subscriptions_captureSubscriptions Capturedestructivepaypal.billing.subscriptions_createSubscriptions Createwritepaypal.billing.subscriptions_getSubscriptions Getreadpaypal.billing.subscriptions_patchSubscriptions Patchwritepaypal.billing.subscriptions_reviseSubscriptions Revisewritepaypal.billing.subscriptions_suspendSubscriptions Suspendwritepaypal.billing.subscriptions_transactionsSubscriptions Transactionsread
Webhooks16
paypal.webhooks.event_types_listEvent Types Listreadpaypal.webhooks.simulate_event_postSimulate Event Postwritepaypal.webhooks.verify_webhook_signature_postVerify Webhook Signature Postreadpaypal.webhooks.webhooks_deleteWebhooks Deletedestructivepaypal.webhooks.webhooks_event_types_listWebhooks Event Types Listreadpaypal.webhooks.webhooks_events_getWebhooks Events Getreadpaypal.webhooks.webhooks_events_listWebhooks Events Listreadpaypal.webhooks.webhooks_events_resendWebhooks Events Resendwritepaypal.webhooks.webhooks_getWebhooks Getreadpaypal.webhooks.webhooks_listWebhooks Listreadpaypal.webhooks.webhooks_lookup_deleteWebhooks Lookup Deletedestructivepaypal.webhooks.webhooks_lookup_getWebhooks Lookup Getreadpaypal.webhooks.webhooks_lookup_listWebhooks Lookup Listreadpaypal.webhooks.webhooks_lookup_postWebhooks Lookup Postwritepaypal.webhooks.webhooks_postWebhooks Postwritepaypal.webhooks.webhooks_updateWebhooks Updatewrite
Disputes15
paypal.disputes.disputes_accept_claimDisputes Accept Claimwritepaypal.disputes.disputes_accept_offerDisputes Accept Offerwritepaypal.disputes.disputes_acknowledge_return_itemDisputes Acknowledge Return Itemwritepaypal.disputes.disputes_adjudicateDisputes Adjudicatewritepaypal.disputes.disputes_appealDisputes Appealwritepaypal.disputes.disputes_deny_offerDisputes Deny Offerwritepaypal.disputes.disputes_escalateDisputes Escalatewritepaypal.disputes.disputes_getDisputes Getreadpaypal.disputes.disputes_listDisputes Listreadpaypal.disputes.disputes_make_offerDisputes Make Offerwritepaypal.disputes.disputes_patchDisputes Patchwritepaypal.disputes.disputes_provide_evidenceDisputes Provide Evidencewritepaypal.disputes.disputes_provide_supporting_infoDisputes Provide Supporting Infowritepaypal.disputes.disputes_require_evidenceDisputes Require Evidencewritepaypal.disputes.disputes_send_messageDisputes Send Messagewrite
Orders9
paypal.orders.orders_authorizeOrders Authorizedestructivepaypal.orders.orders_captureOrders Capturedestructivepaypal.orders.orders_confirmOrders Confirmdestructivepaypal.orders.orders_createOrders Createwritepaypal.orders.orders_getOrders Getreadpaypal.orders.orders_patchOrders Patchwritepaypal.orders.orders_track_createOrders Track Createwritepaypal.orders.orders_trackers_patchOrders Trackers Patchwritepaypal.orders.server_callbackServer Callbackwrite
Checkout6
paypal.web_profiles.web_profile_createWeb Profile Createwritepaypal.web_profiles.web_profile_deleteWeb Profile Deletedestructivepaypal.web_profiles.web_profile_getWeb Profile Getreadpaypal.web_profiles.web_profile_get_listWeb Profile Get Listreadpaypal.web_profiles.web_profile_partial_updateWeb Profile Partial Updatewritepaypal.web_profiles.web_profile_updateWeb Profile Updatewrite
Fulfilment5
paypal.tracking.trackers_batch_getTrackers Batch Getreadpaypal.tracking.trackers_batch_postTrackers Batch Postwritepaypal.tracking.trackers_getTrackers Getreadpaypal.tracking.trackers_postTrackers Postwritepaypal.tracking.trackers_putTrackers Putwrite
Catalog4
paypal.products.products_createProducts Createwritepaypal.products.products_getProducts Getreadpaypal.products.products_listProducts Listreadpaypal.products.products_patchProducts Patchwrite
Auth3
paypal.identity.identity_tokenIdentity Tokenwritepaypal.identity.identity_token_userinfoIdentity Token Userinforeadpaypal.identity.identity_userinfoIdentity Userinforead
Reporting2
paypal.reporting.balances_getBalances Getreadpaypal.reporting.search_getSearch Getread
Onboarding2
paypal.partner_referrals.partner_referrals_createPartner Referrals Createwritepaypal.partner_referrals.partner_referrals_readPartner Referrals Readread
Questions
The PayPal MCP server, answered.
Is there a PayPal MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 118 PayPal actions across invoicing, payments, billing and webhooks, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by PayPal.
Does PayPal have its own MCP server?
PayPal runs a remote MCP server at mcp.paypal.com (and one for its sandbox), and publishes a local one, @paypal/mcp, that takes a PayPal access token. (PayPal's documentation, checked 22 October 2026.) Use PayPal's server when one person wants to work in PayPal from their own AI client. Use actionlake when you also want PayPal behind the same endpoint as your other systems: a key per agent with allowed actions and a spending cap, a named person's approval before destructive actions, a sealed record of every call, and one ask across PayPal and another system.
What do I need to connect PayPal?
PayPal app client id and PayPal app secret. Plus your api host. The free call account { op: "connections.requirements", service: "paypal" } lists exactly what to paste.
Can an AI agent delete or change things in PayPal?
Only if its key allows it, and only with an explicit confirmation. 21 PayPal actions are destructive, including orders Authorize, authorizations Reauthorize and invoices Delete. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my PayPal API limit?
actionlake paces every call to the limits in the PayPal service file: 300 calls a minute per connection. Repeated reads are answered from cache (39 PayPal actions can be), which never reaches PayPal.
What does a PayPal action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (118 PayPal actions page). Cache hits, searches, dry runs and calls PayPal refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which PayPal API does it cover?
The PayPal API 2 at api-m.paypal.com by default, or the base URL set when you connect. It is built from PayPal's documentation as read on 15 September 2026. 118 actions in 12 areas, each one in the signed service file (version 2.0.0).
Does actionlake keep my PayPal data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your PayPal credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent PayPal today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.