Docs
How to connect paddle-mcp to your AI agent.
1. Sign in and add your Paddle key
- Create an account with email + password, magic link, or Google.
- On the dashboard, paste your Paddle API key for sandbox and/or production.
Get your Paddle keys at vendors.paddle.com (production) or sandbox-vendors.paddle.com (sandbox). The minimum scope required is read/write on the resources you want to expose.
2. Connect a client
paddle-mcp speaks Streamable HTTP MCP transport with OAuth 2.1 — any MCP-compatible client works. Setup for the popular ones:
Claude Code
claude mcp add --scope user --transport http paddle-mcp \
https://paddle-mcp.3vlbn.com/mcp
Then run /mcp in Claude Code, pick paddle-mcp, and click Authenticate.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"paddle-mcp": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://paddle-mcp.3vlbn.com/mcp"]
}
}
}
Cursor
Settings → MCP → Add Server → HTTP → https://paddle-mcp.3vlbn.com/mcp.
Other MCP-compatible clients
- Zed — Settings → Assistant → Context Servers → add HTTP →
https://paddle-mcp.3vlbn.com/mcp. - Continue.dev (VS Code / JetBrains) —
config.yaml→mcpServers→ HTTP with the same URL. - VS Code (1.99+) — Command Palette → MCP: Add Server → HTTP → paste the URL.
- Windsurf, Cline, Goose — all support Streamable HTTP MCP via their MCP settings panel.
- Custom agents — Anthropic Claude API (
mcp_serversparam), OpenAI Responses API (tools: [{type: "mcp", ...}]), or any MCP client SDK. Use OAuth 2.1 with PKCE; the server publishes.well-known/oauth-protected-resource.
3. Try a tool
Ask the agent in plain language — the tools have rich descriptions and the agent picks the right one. Some examples that work out of the box:
Example 1 — refund a customer
Find Paddle customer alice@example.com in production, list their
last 3 transactions, and refund the most recent past_due one with
reason "duplicate charge".
Agent chains list_customers → list_transactions → create_adjustment. The refund tool returns a dry-run preview first; you confirm before money moves.
Example 2 — stand up a new pricing plan end-to-end
In production, create a product "Team Plan" (SaaS tax category), then
add a $49/mo and $490/yr USD price on it, and finally a 20%-off launch
coupon WELCOME20 restricted to those two prices, expiring in 90 days.
Agent chains create_product → 2× create_price → create_discount.
Example 3 — test your webhook flow without a real card
Create a Paddle simulation webhook destination pointing at
https://my-app.example.com/webhook, then fire the subscription_cancellation
scenario at it and tell me the response status from my server.
Agent chains create_notification_setting (with traffic_source: "simulation") → list_simulation_types → create_simulation → run_simulation → list_simulation_runs.
Example 4 — preview a plan upgrade before charging
For alice@example.com's active subscription, show me exactly what
would be charged if I move her to the Pro monthly plan today, with
proration immediate. Don't actually change anything.
Agent chains find_customer → list_subscriptions → preview_subscription_update. You see proration math + next-invoice impact; nothing in Paddle changes.
Example 5 — answer a "what happened?" support ticket
Customer bob@example.com emailed that his subscription disappeared.
Find him, list everything that happened on his account in the last
14 days, and generate a customer portal link so he can self-serve.
Agent chains find_customer → list_events (filtered) → create_customer_portal_session. One conversation closes the ticket.
Example 6 — quote international pricing
How much would the Team Plan ($49/mo + $490/yr) cost a customer in
Germany with VAT applied? Show me the formatted totals in EUR.
Agent calls preview_pricing with the basket and customer_ip_address or an address_id. Returns net, VAT, total in EUR with formatted strings, no checkout created.
Example 7 — rename a product and bump its description
Find the "Pro Plan" product, change its name to "Pro Team" and update
the description to mention SSO + audit log. Don't touch any prices.
Agent chains list_products → update_product. Updates apply immediately to invoices and the customer portal; existing subscriptions keep their billing cycle.
Example 8 — extend a coupon's lifetime
The launch coupon WELCOME20 is about to expire. Bump its
expires_at to end of next quarter and double the usage_limit.
Agent chains list_discounts (find by code) → update_discount. Already-applied discounts on subscriptions stay applied; only future redemptions see the new rules.
Tool reference
39 tools across 14 Paddle resources. Each tool description tells the agent when to use it and what id formats to expect (pro_, pri_, ctm_, sub_, txn_, adj_, dsc_, ntfset_, ntf_, ntfsim_, evt_, rep_, cpls_).
Read (22)
- Catalog:
list_products,get_product,list_prices - Customers:
list_customers,get_customer,find_customer(lookup by email),get_credit_balances - Subscriptions:
list_subscriptions,get_subscription,preview_subscription_update(dry-run plan changes) - Transactions:
list_transactions,get_transaction,get_invoice_pdf - Discounts:
list_discounts,get_discount - Pricing:
preview_pricing(localized quote with tax / discount) - Events & webhooks:
list_events(90-day audit stream),list_notifications,list_notification_settings - Reports:
get_report(poll + download URL when ready) - Simulator:
list_simulation_types,list_simulation_runs
Write (17)
- Catalog:
create_product/update_product,create_price/update_price,create_customer/update_customer,create_discount/update_discount - Subscriptions:
update_subscription,cancel_subscription(confirm-required) - Money movement:
create_adjustmentfor refunds / credits / chargebacks (confirm-required) - Customer portal:
create_customer_portal_session(signed self-serve URL) - Reports:
create_report(async CSV export of transactions, adjustments, discounts, products/prices, balance, payout reconciliation) - Webhooks & simulator:
create_notification_setting,replay_notification,create_simulation,run_simulation(all confirm-required)
All "confirm-required" tools return a dry-run preview unless called with confirmed: true. The agent will show you the preview before re-issuing the call. Preview tools (preview_subscription_update, preview_pricing) never touch state and don't need confirmation.
Plans & quotas
Every plan unlocks every tool — the only difference is the monthly call quota. Failed calls (validation errors, Paddle 4xx, missing key) don't count.
- Free — 50 calls/month. Enough to evaluate the full surface against your sandbox.
- Starter ($29/mo) — 2,000 calls/month. Right-sized for a solo founder doing daily ops via Claude.
- Pro ($99/mo) — 200,000 calls/month. For teams or automated agents running unattended.
Need help?
Email support@3vlbn.com.