Skip to main content
Glama
YawLabs

@yawlabs/lemonsqueezy-mcp

by YawLabs

ls_get_variant

Read-onlyIdempotent

Retrieve a product variant by ID to view billing interval and trial settings. Use the variant's price resource, not the price field, for accurate per-unit pricing.

Instructions

Get a specific product variant by ID, including billing interval and trial settings. WARNING: do NOT read price as the amount charged. For usage-based, per-seat or otherwise tiered variants it is vestigial and commonly reads the same value across products that bill very differently. The authoritative per-unit price lives on the variant's PRICE resource -- call ls_list_prices with this variantId, take the newest record by created_at, and read its effective_unit_price.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
includeNoComma-separated related resources to include (e.g. 'product,files')
variantIdYesThe variant ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.10.10

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark the tool read-only, idempotent, and non-destructive, so the description's added warning about the vestigial `price` field is valuable behavioral disclosure beyond the structured data. It also reveals that the response includes billing interval and trial settings, and gives a step-by-step alternative for the true price. There is no contradiction with 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.

Conciseness5/5

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

The description is three sentences: one for purpose, two for the critical pricing warning. The warning is front-loaded and essential to safe use of the tool, and no sentence is filler. It is compact given the complexity of the caveat.

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

Completeness5/5

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 no output schema, the description covers the most important trap (the misleading `price` field) and directs the agent to the correct price source. The `include` parameter is documented in the schema, and the read-only safety profile is in annotations, so an agent has everything needed to call this tool correctly.

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 already provides 100% parameter descriptions: variantId as 'The variant ID' and include as 'Comma-separated related resources.' The description doesn't add new parameter semantics beyond using variantId in its warning, so it stays at the baseline for high schema coverage.

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 opens with 'Get a specific product variant by ID,' a specific verb and resource, and adds the detail that billing interval and trial settings are included. This clearly distinguishes it from listing tools like ls_list_variants and from product-level tools like ls_get_product. The purpose is unambiguous.

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 does not explicitly frame when to use this tool versus alternatives, but it provides a clear directive: do not trust the `price` field and instead call `ls_list_prices` with this variantId to retrieve the authoritative price. This is practical guidance for when the agent needs pricing information, though it doesn't spell out exclusions such as 'use ls_list_variants for a list.' Overall 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.