studio
Design & price modular raised garden beds and walls: exact bill of materials, EUR price + checkout.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"studio": {
"url": "https://studio.gridgarden.eu/mcp"
}
}
}Remote-Endpunkte
https://studio.gridgarden.eu/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (5)
🟢studio_pricing_quote(shape, layers, length, width, length1, ...)
Compute the exact bill of materials (panels + connector pins) and total EUR price for a GridGarden modular Brick Premium raised bed (rectangle / L / U) or freestanding wall, from dimensions in millimetres. Quantities come from the same engine as the Studio configurator; prices are read live from Shopify for the delivery market you pass in `country`.
Eingabe-Schema
{
"type": "object",
"properties": {
"shape": {
"type": "string",
"enum": [
"rectangle",
"lshape",
"ushape",
"wall"
],
"description": "Design type and the dimension fields it needs (all in mm, auto-snapped to the 60mm build grid): rectangle → length + width; lshape → length1 + width1 + length2 + width2; ushape → topLength + topWidth + arm1Length + arm1Width + arm2Length + arm2Width; wall → wallLength. Layers: raised beds 2–13, walls 1–25. Call studio_templates_list for ready example dimensions."
},
"layers": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Number of brick layers. Raised beds 2-13, walls 1-25 (1 = a single 60mm top-cap course). Each layer ≈120mm tall (top layer +60mm)."
},
"length": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Rectangle: outer length in mm."
},
"width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Rectangle: outer width in mm."
},
"length1": {
"type": "number",
"exclusiveMinimum": 0,
"description": "L-shape: first leg length in mm."
},
"width1": {
"type": "number",
"exclusiveMinimum": 0,
"description": "L-shape: first leg width in mm."
},
"length2": {
"type": "number",
"exclusiveMinimum": 0,
"description": "L-shape: second leg length in mm."
},
"width2": {
"type": "number",
"exclusiveMinimum": 0,
"description": "L-shape: second leg width in mm."
},
"topLength": {
"type": "number",
"exclusiveMinimum": 0,
"description": "U-shape: back (top) length in mm."
},
"topWidth": {
"type": "number",
"exclusiveMinimum": 0,
"description": "U-shape: back (top) width in mm."
},
"arm1Length": {
"type": "number",
"exclusiveMinimum": 0,
"description": "U-shape: arm 1 length in mm."
},
"arm1Width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "U-shape: arm 1 width in mm."
},
"arm2Length": {
"type": "number",
"exclusiveMinimum": 0,
"description": "U-shape: arm 2 length in mm."
},
"arm2Width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "U-shape: arm 2 width in mm."
},
"wallLength": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Wall: single straight segment length in mm."
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "Delivery market as an ISO-3166-1 alpha-2 code (e.g. \"DE\", \"AT\", \"SK\"). Prices differ by market: SK and CZ are base, every other EU market adds €1 per structural piece. Ask which country the order ships to; omit only if unknown — that returns base (SK/CZ) prices."
}
},
"required": [
"shape",
"layers"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"shape": {
"type": "string",
"enum": [
"rectangle",
"lshape",
"ushape",
"wall"
]
},
"layers": {
"type": "number"
},
"bom": {
"type": "object",
"properties": {
"panels_middle": {
"type": "object",
"additionalProperties": {
"type": "number"
}
},
"panels_top": {
"type": "object",
"additionalProperties": {
"type": "number"
}
},
"pins": {
"type": "number"
}
},
"required": [
"panels_middle",
"panels_top",
"pins"
],
"additionalProperties": false
},
"shopify_items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": {
"type": "string"
},
"quantity": {
"type": "number"
},
"name": {
"type": "string"
},
"unit": {
"type": "string"
},
"is_optional": {
"type": "boolean"
},
"price": {
"type": "number"
}
},
"required": [
"sku",
"quantity",
"name"
],
"additionalProperties": false
}
},
"total_eur": {
"type": "number"
},
"currency": {
"type": "string",
"const": "EUR"
},
"country": {
"type": [
"string",
"null"
]
},
"price_basis": {
"type": "string",
"const": "shopify_live"
},
"summary": {
"type": "string"
},
"editor_url": {
"type": "string"
},
"snapped": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"requested": {
"type": "number"
},
"used": {
"type": "number"
}
},
"required": [
"field",
"requested",
"used"
],
"additionalProperties": false
}
}
},
"required": [
"shape",
"layers",
"bom",
"shopify_items",
"total_eur",
"currency",
"country",
"price_basis",
"summary",
"editor_url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢studio_templates_list
List the design shapes GridGarden Studio supports, with the dimension parameters each one needs.
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"type": "object",
"properties": {
"templates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"params": {
"type": "array",
"items": {
"type": "string"
}
},
"example": {
"type": "object",
"additionalProperties": {
"type": [
"string",
"number"
]
}
}
},
"required": [
"id",
"label",
"params",
"example"
],
"additionalProperties": false
}
}
},
"required": [
"templates"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢studio_catalog_bricks
List the GridGarden Brick Premium modular components — middle and TOP planks in XS–XL sizes (plus a 1200mm XXL TOP) and the connector pin — with live EUR unit prices and availability from Shopify. Brick Premium only; no other materials are sold. Read-only.
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"type": "object",
"properties": {
"catalog": {
"type": "array",
"items": {
"type": "object",
"properties": {
"variant_id": {
"type": "string"
},
"sku": {
"type": [
"string",
"null"
]
},
"title": {
"type": "string"
},
"role": {
"type": "string"
},
"price_eur": {
"type": "number"
},
"currency": {
"type": "string"
},
"available": {
"type": "boolean"
}
},
"required": [
"variant_id",
"sku",
"title",
"role",
"price_eur",
"currency",
"available"
],
"additionalProperties": false
}
},
"currency": {
"type": "string",
"const": "EUR"
},
"summary": {
"type": "string"
}
},
"required": [
"catalog",
"currency",
"summary"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴studio_bom_to_cart(shape, layers, length, width, length1, ...)
Build a ready-to-pay Shopify cart for a GridGarden Brick Premium raised bed (rectangle / L / U) or wall from millimetre dimensions, and return the checkout URL. Computes the exact bill of materials, maps it to the live Brick Premium product variants, and creates an ANONYMOUS cart — no account, login, or payment occurs; the user reviews and pays on gridgarden.eu. Returns checkout_url, total EUR, and the line items.
Eingabe-Schema
{
"type": "object",
"properties": {
"shape": {
"type": "string",
"enum": [
"rectangle",
"lshape",
"ushape",
"wall"
],
"description": "Design type and the dimension fields it needs (all in mm, auto-snapped to the 60mm build grid): rectangle → length + width; lshape → length1 + width1 + length2 + width2; ushape → topLength + topWidth + arm1Length + arm1Width + arm2Length + arm2Width; wall → wallLength. Layers: raised beds 2–13, walls 1–25. Call studio_templates_list for ready example dimensions."
},
"layers": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Number of brick layers. Raised beds 2-13, walls 1-25 (1 = a single 60mm top-cap course). Each layer ≈120mm tall (top layer +60mm)."
},
"length": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Rectangle: outer length in mm."
},
"width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Rectangle: outer width in mm."
},
"length1": {
"type": "number",
"exclusiveMinimum": 0,
"description": "L-shape: first leg length in mm."
},
"width1": {
"type": "number",
"exclusiveMinimum": 0,
"description": "L-shape: first leg width in mm."
},
"length2": {
"type": "number",
"exclusiveMinimum": 0,
"description": "L-shape: second leg length in mm."
},
"width2": {
"type": "number",
"exclusiveMinimum": 0,
"description": "L-shape: second leg width in mm."
},
"topLength": {
"type": "number",
"exclusiveMinimum": 0,
"description": "U-shape: back (top) length in mm."
},
"topWidth": {
"type": "number",
"exclusiveMinimum": 0,
"description": "U-shape: back (top) width in mm."
},
"arm1Length": {
"type": "number",
"exclusiveMinimum": 0,
"description": "U-shape: arm 1 length in mm."
},
"arm1Width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "U-shape: arm 1 width in mm."
},
"arm2Length": {
"type": "number",
"exclusiveMinimum": 0,
"description": "U-shape: arm 2 length in mm."
},
"arm2Width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "U-shape: arm 2 width in mm."
},
"wallLength": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Wall: single straight segment length in mm."
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "Delivery market as an ISO-3166-1 alpha-2 code (e.g. \"DE\", \"AT\", \"SK\"). Prices differ by market: SK and CZ are base, every other EU market adds €1 per structural piece. Ask which country the order ships to; omit only if unknown — that returns base (SK/CZ) prices."
},
"utm_source": {
"type": "string",
"enum": [
"chatgpt",
"claude",
"cursor",
"mcp"
],
"description": "Attribution source recorded on the Shopify cart (UTM). Defaults to \"mcp\"."
}
},
"required": [
"shape",
"layers"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"checkout_url": {
"type": "string"
},
"cart_id": {
"type": "string"
},
"total_eur": {
"type": "number"
},
"total_quantity": {
"type": "number"
},
"currency": {
"type": "string",
"const": "EUR"
},
"price_basis": {
"type": "string",
"const": "shopify_cart"
},
"line_items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"variant_id": {
"type": "string"
},
"quantity": {
"type": "number"
}
},
"required": [
"variant_id",
"quantity"
],
"additionalProperties": false
}
},
"summary": {
"type": "string"
},
"editor_url": {
"type": "string"
},
"snapped": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"requested": {
"type": "number"
},
"used": {
"type": "number"
}
},
"required": [
"field",
"requested",
"used"
],
"additionalProperties": false
}
}
},
"required": [
"checkout_url",
"cart_id",
"total_eur",
"total_quantity",
"currency",
"price_basis",
"line_items",
"summary",
"editor_url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢studio_design_rules(step)
List the design-knowledge-base rules relevant to one step of designing a garden (brief / koncept / dispozicia / vysadba / materialy) — up to 20 rules, each with its predicate, numeric thresholds, strength (must/should/may), confidence tag, and cited sources. No garden scene is read or required; this is reference knowledge, not a check against a specific design. Deterministic: the same step always returns the same rule set.
Eingabe-Schema
{
"type": "object",
"properties": {
"step": {
"type": "string",
"enum": [
"brief",
"koncept",
"dispozicia",
"vysadba",
"materialy"
],
"description": "Design process step to fetch rules for: brief, koncept, dispozicia, vysadba, materialy. Call this once per step you are working on — do not assume one step's rules cover another."
}
},
"required": [
"step"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"step": {
"type": "string",
"enum": [
"brief",
"koncept",
"dispozicia",
"vysadba",
"materialy"
]
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"area": {
"type": "string"
},
"strength": {
"type": "string",
"enum": [
"must",
"should",
"may"
]
},
"tag": {
"type": "string",
"enum": [
"measured",
"cited",
"expert",
"opinion"
]
},
"when": {
"type": "string"
},
"numbers": {
"type": "object",
"additionalProperties": {
"type": "number"
}
},
"textKey": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"ref": {
"type": "string"
},
"checkedAt": {
"type": "string"
}
},
"required": [
"name",
"url",
"checkedAt"
],
"additionalProperties": false
}
},
"legalNote": {
"type": "string",
"enum": [
"not-law",
"law-cz-only",
"municipal-varies"
]
},
"module": {
"type": "string"
}
},
"required": [
"id",
"area",
"strength",
"tag",
"when",
"numbers",
"textKey",
"sources",
"module"
],
"additionalProperties": false
}
},
"total": {
"type": "number"
},
"truncated": {
"type": "number"
},
"summary": {
"type": "string"
}
},
"required": [
"step",
"rules",
"total",
"truncated",
"summary"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Nachweis