Gooten MCP by usefulapi
Server Details
Browse the Gooten catalog, stock, shipping and price quotes; search orders and cancel items.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 17 tools
Tools generally target distinct resources and actions, with no true duplicates. There is some potential overlap among get_price_estimate, get_shipping_estimate, and get_shipping_options, and between catalog products and print-ready products, but the descriptions clarify the boundaries.
All tool names use a consistent gooten_ snake_case prefix with predictable verb_noun phrasing such as get_order, list_products, search_orders, cancel_order_items, and validate_address. Minor longer names like get_order_billing remain readable and consistent.
The 17 tools cover a broad print-on-demand surface spanning catalog, print-ready products, shipping, orders, and billing. This is slightly above the typical 3-15 range but reasonable for the domain, with each tool serving a distinct workflow.
The surface has strong read, quote, cancel, status-change, and address-validation coverage. However, there is no create/place-order tool despite price-estimate descriptions referencing placing an order, and no direct order update for items or shipping address, leaving a notable core lifecycle gap.
Available Tools
17 toolsgooten_cancel_order_itemsCancel order itemsADestructiveIdempotentInspect
WRITE: cancel specific items of an order (cannot be undone). Only items of orders in a pre-production status can be cancelled. Pass the numeric Gooten order id and the order item ids (OrderItemId from gooten_get_order). PUT /orderCancel.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Numeric Gooten order id (GootenId). | |
| order_item_ids | Yes | Order item ids to cancel (OrderItemId), 1-100. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds genuinely new behavioral context: the cancellation is irreversible ('cannot be undone') and is gated on a pre-production order status, an eligibility rule absent from annotations and schema. It also names the underlying endpoint (PUT /orderCancel). It doesn't say what happens to the remaining items or order status after a partial cancel.
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 sentences, front-loaded with the 'WRITE:' severity marker, then eligibility, then call shape. Every clause carries information an agent needs and nothing is repeated verbatim from annotations or schema.
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 two-parameter destructive write with no output schema, the description covers severity, reversibility, eligibility, and parameter sourcing, which is close to sufficient. The remaining gap is the outcome of a partial cancel (resulting order/item state), which the agent must infer.
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 the baseline would be 3; the description earns an extra point by specifying that order_id is the numeric Gooten id and that order_item_ids are the OrderItemId values retrieved from gooten_get_order, giving the agent parameter provenance the schema does not. The 1-100 array bound is left to the schema, which already states it.
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?
States a specific verb and resource ('cancel specific items of an order') and scopes it to a subset of the order rather than the whole order. It does not explicitly name how this differs from the sibling gooten_set_order_status, which is the closest alternative for order-level changes, so it lands at 4 rather than 5.
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?
Gives a concrete eligibility precondition ('Only items of orders in a pre-production status can be cancelled') and points at gooten_get_order as the source of OrderItemId, which tells the agent how to prepare the call. It stops short of naming an explicit fallback when the order is past pre-production (e.g. set_order_status), so there is no full when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_check_stockCheck stock for SKUsARead-onlyInspect
Which of the given SKUs are out of stock for a destination (country, state, postal code). Returns only the out-of-stock SKUs; an empty list means all are available. Unknown SKUs are an error. POST /variantstatus (a read: nothing is changed).
| Name | Required | Description | Default |
|---|---|---|---|
| skus | Yes | SKUs to check (1-50). | |
| state | No | Shipping state/province code, e.g. NY (omit for countries without states). | |
| postal_code | Yes | Shipping postal code. | |
| country_code | Yes | 2-letter ISO 3166-1 country code, e.g. US. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds useful behavioral detail: only out-of-stock SKUs are returned, an empty list means all are available, unknown SKUs are an error, and the POST endpoint is explicitly a read. This goes meaningfully beyond the annotations, though it does not discuss auth or rate limits.
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 compact sentences with the core question front-loaded. Each sentence adds useful information: return semantics, error behavior, and the read-only nature of the POST 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?
For a four-parameter read-only tool with full schema coverage and no output schema, the description supplies the important return behavior and error condition. Nothing essential for correct invocation is missing.
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 meanings are already well documented by the schema. The description only restates that destination includes country, state, and postal code, adding no meaningful syntax or format detail beyond the structured fields.
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 states a specific operation and resource: identifying which supplied SKUs are out of stock for a destination. It is clearly distinct from pricing and shipping siblings in practice, but it does not explicitly name or contrast those alternatives.
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 explains what the tool does but gives no explicit guidance on when to use it versus siblings such as gooten_get_shipping_estimate or gooten_get_shipping_options. Usage is only implied by the operation itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_get_orderGet orderARead-onlyInspect
One order by its Safe Order ID: items with status, tracking numbers and carriers, images, options, totals, shipping and billing addresses, discount and metadata. GET /orders.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Gooten Safe Order ID (the long id like 13-f91acc87-...), as returned by gooten_search_orders (Id). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds real value by disclosing the response contents (items with status, tracking numbers and carriers, images, options, totals, billing/shipping addresses, discounts, metadata) and the underlying endpoint, though it says nothing about error behavior for unknown IDs or rate limits.
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 dense but front-loaded sentence that opens with the identifying constraint, then lists return contents. The trailing 'GET /orders' is slightly imprecise (the real path is /orders/{id}) and is the only marginal filler.
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 one-parameter read tool with full schema coverage and read-only annotations, the description covers identification, return shape, and scope. With no output schema, enumerating returned fields is exactly the missing piece, and it is supplied.
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 schema already defines order_id as the 'Gooten Safe Order ID' with the search tool as its source. The description's phrase 'by its Safe Order ID' merely echoes that, adding no format or validation detail beyond the schema; baseline 3 applies.
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?
States a specific verb and resource (get one order) plus the key discriminator, the Safe Order ID, and enumerates what comes back (items, status, tracking, addresses, totals). An agent can distinguish it from gooten_search_orders without opening either schema.
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 single-order-by-ID scope implies when to use it, and the schema points to gooten_search_orders as the source of the ID, but the description itself never states when to prefer this over the search tool or what to do if the ID is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_get_order_billingGet order billingARead-onlyInspect
Billing breakdown of an order: product cost per item, shipping, surcharge, tax, fees, discount and total. Takes the numeric Gooten order id (GootenId from gooten_get_order), not the Safe Order ID. Needs the Partner Billing Key. GET /orderbilling.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Numeric Gooten order id. | |
| currency_code | No | 3-letter currency code (default USD). See gooten_list_currencies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the authentication requirement (Partner Billing Key) and the underlying endpoint GET /orderbilling. It does not discuss rate limits or failure modes, so not a 5.
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 tight sentences: purpose and returned fields first, then the id caveat, then auth and endpoint. Every sentence carries distinct, decision-relevant information with no repetition of the schema.
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 no output schema available, the description compensates by enumerating the billing breakdown contents (per-item product cost, shipping, surcharge, tax, fees, discount, total). Combined with the auth requirement and id sourcing, an agent has everything needed to call this 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?
Schema coverage is 100%, so the baseline is 3; the description nonetheless adds real meaning by disambiguating order_id as the numeric Gooten order id from gooten_get_order rather than the Safe Order ID. It does not mention the optional currency_code parameter, leaving that entirely to the schema, which keeps it from a 5.
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?
States a specific verb+resource (billing breakdown of an order) and enumerates the exact fields returned, so it is clearly distinguishable from the sibling gooten_get_order which returns the order itself. The explicit note that it takes the numeric Gooten order id rather than the Safe Order ID resolves the main ambiguity an agent would face.
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 tells the agent to source the id from gooten_get_order and warns against the Safe Order ID, which is actionable routing guidance. It also flags the Partner Billing Key prerequisite. It stops short of naming explicit when-not-to-use conditions or pointing to a billing alternative, so it is strong context rather than full usage policy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_get_price_estimateGet price estimate for an orderARead-onlyInspect
Estimate the cost of an order before placing it: per-item partner price, customer price and tax, plus shipping total, for SKUs shipped to an address. POST /price (a quote: nothing is ordered or charged).
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | Shipping city. | |
| items | Yes | Order lines (1-50). | |
| state | No | Shipping state/province code, if any. | |
| postal_code | Yes | Shipping postal code. | |
| country_code | Yes | 2-letter ISO 3166-1 country code, e.g. US. | |
| address_line1 | Yes | Shipping address line 1. | |
| address_line2 | No | Shipping address line 2. | |
| currency_code | No | 3-letter currency code (default USD). See gooten_list_currencies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; the description reinforces this with "nothing is ordered or charged" and identifies the underlying POST /price endpoint. It also discloses the shape of the result (per-item and shipping breakdown), which the absent output schema would otherwise leave unknown.
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 dense sentence plus a short parenthetical; the purpose and the cost breakdown are front-loaded and the non-mutating clarification is appended. No sentence is filler.
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 8 parameters, no output schema, and required-address requirements, the description supplies the missing return-value picture (per-item partner/customer price, tax, shipping total) and the quote semantics. Nothing an agent needs to call it correctly is absent.
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 8 parameters are documented in structured data, making 3 the baseline. The description adds the framing that items are SKUs shipped to an address but does not explain currency_code, ship_type, or quantity limits beyond what the schema already provides.
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?
States a specific verb and resource ("Estimate the cost of an order") and enumerates the outputs (partner price, customer price and tax, shipping total), which separates it from a shipping-only quote. It does not name the close sibling gooten_get_shipping_estimate explicitly, so the differentiation is inferred from scope rather than stated.
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?
"before placing it" gives a clear usage context, and "a quote: nothing is ordered or charged" tells the agent this is non-committal. No exclusions or named alternatives are given, so the agent must infer that shipping-only questions belong to gooten_get_shipping_estimate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_get_product_templatesGet product templatesARead-onlyInspect
Print templates for a SKU: how many images are needed, required pixel sizes/DPI, print spaces and layer coordinates, and preview assets. GET /producttemplates.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | Gooten SKU (product variant), e.g. CanvsWrp-ImgWrp-10x10. See gooten_list_product_variants. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds value by naming the underlying GET /producttemplates endpoint and by allowing the agent to infer the response shape, which matters because there is no output schema.
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?
A single front-loaded sentence that packs the return payload preview and the endpoint into one line, with no filler.
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 no output schema, the description usefully compensates by listing the major response fields and the endpoint. The only real gap is that it does not say what to do if the SKU lacks templates or whether the call validates the SKU.
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?
Only one parameter, and the schema documents it at 100% coverage including the format example and a pointer to gooten_list_product_variants. The description adds nothing beyond 'for a SKU', so the schema does all the work.
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 names the resource precisely (print templates for a SKU) and enumerates what it contains: image count, pixel sizes/DPI, print spaces, layer coordinates, and preview assets. That is specific enough to separate it from the sibling listers (list_product_variants, list_print_ready_variants), though it never explicitly contrasts itself with them.
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?
There is no explicit when-to-use or when-not-to-use guidance in the description. Usage is only implied by the payload contents ('how many images are needed'), which suggests it precedes asset preparation, and by the SKU reference pointing at gooten_list_product_variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_get_shipping_estimateGet shipping estimate for a productBRead-onlyInspect
Shipping price range and delivery time for a product to a country: whether expedited is possible and estimated shipping days, plus min/max price and producing country when Gooten returns them. GET /shippriceestimate.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Catalog product id. | |
| country_code | Yes | 2-letter ISO 3166-1 country code, e.g. US. | |
| currency_code | No | 3-letter currency code (default USD). See gooten_list_currencies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about optional return fields ("when Gooten returns them") and identifies the underlying GET endpoint, but does not mention auth needs, rate limits, or error behavior.
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 front-loaded with the resource and outputs, and the trailing endpoint is a compact technical anchor. It contains no padding and every clause contributes to understanding the result.
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 estimate tool with no output schema, the description adequately conveys the main return values and their conditional nature. It could be slightly more explicit about response shape, but it gives enough context for an agent to call and interpret the 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 description coverage is 100%, so product_id, country_code, and currency_code are already well documented in the schema. The description reinforces that pricing is for a product and country, but adds no parameter-level detail beyond that, and does not mention the currency_code parameter.
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 identifies the resource as a shipping estimate for a product to a country, listing the specific outputs such as price range, delivery time, expedited availability, and producing country. It is specific enough to distinguish this from most siblings, though it does not explicitly contrast itself with gooten_get_shipping_options or gooten_get_price_estimate.
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 no explicit when-to-use guidance, prerequisites, or alternatives. An agent must infer from the name and endpoint whether this is the right tool versus gooten_get_shipping_options or gooten_list_shipping_countries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_get_shipping_optionsGet shipping options for a cartARead-onlyInspect
Available shipping methods (Standard, Expedited, Overnight) with price and delivery days for a cart of SKUs to a destination. POST /shippingprices (a quote: nothing is ordered).
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Cart lines (1-50). | |
| state | No | Destination state/province code, if any. | |
| postal_code | Yes | Destination postal code. | |
| country_code | Yes | 2-letter ISO 3166-1 country code, e.g. US. | |
| currency_code | No | 3-letter currency code (default USD). See gooten_list_currencies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds genuinely useful context: it names the underlying POST /shippingprices endpoint and pre-empts the natural misreading that a POST mutates state by stating 'nothing is ordered'. It also describes the return content (methods, price, delivery days), which matters since there is no output schema.
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 tight sentences with zero filler; the primary capability and its output shape come first, and the endpoint/side-effect clarification follows. Every clause 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?
For a 5-parameter, fully documented schema with no output schema, the description covers inputs, the nature of the operation, and the shape of the result. The remaining gap is sibling differentiation against gooten_get_shipping_estimate and gooten_get_price_estimate.
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 the schema already documents items, sku, quantity, country_code, postal_code, state, and currency_code in detail. The description only restates 'a cart of SKUs to a destination' without adding format, limits, or default information beyond what the schema provides; baseline 3 applies.
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?
States a specific verb+resource ('shipping options for a cart') and enumerates the concrete outputs (Standard/Expedited/Overnight, price, delivery days). It does not, however, distinguish itself from the close sibling gooten_get_shipping_estimate, which an agent could easily confuse it with.
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 parenthetical 'a quote: nothing is ordered' implies this is a pre-purchase check, but there is no explicit when-to-use or when-not guidance. With siblings like gooten_get_shipping_estimate, gooten_get_price_estimate, and gooten_validate_address in the list, the agent is left to infer the routing decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_list_currenciesList supported currenciesARead-onlyInspect
Currencies Gooten can quote prices in (name, code, display format). GET /currencies.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the underlying endpoint (GET /currencies) and enumerates the returned fields, which is useful, but it says nothing about auth requirements, caching/stability of the list, or pagination.
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?
A single front-loaded clause plus endpoint reference; every element (what it is, return fields, endpoint) earns its place with no filler.
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 no-param, read-only lookup with annotations covering safety and no output schema, the description does the important remaining work by naming the returned fields. Minor gap: no statement about ordering or whether results are static.
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 tool takes zero parameters, so the baseline is 4 and there is nothing the description could clarify further. It correctly does not invent parameter behavior.
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?
States the resource (currencies Gooten can quote prices in) and even the shape of each entry (name, code, display format), which clearly distinguishes it from sibling list_* tools covering countries, products, and variants. It's a noun phrase rather than an explicit verb, but the intent is unambiguous.
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?
There is no explicit when-to-use or when-not-to-use statement and no alternatives named. The phrase 'can quote prices in' hints that this is a reference lookup for pricing, but the agent must infer that it should be called before requesting price estimates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_list_print_ready_productsList print-ready productsARead-onlyInspect
Your print-ready products (PRPs: SKUs with artwork already attached) with their variant counts. Paging starts at 1. GET /prpproducts.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint, openWorldHint, and destructiveHint annotations already establish the safety profile. The description adds little beyond the endpoint and pagination behavior, and it does not mention auth needs, rate limits, or response shape beyond variant counts.
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 short and front-loads the key definition of PRPs. The trailing 'GET /prpproducts' is slightly redundant but not harmful.
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 one-parameter read-only list tool with no output schema, the description provides enough context to call it correctly. It could be more complete about the returned product shape, but the low complexity keeps the gap small.
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 single `page` parameter has 100% schema description coverage, and the description's 'Paging starts at 1' mostly repeats that schema. No additional parameter semantics are added beyond what the schema already documents.
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 resource (print-ready products) and adds a useful definition of PRPs as SKUs with artwork already attached. It is distinguishable from generic product listing siblings, though it does not explicitly contrast with gooten_list_print_ready_variants.
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?
Usage context is implied by the term 'print-ready products' and the paging note, but there is no explicit when-to-use or when-not-to-use guidance. An agent must infer that this lists products rather than variants from the sibling name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_list_print_ready_variantsList print-ready variantsARead-onlyInspect
Orderable SKUs of your print-ready products, optionally for one PRP product name (from gooten_list_print_ready_products). GET /prpvariants.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| product_name | No | A PRP product name; omit for all variants. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, destructive=false, openWorld=true, so the description needn't repeat safety. It adds the useful qualifier 'Orderable' (returned SKUs are orderable) and the GET /prpvariants endpoint, but says nothing about pagination behavior or volume of results.
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?
A single front-loaded sentence plus endpoint suffix; nothing redundant. Every clause (orderable, optional filter, source tool) carries 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?
Appropriate for a simple 2-param read-only list tool with no output schema; it names the prerequisite tool for obtaining product_name. Missing only a note on pagination/results magnitude and a clearer tie-break against the other variant-listing sibling.
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 both parameters are documented in the schema, including pagination chaining via next_page. The description echoes 'optionally for one PRP product name' but adds no syntax or format detail beyond the schema, so baseline 3 applies.
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?
States a specific resource ('Orderable SKUs of your print-ready products') and a concrete filter ('optionally for one PRP product name'). It distinguishes itself implicitly from gooten_list_print_ready_products by naming it as the source of the product name, though the difference between it and gooten_list_product_variants is not spelled out.
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 parenthetical '(from gooten_list_print_ready_products)' implies the ordering: list products first, then variants. But there is no explicit when-to-use/when-not statement, and it never clarifies why an agent would pick this over gooten_list_product_variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_list_productsList catalog productsARead-onlyInspect
Browse the Gooten print-on-demand product catalog (public data): product id, name, categories, cheapest price and shipping, stock and deprecation flags. Filter by name text or category; use product_id with gooten_list_product_variants. Prices are in USD for the cheapest variant.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| query | No | Only products whose name contains this text (case-insensitive). | |
| category | No | Only products in this category (exact name, case-insensitive; see the categories list in the reply). | |
| page_size | No | Results per page, 1-100 (default 25). | |
| include_deprecated | No | Include deprecated products (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds non-obvious context the annotations cannot carry: this is public catalog data, prices are USD for the cheapest variant, deprecation flags are present, and 'cheapest price and shipping' qualifies what the numbers mean. Rate limits or result-size expectations are not mentioned, keeping it from a 5.
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 sentences, front-loaded with the resource and payload contents, then filters, then the cross-tool handoff. Every clause carries information; nothing repeats the title or the annotations.
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?
There is no output schema, and the description compensates by listing the returned fields and the currency/unit semantics. Pagination exists in the schema (page, page_size, next_page) and the description does not reinforce the continuation pattern, but all fields the agent needs to call it correctly are 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 description coverage is 100%, so every parameter (page, query, category, page_size, include_deprecated) is already documented, setting the baseline at 3. The description only restates that filtering exists by name or category and adds no semantics beyond what the schema provides, such as category naming conventions or pagination behavior.
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 gives a specific verb and resource ('Browse the Gooten print-on-demand product catalog'), names the public-data scope, and enumerates the returned fields (id, name, categories, cheapest price/shipping, stock, deprecation). It also routes to the sibling gooten_list_product_variants, so an agent can distinguish the two without opening either schema.
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 states the two filtering modes (name text or category) and the concrete next step ('use product_id with gooten_list_product_variants'), which is a real when-to-use pointer. It stops short of disambiguating from gooten_list_print_ready_products or gooten_check_stock, which sit close in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_list_product_variantsList product variants (SKUs)ARead-onlyInspect
The orderable variants (SKUs) of a catalog product for a destination country, with option values (size, color, ...) and Gooten's price for your account. SKUs differ by region (inch vs cm sizes). GET /productvariants.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| page_size | No | Results per page, 1-100 (default 25). | |
| product_id | Yes | Catalog product id from gooten_list_products. | |
| country_code | Yes | 2-letter ISO 3166-1 country code, e.g. US. | |
| currency_code | No | 3-letter currency code (default USD). See gooten_list_currencies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description still adds real context beyond that: prices are account-specific and SKUs differ by region (inch vs cm), which tells the agent why the country parameter changes the result set. Pagination is left to 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences plus the endpoint, front-loaded with what the tool returns. Every clause carries information; nothing is redundant with the title.
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 no output schema, the description does describe the return shape (variants with option values and account price). The remaining gap is sibling differentiation against gooten_list_print_ready_variants, which is the main ambiguity an agent would face.
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 five parameters are documented in structured fields, establishing a baseline of 3. The description adds only the general notion that country affects SKU variant and currency affects price, without new syntax or format 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?
States a specific verb and resource ('orderable variants (SKUs) of a catalog product'), and adds that the result is scoped to a destination country with option values and account price. It does not, however, distinguish itself from the near-identical sibling gooten_list_print_ready_variants.
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?
Usage is implied by the scope ('for a destination country'), and the schema points to gooten_list_products for product_id and gooten_list_currencies for currency. But there is no explicit statement of when to use this versus gooten_list_print_ready_variants, the obvious confusion risk.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_list_shipping_countriesList shipping countriesARead-onlyInspect
Countries Gooten ships to (code, name, whether supported, measurement system, default currency). By default only supported countries. GET /countries.
| Name | Required | Description | Default |
|---|---|---|---|
| include_unsupported | No | Also list countries Gooten does not ship to (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds a real behavioral trait beyond them: the default filter hides unsupported countries, which an agent could otherwise wrongly assume were included. It does not cover response shape or any rate-limit behavior, keeping it short of a 5.
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 terse fragments, front-loaded with the resource and its return fields, with the default-filter caveat second. Nothing is padded, though the 'GET /countries' clause is only marginally useful to an agent that never sees transport details.
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 no output schema, the parenthetical field enumeration carries the return-value information an agent needs, and the default-filter note covers the only parameter. For a simple single-parameter read tool this is close to complete; only explicit sibling routing is absent.
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 single parameter include_unsupported is already documented with its default. The description's 'By default only supported countries' reinforces that default but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
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?
A specific verb+resource (list shipping countries) with the returned fields enumerated in parentheses, so an agent knows exactly what comes back. It is distinguishable from siblings like gooten_list_currencies by the field list, though the description never names those siblings explicitly.
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 phrase 'By default only supported countries' implies when the default listing is appropriate, but there is no explicit routing to alternatives such as gooten_validate_address or gooten_get_shipping_options, and no stated exclusions. Usage is inferable rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_search_ordersSearch ordersARead-onlyInspect
Search your Gooten orders by free text (name, address, phone...), last name, email, postal code, creation date range or your own user id. Returns order id, items with status and tracking, totals and addresses. Needs the Partner Billing Key. GET /ordersearch.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| text | No | Any value related to the order (partner name, address, phone, ...). | |
| No | Customer email on the order. | ||
| end_date | No | Orders created on or before this date, yyyy-mm-dd. | |
| last_name | No | Customer last name on the order. | |
| page_size | No | Results per page, 1-100 (default 25). | |
| start_date | No | Orders created on or after this date, yyyy-mm-dd. | |
| postal_code | No | Postal code on the order. | |
| unique_user_id | No | Your own user id stored on the orders. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds real value beyond that: it names the auth requirement (Partner Billing Key) and discloses the returned fields (order id, items with status and tracking, totals, addresses) plus the underlying endpoint. It omits pagination behavior, which the schema partially covers.
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 tightly packed sentences: purpose and search keys first, then return values, then the auth requirement. Nothing is redundant, though the trailing 'GET /ordersearch' endpoint note is the least load-bearing element.
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 9-parameter, zero-required search tool with no output schema, the description covers what it searches, what it returns, and what credentials it needs. The notable gap is not stating whether at least one filter is required or what an unfiltered call does, which matters given no required parameters.
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 every one of the 9 parameters is already documented in the schema, including page/page_size semantics. The description's enumeration mirrors the schema rather than adding syntax, precedence, or combination rules (e.g. whether filters are ANDed), so baseline 3 applies.
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?
States a specific verb and resource (search Gooten orders) and enumerates the exact search keys, which effectively separates it from gooten_get_order. It also summarizes the result shape. It never names a sibling or explicitly says when to prefer get_order instead, so it stops short of a 5.
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 list of searchable fields implies the usage (look up orders when you don't know the order id), and the Partner Billing Key requirement is stated. There is no explicit when/when-not guidance, no mention of what happens if you supply no filters, and no routing to alternatives such as gooten_get_order.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_set_order_statusSet order statusADestructiveIdempotentInspect
WRITE: change an order's status. Allowed targets: Cancelled (cancels the whole order), Hold (pause before production) and New (re-submit an order that was fixed, e.g. after an image or address issue; it then goes on to production and billing). Only orders in AccountingIssue, AddressIssue, HoldByCIImageIssue, ImageIssue, NeedsManualApproval, New, ReadyForAccounting, ReadyForImageDl or Pending can change; a held order cannot be released through the API (Gooten support must release it); otherwise Gooten refuses. POST /orderstatus.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | The new status. | |
| order_id | Yes | Gooten Safe Order ID (the long id like 13-f91acc87-...), as returned by gooten_search_orders (Id). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive/write/idempotent, but the description goes well beyond them: it spells out the allowed-source-state machine, the downstream consequence of 'New' (production and billing resume), and the hard limitation that a held order requires Gooten support to release. It also states the API path and the failure mode ('otherwise Gooten refuses').
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 critical information ('WRITE') and target statuses are front-loaded, and nearly every clause carries state-machine or side-effect detail that an agent needs. The nested parentheticals make it dense, but no sentence is redundant.
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 destructive mutation with no output schema, it covers preconditions, side effects, and failure behavior thoroughly. It does not say what the call returns or whether cancellation triggers refunds, which is a modest gap for a destructive operation.
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 enum is already documented, so the baseline is 3; however, the description adds real semantics the schema lacks by explaining what each enum value does operationally (pause before production, re-submit a corrected order). It does not add anything about order_id 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?
Opens with a specific verb+resource pair ('WRITE: change an order's status') and immediately enumerates the three permitted target statuses with their downstream meaning. An agent can distinguish this from gooten_cancel_order_items because the description specifies that 'Cancelled' cancels the whole order.
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?
Gives explicit preconditions: only orders in nine named states can transition, and held orders cannot be released through the API. It also explains when to use 'New' (re-submitting a fixed order). It stops short of naming the sibling alternative gooten_cancel_order_items for item-level cancellation, which is the main remaining routing gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gooten_validate_addressValidate a shipping addressARead-onlyInspect
Check a shipping address: validity, a score and Gooten's suggested corrected address. GET /addressvalidation.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City. | |
| line1 | Yes | Address line 1. | |
| line2 | No | Address line 2. | |
| state | No | State/province code, if any. | |
| postal_code | Yes | Postal code. | |
| country_code | Yes | 2-letter ISO 3166-1 country code, e.g. US. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds value by disclosing the response contents (validity, score, suggested correction), but says nothing about how correction suggestions should be applied, whether calls are rate-limited, or what happens on malformed input.
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 front-loaded sentence that names the tool's action and its three outputs, followed by a terse endpoint reference. The 'GET /addressvalidation' fragment is only marginally useful to an agent but is not enough to hurt readability.
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 no output schema, the description usefully compensates by enumerating the response fields. Given 6 well-documented parameters and full annotation coverage, the remaining gap is minor — chiefly what a 'failed' validation means and whether the corrected address is authoritative.
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% with constraints (maxLength, country_code pattern) fully documented, so the schema carries the parameter burden. The description adds no meaning beyond the schema, which is the baseline expectation here.
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?
States a specific verb and resource (check a shipping address) plus the three things it returns: validity, a score, and Gooten's suggested corrected address. This makes it clearly distinct from sibling tools like gooten_get_shipping_estimate or gooten_list_shipping_countries, though it never names those siblings explicitly.
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?
Usage is only implied — an agent can infer this is called before quoting or placing an order. There is no explicit 'use this when...' statement, no mention of prerequisites (e.g., needing a full order address), and no named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
17 tool updates
- First observed
gooten_cancel_order_items - First observed
gooten_check_stock - First observed
gooten_get_order - First observed
gooten_get_order_billing - First observed
gooten_get_price_estimate - First observed
gooten_get_product_templates - First observed
gooten_get_shipping_estimate - First observed
gooten_get_shipping_options - First observed
gooten_list_currencies - First observed
gooten_list_print_ready_products - First observed
gooten_list_print_ready_variants - First observed
gooten_list_product_variants - First observed
gooten_list_products - First observed
gooten_list_shipping_countries - First observed
gooten_search_orders - First observed
gooten_set_order_status - First observed
gooten_validate_address
Related MCP Connectors
Browse the Gelato catalog, prices, orders and shipping; quote, create draft orders and products.
Browse the Printful catalog, orders, shipping quotes and stats, and create draft orders and mockups.
Read shops, catalog blueprints, print providers, products and orders; create and publish products.
Search products, manage a customer cart, and request current checkout quotes.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables to create print-on-demand products using the Printful API, allowing users to browse catalog, upload designs, create products, and generate mockups.23-

OpenPrints MCPofficial
AlicenseNot gradedqualityDmaintenanceEnables AI agents to browse products, upload designs, place print orders, track shipments, and manage account balance via natural language.1 npmMIT- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to browse the Printful catalog, retrieve variants and shipping rates, estimate costs, upload print files, generate mockups, and manage sync products through the official Printful REST API. Orders are always saved as drafts and only submitted for fulfillment or payment after an explicit confirmation step.1 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables chat-driven management of a print-on-demand store: listing shops, creating, updating and publishing products, browsing blueprints and print providers, uploading designs, checking orders, plus a raw REST passthrough for advanced calls.-
Glama MCP Gateway
Add one secure layer between your agents and this server.