PayPal MCP Server (Azharuddin)
Access PayPal REST API data including transactions, invoices, and balances via MCP.
Data last scanned today · Reviewed today
Overview
This server provides a lightweight bridge for AI assistants to interact with the PayPal REST API. It is designed to be minimal, utilizing the SDK and Zod for schema validation while bypassing the heavy dependencies found in official packages. It manages the full OAuth2 token lifecycle by handling client credentials, automated caching, and proactive refreshing based on token expiry. By default, the server operates in a restricted read-only mode to prevent accidental account modifications. Users can explicitly enable write operations—such as processing payments or issuing refunds—by setting the environment variable PAYPAL_READONLY to 0. It is intended for developers who need to integrate transaction monitoring or invoicing data directly into their LLM-powered workflows.
Our verdict
With a security score of 30/100, this server is categorized as high risk. Because it is community-maintained and has not undergone editorial review, users should exercise extreme caution when deploying it in production environments. The high risk level stems from the lack of oversight on authentication methods and the potential for financial impact if the optional write tools are enabled. This tool is best suited for sandbox testing by developers who are comfortable auditing the codebase themselves.
- Supports proactive and reactive OAuth2 token refreshing
- Contains only two direct dependencies for a smaller surface
- Enforces read-only mode by default for safer operations
- Security score of 30/100 indicates significant oversight risks
- Lacks verification as an official PayPal-maintained repository
- Operates with a single contributor and zero stars
Setup
{
"mcpServers": {
"imazhar101-paypal-mcp": {
"args": [
"-y",
"@imazhar101/paypal-mcp"
],
"command": "npx"
}
}
}Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.
- No read-only mode — running this grants full read/write access.
- No built-in authentication — anyone with access to this config can invoke every tool it exposes.
Tools
| Tool | Description | Risk |
|---|---|---|
| paypal_verify_connection | mints a token; reports environment | low |
| paypal_list_transactions | GET /v1/reporting/transactions | low |
| paypal_get_balances | GET /v1/reporting/balances | low |
| paypal_list_invoices | GET /v2/invoicing/invoices | low |
| paypal_get_invoice | GET /v2/invoicing/invoices/{id} | low |
| paypal_get_order | GET /v2/checkout/orders/{id} | low |
| paypal_get_capture | GET /v2/payments/captures/{id} | low |
| paypal_list_disputes | GET /v1/customer/disputes | low |
| paypal_get_dispute | GET /v1/customer/disputes/{id} | low |
| paypal_list_plans | GET /v1/billing/plans | low |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| ChatGPT | ||||
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf |
Frequently asked questions
›How does the server handle PayPal access tokens?
The server manages the token lifecycle automatically by minting, caching, and refreshing client_credentials tokens using your provided client ID and secret.
›Are write operations enabled by default?
No, the server is read-only by default to ensure safety. You must set the environment variable PAYPAL_READONLY to 0 to enable write tools like refunds or creating invoices.
›What permissions are required for my PayPal REST app?
You must enable the specific features corresponding to the tools you intend to use, such as Invoicing or Transaction Search, in your PayPal Developer Dashboard. If a feature is not enabled, the corresponding tool will return a 403 NOT_AUTHORIZED error.
›How do I switch between Sandbox and Production environments?
You can configure the environment by setting the PAYPAL_ENVIRONMENT variable to either SANDBOX or PRODUCTION.
Alternatives
Badge
Maintain this server? Add the live badge to your README.