@imazhar101/paypal-mcp
Provides tools for interacting with the PayPal REST API, including reading transactions, balances, invoices, orders, captures, disputes, billing plans, and subscriptions, as well as optional write tools for creating/sending invoices and refunds.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@imazhar101/paypal-mcplist my recent transactions"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@imazhar101/paypal-mcp
A lite Model Context Protocol server for PayPal.
Unlike PayPal's official @paypal/mcp (which pulls in the entire LangChain / Vercel-AI agent-toolkit and expects a pre-minted, short-lived access token), this server is intentionally small:
No heavy dependencies — just
@modelcontextprotocol/sdk+zod. Calls the PayPal REST API directly withfetch.Owns its token lifecycle — you give it a durable client id + secret; it mints, caches, and refreshes the
client_credentialsaccess token itself. Proactive refresh (expiry skew) + reactive refresh (re-mint + retry once on a 401). A long-lived host (e.g. an MCP gateway) can spawn one child per merchant with only the static client-id/secret in its env and never babysit token expiry.Read-only by default — this server handles money. Write/refund/payout tools are not registered unless you opt in with
PAYPAL_READONLY=0.
Install
npm install -g @imazhar101/paypal-mcpRelated MCP server: PayPal MCP Server
Configure
Env var | Required | Default | Notes |
| yes | — | PayPal REST app client id |
| yes | — | PayPal REST app secret |
| no |
|
|
| no |
|
|
Create a REST app and obtain credentials at the PayPal Developer Dashboard. The app must have the relevant features enabled (Invoicing, Transaction Search, etc.) or those tools will return 403 NOT_AUTHORIZED.
Run (stdio)
PAYPAL_CLIENT_ID=... PAYPAL_CLIENT_SECRET=... PAYPAL_ENVIRONMENT=SANDBOX paypal-mcpClaude Code / MCP client config
{
"mcpServers": {
"paypal": {
"command": "npx",
"args": ["-y", "@imazhar101/paypal-mcp"],
"env": {
"PAYPAL_CLIENT_ID": "...",
"PAYPAL_CLIENT_SECRET": "...",
"PAYPAL_ENVIRONMENT": "SANDBOX"
}
}
}
}Tools
Read-only (always registered):
Tool | PayPal API |
| mints a token; reports environment |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Write tools (create/send invoice, refund, …) are a deliberate follow-up gated behind PAYPAL_READONLY=0.
License
MIT
Available Tools
11 toolspaypal_get_balancesA
Get current (or as-of) account balances by currency.
Inputs: as_of_time, currency_code.
paypal_get_captureB
Get a captured payment by id.
Inputs: capture_id (required).
paypal_get_disputeB
Get a dispute by id.
Inputs: dispute_id (required).
paypal_get_invoiceA
Get a single invoice by id.
Inputs: invoice_id (required).
paypal_get_orderB
Get a checkout order by id.
Inputs: order_id (required).
paypal_get_subscriptionB
Get a subscription by id.
Inputs: subscription_id (required).
paypal_list_disputesC
List customer disputes.
Inputs: page_size, dispute_state.
paypal_list_invoicesB
List invoices (paginated).
Inputs: page, page_size, total_required.
paypal_list_plansB
List billing (subscription) plans.
Inputs: page, page_size, product_id.
paypal_list_transactionsB
Search transactions in a date range (Transaction Search API). start_date and end_date are required ISO-8601 timestamps and must be <= 31 days apart.
Inputs: end_date (required), start_date (required), page, page_size, +1 more.
paypal_verify_connectionA
Verify the configured PayPal credentials by minting an access token. Returns the environment (SANDBOX/PRODUCTION). Use this to confirm the connection works.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 11 tools
Each tool targets a distinct resource or action (e.g., get_ vs list_), and all resource types are clearly separated (balances, captures, disputes, invoices, orders, subscriptions, plans, transactions). No two tools have overlapping purposes.
All tools follow a consistent 'paypal_verb_noun' pattern in snake_case, with clear verbs like get, list, and verify. No mixing of conventions or vague verbs.
With 11 tools, the server covers a reasonable breadth of PayPal operations without being excessive. Each tool addresses a clear use case, and the count feels appropriate for a focused integration.
The server is entirely read-only except for credentials verification. Missing create, update, or delete operations for any resource (e.g., orders, invoices, disputes) severely limits its utility for typical payment workflows.
Maintenance
Related MCP Connectors
PayPal MCP Pack — read-only access to PayPal transactions, orders, invoices, and disputes.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Free hosted MCP for invoices, estimates, clients, items and PDFs. OAuth authorization required.
MCP server for Modern Treasury — payment orders, transactions, counterparties and ledgers.
Related MCP Servers
- AlicenseCqualityNot gradedmaintenanceThis is an MCP server to manage PayPal12-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides comprehensive integration with PayPal's APIs, enabling seamless interaction with payment processing, invoicing, subscription management, and business operations through a standardized interface.7Apache 2.0
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to PayPal data from Claude Desktop through CData JDBC Drivers. Free (beta) read/write servers available at https://www.cdata.com/solutions/mcpMIT
- AlicenseBqualityDmaintenanceA comprehensive Model Context Protocol (MCP) server for BTCPayServer integration, providing tools for payment processing, store management, user administration, webhook handling and more with full API coverage.37 npm3MIT