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.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

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. Cross-store note: LEMONSQUEEZY_ALLOWED_STORE_IDS does NOT gate this tool -- it has no storeId field and no parent ID filter to scope by, so it returns every store the API key can see, including stores outside the allowlist. Pair with a scoped LemonSqueezy API key for true cross-store enforcement -- the API key's visibility is the true boundary.

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'; setting it here is the same operation as ls_archive_customer and is treated as destructive (rate-limited and audited). Other field edits are not.

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_invoiceB

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. Pausing (pause: 'void' or 'free') or switching plan (variantId) is customer-impacting and is treated as destructive (rate-limited and audited); resuming and the billing-neutral edits are not. 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_invoiceA

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: LEMONSQUEEZY_ALLOWED_STORE_IDS does NOT gate this tool -- it has no storeId field and no parent ID filter to scope by, so it returns affiliates tied to every store the API key can see, including non-allowed ones. 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