Replace the site's gate design in one call (FULL REPLACE, not merge). Pass a complete GateDesignV1, or {} to clear to default. To edit: get_gate_design, mutate draft_design (or published_design), send back. background/logo filenames must be prior gate-asset uploads for the SAME site. Returns advisory content-review flags (non-blocking). Editor role.
This tool accepts one of several shapes, so its input is given here as the JSON schema the server validates against.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"request_id": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{8,128}$",
"description": "Unique mutation ID. Reuse only to replay identical arguments; use a new ID for changed arguments."
},
"site_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Site UUID from list_sites or create_site."
},
"design": {
"description": "Full REPLACEMENT of the site's gate design (not a merge). Pass a complete canonical GateDesignV1 object, or {} to clear to Sentway's default. To edit incrementally: call get_gate_design, mutate the returned draft_design (or published_design when no draft exists), then send it back. Referenced background.filename and logo filenames must belong to prior gate-asset uploads for the SAME site.",
"$ref": "#/$defs/GateDesignInputV1"
}
},
"required": [
"request_id",
"site_id",
"design"
],
"additionalProperties": false,
"$defs": {
"GateDesignInputV1": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": false
},
{
"type": "object",
"properties": {
"v": {
"type": "number",
"const": 1
},
"layout": {
"type": "string",
"enum": [
"card",
"split",
"minimal"
]
},
"logo": {
"type": "object",
"properties": {
"primary_filename": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\.(webp|svg)$"
},
"secondary_filename": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\.(webp|svg)$"
},
"separator": {
"type": "string",
"enum": [
"x",
"plus",
"pipe",
"none"
]
},
"size": {
"type": "string",
"enum": [
"sm",
"md",
"lg"
]
}
},
"required": [
"primary_filename",
"separator",
"size"
],
"additionalProperties": false
},
"background": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "solid"
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
}
},
"required": [
"kind",
"color"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "gradient"
},
"from": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
},
"to": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
},
"angle": {
"type": "integer",
"minimum": 0,
"maximum": 360
}
},
"required": [
"kind",
"from",
"to",
"angle"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "image"
},
"filename": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\.(webp|svg)$"
},
"overlay_color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
},
"overlay_opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"blur": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"position_x": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"position_y": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"required": [
"kind",
"filename",
"overlay_color",
"overlay_opacity",
"blur"
],
"additionalProperties": false
}
]
},
"card": {
"type": "object",
"properties": {
"bg": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
},
"radius": {
"type": "string",
"enum": [
"none",
"sm",
"md",
"lg",
"xl"
]
},
"shadow": {
"type": "string",
"enum": [
"none",
"soft",
"strong"
]
},
"glass": {
"type": "boolean"
},
"border": {
"type": "object",
"properties": {
"width": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
}
},
"required": [
"width",
"color"
],
"additionalProperties": false
},
"padding": {
"type": "string",
"enum": [
"sm",
"md",
"lg",
"xl"
]
},
"width": {
"type": "string",
"enum": [
"narrow",
"default",
"wide"
]
},
"divider": {
"type": "boolean"
}
},
"required": [
"bg",
"radius",
"shadow",
"glass"
],
"additionalProperties": false
},
"text": {
"type": "object",
"properties": {
"heading": {
"type": "string",
"maxLength": 80
},
"message": {
"type": "string",
"maxLength": 500
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
},
"align": {
"type": "string",
"enum": [
"left",
"center",
"right"
]
},
"eyebrow": {
"type": "string",
"maxLength": 30
},
"subheading": {
"type": "string",
"maxLength": 120
},
"bullets": {
"maxItems": 6,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"heading_font": {
"type": "string",
"enum": [
"inter",
"space_grotesk",
"fraunces",
"source_serif",
"system"
]
},
"body_font": {
"type": "string",
"enum": [
"inter",
"space_grotesk",
"fraunces",
"source_serif",
"system"
]
},
"heading_weight": {
"type": "string",
"enum": [
"regular",
"medium",
"semibold",
"bold"
]
},
"heading_tracking": {
"type": "string",
"enum": [
"tight",
"normal",
"wide"
]
}
},
"required": [
"heading",
"message",
"color",
"align"
],
"additionalProperties": false
},
"button": {
"type": "object",
"properties": {
"label": {
"type": "string",
"minLength": 1,
"maxLength": 30
},
"bg": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
},
"radius": {
"type": "string",
"enum": [
"sm",
"md",
"lg",
"pill"
]
},
"size": {
"type": "string",
"enum": [
"sm",
"md",
"lg"
]
},
"full_width": {
"type": "boolean"
},
"variant": {
"type": "string",
"enum": [
"solid",
"outline",
"ghost"
]
},
"icon": {
"type": "string",
"enum": [
"none",
"arrow",
"lock",
"check"
]
},
"hover_intensity": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
}
},
"required": [
"label",
"bg",
"color",
"radius"
],
"additionalProperties": false
},
"accent": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
},
"fields_style": {
"type": "object",
"properties": {
"variant": {
"type": "string",
"enum": [
"outline",
"filled",
"underline"
]
},
"radius": {
"type": "string",
"enum": [
"sm",
"md",
"lg",
"pill"
]
},
"size": {
"type": "string",
"enum": [
"sm",
"md",
"lg"
]
},
"label_position": {
"type": "string",
"enum": [
"above",
"inside",
"hidden"
]
},
"bg": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
},
"border_color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
},
"focus_color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{8}$"
}
},
"required": [
"variant",
"radius",
"size",
"label_position"
],
"additionalProperties": false
},
"font": {
"type": "string",
"enum": [
"inter",
"space_grotesk",
"fraunces",
"source_serif",
"system"
]
},
"heading_size": {
"type": "string",
"enum": [
"sm",
"md",
"lg",
"xl"
]
},
"brand_side": {
"type": "string",
"enum": [
"left",
"right"
]
},
"split_ratio": {
"type": "string",
"enum": [
"balanced",
"brand"
]
},
"logo_placement": {
"type": "string",
"enum": [
"brand",
"form"
]
},
"privacy_policy_url": {
"type": "string",
"maxLength": 300,
"format": "uri",
"pattern": "^https:\\/\\/.*"
},
"form_heading": {
"type": "string",
"maxLength": 60
},
"form_subtext": {
"type": "string",
"maxLength": 120
}
},
"required": [
"v",
"layout",
"background",
"card",
"text",
"button",
"accent"
],
"additionalProperties": false
}
]
}
}
}| Name | Type | Description |
|---|---|---|
| site_id | uuid | — |
| review_flags | array of string | — |
| idempotency_replay | false | — |
set_gate_design is called by an AI assistant connected to Sentway over MCP, not by hand. Point the assistant at the Sentway MCP endpoint and complete the OAuth flow, and the tool becomes available in the same session as the other 38 Sentway tools. See connecting over MCP.