Skip to main content
Glama
YawLabs

@yawlabs/lemonsqueezy-mcp

by YawLabs

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LEMONSQUEEZY_API_KEYNoLemonSqueezy API token.
LEMONSQUEEZY_API_KEY_COMMANDNoCommand whose stdout produces the API key. Overrides LEMONSQUEEZY_API_KEY.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
ls_get_userA

Get the authenticated user's information including name, email, and avatar.

ls_get_storeA

Get a specific store by ID, including name, slug, currency, and sales statistics.

ls_list_storesA

List all stores for the authenticated user. Results are paginated — check meta.page in the response for currentPage, lastPage, and total.

ls_get_customerA

Get a specific customer by ID, including name, email, city, country, MRR, total revenue, and customer portal URL.

ls_list_customersA

List all customers, optionally filtered by store or email. Results are paginated — check meta.page in the response for currentPage, lastPage, and total.

ls_create_customerA

Create a new customer in a store.

ls_update_customerA

Update an existing customer's name, email, city, region, country, or status. The only supported status value is 'archived' — use ls_archive_customer for the dedicated, audit-tagged path.

ls_archive_customerA

Archive a customer. Sets their status to 'archived'. This is reversible by updating their status back.

ls_get_productA

Get a specific product by ID, including name, description, price, and status.

ls_list_productsA

List all products, optionally filtered by store. Results are paginated — check meta.page in the response for currentPage, lastPage, and total.

ls_get_variantA

Get a specific product variant by ID, including price, billing interval, and trial settings.

ls_list_variantsA

List all variants, optionally filtered by product. Results are paginated — check meta.page in the response for currentPage, lastPage, and total. Cross-store note: when LEMONSQUEEZY_ALLOWED_STORE_IDS is set, this tool requires at least one of: productId. Even with that set, pair with a scoped LemonSqueezy API key for true cross-store enforcement -- the API key's visibility is the true boundary.

ls_get_priceA

Get a specific price by ID, including amount, currency, and billing interval.

ls_list_pricesA

List all prices, optionally filtered by variant. Results are paginated — check meta.page in the response for currentPage, lastPage, and total. Cross-store note: when LEMONSQUEEZY_ALLOWED_STORE_IDS is set, this tool requires at least one of: variantId. Even with that set, pair with a scoped LemonSqueezy API key for true cross-store enforcement -- the API key's visibility is the true boundary.

ls_get_fileA

Get a specific file by ID, including name, size, download URL, and associated variant.

ls_list_filesA

List all files, optionally filtered by variant. Results are paginated — check meta.page in the response for currentPage, lastPage, and total. Cross-store note: when LEMONSQUEEZY_ALLOWED_STORE_IDS is set, this tool requires at least one of: variantId. Even with that set, pair with a scoped LemonSqueezy API key for true cross-store enforcement -- the API key's visibility is the true boundary.

ls_get_orderA

Get a specific order by ID, including status, total, currency, customer info, and payment details.

ls_list_ordersA

List all orders, optionally filtered by store or user email. Results are paginated — check meta.page in the response for currentPage, lastPage, and total.

ls_generate_order_invoiceA

Generate a PDF invoice for an order. Returns a download URL for the invoice.

ls_refund_orderA

Issue a refund for an order. This is irreversible — the refund amount is in cents (e.g. 1000 = $10.00).

ls_get_order_itemA

Get a specific order item by ID, including product name, variant, price, and quantity.

ls_list_order_itemsA

List all order items, optionally filtered by order or product. Results are paginated — check meta.page in the response for currentPage, lastPage, and total. Cross-store note: when LEMONSQUEEZY_ALLOWED_STORE_IDS is set, this tool requires at least one of: orderId, productId, variantId. Even with that set, pair with a scoped LemonSqueezy API key for true cross-store enforcement -- the API key's visibility is the true boundary.

ls_get_subscriptionA

Get a specific subscription by ID, including status, billing interval, renewal date, and customer info.

ls_list_subscriptionsA

List all subscriptions, optionally filtered by store, order, product, variant, or status. Results are paginated — check meta.page in the response for currentPage, lastPage, and total.

ls_update_subscriptionA

Update a subscription. Can change the variant (plan switch), pause/unpause, set billing anchor, or update invoice details. Use ls_cancel_subscription for cancellation.

ls_cancel_subscriptionA

Cancel a subscription. The subscription remains active until the end of the current billing period, then expires.

ls_get_subscription_invoiceA

Get a specific subscription invoice by ID, including status, total, billing reason, and payment details.

ls_list_subscription_invoicesA

List all subscription invoices, optionally filtered by store, subscription, or status. Results are paginated — check meta.page in the response for currentPage, lastPage, and total.

ls_generate_subscription_invoiceB

Generate a PDF invoice for a subscription invoice. Returns a download URL.

ls_refund_subscription_invoiceA

Issue a refund for a subscription invoice. This is irreversible — the refund amount is in cents (e.g. 1000 = $10.00).

ls_get_subscription_itemA

Get a specific subscription item by ID, including quantity, pricing, and associated subscription.

ls_list_subscription_itemsA

List all subscription items, optionally filtered by subscription or price. Results are paginated — check meta.page in the response for currentPage, lastPage, and total. Cross-store note: when LEMONSQUEEZY_ALLOWED_STORE_IDS is set, this tool requires at least one of: subscriptionId, priceId. Even with that set, pair with a scoped LemonSqueezy API key for true cross-store enforcement -- the API key's visibility is the true boundary.

ls_update_subscription_itemA

Update a subscription item's quantity. Used for seat-based or quantity-based billing.

ls_get_subscription_item_usageA

Get the current usage for a metered subscription item within the current billing period.

ls_get_usage_recordA

Get a specific usage record by ID, including quantity and action type.

ls_list_usage_recordsA

List all usage records, optionally filtered by subscription item. Results are paginated — check meta.page in the response for currentPage, lastPage, and total. Cross-store note: when LEMONSQUEEZY_ALLOWED_STORE_IDS is set, this tool requires at least one of: subscriptionItemId. Even with that set, pair with a scoped LemonSqueezy API key for true cross-store enforcement -- the API key's visibility is the true boundary.

ls_create_usage_recordA

Report usage for a metered subscription item. Use 'increment' action to add to the current usage, or 'set' to replace it.

ls_get_discountA

Get a specific discount by ID, including code, amount, type, and usage limits.

ls_list_discountsA

List all discounts, optionally filtered by store. Results are paginated — check meta.page in the response for currentPage, lastPage, and total.

ls_create_discountB

Create a new discount code. Supports percentage or fixed amount discounts with optional duration and usage limits.

ls_delete_discountA

Permanently delete a discount. This is irreversible.

ls_get_discount_redemptionA

Get a specific discount redemption by ID, showing when and where a discount was used.

ls_list_discount_redemptionsA

List all discount redemptions, optionally filtered by discount or order. Results are paginated — check meta.page in the response for currentPage, lastPage, and total. Cross-store note: when LEMONSQUEEZY_ALLOWED_STORE_IDS is set, this tool requires at least one of: discountId, orderId. Even with that set, pair with a scoped LemonSqueezy API key for true cross-store enforcement -- the API key's visibility is the true boundary.

ls_get_license_keyA

Get a specific license key by ID, including key value, status, activation limit, and expiry date.

ls_list_license_keysA

List all license keys, optionally filtered by store, order, or product. Results are paginated — check meta.page in the response for currentPage, lastPage, and total.

ls_update_license_keyB

Update a license key's activation limit, expiry date, or disabled status. Setting disabled: true revokes customer access and is treated as destructive (rate-limited and audited).

ls_get_license_key_instanceA

Get a specific license key instance (activation) by ID, including instance name and creation date.

ls_list_license_key_instancesA

List all license key instances (activations), optionally filtered by license key. Results are paginated — check meta.page in the response for currentPage, lastPage, and total. Cross-store note: when LEMONSQUEEZY_ALLOWED_STORE_IDS is set, this tool requires at least one of: licenseKeyId. Even with that set, pair with a scoped LemonSqueezy API key for true cross-store enforcement -- the API key's visibility is the true boundary.

ls_get_checkoutA

Get a specific checkout by ID, including URL, expiry, and custom data.

ls_list_checkoutsA

List all checkouts, optionally filtered by store or variant. Results are paginated — check meta.page in the response for currentPage, lastPage, and total.

ls_create_checkoutA

Create a new checkout URL for a product variant. Returns a URL where the customer can complete their purchase. Supports custom pricing, prefilled customer data, and checkout customization.

ls_get_webhookA

Get a specific webhook by ID, including URL, events, and last sent timestamp.

ls_list_webhooksA

List all webhooks, optionally filtered by store. Results are paginated — check meta.page in the response for currentPage, lastPage, and total.

ls_create_webhookA

Create a new webhook to receive event notifications. The signing secret is returned only once — save it immediately.

ls_update_webhookA

Update an existing webhook's URL, events, or secret. Setting secret rotates the signing secret and breaks signature verification on the receiver until they update their copy -- this is treated as destructive (rate-limited and audited).

ls_delete_webhookA

Permanently delete a webhook. This is irreversible.

ls_activate_licenseA

Activate a license key for an instance. Does not require an API key — uses the license key itself for auth.

ls_validate_licenseA

Validate a license key or specific instance. Does not require an API key — uses the license key itself for auth.

ls_deactivate_licenseA

Deactivate a license key instance. Does not require an API key — uses the license key itself for auth.

ls_get_affiliateA

Get a specific affiliate by ID, including commission rate, status, and earnings.

ls_list_affiliatesA

List all affiliates for the authenticated user's stores, optionally filtered by user email. Results are paginated — check meta.page in the response for currentPage, lastPage, and total. Cross-store note: when LEMONSQUEEZY_ALLOWED_STORE_IDS is set, this tool can still return affiliates tied to non-allowed stores -- the endpoint has no parent ID filter to scope by. Pair with a scoped LemonSqueezy API key for true cross-store enforcement -- the API key's visibility is the true boundary.

ls_sink_events_listA

List webhook events the sink has received, optionally filtered. Use since (received_at timestamp, exclusive) to checkpoint. Requires the sink at LEMONSQUEEZY_SINK_URL with LEMONSQUEEZY_SINK_ADMIN_TOKEN.

ls_sink_event_mark_processedA

Mark a sink event as processed by your consumer. Idempotent.

ls_sink_statsA

Get sink totals: total events, unprocessed count, last-received timestamp.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
Recent destructive-call audit logThe most recent destructive tool calls and their outcomes (rate limit, refund cap, etc.). Bounded ring buffer; resets on server restart.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/YawLabs/lemonsqueezy-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server