Skip to main content
Glama
imazhar101

@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

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/imazhar101/paypal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server