MCPサーバー

studio

eu.gridgarden/studio

このMCPでできること

Configures modular raised beds and walls, calculates bills of materials and prices, and can generate a Shopify checkout link.

studio_bom_to_cart
Add a GridGarden design to a Shopify cart (checkout link)
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.
破壊的操作あり 外部アクセスあり
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['shape', 'layers'], 'properties': {'shape': {'enum': ['rectangle', 'lshape', 'ushape', 'wall'], 'type': 'string', '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.'}, 'width': {'type': 'number', 'description': 'Rectangle: outer width in mm.', 'exclusiveMinimum': 0}, 'layers': {'type': 'integer', '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).', 'exclusiveMinimum': 0}, 'length': {'type': 'number', 'description': 'Rectangle: outer length in mm.', 'exclusiveMinimum': 0}, 'width1': {'type': 'number', 'description': 'L-shape: first leg width in mm.', 'exclusiveMinimum': 0}, 'width2': {'type': 'number', 'description': 'L-shape: second leg width in mm.', 'exclusiveMinimum': 0}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 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.'}, 'length1': {'type': 'number', 'description': 'L-shape: first leg length in mm.', 'exclusiveMinimum': 0}, 'length2': {'type': 'number', 'description': 'L-shape: second leg length in mm.', 'exclusiveMinimum': 0}, 'topWidth': {'type': 'number', 'description': 'U-shape: back (top) width in mm.', 'exclusiveMinimum': 0}, 'arm1Width': {'type': 'number', 'description': 'U-shape: arm 1 width in mm.', 'exclusiveMinimum': 0}, 'arm2Width': {'type': 'number', 'description': 'U-shape: arm 2 width in mm.', 'exclusiveMinimum': 0}, 'topLength': {'type': 'number', 'description': 'U-shape: back (top) length in mm.', 'exclusiveMinimum': 0}, 'arm1Length': {'type': 'number', 'description': 'U-shape: arm 1 length in mm.', 'exclusiveMinimum': 0}, 'arm2Length': {'type': 'number', 'description': 'U-shape: arm 2 length in mm.', 'exclusiveMinimum': 0}, 'utm_source': {'enum': ['chatgpt', 'claude', 'cursor', 'mcp'], 'type': 'string', 'description': 'Attribution source recorded on the Shopify cart (UTM). Defaults to "mcp".'}, 'wallLength': {'type': 'number', 'description': 'Wall: single straight segment length in mm.', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['checkout_url', 'cart_id', 'total_eur', 'total_quantity', 'currency', 'price_basis', 'line_items', 'summary', 'editor_url'], 'properties': {'cart_id': {'type': 'string'}, 'snapped': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'requested', 'used'], 'properties': {'used': {'type': 'number'}, 'field': {'type': 'string'}, 'requested': {'type': 'number'}}, 'additionalProperties': False}}, 'summary': {'type': 'string'}, 'currency': {'type': 'string', 'const': 'EUR'}, 'total_eur': {'type': 'number'}, 'editor_url': {'type': 'string'}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['variant_id', 'quantity'], 'properties': {'quantity': {'type': 'number'}, 'variant_id': {'type': 'string'}}, 'additionalProperties': False}}, 'price_basis': {'type': 'string', 'const': 'shopify_cart'}, 'checkout_url': {'type': 'string'}, 'total_quantity': {'type': 'number'}}, 'additionalProperties': False}
studio_catalog_bricks
GridGarden Brick Premium catalog + live prices
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.
読み取り専用 外部アクセスあり
入力スキーマ
{'type': 'object', 'properties': {}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['catalog', 'currency', 'summary'], 'properties': {'catalog': {'type': 'array', 'items': {'type': 'object', 'required': ['variant_id', 'sku', 'title', 'role', 'price_eur', 'currency', 'available'], 'properties': {'sku': {'type': ['string', 'null']}, 'role': {'type': 'string'}, 'title': {'type': 'string'}, 'currency': {'type': 'string'}, 'available': {'type': 'boolean'}, 'price_eur': {'type': 'number'}, 'variant_id': {'type': 'string'}}, 'additionalProperties': False}}, 'summary': {'type': 'string'}, 'currency': {'type': 'string', 'const': 'EUR'}}, 'additionalProperties': False}
studio_design_rules
GridGarden garden-design rule book (by design 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.
読み取り専用
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['step'], 'properties': {'step': {'enum': ['brief', 'koncept', 'dispozicia', 'vysadba', 'materialy'], 'type': 'string', '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."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['step', 'rules', 'total', 'truncated', 'summary'], 'properties': {'step': {'enum': ['brief', 'koncept', 'dispozicia', 'vysadba', 'materialy'], 'type': 'string'}, 'rules': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'area', 'strength', 'tag', 'when', 'numbers', 'textKey', 'sources', 'module'], 'properties': {'id': {'type': 'string'}, 'tag': {'enum': ['measured', 'cited', 'expert', 'opinion'], 'type': 'string'}, 'area': {'type': 'string'}, 'when': {'type': 'string'}, 'module': {'type': 'string'}, 'numbers': {'type': 'object', 'additionalProperties': {'type': 'number'}}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'url', 'checkedAt'], 'properties': {'ref': {'type': 'string'}, 'url': {'type': 'string'}, 'name': {'type': 'string'}, 'checkedAt': {'type': 'string'}}, 'additionalProperties': False}}, 'textKey': {'type': 'string'}, 'strength': {'enum': ['must', 'should', 'may'], 'type': 'string'}, 'legalNote': {'enum': ['not-law', 'law-cz-only', 'municipal-varies'], 'type': 'string'}}, 'additionalProperties': False}}, 'total': {'type': 'number'}, 'summary': {'type': 'string'}, 'truncated': {'type': 'number'}}, 'additionalProperties': False}
studio_pricing_quote
GridGarden raised-bed / wall price quote
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`.
読み取り専用 外部アクセスあり
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['shape', 'layers'], 'properties': {'shape': {'enum': ['rectangle', 'lshape', 'ushape', 'wall'], 'type': 'string', '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.'}, 'width': {'type': 'number', 'description': 'Rectangle: outer width in mm.', 'exclusiveMinimum': 0}, 'layers': {'type': 'integer', '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).', 'exclusiveMinimum': 0}, 'length': {'type': 'number', 'description': 'Rectangle: outer length in mm.', 'exclusiveMinimum': 0}, 'width1': {'type': 'number', 'description': 'L-shape: first leg width in mm.', 'exclusiveMinimum': 0}, 'width2': {'type': 'number', 'description': 'L-shape: second leg width in mm.', 'exclusiveMinimum': 0}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 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.'}, 'length1': {'type': 'number', 'description': 'L-shape: first leg length in mm.', 'exclusiveMinimum': 0}, 'length2': {'type': 'number', 'description': 'L-shape: second leg length in mm.', 'exclusiveMinimum': 0}, 'topWidth': {'type': 'number', 'description': 'U-shape: back (top) width in mm.', 'exclusiveMinimum': 0}, 'arm1Width': {'type': 'number', 'description': 'U-shape: arm 1 width in mm.', 'exclusiveMinimum': 0}, 'arm2Width': {'type': 'number', 'description': 'U-shape: arm 2 width in mm.', 'exclusiveMinimum': 0}, 'topLength': {'type': 'number', 'description': 'U-shape: back (top) length in mm.', 'exclusiveMinimum': 0}, 'arm1Length': {'type': 'number', 'description': 'U-shape: arm 1 length in mm.', 'exclusiveMinimum': 0}, 'arm2Length': {'type': 'number', 'description': 'U-shape: arm 2 length in mm.', 'exclusiveMinimum': 0}, 'wallLength': {'type': 'number', 'description': 'Wall: single straight segment length in mm.', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['shape', 'layers', 'bom', 'shopify_items', 'total_eur', 'currency', 'country', 'price_basis', 'summary', 'editor_url'], 'properties': {'bom': {'type': 'object', 'required': ['panels_middle', 'panels_top', 'pins'], 'properties': {'pins': {'type': 'number'}, 'panels_top': {'type': 'object', 'additionalProperties': {'type': 'number'}}, 'panels_middle': {'type': 'object', 'additionalProperties': {'type': 'number'}}}, 'additionalProperties': False}, 'shape': {'enum': ['rectangle', 'lshape', 'ushape', 'wall'], 'type': 'string'}, 'layers': {'type': 'number'}, 'country': {'type': ['string', 'null']}, 'snapped': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'requested', 'used'], 'properties': {'used': {'type': 'number'}, 'field': {'type': 'string'}, 'requested': {'type': 'number'}}, 'additionalProperties': False}}, 'summary': {'type': 'string'}, 'currency': {'type': 'string', 'const': 'EUR'}, 'total_eur': {'type': 'number'}, 'editor_url': {'type': 'string'}, 'price_basis': {'type': 'string', 'const': 'shopify_live'}, 'shopify_items': {'type': 'array', 'items': {'type': 'object', 'required': ['sku', 'quantity', 'name'], 'properties': {'sku': {'type': 'string'}, 'name': {'type': 'string'}, 'unit': {'type': 'string'}, 'price': {'type': 'number'}, 'quantity': {'type': 'number'}, 'is_optional': {'type': 'boolean'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
studio_templates_list
GridGarden Studio templates
List the design shapes GridGarden Studio supports, with the dimension parameters each one needs.
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['templates'], 'properties': {'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'params', 'example'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'params': {'type': 'array', 'items': {'type': 'string'}}, 'example': {'type': 'object', 'additionalProperties': {'type': ['string', 'number']}}}, 'additionalProperties': False}}}, 'additionalProperties': False}
追加
studio_design_rules
2026年9月17日12:39
追加
studio_bom_to_cart
2026年9月17日12:39
追加
studio_catalog_bricks
2026年9月17日12:39
追加
studio_templates_list
2026年9月17日12:39
追加
studio_pricing_quote
2026年9月17日12:39