Skip to main content
Glama

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.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsB

Average 3.7/5 across 18 of 18 tools scored. Lowest: 2.9/5.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct resource and action (get vs list for each entity, plus specific write operations). Filtering parameters further distinguish list tools. No overlapping purposes.

Naming Consistency5/5

All tools follow a consistent `lemonsqueezy_action_resource` pattern using lowercase and underscores. Actions are consistently get, list, create, cancel, or update.

Tool Count5/5

18 tools cover a broad set of resources (customers, orders, stores, subscriptions, discounts, license keys, prices, products, invoices, variants, checkouts) for a comprehensive e-commerce platform. Each tool earns its place.

Completeness3/5

While reading (list/get) is well-covered for most resources, creation and deletion are missing for many core entities (customers, products, orders, etc.), which may force agents to rely on external processes. Only subscriptions and checkouts have write support.

Available Tools

18 tools
lemonsqueezy_cancel_subscriptionCancel subscriptionA
Destructive
Inspect

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}.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYesSubscription id to cancel (required).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide destructiveHint, but the description adds that the subscription remains active until the period ends and moves to cancelled, plus notes it's a WRITE operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the action, and includes essential lifecycle and API detail without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with annotations, the description provides sufficient context, though it could briefly note the return behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the single parameter at 100%, and the description does not add new information beyond the schema's description, so baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 and explains the lifecycle, distinguishing it from update or list siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when cancellation is needed and warns it affects a real customer, but lacks explicit when-not-to-use or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemonsqueezy_create_checkoutCreate checkoutA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
store_idYesStore id (required).
expires_atNoISO 8601 date-time when the checkout link expires.
variant_idYesVariant id to sell (required).
custom_priceNoOverride price in cents (integer).
checkout_dataNoJSON:API checkout_data object (email, name, custom, discount_code, etc.).
product_optionsNoJSON:API product_options object (name, description, redirect_url, etc.).
checkout_optionsNoJSON:API checkout_options object (embed, media, button_color, etc.).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description explains the outcome (returns created checkout with url) and provides the API endpoint. The destructiveHint annotation aligns with the write operation. However, it does not detail potential side effects beyond creation, such as generating a shareable link or expiration behavior, which is partially covered by the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one sentence plus API endpoint. The key information is front-loaded with 'WRITE: Create a hosted checkout'. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with no output schema, the description adequately states the primary result (created checkout with url). It could mention more about the returned object's structure, but given the straightforward nature and the schema descriptions, it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 7 parameters. The description adds minimal extra meaning beyond naming the key required fields (store and variant). With full schema coverage, baseline is 3; the description does not significantly enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('create a hosted checkout / payment link'), specifies the resource ('store + variant'), and mentions the return value (the checkout with its 'url'). It distinguishes itself from sibling tools which are read, list, update, or cancel operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WRITE' prefix implies this is for creation. While it does not explicitly list when to use vs alternatives, the sibling tools are all different operations. The context is clear enough that an agent would use this when needing to create a checkout link.

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 customerB
Read-only
Inspect

Get a single customer by id. API: GET /customers/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
customer_idYesCustomer id (required).
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the HTTP method and endpoint, confirming a GET request, which aligns with the readOnlyHint annotation. However, it does not disclose any additional behavioral traits such as authentication requirements, rate limits, or error handling (e.g., what happens if the customer does not exist). Since the annotation already signals safety, the description adds minimal new behavioral information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences that immediately convey the purpose and the API endpoint. There is no redundant or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with only two parameters (one required) and no output schema, the description covers the essential purpose. The 'include' parameter is documented in the schema, and the description implicitly covers the core operation. It could mention the return structure, but given the simplicity, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description itself does not elaborate on parameter semantics beyond implying 'by id' for customer_id. While this does not add value beyond the schema, it does not detract. The baseline of 3 is appropriate given full schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'a single customer', and the retrieval criterion 'by id'. It also includes the API endpoint, which adds specificity. This distinguishes it from sibling list tools (e.g., lemonsqueezy_list_customers).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as the list_customers tool. There is no mention of prerequisites, limitations, or when not to use it. The agent must infer usage from the tool name and schema alone.

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 orderA
Read-only
Inspect

Get a single order by id. API: GET /orders/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
order_idYesOrder id (required).
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint=true already signals a safe read operation. The description adds the API endpoint (GET /orders/{id}) and basic function, but does not provide additional behavioral details such as rate limits, authentication requirements, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence stating the purpose plus the API endpoint. Every word is necessary and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with full schema coverage and no output schema, the description is nearly complete. It correctly identifies the tool's purpose and the required identifier, though it could briefly note that the order may not exist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well-documented. The description adds no further information about parameter syntax or semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title clearly indicate retrieving a single order. The description explicitly states 'Get a single order by id', which is specific and distinguishes from sibling tools like 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a specific order ID, but does not explicitly mention when not to use it or suggest alternatives. No comparison with similar tools beyond the name.

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 storeA
Read-only
Inspect

Get a single store by id. API: GET /stores/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
store_idYesStore id (required).
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the description's read-only nature is correctly implied. However, the description adds minimal behavioral context beyond the schema (only mentions the API endpoint). It does not disclose error handling, pagination, or limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no wasted words. The first sentence directly states the purpose, making it easy for the agent to quickly understand the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with good schema coverage and annotations, the description adequately specifies the resource and identifier. The optional include parameter is mentioned in the schema. Missing explicit mention of the return type, but no output schema exists to compound the issue.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description mentions 'by id' but does not add new parameter-level details beyond what the schema provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'store', and the identifier 'by id'. It is distinct from siblings like lemonsqueezy_list_stores which lists multiple stores, and from other get tools targeting different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., when to use list_stores instead). No mention of prerequisites or contexts where this tool is appropriate or not.

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 subscriptionA
Read-only
Inspect

Get a single subscription by id. API: GET /subscriptions/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
subscription_idYesSubscription id (required).
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare 'readOnlyHint: true', and the description adds the API endpoint and that it fetches a single subscription by ID. No additional behavioral details (e.g., error handling, rate limits) are provided 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: one stating the purpose and one providing the API endpoint. It is concise, front-loaded, and contains no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with no output schema, the description is largely complete, including the API endpoint. It could be slightly improved by mentioning the return type, but is sufficient given the context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are well-described in the schema. The description adds no additional meaning for parameters beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'a single subscription by id', distinguishing it from list and update operations among sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a specific subscription ID is known, but does not explicitly state when to use this tool versus alternatives like 'lemonsqueezy_list_subscriptions' or provide 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_get_userGet authenticated userA
Read-only
Inspect

Get the currently authenticated user/account behind the API key. Good first call to confirm auth. API: GET /users/me.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds context that it confirms auth and provides the API endpoint (GET /users/me), which is helpful. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences: first states purpose, second adds usage guidance. Includes API endpoint. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 or output schema, the description covers the essential: what it does, return value (user/account), usage hint, and API endpoint. Could optionally mention that no additional permissions are needed, but current content is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (schema coverage 100%), so baseline is 4. Description doesn't need to add parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the currently authenticated user/account behind the API key', specifying the verb and resource. It uniquely identifies this tool among siblings that retrieve different entities (customers, orders, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Good first call to confirm auth', providing a clear use case. It implies using this tool to verify authentication before other calls, though it doesn't explicitly state when not to use or name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemonsqueezy_list_customersList customersB
Read-only
Inspect

List customers, optionally filtered by store and/or email. API: GET /customers (filter[store_id], filter[email]).

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoFilter to a customer email.
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
store_idNoFilter to a single store id.
page_sizeNoResults per page (JSON:API page[size], max 100). Default 10.
page_numberNoPage number (JSON:API page[number]). Default 1.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

ReadOnlyHint annotation already indicates safety; description confirms GET endpoint. No extra behavioral traits disclosed (e.g., pagination behavior, rate limits, data freshness). Adequate given annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. Front-loaded with purpose, then API detail. Highly concise and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema; description does not mention return structure (e.g., paginated list of customers). Ranks adequate as schema covers parameters and annotations ensure safety, but missing output context lowers completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline is 3. Description adds value by highlighting store and email filters with JSON:API syntax, but omits include and pagination parameters. Marginal improvement over schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists customers with optional filters, referencing the API endpoint. Distinguishes from siblings like 'get_customer' through the verb 'list', though not explicitly contrasting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'get_customer' for single customers, or other list tools. Agent must infer from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemonsqueezy_list_discountsList discountsA
Read-only
Inspect

List discounts, optionally filtered to one store. API: GET /discounts (filter[store_id]).

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
store_idNoFilter to a single store id.
page_sizeNoResults per page (JSON:API page[size], max 100). Default 10.
page_numberNoPage number (JSON:API page[number]). Default 1.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true. The description adds the API endpoint and filter parameter, but does not disclose other behavioral traits like pagination or default values beyond schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no unnecessary words. It efficiently conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with no output schema, the description covers the essential purpose and filter. It could mention the JSON:API format, but overall it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are described. The description reiterates the store filter but adds no new semantics beyond the existing parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists discounts, optionally filtered by store. This distinguishes it from sibling tools like list_customers or list_orders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions optional filtering to one store, providing some usage context, but does not explicitly state when to use this tool versus alternatives or give exclusions.

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 keysB
Read-only
Inspect

List license keys, optionally filtered by store, order, or product. API: GET /license-keys (filter[store_id], filter[order_id], filter[product_id]).

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
order_idNoFilter to a single order id.
store_idNoFilter to a single store id.
page_sizeNoResults per page (JSON:API page[size], max 100). Default 10.
product_idNoFilter to a single product id.
page_numberNoPage number (JSON:API page[number]). Default 1.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description need not repeat safety. The description adds the HTTP method (GET) and filter parameters, but does not disclose pagination behavior, default page size, or any potential rate limits. With high annotation coverage, the description adds minimal behavioral context beyond 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two sentences totaling 25 words. It front-loads the core purpose and follows with the API endpoint for developer reference. No unnecessary information is included, and the structure is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema, the description should indicate what the tool returns (e.g., a list of license keys) and mention pagination defaults. While the schema documents page_size and page_number, the description does not clarify that the response is paginated or that default page size is 10. For a list tool with six optional parameters, the description is adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 6 parameters, so the baseline is 3. The description does not add parameter-specific details beyond mentioning the filter options for store_id, order_id, and product_id. The API path and filter parameter names are provided, but the schema already covers each parameter's meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'license keys', making the purpose evident. It also mentions optional filtering by store, order, or product. However, it does not explicitly distinguish from sibling list tools, though the resource is unique among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus other list tools or alternatives. It does not mention prerequisites, exclusions, or context for filtering. The lack of usage context forces the agent to rely on tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemonsqueezy_list_ordersList ordersA
Read-only
Inspect

List orders, optionally filtered by store and/or buyer email. API: GET /orders (filter[store_id], filter[user_email]).

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
store_idNoFilter to a single store id.
page_sizeNoResults per page (JSON:API page[size], max 100). Default 10.
user_emailNoFilter to a buyer email.
page_numberNoPage number (JSON:API page[number]). Default 1.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates no destructive behavior. The description adds the API endpoint and filter syntax, which is helpful context beyond annotations. No contradictions found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with two sentences. The first sentence gives the core purpose and filters, the second adds API details. Every word adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with well-documented schema, the description covers the essential purpose and filter options. It omits explicit pagination details, but those are in the schema. No output schema exists, so return values are not required. Overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description only repeats the filter parameters without adding new meaning. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists orders and specifies optional filters (by store and/or buyer email). It uses a specific verb-resource combination, distinguishing it from siblings like lemonsqueezy_get_order which targets a single order.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions optional filters, providing clear context for when to use them. However, it doesn't explicitly state when not to use this tool (e.g., for a specific order) or name alternatives like lemonsqueezy_get_order. This is a minor omission.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemonsqueezy_list_pricesList pricesA
Read-only
Inspect

List price models, optionally filtered to one variant. API: GET /prices (filter[variant_id]).

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
page_sizeNoResults per page (JSON:API page[size], max 100). Default 10.
variant_idNoFilter to a single variant id.
page_numberNoPage number (JSON:API page[number]). Default 1.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as readOnlyHint=true. The description adds the API endpoint and filter detail, but does not elaborate on pagination behavior, rate limits, or other behavioral traits beyond what the schema provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very brief and front-loaded with essential information, though it could benefit from slightly more context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not mention response structure (no output schema), pagination defaults, or other contextual details that would help an agent fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters documented), so the description adds limited additional meaning beyond noting the filter[variant_id] usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'List price models' and specifies optional filtering by variant_id, clearly distinguishing from sibling tools that list other entities like products or customers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions optional filtering but does not provide explicit guidance on when to use this tool versus alternatives, nor does it outline 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_list_productsList productsA
Read-only
Inspect

List products, optionally filtered to one store. API: GET /products (filter[store_id]).

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
store_idNoFilter to a single store id.
page_sizeNoResults per page (JSON:API page[size], max 100). Default 10.
page_numberNoPage number (JSON:API page[number]). Default 1.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds value by disclosing the API endpoint (GET /products) and the filter parameter (filter[store_id]). This goes beyond what annotations provide, giving the agent useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with exactly two sentences and no extraneous words. It is front-loaded with the core purpose and follows with a relevant detail about the API endpoint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (list with optional filter, no output schema), the description covers the essential purpose and filter option. It lacks details about response structure or pagination behavior, but those are partially covered by the input schema and common API patterns. It is sufficient for a simple read-only list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 mentions the store_id filter parameter, which adds some context beyond the schema, but does not elaborate on other parameters like include, page_size, or page_number. The schema already describes these adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List products' with a specific verb and resource, and mentions the optional store filter. It effectively distinguishes from sibling tools like lemonsqueezy_list_orders or lemonsqueezy_list_customers by explicitly naming the resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description hints at when to use the tool (listing products, optionally filtered by store) but does not explicitly mention when not to use it or compare it to alternative tools. However, since sibling tools are different resources, the guidance is implicitly clear by the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemonsqueezy_list_storesList storesA
Read-only
Inspect

List all stores in the account. API: GET /stores.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
page_sizeNoResults per page (JSON:API page[size], max 100). Default 10.
page_numberNoPage number (JSON:API page[number]). Default 1.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. Description adds the API endpoint, providing some extra context. No disclosure of pagination or other behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with action. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool, description is adequate. Missing mention of return format (array of stores), but given simplicity and sibling differentiation, high completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with descriptions for all three parameters. Description adds no additional parameter information, meeting baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List all stores in the account', specifying verb and resource. Differentiates from siblings which focus on other entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to list vs. get a specific store (sibling get_store). Implied use is listing all, but no exclusions or context.

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 invoicesC
Read-only
Inspect

List subscription invoices, optionally filtered by store, status, or refunded flag. API: GET /subscription-invoices (filter[store_id], filter[status], filter[refunded]).

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by invoice status (e.g. paid, void, refunded).
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
refundedNoFilter by refunded flag.
store_idNoFilter to a single store id.
page_sizeNoResults per page (JSON:API page[size], max 100). Default 10.
page_numberNoPage number (JSON:API page[number]). Default 1.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds the filtering capability and API endpoint but does not disclose pagination behavior, response format, or any side effects. Little 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence covering purpose and filters, plus API endpoint reference. Front-loaded and efficient, though the API detail could be formatted as a side note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description does not explain what the response contains (e.g., list of invoice objects, pagination details). For a tool with pagination parameters, this is a notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already documented. The description mentions three filters (store, status, refunded) but adds minimal extra context beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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' with optional filters. It uses a specific verb and resource, but does not differentiate from sibling list tools like list_subscriptions or list_orders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as list_subscriptions (which also lists invoices but with different scoping) or when filters are required. The description simply states it lists invoices without any usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemonsqueezy_list_subscriptionsList subscriptionsB
Read-only
Inspect

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]).

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by subscription status.
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
store_idNoFilter to a single store id.
page_sizeNoResults per page (JSON:API page[size], max 100). Default 10.
product_idNoFilter to a single product id.
user_emailNoFilter to a buyer email.
variant_idNoFilter to a single variant id.
customer_idNoFilter to a single customer id.
page_numberNoPage number (JSON:API page[number]). Default 1.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds the API endpoint and filtering context. However, it does not disclose any additional behavioral traits such as pagination behavior, rate limits, or data freshness, which would be valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately conveys the purpose and key filtering capabilities, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 9 parameters and no output schema, the description lacks details about return format (e.g., paginated list), ordering, or any constraints beyond filtering. For a list tool, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description lists some filter categories but does not add significant meaning beyond the schema's own parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and the resource 'subscriptions' with rich filtering options, distinguishing it from sibling tools that operate on single subscriptions or other entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like lemonsqueezy_get_subscription or when to avoid it. The description only explains what it does, not when to apply it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemonsqueezy_list_variantsList variantsA
Read-only
Inspect

List variants (price/plan tiers), optionally filtered to one product. API: GET /variants (filter[product_id]).

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoComma-separated related resources to sideload (JSON:API include=), e.g. 'store,variant'.
page_sizeNoResults per page (JSON:API page[size], max 100). Default 10.
product_idNoFilter to a single product id.
page_numberNoPage number (JSON:API page[number]). Default 1.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. Description adds the API endpoint and filter parameter but doesn't elaborate on pagination or result format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence efficiently conveys purpose and key filter option. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple list tool with good annotations; lacks description of return format but includes API reference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema provides full descriptions for all parameters. The description adds minimal value beyond the schema by referencing the filter[product_id] syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool lists variants (price/plan tiers) and mentions optional filtering by product. Distinguishes from sibling list tools targeting other resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage with optional product_id filter, but no explicit guidance on when to use this tool versus alternatives like list_prices or list_products.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lemonsqueezy_update_subscriptionUpdate subscriptionA
Destructive
Inspect

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}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pauseNoPause object (mode, resumes_at), or null to unpause.
cancelledNoSet true to cancel, false to un-cancel.
variant_idNoNew variant id to switch the plan/tier to.
billing_anchorNoDay of month (1-31) to anchor billing to.
subscription_idYesSubscription id to update (required).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already set destructiveHint=true. The description adds context that it affects 'a real customer's billing' and lists concrete modifications, which is helpful 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. Front-loaded with 'WRITE:' to signal action type, then lists possible modifications clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Mutation tool with no output schema; description does not mention return values. While it provides intent, it could be more complete by hinting at the response structure or error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters with descriptions (100% coverage). The description adds a high-level summary but no additional meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Modify), resource (LIVE subscription), and specific changes (plan/tier, cancel, pause/unpause, billing anchor). It distinguishes from sibling tools like cancel_subscription by covering a broader set of modifications.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like cancel_subscription. The description does not specify prerequisites, exclusions, or preferred scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    B
    maintenance
    Enables natural language interaction with Lemon Squeezy accounts via MCP tools for managing subscriptions, orders, discounts, license keys, and more, with built-in security and audit logging.
    22
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for PayMongo payment gateway (Philippines). Supports payment intents, sources, payments, refunds, and checkout sessions via Basic Auth.
    24
    12
    1
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.