digital-goods-mcp

Let AI agents sell software and courses worldwide with sales tax handled — one server aggregating eight Merchant-of-Record platforms: Paddle, Lemon Squeezy…

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data

What it can do

  • Create Checkout: Create a hosted CHECKOUT LINK for a digital product / software / course through a merchant-of-record platform (the MoR is the seller and remits global sales tax / VAT). Returns checko
  • Query Order: Get the status of an order / transaction created through the merchant-of-record platform. order_id = Paddle transaction_id (txn_...), Lemon Squeezy order id (numeric), Polar order id (UUI
  • Issue Refund: Refund an order through the merchant-of-record platform. Capability differs by provider: Paddle = FULL refund only (POST /adjustments; pending_approval on production) — do NOT pass amoun

What data it sees

Do you need an account

No: the server works without sign-in

Let AI agents sell software and courses worldwide with sales tax handled — one server aggregating eight Merchant-of-Record platforms: Paddle, Lemon Squeezy, Polar, Whop, Creem, Dodo Payments, FastSpring and 2Checkout. Create checkouts, query orders, refunds, subscriptions. Stateless: bring your own key, it never holds funds or stores data.

Server tool list (5)

Raw names from tools/list. Only developers need these.

create_checkoutCreate a hosted CHECKOUT LINK for a digital product / software / course through a merchant-of-record platform (the MoR is the seller and remits global sales tax / VAT). Returns checkout_url for the buyer to pay. One primitive across eight providers — pick with provider. item = the catalog id on that platform: Paddle price_id (pri_...), Lemon Squeezy variant_id (numeric, also needs store_id), Polar product_id (UUID), Whop plan_id (plan_...), Creem product_id (prod_...), Dodo product_id (pdt_...), FastSpring product path (also needs store_id = your storefront), 2Checkout catalog product code. Optional amount (major currency unit) is a custom price on Lemon Squeezy and drives the owner policy gate everywhere. Money flows buyer -> MoR -> merchant; this server never touches funds. Capabilities differ per provider (see per-field notes and INSTRUCTIONS). Credential headers (set once in your MCP client, per-request, never stored): x-mor-provider (paddle | lemonsqueezy | polar | whop | creem | dodo | fastspring | twocheckout; or pass the provider argument) + x-mor-key (that platform's API key: Paddle pdl_..., Lemon Squeezy API key, Polar polar_oat_..., Whop key, Creem creem_test_..., Dodo key, FastSpring "username:password" for HTTP Basic, 2Checkout "MERCHANT_CODE:SECRET_KEY") + x-mor-env (sandbox/test = default no real money; prod/live = real money & real tax). Owner-policy headers x-agentpay-max-amount / x-agentpay-approval-above / x-agentpay-allowed-tools also apply.
query_orderGet the status of an order / transaction created through the merchant-of-record platform. order_id = Paddle transaction_id (txn_...), Lemon Squeezy order id (numeric), Polar order id (UUID), Whop payment/receipt id, Creem checkout id (ch_...), Dodo payment_id (pay_...), or FastSpring order id. Returns a UNIFIED status enum [PAID | PENDING | FAILED | REFUNDED | PARTIALLY_REFUNDED | CANCELED | PAST_DUE | UNKNOWN(raw)] plus raw_status and a raw passthrough of the provider payload. Credential headers (set once in your MCP client, per-request, never stored): x-mor-provider (paddle | lemonsqueezy | polar | whop | creem | dodo | fastspring | twocheckout; or pass the provider argument) + x-mor-key (that platform's API key: Paddle pdl_..., Lemon Squeezy API key, Polar polar_oat_..., Whop key, Creem creem_test_..., Dodo key, FastSpring "username:password" for HTTP Basic, 2Checkout "MERCHANT_CODE:SECRET_KEY") + x-mor-env (sandbox/test = default no real money; prod/live = real money & real tax). Owner-policy headers x-agentpay-max-amount / x-agentpay-approval-above / x-agentpay-allowed-tools also apply.
issue_refundRefund an order through the merchant-of-record platform. Capability differs by provider: Paddle = FULL refund only (POST /adjustments; pending_approval on production) — do NOT pass amount. Lemon Squeezy = pass amount (major unit) for partial, or omit for full. Polar = amount is REQUIRED (no full shortcut) plus a reason enum. Dodo = FULL only (POST /refunds) — do NOT pass amount. FastSpring = FULL only (POST /orders/{id}/refunds) — do NOT pass amount. 2Checkout = partial (pass amount) or full (omit amount) via POST /orders/{RefNo}/refund/. Whop = NOT supported (dashboard-only). Creem = NOT supported (no public refund endpoint). order_id is the same id used by query_order. The owner policy gate applies to amount when given. Credential headers (set once in your MCP client, per-request, never stored): x-mor-provider (paddle | lemonsqueezy | polar | whop | creem | dodo | fastspring | twocheckout; or pass the provider argument) + x-mor-key (that platform's API key: Paddle pdl_..., Lemon Squeezy API key, Polar polar_oat_..., Whop key, Creem creem_test_..., Dodo key, FastSpring "username:password" for HTTP Basic, 2Checkout "MERCHANT_CODE:SECRET_KEY") + x-mor-env (sandbox/test = default no real money; prod/live = real money & real tax). Owner-policy headers x-agentpay-max-amount / x-agentpay-approval-above / x-agentpay-allowed-tools also apply.
query_subscriptionGet the status of a subscription on the merchant-of-record platform. subscription_id = Paddle sub_..., Lemon Squeezy subscription id (numeric), Polar subscription id (UUID), Whop membership id (mem_...), Creem subscription id (sub_...), Dodo subscription id (sub_...), or FastSpring subscription id. Returns a UNIFIED status enum [ACTIVE | TRIALING | PAST_DUE | PAUSED | CANCELED | EXPIRED | UNKNOWN(raw)] plus raw_status and a raw passthrough. Credential headers (set once in your MCP client, per-request, never stored): x-mor-provider (paddle | lemonsqueezy | polar | whop | creem | dodo | fastspring | twocheckout; or pass the provider argument) + x-mor-key (that platform's API key: Paddle pdl_..., Lemon Squeezy API key, Polar polar_oat_..., Whop key, Creem creem_test_..., Dodo key, FastSpring "username:password" for HTTP Basic, 2Checkout "MERCHANT_CODE:SECRET_KEY") + x-mor-env (sandbox/test = default no real money; prod/live = real money & real tax). Owner-policy headers x-agentpay-max-amount / x-agentpay-approval-above / x-agentpay-allowed-tools also apply.
cancel_subscriptionCancel a subscription on the merchant-of-record platform. Behaviour differs: Paddle = cancel immediately or at next_billing_period (set immediately). Dodo = same (immediately -> cancelled now, else at period end). Creem = same (immediately -> now, else scheduled to period end). Lemon Squeezy / FastSpring = always cancel at the END of the current period (access continues; immediate not offered by the API). Polar / Whop = Polar revokes IMMEDIATELY, Whop cancels at period end. Returns the unified subscription status. Credential headers (set once in your MCP client, per-request, never stored): x-mor-provider (paddle | lemonsqueezy | polar | whop | creem | dodo | fastspring | twocheckout; or pass the provider argument) + x-mor-key (that platform's API key: Paddle pdl_..., Lemon Squeezy API key, Polar polar_oat_..., Whop key, Creem creem_test_..., Dodo key, FastSpring "username:password" for HTTP Basic, 2Checkout "MERCHANT_CODE:SECRET_KEY") + x-mor-env (sandbox/test = default no real money; prod/live = real money & real tax). Owner-policy headers x-agentpay-max-amount / x-agentpay-approval-above / x-agentpay-allowed-tools also apply.