Access and gates

set_gate_design

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.

Behaviour

Effect
Destructive. It can remove or overwrite existing data.
Repeat calls
Idempotent. Repeating the same call produces the same result.
Plan
Available on every plan, including free.

Parameters

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
        }
      ]
    }
  }
}

Returns

NameTypeDescription
site_iduuid
review_flagsarray of string
idempotency_replayfalse

Using it

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.