Gelato
A Model Context Protocol (MCP) server for integrating with the Gelato Print-on-Demand API. This server enables AI agents (such as Antigravity, Claude, ChatGPT, etc.) to automate product creation from custom design URLs/files, inspect product templates, manage Shopify store connections, explore catalog specifications, and process print fulfillment orders.
Documentation
Gelato API & Shopify Automation MCP Server
A Model Context Protocol (MCP) server for integrating with the Gelato Print-on-Demand API. This server enables AI agents (such as Antigravity, Claude, ChatGPT, etc.) to automate product creation from custom design URLs/files, inspect product templates, manage Shopify store connections, explore catalog specifications, and process print fulfillment orders.
✨ Key Features
- 🎨 Template-Based Product Creation: Programmatically upload design files (PNG, JPG, PDF) to Gelato product template placeholders (
ImageFront,ImageBack, etc.) and publish custom print-on-demand items directly to your connected e-commerce stores (Shopify, WooCommerce, etc.). - 🏪 Multi-Store Management: Inspect connected stores (
gelato_list_stores), view store products (gelato_list_products), inspect product status (gelato_get_product), and delete products (gelato_delete_product). - 📐 Template Inspection: List templates (
gelato_list_templates) and inspect layer structures and variant IDs (gelato_get_template). - 📚 Catalog Exploration: Search Gelato's global product catalog (
gelato_search_catalog_products), list categories (gelato_list_catalogs), and fetch product specifications (gelato_get_catalog_product). - 📦 Order Fulfillment & Quotes: Request shipping/print price quotes (
gelato_quote_order), place print orders (gelato_create_order), track order status (gelato_get_order), and search orders (gelato_search_orders).
🛠️ Available MCP Tools
1. Store & Product Management
gelato_list_stores— List all connected stores and theirstoreIds.gelato_create_product_from_template— Create and publish a new product to a store from a Gelato template with custom design URLs, titles, descriptions, tags, and variants.gelato_list_products— List all products published in a specific store.gelato_get_product— Retrieve detailed information and publication status (publishing,active,publishing_error) for a product.gelato_delete_product— Remove a product from a store.
2. Gelato Templates
gelato_list_templates— List all product templates created in your Gelato account.gelato_get_template— Retrieve details for a specific template, including image layer placeholder names (ImageFront,ImageBack) andtemplateVariantIds.
3. Product Catalog
gelato_list_catalogs— List main product catalog categories (Apparel, Wall Art, Mugs, Cards, etc.).gelato_search_catalog_products— Search catalog items using attribute filters.gelato_get_catalog_product— Get specs, printable areas, available dimensions, options, and prices for a catalog product UID.
4. Orders & Quotes
gelato_create_order— Submit a print fulfillment order to Gelato.gelato_quote_order— Calculate shipping options and cost quotes before placing an order.gelato_get_order— Retrieve current order status and tracking details.gelato_search_orders— Search orders with pagination and text search.
⚙️ Installation & Setup
Prerequisites
- Node.js 18.x or higher
- Gelato API Key (obtainable from Gelato Dashboard → Developer > API Keys)
Installation
git clone https://github.com/altetsa/gelato-mcp-server.git
cd gelato-mcp-server
npm install
Configuration
Add the server entry to your MCP configuration file (e.g., mcp_config.json or Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"gelato": {
"command": "node",
"args": [
"/path/to/gelato-mcp-server/index.js"
],
"env": {
"GELATO_API_KEY": "your_gelato_api_key_here"
}
}
}
}
🚀 Product Creation Workflow
- Get Store ID: Call
gelato_list_storesto get your target store'sstoreId. - Inspect Template: Call
gelato_get_templatewith yourtemplateIdto check layer placeholder names (e.g.ImageFront) andtemplateVariantIds. - Create Product: Call
gelato_create_product_from_templatewith:storeIdtemplateIdtitle&descriptionvariants: Array of objects containingtemplateVariantIdandimagePlaceholderswithnameand publicfileUrlof your print design.
Example Tool Call Payload:
{
"storeId": "82ceff8e-c559-45da-9c93-3982702a0906",
"templateId": "c12a363e-0d4e-4d96-be4b-bf4138eb8743",
"title": "Custom Printed T-Shirt",
"description": "<p>High quality custom printed unisex crewneck t-shirt.</p>",
"isVisibleInTheOnlineStore": true,
"tags": ["t-shirt", "custom-print", "unisex"],
"salesChannels": ["web"],
"variants": [
{
"templateVariantId": "83e30e31-0aee-4eca-8a8f-dceb2455cdc1",
"imagePlaceholders": [
{
"name": "ImageFront",
"fileUrl": "https://example.com/designs/front_artwork.png"
}
]
}
]
}
📄 License
MIT © altetsa