trackmcp
Back to directory
PaddleHQ

paddle-mcp-server

View on GitHub

Interact with the Paddle API using AI assistants like Claude, or in AI-powered IDEs like Cursor. Manage product catalog, billing and subscriptions, and reports.

50 stars TypeScriptOthers Updated May 9, 2026
llmmcptypescript

Documentation

MCP Server for Paddle Billing

Paddle Billing is the developer-first merchant of record. We take care of payments, tax, subscriptions, and metrics with one unified API that does it all.

This is a Model Context Protocol (MCP) server that provides LLMs and AI agents with tools for interacting with the Paddle API.

> Important: This MCP server works with Paddle Billing. It does not support Paddle Classic. To work with Paddle Classic, see: Paddle Classic API reference

Install in Cursor

Features

The MCP server has near parity with the Paddle API, allowing AI assistants and agents to:

  • Manage your full Paddle catalog
  • View customer, purchase, and provisioning information
  • Handle subscription, payment, and refund workflows
  • Debug billing and order management issues
  • Create and adjust transactions directly in conversation
  • Generate financial reports for financial and operational insights
  • Implement and test Paddle integrations faster

Available tools

The MCP server can use the following tools to take actions with your Paddle account:

Products

OperationToolNon-destructiveRead only
List products`list_products`
Create a product`create_product`
Get a product`get_product`
Update a product`update_product`

Prices

OperationToolNon-destructiveRead only
List prices`list_prices`
Create a price`create_price`
Get a price`get_price`
Update a price`update_price`
Preview prices`preview_prices`

Discounts

OperationToolNon-destructiveRead only
List discounts`list_discounts`
Create a discount`create_discount`
Get a discount`get_discount`
Update a discount`update_discount`

Discount Groups

OperationToolNon-destructiveRead only
List discount groups`list_discount_groups`
Create a discount group`create_discount_group`
Get a discount group`get_discount_group`
Update a discount group`update_discount_group`
Archive a discount group`archive_discount_group`

Customers

OperationToolNon-destructiveRead only
List customers`list_customers`
Create a customer`create_customer`
Get a customer`get_customer`
Update a customer`update_customer`
List credit balances for a customer`list_credit_balances`

Addresses

OperationToolNon-destructiveRead only
List addresses for a customer`list_addresses`
Create an address for a customer`create_address`
Get an address for a customer`get_address`
Update an address for a customer`update_address`

Businesses

OperationToolNon-destructiveRead only
List businesses for a customer`list_businesses`
Create a business for a customer`create_business`
Get a business for a customer`get_business`
Update a business for a customer`update_business`

Transactions

OperationToolNon-destructiveRead only
List transactions`list_transactions`
Create a transaction`create_transaction`
Get a transaction`get_transaction`
Update a transaction`update_transaction`
Preview a transaction`preview_transaction_create`
Revise customer information on a billed or completed transaction`revise_transaction`
Get a PDF invoice for a transaction`get_transaction_invoice`

Adjustments

OperationToolNon-destructiveRead only
List adjustments`list_adjustments`
Create an adjustment`create_adjustment`
Get a PDF credit note for an adjustment`get_adjustment_credit_note`

Subscriptions

OperationToolNon-destructiveRead only
List subscriptions`list_subscriptions`
Get a subscription`get_subscription`
Update a subscription`update_subscription`
Cancel a subscription`cancel_subscription`
Pause a subscription`pause_subscription`
Resume a paused subscription`resume_subscription`
Activate a trialing subscription`activate_subscription`
Preview an update to a subscription`preview_subscription_update`
Create a one-time charge for a subscription`create_subscription_charge`
Preview a one-time charge for a subscription`preview_subscription_charge`

Saved Payment Methods

OperationToolNon-destructiveRead only
List payment methods saved for a customer`list_saved_payment_methods`
Get a payment method saved for a customer`get_saved_payment_method`
Delete a payment method saved for a customer`delete_saved_payment_method`

Customer Portal Sessions

OperationToolNon-destructiveRead only
Create a customer portal session`create_customer_portal_session`

Notification Settings

OperationToolNon-destructiveRead only
List notification settings`list_notification_settings`
Create a notification setting`create_notification_setting`
Get a notification setting`get_notification_setting`
Update a notification setting`update_notification_setting`
Delete a notification setting`delete_notification_setting`

Events

OperationToolNon-destructiveRead only
List events`list_events`

Notifications

OperationToolNon-destructiveRead only
List notifications`list_notifications`
Get a notification`get_notification`
Replay a notification`replay_notification`

Notification Logs

OperationToolNon-destructiveRead only
List logs for a notification`list_notification_logs`

Simulations

OperationToolNon-destructiveRead only
List simulations`list_simulations`
Create a simulation`create_simulation`
Get a simulation`get_simulation`
Update a simulation`update_simulation`

Simulation Runs

OperationToolNon-destructiveRead only
List runs for a simulation`list_simulation_runs`
Create a run for a simulation`create_simulation_run`
Get a run for a simulation`get_simulation_run`

Simulation Run Events

OperationToolNon-destructiveRead only
List events for a simulation run`list_simulation_run_events`
Get an event for a simulation run`get_simulation_run_event`
Replay an event for a simulation run`replay_simulation_run_event`

Reports

OperationToolNon-destructiveRead only
List reports`list_reports`
Create a report`create_report`
Get a report`get_report`
Get a CSV file for a report`get_report_csv`

Client-Side Tokens

OperationToolNon-destructiveRead only
List client-side tokens`list_client_side_tokens`
Create a client-side token`create_client_side_token`
Get a client-side token`get_client_side_token`
Revoke a client-side token`revoke_client_side_token`

Installation

To use the MCP server, you'll need an API key. You can create and manage API keys in Paddle > Developer tools > Authentication:

  • Sandbox:
  • Live:

Adding the following to your MCP settings file will configure and run the Paddle MCP server in a client like Claude Desktop, Cursor or Windsurf:

Method 1: One-click installation in Cursor or VS Code

You can install the Paddle MCP server with a single click in Cursor or VS Code.

Install in Cursor

After installation, you'll need to update the configuration in your MCP settings file to replace `your_api_key` with your actual Paddle API key and adjust the environment and tools values as needed.

Add the following to the MCP settings or configuration file in the client you're using:

json
{
  "mcpServers": {
    "paddle": {
      "command": "npx",
      "args": [
        "-y",
        "@paddle/paddle-mcp",
        "--api-key=your_api_key",
        "--environment=sandbox",
        "--tools=non-destructive"
      ]
    }
  }
}

Replace `your_api_key` with your actual Paddle API key, set `--environment` to either `sandbox` or `production`, and set `--tools` to the tools which you want to be loaded and available to the MCP client.

Method 3: Using environment variables

Add the following to the MCP settings or configuration file in the client you're using:

json
{
  "mcpServers": {
    "paddle": {
      "command": "npx",
      "args": ["-y", "@paddle/paddle-mcp"],
      "env": {
        "PADDLE_API_KEY": "your_api_key",
        "PADDLE_ENVIRONMENT": "sandbox",
        "PADDLE_MCP_TOOLS": "non-destructive"
      }
    }
  }
}

Replace `your_api_key` with your actual Paddle API key, set `PADDLE_ENVIRONMENT` to either `sandbox` or `production`, and set `PADDLE_MCP_TOOLS` to the tools which you want to be loaded and available to the MCP client.

Filtering tools

You can filter which tools are loaded and available to the MCP client by passing the `--tools` argument (Method 2) or setting the `PADDLE_MCP_TOOLS` environment variable (Method 1 or 3). Accepted values are:

  • `all` - All tools are available
  • `read-only` - Only read operations are available
  • `non-destructive` - Read operations and safe write operations are available (default)
  • A comma-separated list of specific tool names (e.g., `list_products,get_product,create_product`)

For detailed setup guides, see:

Development

1. Install dependencies:

bash
pnpm install

2. Build the server:

bash
pnpm build

3. Update client to use the local build:

json
{
     "mcpServers": {
       "paddle": {
         "command": "node",
         "args": ["path/to/paddle-mcp-server/build/index.js"],
         "env": {
           "PADDLE_API_KEY": "your_api_key",
           "PADDLE_ENVIRONMENT": "sandbox",
           "PADDLE_MCP_TOOLS": "all"
         }
       }
     }
   }

The `PADDLE_MCP_TOOLS` environment variable accepts the same values as the `--tools` argument: `all`, `read-only`, `non-destructive`, or a comma-separated list of tool names. If not set, defaults to `non-destructive`.

Debugging

To debug the MCP server, you can use the MCP Inspector tool:

1. Run the server with the inspector:

bash
pnpm inspector

2. Open the provided URL in your browser to view and debug the MCP requests and responses.

3. Include the `--api-key` and `--environment` arguments.

Learn more

Frequently asked questions

What is paddle-mcp-server?

paddle-mcp-server is Interact with the Paddle API using AI assistants like Claude, or in AI-powered IDEs like Cursor. Manage product catalog, billing and subscriptions, and reports.

How do I install paddle-mcp-server?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is paddle-mcp-server open source?

Yes — it is hosted on GitHub at https://github.com/PaddleHQ/paddle-mcp-server and has 50 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP