lemonsqueezy
Server Details
MCP server for Lemon Squeezy — stores, products, orders, subscriptions, license keys.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4/5 across 18 of 18 tools scored.
Each tool targets a distinct resource and action (e.g., list, get, create, update, cancel). There is no overlap between tools; even similar resources like customers and orders are clearly separated.
All tools follow the pattern lemonsqueezy_{verb}_{noun}. Verbs are consistent (list, get, create, update, cancel). Plural nouns are used for list operations and singular for get operations, which is a standard and predictable convention.
With 18 tools, the surface covers all major entities (stores, products, variants, prices, customers, orders, subscriptions, invoices, license keys, discounts, checkouts, user). The count is well-scoped—neither too sparse nor overly numerous.
The tool set covers the core domain: read operations for all entities and write operations for subscriptions and checkout creation. Missing write operations like create/update customer or product, but these are often managed externally. Minor gap in not having a create_subscription tool, but checkout creation serves that purpose.
Available Tools
18 toolslemonsqueezy_cancel_subscriptionCancel subscriptionADestructiveInspect
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}.
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes | Subscription id to cancel (required). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the cancellation effect (remains active until end of period) and confirms it's a write operation (destructiveHint). It adds the HTTP method DELETE, which complements the annotation without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences plus a technical note. Every sentence adds value: verb, resource, timing, and API endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter. The description covers the action, effect, and technical detail. No output schema, but the behavioral effect is fully described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with description for subscription_id. The description does not add extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it cancels a LIVE subscription with specific verb and resource, and explains the post-cancellation behavior (active until end of billing period). It distinguishes from siblings like update_subscription and list_subscriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates this is for cancelling subscriptions and notes it affects a real customer, providing clear context. However, it does not explicitly mention when not to use or provide alternatives, though it's implied by the 'WRITE' label and the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_create_checkoutCreate checkoutADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | Store id (required). | |
| expires_at | No | ISO 8601 date-time when the checkout link expires. | |
| variant_id | Yes | Variant id to sell (required). | |
| custom_price | No | Override price in cents (integer). | |
| checkout_data | No | JSON:API checkout_data object (email, name, custom, discount_code, etc.). | |
| product_options | No | JSON:API product_options object (name, description, redirect_url, etc.). | |
| checkout_options | No | JSON:API checkout_options object (embed, media, button_color, etc.). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint: true, and description confirms it's a WRITE operation. Adds that it returns the checkout with its 'url', providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action type and purpose. No extraneous words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 7 parameters with nested objects, but no output schema. Description does not explain optional nested objects like checkout_data or product_options, which could be needed for correct usage. However, schema descriptions cover them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. Description mentions 'store + variant' but adds little beyond schema. The return value note is helpful but not about parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it creates a hosted checkout/payment link for a store and variant. Specific verb 'Create' and resource 'checkout' are mentioned. Distinct from sibling tools which are mostly read or update operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly clear when to use: when you need to create a checkout link. Sibling tools are not alternatives for this action, so no exclusion needed. However, no explicit 'when not to use' or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_get_customerGet a customerARead-onlyInspect
Get a single customer by id. API: GET /customers/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| customer_id | Yes | Customer id (required). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds the specific API path but does not disclose additional behavioral traits such as required permissions or response format. Acceptable baseline with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with the core action. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description combined with the schema is sufficient for a simple get-by-id operation. It clearly states the required parameter and the API endpoint, though return value details are omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the tool description does not add any parameter information beyond what the schema already provides. The baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'get' and resource 'customer', clearly indicating it retrieves a single customer by ID. The API endpoint is provided, which distinguishes it from sibling tools like list_customers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs. alternatives like lemonsqueezy_list_customers or when not to use it. The description assumes the agent already knows the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_get_orderGet an orderARead-onlyInspect
Get a single order by id. API: GET /orders/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| order_id | Yes | Order id (required). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description 'Get a single order' is consistent with the readOnlyHint annotation, but adds no additional behavioral context such as error handling, response structure, or authentication requirements. It provides minimal extra value beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loading the core action and API endpoint. No redundant or unnecessary information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (2 parameters, no output schema, simple read operation), the description is mostly adequate. It lacks any mention of return format or error cases, but for a straightforward tool, the completeness is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions. The description includes the API endpoint which implies the order_id maps to the path, but does not add significant meaning beyond the schema's existing descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a single order by id', specifying the action (get), resource (order), and identifier (by id). It also provides the API endpoint, making the purpose distinct from sibling tools that operate on different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like lemonsqueezy_list_orders for listing orders. There are no when-to-use, when-not-to-use, or prerequisite instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_get_storeGet a storeARead-onlyInspect
Get a single store by id. API: GET /stores/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| store_id | Yes | Store id (required). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, so the description adds only the API endpoint. No additional behavioral traits (rate limits, error handling) are disclosed, but the tool is simple and annotations carry part of the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no redundant words. The action and resource are front-loaded, making it efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-id tool with good annotations and schema, the description is largely sufficient. A brief note about return value would improve completeness, but it is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter information is already complete in the schema. The description reinforces the 'by id' aspect but adds no new semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a single store by id', specifying the verb, resource, and identifier. It also includes the API endpoint, distinguishing it from sibling tools like lemonsqueezy_list_stores.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., lemonsqueezy_list_stores for listing). The description does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_get_subscriptionGet a subscriptionARead-onlyInspect
Get a single subscription by id. API: GET /subscriptions/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| subscription_id | Yes | Subscription id (required). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint: true, so the description's addition of the API endpoint is minor. No further behavioral traits (e.g., auth, rate limits) are disclosed, but for a simple getter this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with one clear sentence and an API reference. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (single retrieval, no output schema), the description plus schema is sufficient. The API endpoint adds useful context. Slightly incomplete for complex use but fits the tool's nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add parameter information beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get a single subscription by id', using a specific verb and resource. It distinguishes from sibling tools like list_subscriptions, cancel_subscription, and update_subscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use vs alternatives. While the purpose is clear, the description does not provide when-not-to-use or mention sibling tools, leaving implicit usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_get_userGet authenticated userARead-onlyInspect
Get the currently authenticated user/account behind the API key. Good first call to confirm auth. API: GET /users/me.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the specific API endpoint 'GET /users/me' beyond the readOnlyHint annotation, confirming the read-only nature and providing the HTTP method. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, impactful sentences with zero wasted words. Front-loaded with the core purpose, followed by usage guidance and API reference.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description fully covers the purpose, usage context (auth confirmation), and API endpoint. Nothing is missing for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description does not need to add parameter details, meeting the baseline expectation for 0-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the currently authenticated user/account associated with the API key. This is a specific verb+resource that distinguishes it from sibling tools like lemonsqueezy_get_customer or lemonsqueezy_get_store.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions it is a good first call to confirm authentication, providing clear context for when to use it. While it doesn't explicitly state when not to use, the guidance is sufficient for an agent to understand its primary use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_list_customersList customersARead-onlyInspect
List customers, optionally filtered by store and/or email. API: GET /customers (filter[store_id], filter[email]).
| Name | Required | Description | Default |
|---|---|---|---|
| No | Filter to a customer email. | ||
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| store_id | No | Filter to a single store id. | |
| page_size | No | Results per page (JSON:API page[size], max 100). Default 10. | |
| page_number | No | Page number (JSON:API page[number]). Default 1. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. Description adds GET endpoint and filter context but no additional behavioral traits like rate limits or scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence front-loading purpose and key parameters. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately describes tool for listing with filters. Lacks pagination behavior info, but that is covered in schema descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions. Description adds only a summary of filter options, not exceeding schema detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List' and resource 'customers', with optional filters by store and email. Distinct from sibling 'get_customer' which implies single record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions optional filters (store, email) guiding parameter usage, but does not explicitly contrast with alternatives like 'get_customer' or other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_list_discountsList discountsARead-onlyInspect
List discounts, optionally filtered to one store. API: GET /discounts (filter[store_id]).
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| store_id | No | Filter to a single store id. | |
| page_size | No | Results per page (JSON:API page[size], max 100). Default 10. | |
| page_number | No | Page number (JSON:API page[number]). Default 1. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and description adds HTTP method and filter parameter. No contradiction, but no added behavioral traits like pagination limits or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero fluff. Purpose and API details front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with well-documented schema, description covers core purpose and main filter. Could optionally mention response format (array of discounts) for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage; description adds API path reference but no new meaning for existing parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List discounts' – specific verb and resource. Differentiates from 17 sibling list tools by targeting discounts specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage as a list/filter tool but no explicit when-to-use or when-not-to-use guidance. No alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_list_license_keysList license keysARead-onlyInspect
List license keys, optionally filtered by store, order, or product. API: GET /license-keys (filter[store_id], filter[order_id], filter[product_id]).
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| order_id | No | Filter to a single order id. | |
| store_id | No | Filter to a single store id. | |
| page_size | No | Results per page (JSON:API page[size], max 100). Default 10. | |
| product_id | No | Filter to a single product id. | |
| page_number | No | Page number (JSON:API page[number]). Default 1. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already declares this as a read-only operation. The description adds the API endpoint and filter parameters but does not discuss behavior such as pagination, rate limiting, or empty results. It adds moderate value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences, no redundant information, and the main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool, the description is adequate but lacks discussion of pagination (despite schema having page parameters) and return format. Given no output schema, the agent might need additional context on the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 6 parameters are described in the schema with full coverage. The description only mentions three filter options (store, order, product) without adding new semantic meaning. Thus, it provides marginal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'List license keys' and specifies optional filters by store, order, or product. It distinguishes itself from sibling list tools by naming the specific resource (license keys).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is provided. The agent must infer usage from the tool name and context. There is no mention of alternative tools or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_list_ordersList ordersARead-onlyInspect
List orders, optionally filtered by store and/or buyer email. API: GET /orders (filter[store_id], filter[user_email]).
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| store_id | No | Filter to a single store id. | |
| page_size | No | Results per page (JSON:API page[size], max 100). Default 10. | |
| user_email | No | Filter to a buyer email. | |
| page_number | No | Page number (JSON:API page[number]). Default 1. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so no contradiction. The description adds the API endpoint and filter details but does not disclose pagination behavior, rate limits, or any other behavioral traits. With annotations covering safety, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys purpose, optional filters, and the API endpoint. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (list with filters), and the description covers the core functionality. No output schema exists, but the API endpoint is mentioned; however, pagination and response format are not described, which might be needed for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description only restates the filter parameters (store_id, user_email) already in the schema, adding no extra meaning beyond providing the API parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists orders with optional filters by store and buyer email, distinguishing it from the sibling get_order tool. The verb 'List' and resource 'orders' are specific, and the scope (optionally filtered) is explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions optional filters (store_id, user_email), indicating when to use them. However, it does not explicitly contrast with alternative tools like get_order for individual retrieval, though the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_list_pricesList pricesARead-onlyInspect
List price models, optionally filtered to one variant. API: GET /prices (filter[variant_id]).
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| page_size | No | Results per page (JSON:API page[size], max 100). Default 10. | |
| variant_id | No | Filter to a single variant id. | |
| page_number | No | Page number (JSON:API page[number]). Default 1. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint. Description adds that it's a GET request with optional filter (variant_id). Provides useful behavioral insight beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, minimal waste, front-loaded action and primary filter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but parameter schema is fully described. Description covers core functionality. Pagination details are in schema. Adequate for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 4 parameters have schema descriptions (100% coverage). Description adds context by showing API syntax (filter[variant_id]), clarifying the variant_id parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action (list), resource (price models), and optional filtering. Distinguishes from sibling list tools for different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions optional filtering to a variant and API endpoint, but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives like list_variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_list_productsList productsARead-onlyInspect
List products, optionally filtered to one store. API: GET /products (filter[store_id]).
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| store_id | No | Filter to a single store id. | |
| page_size | No | Results per page (JSON:API page[size], max 100). Default 10. | |
| page_number | No | Page number (JSON:API page[number]). Default 1. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates read-only behavior. The description adds minimal extra context beyond that, simply stating 'list products'. No additional behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences that front-load the main action. Every word is useful, no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (list operation with optional filters) and good annotations, the description is mostly complete. It could mention pagination behavior or response structure, but the provided info (API endpoint) gives adequate context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already describes all parameters well. The description only mentions store_id and the API endpoint, not adding significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'list products' and the resource 'products'. It also mentions optional filtering by store_id, and references the API endpoint. This differentiates it from sibling tools like lemonsqueezy_list_stores or lemonsqueezy_list_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context (optional filtering by store) but lacks explicit guidance on when to use this tool versus alternatives. No 'when not to use' or comparison to sibling tools is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_list_storesList storesARead-onlyInspect
List all stores in the account. API: GET /stores.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| page_size | No | Results per page (JSON:API page[size], max 100). Default 10. | |
| page_number | No | Page number (JSON:API page[number]). Default 1. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only behavior (readOnlyHint=true). The description adds the API endpoint but no additional behavioral context such as rate limits, pagination behavior, or effect on account state. The information is consistent but does not exceed what is already known.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, plus a terse reference to the API endpoint. It is maximally concise while conveying the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with pagination and include options fully described in the schema, the description suffices. It does not mention return format or count, but given no output schema and the intuitive nature of list operations, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% for all three parameters (include, page_size, page_number), each with clear JSON:API descriptions. The description adds no parameter-level information beyond the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), resource ('stores'), and scope ('in the account'). It is unambiguous and distinct from sibling tools which list other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the basic purpose but provides no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. Given the simple nature of a list operation, this is adequate but not exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_list_subscription_invoicesList subscription invoicesARead-onlyInspect
List subscription invoices, optionally filtered by store, status, or refunded flag. API: GET /subscription-invoices (filter[store_id], filter[status], filter[refunded]).
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by invoice status (e.g. paid, void, refunded). | |
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| refunded | No | Filter by refunded flag. | |
| store_id | No | Filter to a single store id. | |
| page_size | No | Results per page (JSON:API page[size], max 100). Default 10. | |
| page_number | No | Page number (JSON:API page[number]). Default 1. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the description only needs to add context. It adds filter capabilities, which is helpful. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no unnecessary words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters and no output schema, the description covers filtering behavior but omits return format or pagination details. Acceptable for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all parameters. The description only mentions three of six filters, adding marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'List subscription invoices' and specifies optional filters, distinguishing this tool from other list tools for different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like list_subscriptions or list_orders. Usage is implied by the resource name, but no exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_list_subscriptionsList subscriptionsARead-onlyInspect
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]).
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by subscription status. | |
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| store_id | No | Filter to a single store id. | |
| page_size | No | Results per page (JSON:API page[size], max 100). Default 10. | |
| product_id | No | Filter to a single product id. | |
| user_email | No | Filter to a buyer email. | |
| variant_id | No | Filter to a single variant id. | |
| customer_id | No | Filter to a single customer id. | |
| page_number | No | Page number (JSON:API page[number]). Default 1. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so description adds only the API endpoint and filter names. No additional behavioral traits beyond what annotations provide, but no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence plus API reference, front-loaded with verb and resource. No unnecessary words, highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a list tool with 9 optional parameters and no output schema. Could mention pagination or return format, but the description combined with schema and annotations provides sufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for all parameters. The description lists filter names but does not add semantic depth beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List subscriptions' with explicit mention of rich filtering by store, status, product, variant, customer, or buyer email. Distinct from sibling tools like get_subscription (single) and cancel_subscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for listing subscriptions with filtering, but does not explicitly state when to use this vs alternatives like get_subscription or list_subscription_invoices. Lacks explicit exclusions or 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_list_variantsList variantsARead-onlyInspect
List variants (price/plan tiers), optionally filtered to one product. API: GET /variants (filter[product_id]).
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'. | |
| page_size | No | Results per page (JSON:API page[size], max 100). Default 10. | |
| product_id | No | Filter to a single product id. | |
| page_number | No | Page number (JSON:API page[number]). Default 1. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, so the description only adds minor context (GET /variants and filter). It does not contradict annotations. However, it does not disclose additional behavioral traits like pagination or rate limits; the schema already covers pagination details. The description contributes minimal value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no extraneous words. The first sentence front-loads the purpose, and the second provides the API endpoint and filter. Every sentence is earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (4 optional params, no output schema, readOnlyHint), the description is reasonably complete. It covers the core action and filter option. However, it lacks explicit mention of the return format (e.g., paginated list) or how to interpret the response, which could be inferred from the tool name but is not stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The tool description only mentions the product_id filter, repeating what's in the schema. No additional meaning or usage guidance for parameters like include or pagination is added. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List variants (price/plan tiers)' with a specific verb and resource, differentiating it from sibling tools like list_products or list_customers. The parenthetical explanation of variants as price/plan tiers adds clarity. The mention of optional filtering by product_id further specifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing variants, optionally filtered to one product, but does not explicitly state when to use this tool over alternatives or when not to use it. No exclusions or context about avoiding this tool for other purposes are provided, leaving the agent to infer from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lemonsqueezy_update_subscriptionUpdate subscriptionADestructiveInspect
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}.
| Name | Required | Description | Default |
|---|---|---|---|
| pause | No | Pause object (mode, resumes_at), or null to unpause. | |
| cancelled | No | Set true to cancel, false to un-cancel. | |
| variant_id | No | New variant id to switch the plan/tier to. | |
| billing_anchor | No | Day of month (1-31) to anchor billing to. | |
| subscription_id | Yes | Subscription id to update (required). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true. The description adds value by listing specific mutations and emphasizing effects on real billing. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Front-loaded with 'WRITE' for quick action inference. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not mention the return value (e.g., updated subscription object). For a mutation tool with 5 parameters and no output schema, this is a gap, but the main uses are well covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description groups parameters by purpose ('change plan/tier (variant_id), cancel, pause/unpause, or set the billing anchor'), adding semantic clarity beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('WRITE: Modify') and resource ('LIVE subscription'), lists exact actions (change plan/tier, cancel, pause/unpause, set billing anchor), and distinguishes from siblings by emphasizing real customer billing impact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the context ('LIVE subscription') and warns of real billing impact. However, it does not explicitly differentiate when to use this tool versus the sibling 'lemonsqueezy_cancel_subscription' for cancellation, nor provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!