PayPal Integration
STDIOMCP server providing integration with PayPal's APIs for payment processing and business management.
MCP server providing integration with PayPal's APIs for payment processing and business management.
Maintained by DynamicEndpoints - Contact: [email protected]
A Model Context Protocol (MCP) server that provides integration with PayPal's APIs. This server enables seamless interaction with PayPal's payment processing, invoicing, and business management features through a standardized interface.
graph TB subgraph "MCP Environment" Client[MCP Client] Server[PayPal MCP Server] Validation[Input Validation] Auth[OAuth Authentication] end subgraph "PayPal APIs" Orders[Orders API] Payments[Payments API] Payouts[Payouts API] Invoicing[Invoicing API] Products[Products API] Disputes[Disputes API] Identity[Identity API] end Client --> |Request| Server Server --> |Response| Client Server --> Validation Server --> Auth Auth --> |Access Token| PayPal Server --> Orders Server --> Payments Server --> Payouts Server --> Invoicing Server --> Products Server --> Disputes Server --> Identity style Client fill:#f9f,stroke:#333,stroke-width:2px style Server fill:#bbf,stroke:#333,stroke-width:2px style Auth fill:#bfb,stroke:#333,stroke-width:2px style Validation fill:#bfb,stroke:#333,stroke-width:2px
Payment Processing
Business Operations
User Management
To install PayPal MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @DynamicEndpoints/Paypal-MCP --client claude
npm install
npm run build
{ "mcpServers": { "paypal": { "command": "node", "args": ["path/to/paypal-server/build/index.js"], "env": { "PAYPAL_CLIENT_ID": "your_client_id", "PAYPAL_CLIENT_SECRET": "your_client_secret" }, "disabled": false, "autoApprove": [] } } }
Create a payment token for future use.
{ customer: { id: string; email_address?: string; }; payment_source: { card?: { name: string; number: string; expiry: string; security_code: string; }; paypal?: { email_address: string; }; }; }
Create a new order in PayPal.
{ intent: 'CAPTURE' | 'AUTHORIZE'; purchase_units: Array<{ amount: { currency_code: string; value: string; }; description?: string; reference_id?: string; }>; }
Create a direct payment.
{ intent: string; payer: { payment_method: string; funding_instruments?: Array<{ credit_card?: { number: string; type: string; expire_month: number; expire_year: number; cvv2: string; first_name: string; last_name: string; }; }>; }; transactions: Array<{ amount: { total: string; currency: string; }; description?: string; }>; }
Create a new product in the catalog.
{ name: string; description: string; type: 'PHYSICAL' | 'DIGITAL' | 'SERVICE'; category: string; image_url?: string; home_url?: string; }
Generate a new invoice.
{ invoice_number: string; reference: string; currency_code: string; recipient_email: string; items: Array<{ name: string; quantity: string; unit_amount: { currency_code: string; value: string; }; }>; }
Process a batch payout.
{ sender_batch_header: { sender_batch_id: string; email_subject?: string; recipient_type?: string; }; items: Array<{ recipient_type: string; amount: { value: string; currency: string; }; receiver: string; note?: string; }>; }
Retrieve user information.
{ access_token: string; }
Create a web experience profile.
{ name: string; presentation?: { brand_name?: string; logo_image?: string; locale_code?: string; }; input_fields?: { no_shipping?: number; address_override?: number; }; flow_config?: { landing_page_type?: string; bank_txn_pending_url?: string; }; }
const result = await mcpClient.useTool('paypal', 'create_order', { intent: 'CAPTURE', purchase_units: [{ amount: { currency_code: 'USD', value: '100.00' }, description: 'Premium Subscription' }] });
const result = await mcpClient.useTool('paypal', 'create_invoice', { invoice_number: 'INV-2024-001', reference: 'REF-2024-001', currency_code: 'USD', recipient_email: '[email protected]', items: [{ name: 'Consulting Services', quantity: '1', unit_amount: { currency_code: 'USD', value: '500.00' } }] });
const result = await mcpClient.useTool('paypal', 'create_payout', { sender_batch_header: { sender_batch_id: 'Payroll_2024_001', email_subject: 'You have received a payment' }, items: [{ recipient_type: 'EMAIL', amount: { value: '1000.00', currency: 'USD' }, receiver: '[email protected]', note: 'Monthly salary payment' }] });
The server implements comprehensive error handling:
npm run build
npm test
The server outputs detailed logs to help with debugging:
MIT License