For AI agents and LLMs: a structured documentation index is available at /llms.txt. Every page has a Markdown sibling — append .md to any URL.

Skip to content
Docs

Paddle MCP server

Give AI agents access to your Paddle account so they can read data and take actions across pricing, billing, and integration workflows.

AI summary

The Paddle MCP server is a remote, hosted service that lets AI agents read data and take actions in your Paddle account through natural language. Your agent connects over HTTPS using your Paddle API key as a Bearer token — nothing runs locally.

  • • Connect to https://sandbox-mcp.paddle.com/mcp (sandbox) or https://mcp.paddle.com/mcp (live); we recommend wiring both under paddle-sandbox and paddle-live server names.
  • • Codemode exposes three MCP tools — search, execute, and report_missing_tool — that together cover the full Paddle API. Each execute can chain up to 50 API calls.
  • • Scope what the agent can do by limiting your API key's permissions. Destructive operations attach an informational warning to the response, but the user (you) is the gate — keep client-side approval prompts enabled.
  • • Setup snippets are provided for Claude Desktop, Claude Code, OpenAI Codex, Cursor, VS Code, Raycast, and other MCP clients.

The Paddle MCP server lets AI agents interact with your Paddle account. Instead of navigating the dashboard or making API calls, you can ask an agent in natural language to handle pricing, billing, support, and integration workflows.

How it works

The Paddle MCP server is a remote, hosted MCP server. Your agent connects to it over HTTPS using your Paddle API key as a Bearer token, then it can:

  • Build and evolve your pricing model, including regional pricing and migrations.
  • Investigate failed payments and resolve billing issues.
  • Generate reports and analyze revenue, refunds, and transaction patterns.
  • Process subscription upgrades, downgrades, pauses, and cancellations.
  • Onboard enterprise customers with custom pricing and manual invoicing.
  • Generate integration code, configure webhooks, and simulate events for testing.

Paddle hosts an MCP server for each environment:

EnvironmentURL
Sandbox https://sandbox-mcp.paddle.com/mcp
Live https://mcp.paddle.com/mcp

Sandbox API keys (prefixed pdl_sdbx_) only authenticate against the sandbox URL. Live keys only authenticate against the live URL. A mismatch surfaces as an authentication failure.

Codemode

The Paddle MCP server uses a codemode interface. This means instead of exposing every Paddle API operation as a separate MCP tool, the server exposes three tools that together cover the full API:

ToolWhat it does
searchLooks up Paddle API methods by name or description. Returns the method path, parameters, and response shape so the agent knows how to call it.
executeRuns a JavaScript async function that chains one or more Paddle API calls in a single invocation. Variables don't persist between calls.
report_missing_toolLets the agent flag a missing capability so we can prioritize it. This doesn't call the Paddle API, it reports the missing tool to the Paddle team.

A typical workflow looks like this:

  • The agent calls search to confirm the method name and parameter shape.
  • The agent then calls execute with code that chains the relevant API calls.
  • Result is returned to the agent.

Codemode works because agents are better at writing code to call tools than at calling tools directly. Research shows it results in 60% faster execution, 68% fewer tokens, and 88% fewer API round trips while maintaining equal accuracy.

As a user of the MCP server, you don't need to do anything differently. The server handles the codemode interface for you.

Permissions and destructive actions

The Paddle MCP server doesn't gate destructive operations on its own. You control what the agent can do by scoping the Paddle API key you connect with.

  • Hard scoping: Create an API key with only the permissions the agent needs. Start with read-only permissions while you're evaluating, then widen as you build confidence.
  • Soft warnings: Destructive operations are flagged with a destructiveHint annotation, and the server attaches a warning field to the corresponding execute response. There's no guarantee agents will follow the warning, so you should always review each execute before it runs.
  • Client-side approval: We recommend enabling "ask permission" mode in your MCP client so you see and approve each execute before it runs.

Before you begin

Create an API key with the permissions needed for the work you want the agent to do. Sandbox keys are prefixed pdl_sdbx_.

Install the MCP server

The Paddle MCP server runs remotely. We recommend adding both environments under separate server names: paddle-sandbox and paddle-live. This means that your agent can route prompts to the right environment, and help you port data from one environment to the other.

Run these commands, replacing SANDBOX_API_KEY and LIVE_API_KEY with the matching sandbox or live key:

Sandbox
claude mcp add --transport http paddle-sandbox https://sandbox-mcp.paddle.com/mcp --header "Authorization: Bearer SANDBOX_API_KEY"
Live
claude mcp add --transport http paddle-live https://mcp.paddle.com/mcp --header "Authorization: Bearer LIVE_API_KEY"
  1. Open Claude Desktop and go to Settings > Developer > Edit Config.
  2. Add the paddle-sandbox and paddle-live servers to the mcpServers object. Claude Desktop doesn't support remote HTTP transport natively, so we proxy through mcp-remote.
  3. Replace SANDBOX_API_KEY and LIVE_API_KEY with your sandbox and live keys.
  4. Save the file and restart Claude Desktop.
claude_desktop_config.json
{
"mcpServers": {
"paddle-sandbox": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://sandbox-mcp.paddle.com/mcp",
"--header",
"Authorization: Bearer SANDBOX_API_KEY"
]
},
"paddle-live": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.paddle.com/mcp",
"--header",
"Authorization: Bearer LIVE_API_KEY"
]
}
}
}

Run these commands, replacing SANDBOX_API_KEY and LIVE_API_KEY with the matching sandbox or live key:

Sandbox
codex mcp add paddle-sandbox --url https://sandbox-mcp.paddle.com/mcp --bearer-token-env-var SANDBOX_API_KEY
Live
codex mcp add paddle-live --url https://mcp.paddle.com/mcp --bearer-token-env-var LIVE_API_KEY

One-click install

Install the Paddle MCP (sandbox) in Cursor

Install the Paddle MCP (live) in Cursor

Before clicking Install , replace YOUR_API_KEY with your sandbox or live keys.

Manual install

  1. Open Cursor Settings > MCP Tools (or Command / Ctrl + Shift + J > MCP Tools).
  2. Click Add Custom MCP to open the mcp.json file.
  3. Add the paddle-sandbox and paddle-live servers to the mcpServers object.
  4. Replace SANDBOX_API_KEY and LIVE_API_KEY with your sandbox and live keys.
  5. Save the file and restart Cursor.
mcp.json
{
"mcpServers": {
"paddle-sandbox": {
"type": "http",
"url": "https://sandbox-mcp.paddle.com/mcp",
"headers": {
"Authorization": "Bearer SANDBOX_API_KEY"
}
},
"paddle-live": {
"type": "http",
"url": "https://mcp.paddle.com/mcp",
"headers": {
"Authorization": "Bearer LIVE_API_KEY"
}
}
}
}

One-click install

Install the Paddle MCP (sandbox) in VS Code

Install the Paddle MCP (live) in VS Code

After installing, click the settings button and choose Show configuration (JSON) in the menu, then replace YOUR_API_KEY with your sandbox or live keys.

Manual install

  1. Press Command / Ctrl + Shift + P to open the command palette.
  2. Search and select MCP: Open workspace folder MCP configuration... option.
  3. Add the paddle-sandbox and paddle-live servers to the mcpServers object.
  4. Replace SANDBOX_API_KEY and LIVE_API_KEY with your sandbox and live keys.
  5. Save the file and restart VS Code.
mcp.json
{
"servers": {
"paddle-live": {
"type": "http",
"url": "https://mcp.paddle.com/mcp",
"headers": {
"Authorization": "Bearer LIVE_API_KEY"
}
},
"paddle-sandbox": {
"type": "http",
"url": "https://sandbox-mcp.paddle.com/mcp",
"headers": {
"Authorization": "Bearer SANDBOX_API_KEY"
}
}
},
"inputs": []
}

Mistral Vibe configures MCP servers in ~/.vibe/config.toml.

  1. Export your Paddle API keys in your shell profile:

    Shell
    export PADDLE_SANDBOX_API_KEY= # Your sandbox API key
    export PADDLE_LIVE_API_KEY= # Your live API key
  2. Add the paddle-sandbox and paddle-live servers to ~/.vibe/config.toml:

    toml
    [[mcp_servers]]
    name = "paddle-sandbox"
    transport = "http"
    url = "https://sandbox-mcp.paddle.com/mcp"
    api_key_env = "PADDLE_SANDBOX_API_KEY"
    api_key_header = "Authorization"
    api_key_format = "Bearer {token}"
    [[mcp_servers]]
    name = "paddle-live"
    transport = "http"
    url = "https://mcp.paddle.com/mcp"
    api_key_env = "PADDLE_LIVE_API_KEY"
    api_key_header = "Authorization"
    api_key_format = "Bearer {token}"
  3. Restart Vibe so it picks up the new servers.

See the Mistral Vibe configuration docs for more options.

Install the Paddle MCP (sandbox) in Raycast

Install the Paddle MCP (live) in Raycast

After installing, replace YOUR_API_KEY with your Paddle API key.

For any other MCP-compatible client, configure a server with these details:

SettingSandboxLive
Namepaddle-sandboxpaddle-live
Typehttphttp
URLhttps://sandbox-mcp.paddle.com/mcphttps://mcp.paddle.com/mcp
HeaderAuthorization: Bearer SANDBOX_API_KEYAuthorization: Bearer LIVE_API_KEY
JSON
{
"mcpServers": {
"paddle-sandbox": {
"type": "http",
"url": "https://sandbox-mcp.paddle.com/mcp",
"headers": {
"Authorization": "Bearer SANDBOX_API_KEY"
}
},
"paddle-live": {
"type": "http",
"url": "https://mcp.paddle.com/mcp",
"headers": {
"Authorization": "Bearer LIVE_API_KEY"
}
}
}
}

If your client doesn't support remote HTTP transport, proxy through mcp-remote:

Shell
npx -y mcp-remote https://sandbox-mcp.paddle.com/mcp --header "Authorization: Bearer YOUR_API_KEY"

Use the server

Once installed, the agent sees two parallel toolsets for sandbox and live. Be explicit in your prompts about which environment you mean: "create a product in sandbox" routes to paddle-sandbox, "create the equivalent product in live" routes to paddle-live.

Example prompts

Use these example prompts to get started. Mention paddle-sandbox or paddle-live explicitly so the agent picks the right toolset.

Manage your pricing

Describe your pricing structure to the agent — tiers, billing cycles, trial periods, regional overrides — and let it create the products and prices. For migrations, walk through old plans, grandfather pricing, and archiving the old catalog step by step.

markdown
Using paddle-sandbox, set up three subscription plans for my collaboration SaaS: Basic at $29/mo or $290/yr (14-day trial), Pro at $79/mo or $790/yr (14-day trial), Advanced at $299/mo or $2,990/yr (14-day trial). Also add a seats add-on at $10/seat/month or $100/seat/year, quantity 1-1000. After you create everything, show me the products and prices in a markdown table.

Debug and resolve billing issues

Give the agent a customer email or ID, a time range, and the issue to investigate. It can check subscription history, payment attempts, adjustments, and scheduled changes, then recommend or execute a fix.

markdown
Using paddle-live, investigate the failed payment for sarah@example.com. Think step-by-step: when it failed, whether it's recurring, what plan they're on, whether there are scheduled changes, and details of the payment method. If you find multiple failures, check whether other subscriptions for this customer show the same pattern.

Understand company performance

Ask the agent to generate a report and analyze it. Reports arrive as CSV files — the agent can retrieve them once ready.

markdown
Using paddle-live, generate a transaction_line_items report for the past 6 months, filtered for completed and canceled statuses across all currencies. Identify our three highest- and lowest-revenue product/price combinations, flag pricing anomalies across regions, and recommend adjustments.

Handle subscription and lifecycle changes

For upgrades, downgrades, pauses, or cancellations, always ask for a preview first so you see the financial impact before the change is applied.

markdown
Using paddle-live, customer john@startup.com wants to upgrade from Basic ($29/mo) to Pro ($79/mo) immediately. Preview the change, show me the current and new amounts plus any proration, then wait for my approval before executing.

Onboard enterprise customers

Paste the quote or contract details, include tax ID and billing contacts, and ask the agent to create custom pricing, configure manual invoicing, and preview the first invoice before execution.

markdown
Using paddle-live, set up Example Inc. as an enterprise customer: 100 licenses at $45/user/month billed annually in USD, plus a $6,000/year Premium Support flat fee. Billing contact bob@example.com, tax ID 12-3456789, address 123 Business Park, New York, NY 10001. Preview the full transaction before creating anything.

Integrate and test Paddle

Use the agent to scaffold integration code, configure notification destinations, and simulate webhook events end to end.

markdown
Using paddle-sandbox, create a notification destination for my Next.js webhook endpoint at https://example.com/api/webhooks, subscribed to subscription.created, subscription.updated, and transaction.completed. Then simulate a subscription.created event so I can verify my handler.

Best practices

  • Mention Paddle explicitly.
    "Find a customer in Paddle" is less ambiguous than "find a customer."
  • Name the environment.
    Prefix prompts with "Using paddle-sandbox" or "Using paddle-live" so the agent routes to the right toolset.
  • Provide all the context.
    Customer IDs, time ranges, currencies — pass them in rather than letting the agent guess.
  • Ask for a plan first.
    For complex work, get the agent to draft a plan before executing. Approve or edit, then run.
  • State your goal.
    Tell the agent what success looks like and what format you want the output in.
  • Iterate.
    If the first response misses, refine the prompt rather than starting over.

Was this page helpful?