Skip to main content
Glama
@imazhar101/paypal-mcp

@imazhar101/paypal-mcp

by imazhar101

@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 with fetch.

  • Owns its token lifecycle — you give it a durable client id + secret; it mints, caches, and refreshes the client_credentials access 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-mcp

Related MCP server: PayPal MCP Server

Configure

Env var

Required

Default

Notes

PAYPAL_CLIENT_ID

yes

—

PayPal REST app client id

PAYPAL_CLIENT_SECRET

yes

—

PayPal REST app secret

PAYPAL_ENVIRONMENT

no

SANDBOX

SANDBOX or PRODUCTION

PAYPAL_READONLY

no

1

1/true = read tools only; 0 = also write tools

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-mcp

Claude 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

paypal_verify_connection

mints a token; reports environment

paypal_list_transactions

GET /v1/reporting/transactions

paypal_get_balances

GET /v1/reporting/balances

paypal_list_invoices

GET /v2/invoicing/invoices

paypal_get_invoice

GET /v2/invoicing/invoices/{id}

paypal_get_order

GET /v2/checkout/orders/{id}

paypal_get_capture

GET /v2/payments/captures/{id}

paypal_list_disputes

GET /v1/customer/disputes

paypal_get_dispute

GET /v1/customer/disputes/{id}

paypal_list_plans

GET /v1/billing/plans

paypal_get_subscription

GET /v1/billing/subscriptions/{id}

Write tools (create/send invoice, refund, …) are a deliberate follow-up gated behind PAYPAL_READONLY=0.

License

MIT

Available Tools

11 tools
paypal_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

    A3.5/5.0

    Scored across 11 tools

    Disambiguation5/5

    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.

    Naming Consistency5/5

    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.

    Tool Count5/5

    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.

    Completeness2/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A 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.
      7
      Apache 2.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      This 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/mcp
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A 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.
      3
      7 npm
      3
      MIT