MCP server for Lemon Squeezy — stores, products, orders, subscriptions, license keys.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: Cancel a LIVE subscription. It remains active until the end of the current billing period, then moves to `cancelled`. This affects a real customer. API: DELETE /subscriptions/{id}.
Subscription id to cancel (required).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE: Cancel a LIVE subscription. It remains active until the end of the current billing period, then moves to `cancelled`. This affects a real customer. API: DELETE /subscriptions/{id}.
| Argument | Type | Description |
|---|---|---|
| subscription_id* | string | Subscription id to cancel (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscription_id"
],
"properties": {
"subscription_id": {
"type": "string",
"description": "Subscription id to cancel (required)."
}
}
}WRITE: Create a hosted checkout / payment link for a store + variant. Returns the created checkout including its `url` (the shareable payment link). API: POST /checkouts.
| Argument | Type | Description |
|---|---|---|
| store_id* | string | Store id (required). |
| expires_at | string | ISO 8601 date-time when the checkout link expires. |
| variant_id* | string | Variant id to sell (required). |
| custom_price | integer | Override price in cents (integer). |
| checkout_data | object | JSON:API checkout_data object (email, name, custom, discount_code, etc.). |
| product_options | object | JSON:API product_options object (name, description, redirect_url, etc.). |
| checkout_options | object | JSON:API checkout_options object (embed, media, button_color, etc.). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"store_id",
"variant_id"
],
"properties": {
"store_id": {
"type": "string",
"description": "Store id (required)."
},
"expires_at": {
"type": "string",
"description": "ISO 8601 date-time when the checkout link expires."
},
"variant_id": {
"type": "string",
"description": "Variant id to sell (required)."
},
"custom_price": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Override price in cents (integer).",
"exclusiveMinimum": 0
},
"checkout_data": {
"type": "object",
"description": "JSON:API checkout_data object (email, name, custom, discount_code, etc.).",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"product_options": {
"type": "object",
"description": "JSON:API product_options object (name, description, redirect_url, etc.).",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"checkout_options": {
"type": "object",
"description": "JSON:API checkout_options object (embed, media, button_color, etc.).",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
}Get a single customer by id. API: GET /customers/{id}.
| Argument | Type | Description |
|---|---|---|
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| customer_id* | string | Customer id (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"customer_id": {
"type": "string",
"description": "Customer id (required)."
}
}
}Get a single order by id. API: GET /orders/{id}.
| Argument | Type | Description |
|---|---|---|
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| order_id* | string | Order id (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"order_id"
],
"properties": {
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"order_id": {
"type": "string",
"description": "Order id (required)."
}
}
}Get a single store by id. API: GET /stores/{id}.
| Argument | Type | Description |
|---|---|---|
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| store_id* | string | Store id (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"store_id"
],
"properties": {
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"store_id": {
"type": "string",
"description": "Store id (required)."
}
}
}Get a single subscription by id. API: GET /subscriptions/{id}.
| Argument | Type | Description |
|---|---|---|
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| subscription_id* | string | Subscription id (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscription_id"
],
"properties": {
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"subscription_id": {
"type": "string",
"description": "Subscription id (required)."
}
}
}Get the currently authenticated user/account behind the API key. Good first call to confirm auth. API: GET /users/me.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List customers, optionally filtered by store and/or email. API: GET /customers (filter[store_id], filter[email]).
| Argument | Type | Description |
|---|---|---|
| string | Filter to a customer email. | |
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| store_id | string | Filter to a single store id. |
| page_size | integer | Results per page (JSON:API page[size], max 100). Default 10. |
| page_number | integer | Page number (JSON:API page[number]). Default 1. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"email": {
"type": "string",
"description": "Filter to a customer email."
},
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"store_id": {
"type": "string",
"description": "Filter to a single store id."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (JSON:API page[size], max 100). Default 10.",
"exclusiveMinimum": 0
},
"page_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (JSON:API page[number]). Default 1.",
"exclusiveMinimum": 0
}
}
}List discounts, optionally filtered to one store. API: GET /discounts (filter[store_id]).
| Argument | Type | Description |
|---|---|---|
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| store_id | string | Filter to a single store id. |
| page_size | integer | Results per page (JSON:API page[size], max 100). Default 10. |
| page_number | integer | Page number (JSON:API page[number]). Default 1. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"store_id": {
"type": "string",
"description": "Filter to a single store id."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (JSON:API page[size], max 100). Default 10.",
"exclusiveMinimum": 0
},
"page_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (JSON:API page[number]). Default 1.",
"exclusiveMinimum": 0
}
}
}List license keys, optionally filtered by store, order, or product. API: GET /license-keys (filter[store_id], filter[order_id], filter[product_id]).
| Argument | Type | Description |
|---|---|---|
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| order_id | string | Filter to a single order id. |
| store_id | string | Filter to a single store id. |
| page_size | integer | Results per page (JSON:API page[size], max 100). Default 10. |
| product_id | string | Filter to a single product id. |
| page_number | integer | Page number (JSON:API page[number]). Default 1. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"order_id": {
"type": "string",
"description": "Filter to a single order id."
},
"store_id": {
"type": "string",
"description": "Filter to a single store id."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (JSON:API page[size], max 100). Default 10.",
"exclusiveMinimum": 0
},
"product_id": {
"type": "string",
"description": "Filter to a single product id."
},
"page_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (JSON:API page[number]). Default 1.",
"exclusiveMinimum": 0
}
}
}List orders, optionally filtered by store and/or buyer email. API: GET /orders (filter[store_id], filter[user_email]).
| Argument | Type | Description |
|---|---|---|
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| store_id | string | Filter to a single store id. |
| page_size | integer | Results per page (JSON:API page[size], max 100). Default 10. |
| user_email | string | Filter to a buyer email. |
| page_number | integer | Page number (JSON:API page[number]). Default 1. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"store_id": {
"type": "string",
"description": "Filter to a single store id."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (JSON:API page[size], max 100). Default 10.",
"exclusiveMinimum": 0
},
"user_email": {
"type": "string",
"description": "Filter to a buyer email."
},
"page_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (JSON:API page[number]). Default 1.",
"exclusiveMinimum": 0
}
}
}List price models, optionally filtered to one variant. API: GET /prices (filter[variant_id]).
| Argument | Type | Description |
|---|---|---|
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| page_size | integer | Results per page (JSON:API page[size], max 100). Default 10. |
| variant_id | string | Filter to a single variant id. |
| page_number | integer | Page number (JSON:API page[number]). Default 1. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (JSON:API page[size], max 100). Default 10.",
"exclusiveMinimum": 0
},
"variant_id": {
"type": "string",
"description": "Filter to a single variant id."
},
"page_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (JSON:API page[number]). Default 1.",
"exclusiveMinimum": 0
}
}
}List products, optionally filtered to one store. API: GET /products (filter[store_id]).
| Argument | Type | Description |
|---|---|---|
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| store_id | string | Filter to a single store id. |
| page_size | integer | Results per page (JSON:API page[size], max 100). Default 10. |
| page_number | integer | Page number (JSON:API page[number]). Default 1. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"store_id": {
"type": "string",
"description": "Filter to a single store id."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (JSON:API page[size], max 100). Default 10.",
"exclusiveMinimum": 0
},
"page_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (JSON:API page[number]). Default 1.",
"exclusiveMinimum": 0
}
}
}List all stores in the account. API: GET /stores.
| Argument | Type | Description |
|---|---|---|
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| page_size | integer | Results per page (JSON:API page[size], max 100). Default 10. |
| page_number | integer | Page number (JSON:API page[number]). Default 1. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (JSON:API page[size], max 100). Default 10.",
"exclusiveMinimum": 0
},
"page_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (JSON:API page[number]). Default 1.",
"exclusiveMinimum": 0
}
}
}List subscription invoices, optionally filtered by store, status, or refunded flag. API: GET /subscription-invoices (filter[store_id], filter[status], filter[refunded]).
| Argument | Type | Description |
|---|---|---|
| status | string | Filter by invoice status (e.g. paid, void, refunded). |
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| refunded | boolean | Filter by refunded flag. |
| store_id | string | Filter to a single store id. |
| page_size | integer | Results per page (JSON:API page[size], max 100). Default 10. |
| page_number | integer | Page number (JSON:API page[number]). Default 1. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"status": {
"type": "string",
"description": "Filter by invoice status (e.g. paid, void, refunded)."
},
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"refunded": {
"type": "boolean",
"description": "Filter by refunded flag."
},
"store_id": {
"type": "string",
"description": "Filter to a single store id."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (JSON:API page[size], max 100). Default 10.",
"exclusiveMinimum": 0
},
"page_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (JSON:API page[number]). Default 1.",
"exclusiveMinimum": 0
}
}
}List subscriptions with rich filtering by store, status, product, variant, customer, or buyer email. API: GET /subscriptions (filter[store_id], filter[status], filter[product_id], filter[variant_id], filter[customer_id], filter[user_email]).
| Argument | Type | Description |
|---|---|---|
| status | string | Filter by subscription status. |
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| store_id | string | Filter to a single store id. |
| page_size | integer | Results per page (JSON:API page[size], max 100). Default 10. |
| product_id | string | Filter to a single product id. |
| user_email | string | Filter to a buyer email. |
| variant_id | string | Filter to a single variant id. |
| customer_id | string | Filter to a single customer id. |
| page_number |
List variants (price/plan tiers), optionally filtered to one product. API: GET /variants (filter[product_id]).
| Argument | Type | Description |
|---|---|---|
| include | string | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. |
| page_size | integer | Results per page (JSON:API page[size], max 100). Default 10. |
| product_id | string | Filter to a single product id. |
| page_number | integer | Page number (JSON:API page[number]). Default 1. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (JSON:API page[size], max 100). Default 10.",
"exclusiveMinimum": 0
},
"product_id": {
"type": "string",
"description": "Filter to a single product id."
},
"page_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (JSON:API page[number]). Default 1.",
"exclusiveMinimum": 0
}
}
}WRITE: Modify a LIVE subscription — change plan/tier (variant_id), cancel, pause/unpause, or set the billing anchor. This affects a real customer's billing. API: PATCH /subscriptions/{id}.
| Argument | Type | Description |
|---|---|---|
| pause | any | Pause object (mode, resumes_at), or null to unpause. |
| cancelled | boolean | Set true to cancel, false to un-cancel. |
| variant_id | integer | New variant id to switch the plan/tier to. |
| billing_anchor | integer | Day of month (1-31) to anchor billing to. |
| subscription_id* | string | Subscription id to update (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscription_id"
],
"properties": {
"pause": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "Pause object (mode, resumes_at), or null to unpause."
},
"cancelled": {
"type": "boolean",
"description": "Set true to cancel, false to un-cancel."
},
"variant_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "New variant id to switch the plan/tier to."
},
"billing_anchor": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Day of month (1-31) to anchor billing to."
},
"subscription_id": {
"type": "string",
"description": "Subscription id to update (required)."
}
}
}| integer |
| Page number (JSON:API page[number]). Default 1. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"status": {
"enum": [
"on_trial",
"active",
"paused",
"past_due",
"unpaid",
"cancelled",
"expired"
],
"type": "string",
"description": "Filter by subscription status."
},
"include": {
"type": "string",
"description": "Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'."
},
"store_id": {
"type": "string",
"description": "Filter to a single store id."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (JSON:API page[size], max 100). Default 10.",
"exclusiveMinimum": 0
},
"product_id": {
"type": "string",
"description": "Filter to a single product id."
},
"user_email": {
"type": "string",
"description": "Filter to a buyer email."
},
"variant_id": {
"type": "string",
"description": "Filter to a single variant id."
},
"customer_id": {
"type": "string",
"description": "Filter to a single customer id."
},
"page_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (JSON:API page[number]). Default 1.",
"exclusiveMinimum": 0
}
}
}