
Product
Socket for Jira Is Now Available
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.
@iflow-mcp/paddle-mcp-server
Advanced tools
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:
| 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:
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_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.
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-key and --environment arguments.
FAQs
MCP Server for Paddle Billing
We found that @iflow-mcp/paddle-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.