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
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
| Operation | Tool | Non-destructive | Read only |
|---|---|---|---|
| List products | list_products |
✅ | ✅ |
| Create a product | create_product |
✅ | ❌ |
| Get a product | get_product |
✅ | ✅ |
| Update a product | update_product |
❌ | ❌ |
| Operation | Tool | Non-destructive | Read only |
|---|---|---|---|
| List prices | list_prices |
✅ | ✅ |
| Create a price | create_price |
✅ | ❌ |
| Get a price | get_price |
✅ | ✅ |
| Update a price | update_price |
❌ | ❌ |
| Preview prices | preview_prices |
✅ | ❌ |
| Operation | Tool | Non-destructive | Read only |
|---|---|---|---|
| List discounts | list_discounts |
✅ | ✅ |
| Create a discount | create_discount |
✅ | ❌ |
| Get a discount | get_discount |
✅ | ✅ |
| Update a discount | update_discount |
❌ | ❌ |
| Operation | Tool | Non-destructive | Read 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 |
❌ | ❌ |
| Operation | Tool | Non-destructive | Read 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 |
✅ | ✅ |
| Operation | Tool | Non-destructive | Read 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 |
❌ | ❌ |
| Operation | Tool | Non-destructive | Read 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 |
❌ | ❌ |
| Operation | Tool | Non-destructive | Read 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 |
✅ | ✅ |
| Operation | Tool | Non-destructive | Read only |
|---|---|---|---|
| List adjustments | list_adjustments |
✅ | ✅ |
| Create an adjustment | create_adjustment |
✅ | ❌ |
| Get a PDF credit note for an adjustment | get_adjustment_credit_note |
✅ | ✅ |
| Operation | Tool | Non-destructive | Read 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 |
✅ | ❌ |
| Operation | Tool | Non-destructive | Read 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 |
❌ | ❌ |
| Operation | Tool | Non-destructive | Read only |
|---|---|---|---|
| Create a customer portal session | create_customer_portal_session |
✅ | ❌ |
| Operation | Tool | Non-destructive | Read 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 |
❌ | ❌ |
| Operation | Tool | Non-destructive | Read only |
|---|---|---|---|
| List events | list_events |
✅ | ✅ |
| Operation | Tool | Non-destructive | Read only |
|---|---|---|---|
| List notifications | list_notifications |
✅ | ✅ |
| Get a notification | get_notification |
✅ | ✅ |
| Replay a notification | replay_notification |
✅ | ❌ |
| Operation | Tool | Non-destructive | Read only |
|---|---|---|---|
| List logs for a notification | list_notification_logs |
✅ | ✅ |
| Operation | Tool | Non-destructive | Read only |
|---|---|---|---|
| List simulations | list_simulations |
✅ | ✅ |
| Create a simulation | create_simulation |
✅ | ❌ |
| Get a simulation | get_simulation |
✅ | ✅ |
| Update a simulation | update_simulation |
❌ | ❌ |
| Operation | Tool | Non-destructive | Read 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 |
✅ | ✅ |
| Operation | Tool | Non-destructive | Read 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 |
✅ | ❌ |
| Operation | Tool | Non-destructive | Read 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 |
✅ | ✅ |
| Operation | Tool | Non-destructive | Read 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 |
❌ | ❌ |
To use the MCP server, you'll need an API key. You can create and manage API keys in Paddle > Developer tools > Authentication:
- Sandbox: https://sandbox-vendors.paddle.com/authentication-v2
- Live: https://vendors.paddle.com/authentication-v2
To run the server in a client like Claude Desktop, Cursor or Windsurf, add the following to your MCP config:
{
"mcpServers": {
"paddle": {
"command": "npx",
"args": ["-y", "@paddle/paddle-mcp", "--api-key=PADDLE_API_KEY", "--environment=(sandbox|production)", "--tools=(all|read-only|non-destructive|tool_name1,tool_name2,...)"]
}
}
}Replace PADDLE_API_KEY with your API key, and pass the correct value as environment.
You can also filter the tools available to the MCP server by passing the --tools argument. Accepted values are all, read-only, non-destructive, or a comma-separated list of tool names. The default is non-destructive.
For detailed setup guides, see:
-
Install dependencies:
pnpm install
-
Build the server:
pnpm build
-
Update client to use the local build:
{ "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_TOOLSenvironment variable accepts the same values as the--toolsargument:all,read-only,non-destructive, or a comma-separated list of tool names. If not set, defaults tonon-destructive.
To debug the MCP server, you can use the MCP Inspector tool:
-
Run the server with the inspector:
pnpm inspector
-
Open the provided URL in your browser to view and debug the MCP requests and responses.
-
Include the
--api-keyand--environmentarguments.