Gelato MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.4.3 · published by io.usefulapi
Browse the Gelato catalog, prices, orders and shipping; quote, create draft orders and products.
19 tools: 5 can delete or cancel things, 1 do something that can't be undone, 1 change things and 12 only read.
Scanned Oct 21, 2026
- Deletes or cancels5Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things1Claude Code: ask: see these tools
- Only reads12Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http gelato https://gelato.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "gelato_quote_order" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The input addresses people (input.recipient): what it sends cannot be taken back.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
19 tools
Deletes or cancels 5Claude Code: deny
gelato_cancel_orderCancel an order before production.No findings
Why it is in this group
- The name "gelato_cancel_order" says "cancel": a word for removing or ending something.
- The description says "cannot be undone".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Cancel an order before production. Gelato refuses (HTTP 409) once any item is printed or the order has shipped. This cannot be undone. POST /v4/orders/{orderId}:cancel.
Annotations the server declares
- title: Cancel order
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
gelato_create_orderCreate an order.No findings
Why it is in this group
- The name "gelato_create_order" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create an order. By default it is a DRAFT: nothing is produced or charged until it is submitted with gelato_submit_draft_order (or in the dashboard). With order_type "order" Gelato starts production and charges the account right away. Shipment: a shipmentMethodUid from gelato_quote_order, or "normal"/"standard"/"express"; omitted = the cheapest. POST /v4/orders.
Annotations the server declares
- title: Create order
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
gelato_create_product_from_templateCreate a product in a connected store from a template, with your own images in the template's placeholders.No findings
Why it is in this group
- The name "gelato_create_product_from_template" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a product in a connected store from a template, with your own images in the template's placeholders. Gelato creates the product, then publishes variants and mockups in the background (track it with gelato_get_store_product). Hidden in the online store unless visible_in_online_store is true. POST /v1/stores/{storeId}/products:create-from-template.
Annotations the server declares
- title: Create store product from template
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
gelato_delete_draft_orderPermanently delete a DRAFT order (regular orders cannot be deleted; cancel them instead).No findings
Why it is in this group
- The name "gelato_delete_draft_order" says "delete": a word for removing or ending something.
- The description says "Permanently delete".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Permanently delete a DRAFT order (regular orders cannot be deleted; cancel them instead). DELETE /v4/orders/{orderId}.
Annotations the server declares
- title: Delete draft order
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
gelato_submit_draft_orderConvert a DRAFT order into a regular order: Gelato starts production and charges the account.No findings
Why it is in this group
- The name "gelato_submit_draft_order" says "submit": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Convert a DRAFT order into a regular order: Gelato starts production and charges the account. Items stay as they are. Only drafts can be submitted. PATCH /v4/orders/{orderId} {"orderType":"order"}.
Annotations the server declares
- title: Submit draft order
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Can't be undone 1Claude Code: ask
gelato_quote_orderPrice an order before placing it: product prices and the available shipment methods (shipmentMethodUid, price, min/max delivery days and dates) per fulfillment facility, for a reci…1 finding
Why it is in this group
- The input addresses people (input.recipient): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "gelato_quote_order" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The input addresses people (input.recipient): what it sends cannot be taken back.
Description, as the server wrote it Price an order before placing it: product prices and the available shipment methods (shipmentMethodUid, price, min/max delivery days and dates) per fulfillment facility, for a recipient address. Nothing is created or charged. Pass a returned shipmentMethodUid to gelato_create_order. POST /v4/orders:quote.
Annotations the server declares
- title: Quote order
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
Changes things 1Claude Code: ask
gelato_check_stockStock status of stockable products per stock region (US-CA, EU, UK, OC, AS, SA, ROW): in-stock, out-of-stock-replenishable (with a replenishment date), out-of-stock, non-stockable …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Stock status of stockable products per stock region (US-CA, EU, UK, OC, AS, SA, ROW): in-stock, out-of-stock-replenishable (with a replenishment date), out-of-stock, non-stockable or not-supported. POST /v3/stock/region-availability.
Annotations the server declares
- title: Check stock availability
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
Only reads 12Claude Code: allow
gelato_get_catalogOne catalog with the attributes that define its products (e.g.No findings
Why it is in this group
- The name "gelato_get_catalog" says "get": a word for reading.
Description, as the server wrote it One catalog with the attributes that define its products (e.g. PaperFormat, PaperType, ColorType) and each attribute's possible values. Use them as attribute_filters in gelato_search_products. GET /v3/catalogs/{catalogUid}.
Annotations the server declares
- title: Get catalog
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gelato_get_cover_dimensionsCover layout of a multi-page product (photo book, brochure) in millimetres: spine, front, back, bleed and wraparound areas, for designing the cover file.No findings
Why it is in this group
- The name "gelato_get_cover_dimensions" says "get": a word for reading.
Description, as the server wrote it Cover layout of a multi-page product (photo book, brochure) in millimetres: spine, front, back, bleed and wraparound areas, for designing the cover file. GET /v3/products/{productUid}/cover-dimensions.
Annotations the server declares
- title: Get cover dimensions
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gelato_get_orderOne order by Gelato order id: type (order/draft), fulfillment and financial status, items with their files and statuses, shipment with packages and tracking codes/URLs, shipping ad…No findings
Why it is in this group
- The name "gelato_get_order" says "get": a word for reading.
Description, as the server wrote it One order by Gelato order id: type (order/draft), fulfillment and financial status, items with their files and statuses, shipment with packages and tracking codes/URLs, shipping address, receipts and totals. GET /v4/orders/{orderId}.
Annotations the server declares
- title: Get order
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gelato_get_productOne catalog product by productUid: attributes, weight, supported and unsupported countries, whether it is printable or stockable, and valid page counts for multi-page products.No findings
Why it is in this group
- The name "gelato_get_product" says "get": a word for reading.
Description, as the server wrote it One catalog product by productUid: attributes, weight, supported and unsupported countries, whether it is printable or stockable, and valid page counts for multi-page products. GET /v3/products/{productUid}.
Annotations the server declares
- title: Get product
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gelato_get_product_pricesGelato's production prices of a product for every quantity tier, optionally for one destination country and currency.No findings
Why it is in this group
- The name "gelato_get_product_prices" says "get": a word for reading.
Description, as the server wrote it Gelato's production prices of a product for every quantity tier, optionally for one destination country and currency. page_count is required for multi-page products. Shipping is not included (use gelato_quote_order). GET /v3/products/{productUid}/prices.
Annotations the server declares
- title: Get product prices
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gelato_get_store_productOne product of a connected store: title, description, status, variants (with productUid and external ids), options, preview and publishing state.No findings
Why it is in this group
- The name "gelato_get_store_product" says "get": a word for reading.
Description, as the server wrote it One product of a connected store: title, description, status, variants (with productUid and external ids), options, preview and publishing state. GET /v1/stores/{storeId}/products/{productId}.
Annotations the server declares
- title: Get store product
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gelato_get_templateA product template made in the Gelato dashboard: title, description, preview, and its variants (id, title, productUid; pass the variant id as template_variant_id) with their image …No findings
Why it is in this group
- The name "gelato_get_template" says "get": a word for reading.
Description, as the server wrote it A product template made in the Gelato dashboard: title, description, preview, and its variants (id, title, productUid; pass the variant id as template_variant_id) with their image placeholders (names to fill in gelato_create_product_from_template). GET /v1/templates/{templateId}.
Annotations the server declares
- title: Get template
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gelato_list_catalogsList Gelato's product catalogs (posters, cards, t-shirts, mugs, photo books, ...) with their catalogUid and title.No findings
Why it is in this group
- The name "gelato_list_catalogs" says "list": a word for reading.
Description, as the server wrote it List Gelato's product catalogs (posters, cards, t-shirts, mugs, photo books, ...) with their catalogUid and title. Start here to find products. GET product.gelatoapis.com/v3/catalogs.
Annotations the server declares
- title: List product catalogs
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gelato_list_shipment_methodsGelato's shipment methods (shipmentMethodUid, name, type normal/express/pallet, tracking, business/private, supported destination countries), optionally only those for one destinat…No findings
Why it is in this group
- The name "gelato_list_shipment_methods" says "list": a word for reading.
Description, as the server wrote it Gelato's shipment methods (shipmentMethodUid, name, type normal/express/pallet, tracking, business/private, supported destination countries), optionally only those for one destination country. GET shipment.gelatoapis.com/v1/shipment-methods.
Annotations the server declares
- title: List shipment methods
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gelato_list_store_productsProducts of a connected e-commerce store (Shopify, Etsy, WooCommerce, ...) as Gelato knows them: id, title, status (created/publishing/publishing_error/active), external id, varian…No findings
Why it is in this group
- The name "gelato_list_store_products" says "list": a word for reading.
Description, as the server wrote it Products of a connected e-commerce store (Shopify, Etsy, WooCommerce, ...) as Gelato knows them: id, title, status (created/publishing/publishing_error/active), external id, variants with their productUid, preview images and dates. The store id is in the Gelato dashboard URL of the store and on its orders (storeId). GET ecommerce.gelatoapis.com/v1/stores/{storeId}/products.
Annotations the server declares
- title: List store products
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gelato_search_ordersSearch orders and drafts, newest first: id, your reference ids, order type, fulfillment and financial status, channel, store, country, currency, totals and dates.No findings
Why it is in this group
- The name "gelato_search_orders" says "search": a word for reading.
Description, as the server wrote it Search orders and drafts, newest first: id, your reference ids, order type, fulfillment and financial status, channel, store, country, currency, totals and dates. Filter by status, type, country, channel, store, reference, date range or free text (recipient name or order reference). POST /v4/orders:search.
Annotations the server declares
- title: Search orders
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gelato_search_productsList the products of a catalog, optionally filtered by attribute values, with each product's productUid, attributes, weight and dimensions, plus hit counts per attribute value.No findings
Why it is in this group
- The name "gelato_search_products" says "search": a word for reading.
Description, as the server wrote it List the products of a catalog, optionally filtered by attribute values, with each product's productUid, attributes, weight and dimensions, plus hit counts per attribute value. POST /v3/catalogs/{catalogUid}/products:search.
Annotations the server declares
- title: Search catalog products
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.4.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http gelato https://gelato.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__gelato__gelato_list_catalogs",
"mcp__gelato__gelato_get_catalog",
"mcp__gelato__gelato_search_products",
"mcp__gelato__gelato_get_product",
"mcp__gelato__gelato_get_product_prices",
"mcp__gelato__gelato_get_cover_dimensions",
"mcp__gelato__gelato_list_shipment_methods",
"mcp__gelato__gelato_search_orders",
"mcp__gelato__gelato_get_order",
"mcp__gelato__gelato_list_store_products",
"mcp__gelato__gelato_get_store_product",
"mcp__gelato__gelato_get_template"
],
"ask": [
"mcp__gelato__gelato_check_stock",
"mcp__gelato__gelato_quote_order"
],
"deny": [
"mcp__gelato__gelato_create_order",
"mcp__gelato__gelato_submit_draft_order",
"mcp__gelato__gelato_cancel_order",
"mcp__gelato__gelato_delete_draft_order",
"mcp__gelato__gelato_create_product_from_template"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as gelato. Review it before you use it.