Lemon Squeezy MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LEMONSQUEEZY_MODE | No | test (default) or live for the global main-key profile. Checked against native meta.test_mode before the first main API task; not proof of license mode. | test |
| LEMONSQUEEZY_API_KEY | No | Private main Bearer API key. Configure exactly one of LEMONSQUEEZY_API_KEY or LEMONSQUEEZY_TOKEN_FILE. Keys expire after one year; create/select a test or live key deliberately. | |
| LEMONSQUEEZY_ACCOUNTS | No | Private JSON array of unique profiles with name, api_key OR token_file, license_key OR license_file, and mode. Named profiles never inherit global or another profile's credentials. | |
| LEMONSQUEEZY_AUDIT_LOG | No | Optional private best-effort static guard-decision log; not a verified ledger or full access log. | |
| LEMONSQUEEZY_READ_ONLY | No | 1/true hides all 21 effects and directly refuses hidden confirmed calls through the actual handler. | |
| LEMONSQUEEZY_TOKEN_FILE | No | Absolute owner-private, token-only, regular non-symlink main-key file outside repositories. Configure exactly one of LEMONSQUEEZY_API_KEY or LEMONSQUEEZY_TOKEN_FILE. | |
| LEMONSQUEEZY_LICENSE_KEY | No | Independent purchased license key used by the License API. Configure exactly one of LEMONSQUEEZY_LICENSE_KEY or LEMONSQUEEZY_LICENSE_FILE. Never pass in tool/CLI arguments. | |
| LEMONSQUEEZY_LICENSE_FILE | No | Absolute owner-private, license-only, regular non-symlink file. Configure exactly one of LEMONSQUEEZY_LICENSE_KEY or LEMONSQUEEZY_LICENSE_FILE. No main API key required for the License API. | |
| LEMONSQUEEZY_DEFAULT_ACCOUNT | No | Exact configured default profile label selected when no --account is given. | |
| LEMONSQUEEZY_ALLOW_DESTRUCTIVE | No | 0/false refuses confirmed effects even when confirm is set. | |
| LEMONSQUEEZY_REQUEST_TIMEOUT_MS | No | Request timeout. Default 30000; local accepted range 100-300000 ms. | |
| LEMONSQUEEZY_MIN_REQUEST_INTERVAL_MS | No | Local request spacing. Default 1000; local accepted range 0-10000 ms; not distributed quota enforcement. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_affiliatesB | Retrieves a paginated list of all affiliates. |
| get_affiliateC | Retrieves the affiliate with the given ID. |
| create_checkoutC | Creates a unique checkout for a specific variant with specified attributes. |
| list_checkoutsC | Returns a paginated list of checkouts. |
| get_checkoutC | Retrieves the checkout with the given ID. |
| create_customerC | Creates a customer with given attributes. |
| list_customersC | Retrieves a paginated list of all customers. |
| get_customerB | Retrieves the customer with the given ID. |
| update_customerC | Updates the customer with the given ID and provided attributes. |
| list_discount_redemptionsB | Returns a paginated list of discount redemptions. |
| get_discount_redemptionC | Retrieves the discount redemption with the given ID. |
| create_discountD | Create a discount. |
| delete_discountC | Delete a discount with the given ID. |
| list_discountsC | Returns a paginated list of discounts. |
| get_discountC | Retrieves the discount with the given ID. |
| list_filesC | Returns a paginated list of files. |
| get_fileC | Retrieves the file with the given ID. |
| activate_licenseC | Use the selected private profile license credential for native activate license. No global API-key fallback; customer metadata stays private. |
| deactivate_licenseB | Use the selected private profile license credential for native deactivate license. No global API-key fallback; customer metadata stays private. |
| validate_licenseB | Use the selected private profile license credential for native validate license. No global API-key fallback; customer metadata stays private. |
| list_license_key_instancesB | Returns a paginated list of license key instances. |
| get_license_key_instanceC | Retrieves the license key instance with the given ID. |
| list_license_keysB | Returns a paginated list of license keys. |
| get_license_keyC | Retrieves the license key with the given ID. |
| update_license_keyC | Updates the license key with the given ID and provided attributes. |
| list_order_itemsC | Returns a paginated list of order items. |
| get_order_itemC | Retrieves the order item with the given ID. |
| generate_order_invoiceC | Generates a new invoice for the given order with given attributes. |
| refund_orderA | Issue the exact requested partial refund, or an explicitly named full refund. Local approval required; no automatic replay. |
| list_ordersC | Returns a paginated list of orders. |
| get_orderB | Retrieves the order with the given ID. |
| list_pricesC | Retrieves a paginated list of prices. |
| get_priceC | Retrieves the price with the given ID. |
| list_productsB | Retrieves a paginated list of all products. |
| get_productB | Retrieves the product with the given ID. |
| list_storesB | Retrieves a paginated list of all stores. |
| get_storeC | Retrieves the store with the given ID. |
| generate_subscription_invoiceC | Generates a new invoice for the given subscription with given parameters. |
| refund_subscription_invoiceA | Issue the exact requested partial refund, or an explicitly named full refund. Local approval required; no automatic replay. |
| list_subscription_invoicesB | Returns a paginated list of subscription invoices. |
| get_subscription_invoiceB | Retrieves the subscription invoice with the given ID. |
| list_subscription_itemsB | Returns a paginated list of subscriptions items. |
| get_subscription_item_current_usageB | Retrieves the unit usage for a subscription item for the current billing period. |
| get_subscription_itemC | Retrieves the subscription item with the given ID. |
| update_subscription_itemC | Updates the subscription with the given ID and provided attributes. |
| cancel_subscriptionC | Cancels an active subscription. |
| list_subscriptionsC | Returns a paginated list of subscriptions. |
| get_subscriptionC | Retrieves the subscription with the given ID. |
| update_subscriptionC | Updates the subscription with the given ID and provided attributes. |
| create_usage_recordD | Create a usage record. |
| list_usage_recordsC | Returns a paginated list of usage records. |
| get_usage_recordC | Retrieves the usage record with the given ID. |
| get_userB | Retrieves the currently authenticated user. |
| list_variantsB | Retrieves a paginated list of variants. |
| get_variantC | Retrieves the variant with the given ID. |
| create_webhookD | Creates a webhook. |
| delete_webhookC | Delete a webhook with the given ID. |
| list_webhooksC | Returns a paginated list of webhooks. |
| get_webhookC | Retrieves the webhook with the given ID. |
| update_webhookC | Updates the webhook with the given ID and provided attributes. |
| list_accountsB | Local profile labels/default/auth method only. No keys, token paths, provider identity or network request. |
| get_operation_schemaA | Local reviewed method/path/query/body schema and provenance for one native tool. No credentials or provider request. |
| preview_commerce_batchA | Local validation and SHA-256 of exact inputs, request order, selected profile label/mode and reviewed native schema. No provider requests, secret load, store ownership check or financial guarantee. |
| submit_commerce_batchA | Confirmed one-to-twenty ordered effects. Prevalidate all and check the exact review hash before the first request. Stop on first failure with known results and unattempted indices; no retry, transaction, rollback or implicit continuation. |
| export_resourcesA | Confirmed paginated JSON:API export to a new exclusive0600 file. Preserves data and included resources while redacting credentials/signed URLs. Uses native page counters, never follows links, downloads files or promises an atomic backup. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 65 tools
Most tools are clearly distinct list/get/create/update/delete operations on well-separated resources (products, orders, subscriptions, licenses, etc.). A few meta tools (preview/submit_commerce_batch, export_resources, get_operation_schema) and usage-related tools (get_usage_record vs get_subscription_item_current_usage) could cause minor confusion, but descriptions differentiate them.
All tool names follow a consistent snake_case verb_noun pattern (e.g., get_product, list_orders, create_checkout, update_subscription, cancel_subscription). Even the specialized tools (validate_license, submit_commerce_batch) follow this convention.
65 tools is heavy, but the server wraps a comprehensive e-commerce platform API covering ~15 distinct resources, so many tools are justified. However, the count is still high enough to risk selection complexity and could benefit from consolidation.
Core CRUD is present for customers, subscriptions, license keys, webhooks, and discounts, but several resources lack create/update/delete operations (e.g., products, variants, prices, files). Notable gaps will prevent agents from fully managing a store through this server alone.