Gelato and pastry ingredients for professionals (CZ, B2B): catalog, cart and orders.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add a quantity of a product to the cart (whole units, as in the web shop). Quantity is added to what is already in the cart. Products sold by whole cartons are rounded up to full cartons automatically.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http eshop https://www.gelato.cz/mcp/eshop/
Add a quantity of a product to the cart (whole units, as in the web shop). Quantity is added to what is already in the cart. Products sold by whole cartons are rounded up to full cartons automatically.
| Argument | Type | Description |
|---|---|---|
| quantity* | integer | |
| product_id* | integer |
{
"type": "object",
"required": [
"product_id",
"quantity"
],
"properties": {
"quantity": {
"type": "integer",
"minimum": 1
},
"product_id": {
"type": "integer",
"minimum": 1
}
}
}Preview the order before placing it: final items, totals including VAT and transport, delivery address and payment/delivery methods. Always call this before place_order.
| Argument | Type | Description |
|---|---|---|
| delivery_address_id | integer |
{
"type": "object",
"properties": {
"delivery_address_id": {
"type": "integer",
"minimum": 1
}
}
}Remove all items from the shopping cart.
No arguments.
{
"type": "object",
"properties": {}
}Create a delivery address (place of business) for this customer — required once before the first order, exactly as the web shop asks right after registration. Minimum: city, zip, house number, a contact surname and a phone for the carrier; street may be empty in villages without street names. Leave the address fields empty to deliver to the registered company address from ARES (city, zip, street and house number are then copied from the account). Input is tidied automatically (phone prefix, zip spacing); only what cannot be fixed is refused. Payment terms of the address follow the customer account; the payment of a particular order is chosen in place_order. Returns delivery_address_id for checkout_preview and place_order.
| Argument | Type | Description |
|---|---|---|
| zip | string | PSČ, 5 digits for CZ/SK |
| city | string | |
| string | E-mail of the delivery place only when it differs from the account e-mail | |
| phone* | string | Phone for the carrier, e.g. "+420 724 230 861" |
| phone2 | string | Second phone (site manager), optional |
| street | string | |
| place_name | string | Name of the shop / production site, defaults to the company name |
| house_number |
Current content of the customer's shopping cart with totals, transport cost and any system notes.
No arguments.
{
"type": "object",
"properties": {}
}Detail of one order of this customer, including its items and status.
| Argument | Type | Description |
|---|---|---|
| order_id* | integer |
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "integer",
"minimum": 1
}
}
}Full detail of one product: description, annotation, URL and everything the listing tools return. Public — no authentication needed. Every product carries the EAN, brand, pack size with its unit (kg for goods sold by weight, ks for goods sold by the piece) and the resulting price_per_unit, plus weight_kg. Prices are EXCLUDING VAT — price_vat_included is false and vat_rate gives the rate in percent. The exact stock quantity is returned only to authenticated customers; anonymous callers get in_stock as a yes/no.
| Argument | Type | Description |
|---|---|---|
| product_id* | integer |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
}
}
}Full catalog category tree of the e-shop (ice-cream and pastry catalogs): names, absolute URLs and product counts per category. The best starting point for browsing the assortment structurally. Public — no authentication needed.
| Argument | Type | Description |
|---|---|---|
| include_counts | boolean | Include product_count per category, default true |
{
"type": "object",
"properties": {
"include_counts": {
"type": "boolean",
"description": "Include product_count per category, default true"
}
}
}Paged list of products in one catalog category, by category id or URL slug (see list_categories). Public — no authentication needed. Every product carries the EAN, brand, pack size with its unit (kg for goods sold by weight, ks for goods sold by the piece) and the resulting price_per_unit, plus weight_kg. Prices are EXCLUDING VAT — price_vat_included is false and vat_rate gives the rate in percent. The exact stock quantity is returned only to authenticated customers; anonymous callers get in_stock as a yes/no. Authenticated customers get prices that include their personal discount.
| Argument | Type | Description |
|---|---|---|
| page | integer | Default 1 |
| slug | string | Category URL slug, e.g. "ochuceni" |
| per_page | integer | Default 20 |
| category_id | integer |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 1,
"description": "Default 1"
},
"slug": {
"type": "string",
"maxLength": 200,
"description": "Category URL slug, e.g. \"ochuceni\""
},
"per_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Default 20"
},
"category_id": {
"type": "integer",
"minimum": 1
}
}
}Delivery addresses registered for this customer. Use the returned id as delivery_address_id in place_order when the customer has more than one. A brand-new customer has none yet — call create_delivery_address first.
No arguments.
{
"type": "object",
"properties": {}
}Recent orders of this customer with their status.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results, default 10 |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Max results, default 10"
}
}
}Place a REAL, BINDING order from the current cart on behalf of the customer. Requires confirm=true. The customer receives the standard order confirmation email.
| Argument | Type | Description |
|---|---|---|
| note | string | Customer note for the order |
| confirm* | boolean | Must be true. Only set after the customer approved the checkout preview. |
| payment_method_id | integer | |
| delivery_method_id | integer | |
| delivery_address_id | integer |
{
"type": "object",
"required": [
"confirm"
],
"properties": {
"note": {
"type": "string",
"maxLength": 1000,
"description": "Customer note for the order"
},
"confirm": {
"type": "boolean",
"description": "Must be true. Only set after the customer approved the checkout preview."
},
"payment_method_id": {
"enum": [
1,
2,
3
],
"type": "integer"
},
"delivery_method_id": {
"enum": [
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"delivery_address_id": {
"type": "integer",
"minimum": 1
}
}
}Search the e-shop catalog by product name or EAN code. Public — no authentication needed. Every product carries the EAN, brand, pack size with its unit (kg for goods sold by weight, ks for goods sold by the piece) and the resulting price_per_unit, plus weight_kg. Prices are EXCLUDING VAT — price_vat_included is false and vat_rate gives the rate in percent. The exact stock quantity is returned only to authenticated customers; anonymous callers get in_stock as a yes/no. Authenticated customers get prices that include their personal discount.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results, default 10 |
| query* | string | Search phrase or EAN code |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Max results, default 10"
},
"query": {
"type": "string",
"maxLength": 100,
"description": "Search phrase or EAN code"
}
}
}Set the absolute quantity of a product in the cart. Quantity 0 removes the product.
| Argument | Type | Description |
|---|---|---|
| quantity* | number | |
| product_id* | integer |
{
"type": "object",
"required": [
"product_id",
"quantity"
],
"properties": {
"quantity": {
"type": "number",
"minimum": 0
},
"product_id": {
"type": "integer",
"minimum": 1
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 14, 2026.
| string |
| Číslo popisné, e.g. "1973" or "3294/10" |
| contact_surname* | string | Who receives the goods — printed for the carrier |
| contact_first_name | string |
| delivery_method_id | integer | Default transport for this address; TOPTRANS courier when omitted |
| orientation_number | string | Číslo orientační, optional |
{
"type": "object",
"required": [
"contact_surname",
"phone"
],
"properties": {
"zip": {
"type": "string",
"maxLength": 20,
"description": "PSČ, 5 digits for CZ/SK"
},
"city": {
"type": "string",
"maxLength": 255
},
"email": {
"type": "string",
"maxLength": 255,
"description": "E-mail of the delivery place only when it differs from the account e-mail"
},
"phone": {
"type": "string",
"maxLength": 50,
"description": "Phone for the carrier, e.g. \"+420 724 230 861\""
},
"phone2": {
"type": "string",
"maxLength": 50,
"description": "Second phone (site manager), optional"
},
"street": {
"type": "string",
"maxLength": 255
},
"place_name": {
"type": "string",
"maxLength": 255,
"description": "Name of the shop / production site, defaults to the company name"
},
"house_number": {
"type": "string",
"maxLength": 50,
"description": "Číslo popisné, e.g. \"1973\" or \"3294/10\""
},
"contact_surname": {
"type": "string",
"maxLength": 255,
"description": "Who receives the goods — printed for the carrier"
},
"contact_first_name": {
"type": "string",
"maxLength": 255
},
"delivery_method_id": {
"enum": [
2,
3,
4,
5,
6,
7
],
"type": "integer",
"description": "Default transport for this address; TOPTRANS courier when omitted"
},
"orientation_number": {
"type": "string",
"maxLength": 50,
"description": "Číslo orientační, optional"
}
}
}