# Lemon Squeezy — how to use (mcp.ai)

Connect your Lemon Squeezy account and use 32 tools for ecommerce straight from your AI agent. Connect with your own API key. Lemon Squeezy is a platform designed to simplify payments, taxes, and subscriptions for software companies, offering a powerful API and webhooks for seamless integration.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_lemon_squeezy?ms=1787291340000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `lemon_squeezy_create_customer`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/lemon_squeezy`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/lemon_squeezy/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/lemon_squeezy/create/customer` — Tool to create a new customer. Use after verifying the store exists and you need to add a customer to it. Example: "Create a customer John Doe with email johndoe@example.com in store 1."
  - body: { data: object }
- `POST https://api.mcp.ai/api/lemon_squeezy/create/discount` — Tool to create a new discount code in Lemon Squeezy. Use when you need to create promotional discounts for products or subscriptions. Example: "Create a discount code SUMMER20 with 20% off in store 12
  - body: { data: object }
- `POST https://api.mcp.ai/api/lemon_squeezy/create/webhook` — Tool to create a new webhook for receiving event notifications. Use when you need to register a webhook endpoint to receive events like order_created, subscription_created, etc. Specify the webhook UR
  - body: { data: object }
- `POST https://api.mcp.ai/api/lemon_squeezy/delete/discount` — Tool to delete a discount by its ID. Use when you need to permanently remove a discount from a store.
  - body: { id: string }
- `POST https://api.mcp.ai/api/lemon_squeezy/delete/webhook` — Tool to delete a webhook. Use when you need to remove a registered webhook endpoint.
  - body: { id: string }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/affiliates` — Tool to list all affiliates. Use when you need to retrieve affiliates with optional filters and pagination.
  - body: { sort?: string, store_id?: integer, page_size?: integer, user_email?: string, page_number?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/checkouts` — Tool to list all checkouts. Use when you need a paginated list of checkouts, optionally filtering by store or variant.
  - body: { store_id?: integer, variant_id?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/customers` — Retrieves a paginated list of all customers from your Lemon Squeezy store(s). Returns customer details including email, name, location, revenue metrics (MRR, total revenue), marketing status, and rela
  - body: { email?: string, store_id?: integer, page_size?: integer, page_number?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/discount/redemptions` — Tool to list all discount redemptions. Use when you need a paginated list of discount redemptions, optionally filtering by discount or order.
  - body: { order_id?: integer, page_size?: integer, discount_id?: integer, page_number?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/discounts` — Tool to list all discounts. Use when you need a paginated list of discounts after confirming authentication.
  - body: { store_id?: integer, page_size?: integer, page_number?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/files` — Retrieves a paginated list of files from Lemon Squeezy. Use this to get digital goods that can be downloaded by customers after purchase. Each file belongs to a variant and includes download URLs (sig
  - body: { include?: string, page_size?: integer, variant_id?: integer, page_number?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/license/key/instances` — Tool to list all license key instances. Use when you need a paginated list of license key instances, optionally filtering by license key ID.
  - body: { page_size?: integer, page_number?: integer, license_key_id?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/license/keys` — Tool to list all license keys. Use when you need a paginated list of license keys, optionally filtering by store, order, order item, or product.
  - body: { include?: string, order_id?: integer, store_id?: integer, page_size?: integer, product_id?: integer, page_number?: integer, order_item_id?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/order/items` — Tool to list all order items. Use when you need a paginated list of order items, optionally filtered by order, product, or variant. Note: the `first_order_item` field on an order object returns only o
  - body: { page_size?: integer, page_number?: integer, filter_order_id?: string, filter_product_id?: string, filter_variant_id?: string }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/orders` — Tool to list all orders. Use when you need a paginated list of orders, optionally filtering by store or user email. Monetary fields (e.g., `subtotal`, `tax`, `total`) are integers in the smallest curr
  - body: { store_id?: integer, page_size?: integer, user_email?: string, page_number?: integer, order_number?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/prices` — Tool to list all prices. Use when you need a paginated list of all prices, optionally filtering by variant.
  - body: { page_size?: integer, variant_id?: integer, page_number?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/products` — List all products from your Lemon Squeezy store with pagination and filtering. Returns a paginated list of products ordered by name. Each product includes pricing, status, thumbnails, checkout URLs, a
  - body: { store_id?: integer, page_size?: integer, page_number?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/stores` — Retrieves a paginated list of all stores belonging to the authenticated Lemon Squeezy account. This action returns comprehensive store information including store details (name, slug, domain, URL), fi
  - body: { page_size?: integer, page_number?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/subscription/invoices` — Tool to list all subscription invoices. Use when you need a paginated list of subscription invoices with optional filters.
  - body: { status?: string, refunded?: boolean, store_id?: integer, page_size?: integer, page_number?: integer, subscription_id?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/subscription/items` — Tool to list all subscription items. Use when you need a paginated list of items across subscriptions for reporting or auditing.
  - body: { price_id?: integer, page_size?: integer, page_number?: integer, subscription_id?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/subscriptions` — Tool to list all subscriptions. Use when you need a paginated list of subscriptions, optionally filtered by store, order, product, or status.
  - body: { status?: string, order_id?: integer, store_id?: integer, page_size?: integer, product_id?: integer, user_email?: string, variant_id?: integer, page_number?: integer, order_item_id?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/usage/records` — Retrieves all usage records from Lemon Squeezy, with optional filtering and pagination. Usage records track consumption for usage-based billing on subscription items. Each record represents reported u
  - body: { page_size?: integer, page_number?: integer, subscription_item_id?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/variants` — Retrieves a paginated list of product variants from Lemon Squeezy. A variant represents a variation of a product with its own pricing options, files, and license key settings. You can filter by produc
  - body: { status?: string, page_size?: integer, product_id?: integer, page_number?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/list/all/webhooks` — Tool to list all webhooks. Use when you need to retrieve registered webhooks. Supports optional filtering by store ID and pagination parameters for controlling result size and navigation.
  - body: { store_id?: integer, page_size?: integer, page_number?: integer }
- `POST https://api.mcp.ai/api/lemon_squeezy/retrieve/authenticated/user` — Tool to retrieve the currently authenticated user from Lemon Squeezy. Use when you need to get details about the user associated with the current API key, including their name, email, avatar, and acco
- `POST https://api.mcp.ai/api/lemon_squeezy/retrieve/customer` — Tool to retrieve a specific customer by their ID. Use when you need detailed information about a single customer including their email, name, location, revenue metrics, and relationships to orders and
  - body: { id: string }
- `POST https://api.mcp.ai/api/lemon_squeezy/retrieve/discount` — Tool to retrieve a single discount by ID. Use when you need details about a specific discount.
  - body: { id: string }
- `POST https://api.mcp.ai/api/lemon_squeezy/retrieve/store` — Tool to retrieve a store by its ID. Use when you need to get detailed information about a specific store. Returns comprehensive store data including financial metrics, configuration, and related resou
  - body: { id: string }
- `POST https://api.mcp.ai/api/lemon_squeezy/retrieve/webhook` — Tool to retrieve a webhook by its ID. Use when you need to get details of a specific webhook configuration.
  - body: { id: string }
- `POST https://api.mcp.ai/api/lemon_squeezy/update/customer` — Tool to update an existing customer with the given ID. Use when you need to modify customer details like name, email, or address information. At least one attribute field must be provided to update.
  - body: { id: string, city?: string, name?: string, email?: string, region?: string, country?: string }
- `POST https://api.mcp.ai/api/lemon_squeezy/update/webhook` — Tool to update an existing webhook. Use when you need to modify the URL, events, or secret for a registered webhook.
  - body: { data: object }
- `POST https://api.mcp.ai/api/lemon_squeezy/validate/license` — Tool to validate a license key and optionally a specific license key instance. Use when you need to check if a license key is valid and active.
  - body: { instance_id?: string, license_key: string }

## Example prompts
- "What can I do in Lemon Squeezy?"
- "Show me a summary of my Lemon Squeezy account"

## More
- Page: https://mcp.ai/lemon_squeezy
- Agent spec (llms.txt): https://mcp.ai/lemon_squeezy/llms.txt
- Postman collection: https://mcp.ai/lemon_squeezy/postman.json
