About PayPal
PayPal is an MCP server published by paypal in the Developer Tools category: payPal Agent.
The repository has 195 stars and 120 forks, with the last commit a month ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/paypal/agent-toolkitThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (43)
accept_dispute_claimAccept a dispute claim
Parameters not published.
activate_recurring_seriesActivate a draft recurring invoice series
Parameters not published.
cancel_invoice_auto_reminderCancel all scheduled automatic reminders for an invoice
Parameters not published.
cancel_recurring_seriesCancel an active recurring invoice series
Parameters not published.
cancel_sent_invoiceCancel a sent invoice
Parameters not published.
cancel_subscriptionCancel an active subscription
Parameters not published.
create_conditional_rules_for_invoiceCreate conditional rules for an invoice, such as an early payment discount or automatic cancellation date
Parameters not published.
create_invoiceCreate a new invoice in the PayPal system, including recipient billing details, line items, an invoice note, a custom color theme, an optional shipping cost, and an option to enable PAY_BY_BANK as a payment method
Parameters not published.
create_orderCreate an order in PayPal system based on provided details
Parameters not published.
create_productCreate a new product in the PayPal catalog
Parameters not published.
Show all 43 tools
create_recurring_seriesCreate a recurring invoice series that automatically generates and sends invoices on a schedule
Parameters not published.
create_refundProcess a refund for a captured payment.
Parameters not published.
create_shipment_trackingCreate a shipment tracking record
Parameters not published.
create_subscriptionCreate a new subscription
Parameters not published.
create_subscription_planCreate a new subscription plan
Parameters not published.
delete_invoicePermanently delete a draft or scheduled invoice
Parameters not published.
delete_recurring_seriesDelete a draft recurring invoice series
Parameters not published.
generate_invoice_numberGenerate the next invoice number available to the merchant
Parameters not published.
generate_invoice_qr_codeGenerate a QR code for an invoice
Parameters not published.
get_disputeRetrieve detailed information of a specific dispute
Parameters not published.
get_invoiceRetrieve details of a specific invoice
Parameters not published.
get_merchant_insightsRetrieve business intelligence metrics and analytics for a merchant
Parameters not published.
get_orderRetrieve the details of an order
Parameters not published.
get_recurring_seriesRetrieve details of a specific recurring invoice series
Parameters not published.
get_refundGet the details for a specific refund.
Parameters not published.
get_shipment_trackingRetrieve shipment tracking information
Parameters not published.
list_disputesRetrieve a summary of all open disputes
Parameters not published.
list_invoicesList invoices with optional pagination and filtering
Parameters not published.
list_productsList products with optional pagination and filtering
Parameters not published.
list_subscription_plansList subscription plans
Parameters not published.
list_transactionsList transactions with optional pagination and filtering
Parameters not published.
pay_orderProcess payment for an authorized order
Parameters not published.
record_payment_for_invoiceRecord an external or manual payment against an invoice
Parameters not published.
record_refund_for_invoiceRecord a refund against an invoice
Parameters not published.
search_invoicingSearch for invoices or recurring invoice series
Parameters not published.
send_invoiceSend an invoice to recipients
Parameters not published.
send_invoice_reminderSend a reminder for an existing invoice
Parameters not published.
show_product_detailsRetrieve details of a specific product
Parameters not published.
show_subscription_detailsRetrieve details of a specific subscription
Parameters not published.
show_subscription_plan_detailsRetrieve details of a specific subscription plan
Parameters not published.
update_invoicingUpdate an existing invoice or recurring invoice series (full-replacement)
Parameters not published.
update_shipment_trackingUpdate shipment tracking information
Parameters not published.
update_subscriptionupdate an existing subscription
Parameters not published.
Ask AI
Ask AI about PayPal
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 13 hours ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- !Dependencies pinnedNo lockfile. Installs can pull different code over time.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
Releases
README
PayPal Agent Toolkit
The PayPal Agent Toolkit enables popular agent frameworks including OpenAI's Agent SDK, LangChain, Vercel's AI SDK, and Model Context Protocol (MCP) to integrate with PayPal APIs through function calling. It includes support for TypeScript and is built on top of PayPal APIs and the PayPal SDKs.
Available tools
The PayPal Agent toolkit provides the following tools:
Invoices
-
create_invoice: Create a new invoice in the PayPal system, including recipient billing details, line items, an invoice note, a custom color theme, an optional shipping cost, and an option to enable PAY_BY_BANK as a payment method -
list_invoices: List invoices with optional pagination and filtering -
get_invoice: Retrieve details of a specific invoice -
send_invoice: Send an invoice to recipients -
send_invoice_reminder: Send a reminder for an existing invoice -
cancel_sent_invoice: Cancel a sent invoice -
generate_invoice_qr_code: Generate a QR code for an invoice -
delete_invoice: Permanently delete a draft or scheduled invoice -
generate_invoice_number: Generate the next invoice number available to the merchant -
search_invoicing: Search for invoices or recurring invoice series -
update_invoicing: Update an existing invoice or recurring invoice series (full-replacement) -
cancel_invoice_auto_reminder: Cancel all scheduled automatic reminders for an invoice -
record_payment_for_invoice: Record an external or manual payment against an invoice -
record_refund_for_invoice: Record a refund against an invoice -
create_conditional_rules_for_invoice: Create conditional rules for an invoice, such as an early payment discount or automatic cancellation date -
create_recurring_series: Create a recurring invoice series that automatically generates and sends invoices on a schedule -
activate_recurring_series: Activate a draft recurring invoice series -
get_recurring_series: Retrieve details of a specific recurring invoice series -
cancel_recurring_series: Cancel an active recurring invoice series -
delete_recurring_series: Delete a draft recurring invoice series
Payments
create_order: Create an order in PayPal system based on provided detailsget_order: Retrieve the details of an orderpay_order: Process payment for an authorized ordercreate_refund: Process a refund for a captured payment.get_refund: Get the details for a specific refund.
Dispute Management
list_disputes: Retrieve a summary of all open disputesget_dispute: Retrieve detailed information of a specific disputeaccept_dispute_claim: Accept a dispute claim
Shipment Tracking
create_shipment_tracking: Create a shipment tracking recordget_shipment_tracking: Retrieve shipment tracking informationupdate_shipment_tracking: Update shipment tracking information
Catalog Management
create_product: Create a new product in the PayPal cataloglist_products: List products with optional pagination and filteringshow_product_details: Retrieve details of a specific product
Subscription Management
create_subscription_plan: Create a new subscription planlist_subscription_plans: List subscription plansshow_subscription_plan_details: Retrieve details of a specific subscription plancreate_subscription: Create a new subscriptionshow_subscription_details: Retrieve details of a specific subscriptionupdate_subscription: update an existing subscriptioncancel_subscription: Cancel an active subscription
Reporting and Insights
list_transactions: List transactions with optional pagination and filteringget_merchant_insights: Retrieve business intelligence metrics and analytics for a merchant
TypeScript
Installation
You don't need this source code unless you want to modify the package. If you just want to use the package run:
npm install @paypal/agent-toolkit
Requirements
- Node 18+
Usage
The library needs to be configured with your account's client id and secret which is available in your PayPal Developer Dashboard.
The toolkit works with Vercel's AI SDK and can be passed as a list of tools. For more details, refer our examples
import { PayPalAgentToolkit } from '@paypal/agent-toolkit/ai-sdk';
const paypalToolkit = new PayPalAgentToolkit({
clientId: process.env.PAYPAL_CLIENT_ID,
clientSecret: process.env.PAYPAL_CLIENT_SECRET,
configuration: {
actions: {
invoices: {
create: true,
createRecurringSeries: true,
list: true,
send: true,
sendReminder: true,
cancel: true,
delete: true,
generateQRC: true,
generateInvoiceNumber: true,
search: true,
update: true,
cancelReminders: true,
recordPayment: true,
recordRefund: true,
createConditionalRules: true,
},
products: { create: true, list: true, update: true },
subscriptionPlans: { create: true, list: true, show: true },
shipment: { create: true, show: true, cancel: true },
orders: { create: true, get: true },
disputes: { list: true, get: true },
},
},
});
To use sandbox mode, add context within your configuration.
configuration: {
context: {
sandbox: true,
}
}
Initializing the Workflows
import { PayPalWorkflows, ALL_TOOLS_ENABLED } from '@paypal/agent-toolkit/ai-sdk';
const paypalWorkflows = new PayPalWorkflows({
clientId: process.env.PAYPAL_CLIENT_ID,
clientSecret: process.env.PAYPAL_CLIENT_SECRET,
configuration: {
actions: ALL_TOOLS_ENABLED,
},
});
Usage
Using the toolkit
const llm: LanguageModelV1 = getModel(); // The model to be used with ai-sdk
const { text: response } = await generateText({
model: llm,
tools: paypalToolkit.getTools(),
maxSteps: 10,
prompt: `Create an order for $50 for custom handcrafted item and get the payment link.`,
});
Environment Variables
The following environment variables can be used:
PAYPAL_ACCESS_TOKEN: Your PayPal Access TokenPAYPAL_ENVIRONMENT: Set toSANDBOXfor sandbox mode,PRODUCTIONfor production (defaults toSANDBOXmode)
This guide explains how to generate an access token for PayPal API integration, including how to find your client ID and client secret.
Prerequisites
- PayPal Developer account (for Sandbox)
- PayPal Business account (for production)
Finding Your Client ID and Client Secret
-
Create a PayPal Developer Account:
- Go to PayPal Developer Dashboard
- Sign up or log in with your PayPal credentials
-
Access Your Credentials:
- In the Developer Dashboard, click on Apps & Credentials in the menu
- Switch between Sandbox and Live modes depending on your needs
-
Create or View an App:
- To create a new app, click Create App
- Give your app a name and select a Business account to associate with it
- For existing apps, click on the app name to view details
-
Retrieve Credentials:
- Once your app is created or selected, you'll see a screen with your:
- Client ID: A public identifier for your app
- Client Secret: A private key (shown after clicking "Show")
- Save these credentials securely as they are required for generating access tokens
- Once your app is created or selected, you'll see a screen with your:
Generating an Access Token
Using cURL
curl -v https://api-m.sandbox.paypal.com/v1/oauth2/token \\
-H \"Accept: application/json\" \\
-H \"Accept-Language: en_US\" \\
-u \"CLIENT_ID:CLIENT_SECRET\" \\
-d \"grant_type=client_credentials\"
Replace CLIENT_ID and CLIENT_SECRET with your actual credentials. For production, use https://api-m.paypal.com instead of the sandbox URL.
Using Postman
- Create a new request to
https://api-m.sandbox.paypal.com/v1/oauth2/token - Set method to POST
- Under Authorization, select Basic Auth and enter your Client ID and Client Secret
- Under Body, select x-www-form-urlencoded and add a key
grant_typewith valueclient_credentials - Send the request
Response
A successful response will look like:
{
"scope": "...",
"access_token": "Your Access Token",
"token_type": "Bearer",
"app_id": "APP-80W284485P519543T",
"expires_in": 32400,
"nonce": "..."
}
Copy the access_token value for use in your Claude Desktop integration.
Token Details
- Sandbox Tokens: Valid for 3-8 hours
- Production Tokens: Valid for 8 hours
- It's recommended to implement token refresh logic before expiration
Using the Token with Claude Desktop
Once you have your access token, update the PAYPAL_ACCESS_TOKEN value in your Claude Desktop connector configuration:
{
"env": {
"PAYPAL_ACCESS_TOKEN": "YOUR_NEW_ACCESS_TOKEN",
"PAYPAL_ENVIRONMENT": "SANDBOX"
}
}
Best Practices
- Store client ID and client secret securely
- Implement token refresh logic to handle token expiration
- Use environment-specific tokens (sandbox for testing, production for real transactions)
- Avoid hardcoding tokens in application code
Disclaimer
AI-generated content may be inaccurate or incomplete. Users are responsible for independently verifying any information before relying on it. PayPal makes no guarantees regarding output accuracy and is not liable for any decisions, actions, or consequences resulting from its use.
README fetched from the repository 13 hours ago. The original is authoritative.