Lemon Squeezy MCP server
57 operations0 webhooks
Sell software and digital products as a merchant of record. Read stores, products, orders and subscriptions, issue refunds, record metered usage, create checkout links and discount codes, and manage webhook registrations. Inbound webhook deliveries are not handled by this plugin.
Try Lemon Squeezy with your agent
Connect Lemon Squeezy, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Lemon Squeezy on my account, then run one read-only example and show me the result.
Lemon Squeezy tools and triggers
Tools are what your agent can do in Lemon Squeezy through Corsair's MCP server. Triggers are the Lemon Squeezy events a routine can start from.
Webhooks
- CreateWrite
Register a webhook URL with its signing secret and the events to send
webhooks.create
- DeleteDestructive
Delete a webhook. Deliveries to it stop immediately
webhooks.delete
- GetRead-only
Read one webhook, with its URL, events and last delivery time
webhooks.get
- ListRead-only
List webhooks, optionally for one store
webhooks.list
- UpdateWrite
Change a webhook's URL, event list or signing secret
webhooks.update
Customers
- CreateWrite
Create a customer record. This does not send an invitation to the customer
customers.create
- GetRead-only
Read one customer, with their status, country and revenue
customers.get
- ListRead-only
List customers, filtered by store or email
customers.list
- UpdateWrite
Change a customer's name or email address
customers.update
Discounts
- CreateWrite
Create a discount code, either a percentage or a fixed amount in cents, lasting once, a number of months or forever
discounts.create
- DeleteDestructive
Delete a discount code. A deleted code cannot be restored
discounts.delete
- GetRead-only
Read one discount code, with its amount, duration and status
discounts.get
- ListRead-only
List discount codes, optionally for one store
discounts.list
Orders
- Generate InvoiceWrite
Generate the PDF invoice for an order and return its URL. No money moves
orders.generateInvoice
- GetRead-only
Read one order, with its totals, tax and refund state
orders.get
- ListRead-only
List orders, filtered by store, email or order number
orders.list
- RefundDestructive
Refund an order in full, or partially by amount in cents. A refund cannot be undone through the API
orders.refund
Subscription Invoices
- GenerateWrite
Generate the PDF invoice for a subscription invoice and return its URL. No money moves
subscriptionInvoices.generate
- GetRead-only
Read one subscription invoice, with its totals and refund state
subscriptionInvoices.get
- ListRead-only
List subscription invoices, filtered by store, status, refund state or subscription
subscriptionInvoices.list
- RefundDestructive
Refund a subscription invoice in full, or partially by amount in cents. A refund cannot be undone through the API
subscriptionInvoices.refund
Subscription Items
- GetRead-only
Read one subscription item, with its price, quantity and usage flag
subscriptionItems.get
- ListRead-only
List a subscription's items, filtered by subscription or price
subscriptionItems.list
- UpdateWrite
Change a subscription item's quantity
subscriptionItems.update
- UsageRead-only
Read a usage-based item's metered usage for the current period
subscriptionItems.usage
Subscriptions
- CancelDestructive
Cancel an active subscription. It stays readable but stops renewing
subscriptions.cancel
- GetRead-only
Read one subscription, with its status, renewal date and pause state
subscriptions.get
- ListRead-only
List subscriptions, filtered by store, order, product, variant, email or status
subscriptions.list
- UpdateWrite
Move a subscription to another variant, pause or resume it, or change its billing date. A plan change prorates the next charge
subscriptions.update
Checkouts
- CreateWrite
Create a checkout link for a variant and return its URL, with optional prefilled data, custom pricing and appearance
checkouts.create
- GetRead-only
Read one checkout, with its options and prefilled data
checkouts.get
- ListRead-only
List checkouts, filtered by store or variant
checkouts.list
License Keys
- GetRead-only
Read one license key, including the full key string
licenseKeys.get
- ListRead-only
List license keys, filtered by store, order, product or status
licenseKeys.list
- UpdateWrite
Change a license key's activation limit, expiry or disabled state
licenseKeys.update
Usage Records
- CreateWrite
Record metered usage against a subscription item: add to the period total, or replace it
usageRecords.create
- GetRead-only
Read one usage record, with its quantity and action
usageRecords.get
- ListRead-only
List metered usage records, optionally for one subscription item
usageRecords.list
Affiliates
- GetRead-only
Read one affiliate, with their status and earnings
affiliates.get
- ListRead-only
List affiliates, filtered by store or email
affiliates.list
Discount Redemptions
- GetRead-only
Read one discount redemption, with the amount it took off
discountRedemptions.get
- ListRead-only
List discount redemptions, filtered by discount or order
discountRedemptions.list
Files
- GetRead-only
Read one file and its download URL
files.get
- ListRead-only
List downloadable files, optionally for one variant
files.list
License Key Instances
- GetRead-only
Read one license key instance, with its identifier and name
licenseKeyInstances.get
- ListRead-only
List the instances a license key has been activated on
licenseKeyInstances.list
Order Items
- GetRead-only
Read one order line item, with its price and quantity
orderItems.get
- ListRead-only
List order line items, filtered by order, product or variant
orderItems.list
Prices
- GetRead-only
Read one price, with its scheme, tiers and renewal interval
prices.get
- ListRead-only
List prices, optionally for one variant
prices.list
Products
- GetRead-only
Read one product, with its price range and buy-now URL
products.get
- ListRead-only
List products, optionally for one store
products.list
Stores
- GetRead-only
Read one store, with its plan, currency and sales totals
stores.get
- ListRead-only
List the stores the key can reach, with their plan and sales totals
stores.list
Variants
- GetRead-only
Read one variant, with its license settings and checkout links
variants.get
- ListRead-only
List variants, optionally for one product or status
variants.list
Users
- GetRead-only
Read the account that owns the API key
users.get
Connect Lemon Squeezy to Claude, ChatGPT or Cursor
- 1
Connect Lemon Squeezy in Corsair
Add your Lemon Squeezy API key once in Corsair. Corsair stores the credential encrypted and makes the Lemon Squeezy API calls for your agent, so it never goes into a prompt or a config file. Connect Lemon Squeezy
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Lemon Squeezy. On a ChatGPT personal plan, connect Lemon Squeezy here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Lemon Squeezy's read and write operations run right away and its 5 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/lemonsqueezy, add the Lemon Squeezy plugin, and connect with an API key. Then call methods like corsair.lemonsqueezy.api.affiliates.get() from your app. Corsair keeps each tenant isolated.
Yes. Lemon Squeezy requires an API key from your Lemon Squeezy account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit Lemon Squeezy, GitHub, Notion, Stripe, and the rest. Trigger Lemon Squeezy from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for sell software and digital products as a merchant of record. Read stores, products, orders and subscriptions, issue refunds, record metered usage, create checkout links and discount codes, and manage webhook registrations. Inbound webhook deliveries are not handled by this plugin. Common builds include sync jobs, admin tooling, and agents that call Lemon Squeezy APIs from your backend.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Lemon Squeezy API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/lemonsqueezy in the open repo. When Lemon Squeezy ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Lemon Squeezy data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Lemon Squeezy data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Lemon Squeezy on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 5 destructive Lemon Squeezy operations. You can change a link's mode at hub.corsair.dev/me.