100+ integrations are ready to connect to your AI.Connect your first MCP

Lemon Squeezy MCP server for your AI

See what sold this month, refund an order, pause or upgrade a subscription, look up a customer by email, check a license key or send a checkout link, all in the store you pick when you connect.

PopMCPLemon Squeezy

How much did my Lemon Squeezy store make last month after refunds, and which products sold best?

Supported Lemon Squeezy tools

Every endpoint of the Lemon Squeezy API is here, from products, variants and prices to usage records, webhooks and affiliates, with everyday sales, refund, subscription and license tools loaded first and the rest one search away.

72 tools in the full catalog: 51 read and 21 write. 32 load by default, and the rest are found with tool search.

lemon_squeezy_cancel_subscription

Cancel a subscription.

lemon_squeezy_change_subscription_plan

Upgrade or downgrade a subscription to another variant (plan).

lemon_squeezy_customer_overview

Everything about one customer in one call, by email or customer_id: the customer record, their newest orders (number, status, total, product, receipt link), subscriptions (status, plan, renews_at, portal link) and license keys.

lemon_squeezy_get_customer

Get one customer by id.

lemon_squeezy_get_subscription

Get one subscription by id.

lemon_squeezy_list_customer_orders

List every order one customer placed, newest first (the orders list cannot filter by customer).

lemon_squeezy_list_customers

List customers, newest first: name, email, status (email marketing), city, region, country, total_revenue_currency and mrr in cents, and customer portal URLs.

lemon_squeezy_list_subscriptions

List subscriptions, newest first: user_name, user_email, product_name, variant_name, status (on_trial, active, paused, past_due, unpaid, cancelled, expired), renews_at, ends_at, trial_ends_at, card_brand, pause, and the customer portal and update-payment URLs.

lemon_squeezy_pause_subscription

Pause payment collection on a subscription.

lemon_squeezy_resume_subscription

Undo a cancellation: a cancelled subscription still inside its grace period (before ends_at) goes back to renewing.

lemon_squeezy_unpause_subscription

Restart payment collection on a paused subscription.

lemon_squeezy_create_discount

Create a discount code in the connected store.

lemon_squeezy_create_webhook

Send the store's events to an https URL.

lemon_squeezy_delete_discount

Delete a discount code.

lemon_squeezy_list_discounts

List discount codes, newest first: name, code, amount with amount_type (percent: 10 = 10%, fixed: cents), status, duration, max_redemptions, starts_at, expires_at.

lemon_squeezy_list_license_keys

List license keys, newest first: key, key_short, user_email, status (inactive, active, expired, disabled), activation_limit, instances_count, expires_at, product and order ids.

lemon_squeezy_list_webhooks

List the store's webhooks: url, events, last_sent_at, test_mode.

lemon_squeezy_update_license_key

Change a license key: activation_limit (a number, or null for unlimited), expires_at (ISO date-time, or null for never) or disabled (true blocks it, false re-enables it).

lemon_squeezy_generate_order_invoice

Make a downloadable PDF invoice for an order with the buyer's billing details.

lemon_squeezy_get_order

Get one order by id.

lemon_squeezy_list_orders

List orders, newest first: order_number, user_name, user_email, status (pending, failed, paid, refunded, partial_refund, fraudulent), total and total_formatted (cents, in the order's currency), total_usd, refunded_amount, first_order_item (product and variant) and the receipt URL.

lemon_squeezy_list_subscription_invoices

List subscription invoices (each billing of a subscription), newest first: billing_reason (initial, renewal, updated), status (pending, paid, void, refunded, partial_refund), total and total_formatted in cents, total_usd, refunded_amount, user_email, card_brand and the invoice URL.

lemon_squeezy_refund_order

Refund an order in full, or partly with amount in CENTS of the order's currency.

lemon_squeezy_refund_subscription_invoice

Refund one subscription payment in full, or partly with amount in CENTS.

lemon_squeezy_create_checkout

Make a checkout link for a variant to send to a buyer (returns url).

lemon_squeezy_list_variants

List a product's variants (the options a buyer picks: plans, tiers, license lengths) with name, status, sort, has_license_keys and license settings.

lemon_squeezy_validate_license_key

Check a license key string (as a customer pastes it): valid true or false, the error reason, status, activation_limit and activation_usage, expires_at, and meta with the product, variant, order and customer.

lemon_squeezy_get_product

Get one product by id.

lemon_squeezy_get_store

Get the connected store: name, slug, domain, url, country, currency, plan, total_sales, total_revenue, thirty_day_sales and thirty_day_revenue (revenue in cents of USD).

lemon_squeezy_list_affiliates

List the store's affiliates, newest first: user_name, user_email, share_domain, status (active, pending, disabled), application_note, products, total_earnings and unpaid_earnings in cents.

lemon_squeezy_list_products

List the store's products in name order: name, status (draft or published), price and price_formatted (cents), from_price/to_price, buy_now_url, pay_what_you_want.

lemon_squeezy_sales_summary

Total sales over a date range: order count by status, gross, refunds, net and tax (in USD and per currency, integer cents plus formatted USD), subscription renewal payments, and the top products.

lemon_squeezy_create_customer

Create a customer in the connected store.

lemon_squeezy_list_customer_license_keys

List the license keys one customer owns, with status, activation_limit, instances_count and expires_at.

lemon_squeezy_list_customer_subscriptions

List one customer's subscriptions with status, plan (product_name, variant_name), renews_at and ends_at.

lemon_squeezy_update_customer

Update a customer's name, email, city, region or country, or archive them (status: archived stops marketing emails).

lemon_squeezy_update_subscription

Change a subscription: switch plan (variant_id), pause or unpause payment collection, cancel or resume (cancelled), move the trial end (trial_ends_at) or the billing day.

lemon_squeezy_delete_webhook

Delete a webhook.

lemon_squeezy_get_discount

Get one discount by id.

lemon_squeezy_get_license_key

Get one license key by its numeric id.

lemon_squeezy_get_license_key_instance

Get one license key activation by its numeric id.

lemon_squeezy_get_webhook

Get one webhook by id.

lemon_squeezy_list_discount_variants

List the variants a discount is limited to (empty when it applies to every product).

lemon_squeezy_list_license_key_instances

List the activations (instances: identifier and name) of a license key.

lemon_squeezy_update_webhook

Change a webhook's url, events (the full new list) or secret.

lemon_squeezy_generate_subscription_invoice

Make a downloadable PDF invoice for one subscription payment with the buyer's billing details.

lemon_squeezy_get_subscription_invoice

Get one subscription invoice by id.

lemon_squeezy_get_subscription_item

Get one subscription item by id.

lemon_squeezy_get_subscription_item_current_usage

Get the usage reported so far in the current billing period of an usage-based subscription item: period_start, period_end, quantity, interval_unit and interval_quantity.

lemon_squeezy_list_subscription_items

List the items of a subscription.

lemon_squeezy_update_subscription_item

Change the seat count (quantity) of a quantity-based subscription.

lemon_squeezy_activate_license_key

Activate a license key on a new device or site.

lemon_squeezy_create_usage_record

Report usage for an usage-based subscription item (billed at the end of the period).

lemon_squeezy_deactivate_license_key

Remove one activation from a license key, freeing it for another device.

lemon_squeezy_get_checkout

Get one checkout by id.

lemon_squeezy_get_usage_record

Get one usage record by id.

lemon_squeezy_get_variant

Get one variant by id.

lemon_squeezy_get_variant_current_price

Get the price a variant is sold at now: category (one_time, subscription, lead_magnet, pwyw), scheme (standard, package, graduated, volume), unit_price in cents, renewal_interval_unit/quantity, trial and setup fee.

lemon_squeezy_list_checkouts

List checkout links made through the API, newest first: url, custom_price, expires_at, test_mode and their options.

lemon_squeezy_list_usage_records

List usage reported for an usage-based subscription item, newest first.

lemon_squeezy_get_affiliate

Get one affiliate by id.

lemon_squeezy_get_discount_redemption

Get one discount redemption by id.

lemon_squeezy_get_file

Get one file by id with a fresh signed download_url (valid for an hour).

lemon_squeezy_get_order_item

Get one order item by id.

lemon_squeezy_get_price

Get one price by id.

lemon_squeezy_list_discount_redemptions

List the times a discount was used: discount_code, discount_amount (cents or percent per amount_type), order_id.

lemon_squeezy_list_files

List the downloadable files attached to a variant: name, size, size_formatted, version and a signed download_url that expires after an hour.

lemon_squeezy_list_order_items

List order line items.

lemon_squeezy_list_prices

List a variant's prices, newest first (the current one plus earlier ones that existing subscriptions may still pay).

lemon_squeezy_list_stores

List the store this connection is bound to.

lemon_squeezy_get_authenticated_user

Get the Lemon Squeezy user the API key belongs to: name, email, avatar.

lemon_squeezy_list_related_resources

Follow any documented relationship of a record (the API's nested queries), e.g. resourceType orders + relationship license-keys, subscriptions + subscription-invoices, variants + files, subscription-items + usage-records.

Connect Lemon Squeezy to Claude, ChatGPT and Claude Code

Credentials off one Lemon Squeezy screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

In Lemon Squeezy, open Settings, then API, create a key named PopMCP and copy it, with test mode off for your real sales. Paste the key and pick the store this connection is for. There is no app to register and no approval to wait for.

API key••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • “How much did my Lemon Squeezy store make last month after refunds, and which products sold best?”

    • sales_summary
  • “Refund order #1042 in full and tell me what was bought”

    • list_orders
    • get_order
    • refund_order
  • “Which subscriptions are past due, and who are those customers?”

    • list_subscriptions
    • customer_overview
  • “Create a 20% off code SPRING20 for the Pro plan that expires on Sunday”

    • list_products
    • create_discount
  • “Is this license key valid, and how many activations does it have left?”

    • validate_license_key
    • list_license_key_instances
  • “Make a checkout link for the Team plan with jane@example.com filled in”

    • list_products
    • create_checkout

Use Lemon Squeezy from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Lemon Squeezy MCP server questions

What teams ask before putting Lemon Squeezy behind an AI client.

What does PopMCP need to connect Lemon Squeezy?

One API key. In your Lemon Squeezy dashboard open Settings, then API, create a key and copy it straight away, because it is shown only once. Paste it into PopMCP, then choose which of your stores the connection is for. There is no OAuth app, redirect URL or review, and the key is stored encrypted and used only on PopMCP's servers.

Can I connect more than one Lemon Squeezy store?

Yes. After the key is checked, PopMCP lists every store it reaches and you put each one in its own workspace, because each store has its own currency, products and payouts. A connection only ever reaches its own store: a request that names an order, customer or subscription from another store is refused before anything is sent.

Does it work with a test mode key?

Yes. A key made while test mode is on sees only test orders, subscriptions and customers, which is a safe way to watch what an agent does. Make a key with test mode off for your real sales. PopMCP shows which kind you connected, and keys expire a year after they are made.

Can the agent refund orders or change subscriptions?

Yes. refund_order and refund_subscription_invoice send money back in full or in part, and change_subscription_plan, pause_subscription, cancel_subscription and resume_subscription change what a customer pays. They run as soon as the AI calls them, so keep teammates who only need reports on read-only.

How much of the Lemon Squeezy API does the connection cover?

All of it: 70 operations across stores, customers, products, variants, prices, files, orders, order items, subscriptions, subscription invoices and items, usage records, discounts and redemptions, license keys and activations, the License API, checkouts, webhooks and affiliates, plus sales_summary and customer_overview. Thirty-two load into your AI client by default and the rest stay searchable.

Which Lemon Squeezy events can PopMCP watch?

Webhook triggers cover new and refunded orders, customer updates, the whole subscription lifecycle (created, updated, cancelled, resumed, expired, paused and unpaused), subscription payments that succeed, fail, recover or are refunded, license keys issued or changed, and affiliates activated. New products and discount codes are picked up by checking the store.

What trips people up with the Lemon Squeezy API?

Three things. Every amount is in cents, so 1999 means 19.99. An order's id is not its order number, which is why list_orders can search by order number first. And orders cannot be filtered by date, so sales_summary reads newest first until it passes the start of your range, adding subscription renewals, which Lemon Squeezy keeps as subscription invoices rather than orders.

Do I have to run or host the Lemon Squeezy MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Lemon Squeezy to Claude Code?

Connect Lemon Squeezy in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Lemon Squeezy on the consent screen. The Lemon Squeezy tools are then available in that session, and no Lemon Squeezy credential is stored on your machine.

Why do only 32 of the 72 tools load by default?

Loading 72 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 32-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 72 here. A trigger is something PopMCP watches for you: 19 Lemon Squeezy events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Lemon Squeezy.

Connect Lemon Squeezy to your AI in minutes

Launch a hosted MCP endpoint for Lemon Squeezy, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP