Skip to main content
Glama

Edit an event website's draft (organizers only)

site_edit
Destructive

Changes the DRAFT of one event website the person organizes with small operations, not a whole design: move a block or a band, insert a block from the library (heading, text, image, button, spacer, divider, video, card, logo, or a live block: agenda, speakers, floor, booths (the live sponsors and exhibitors list; say sponsors, exhibitors or partners), faq, now, doors, ask, countdown, venue), remove one, set_text its words, set_link a button's link, set_style a style token (padding and gap 0 to 8, align, maxWidth, background, radius, color, visible), set_theme (accent, background and ink as #rrggbb, fontHeading, fontBody, radius, density; set_theme {restore:true}, or an all-empty theme, undoes "use that look"), add_page (blank, which starts with its title as a heading, or a template: agenda, speakers, exhibitors, sponsors, venue-travel, faq, register, contact; the page goes last in the site menu), rename_page (title, navLabel; the page address stays the same, and the page heading follows the new menu label unless keepHeading is true; the reply says what changed and carries undo, the set_text that puts the old heading back), reorder_nav (the site menu as page ids and https links) and remove_page (any page but home); each operation may name a page. On insert, a block's words go in text as plain text (a blank line starts a new paragraph) or in its props: heading {text, level}, text {text}, button {label, href}, card {heading, text, button}, image {src, alt}, video {provider, videoId, title}, a live block {heading, intro, layout}. Blocks are named by the short ids site_get gives. The operations apply together or not at all. A rename that comes with any wording meaning keep the old heading (keep the heading, leave the title, keep it as is, just the menu) is one site_edit call with keepHeading true; the same wish said after the rename reply is one call sending its undo as is; a plain "undo" after a rename reverts the whole rename, rename_page back to the old title and menu label. Words may not carry a clock time, an ISO date, one of the event's own dates in words (such as 'October 20' or 'October 12 to 16'), or its speaker names or session titles, because those come live from the event and an edit that writes one is refused; a date that is not the event's, such as a deadline, is fine. Use a live token instead, such as {event.dates}, {event.name}, {event.venue}, {session:.title}, {session:.time}, {session:.day} or {speaker:.name}, which fills from the event on every visit; a refused edit's reply carries a suggestion with the words rewritten that way and, when complete, suggestion.ops to resend as is. Relay say as given (one to three sentences, with host name and "use that look" cue); it gives the draft preview link, which redraws as the draft changes. The live site does not change until site_publish. Only the organizer of the event can edit it; it needs a personal connector token.

Input Schema

NameRequiredDescriptionDefault
opsYesThe operations, applied together or not at all.
siteIdYesThe site id from site_list.
eventIdOrNameYesThe event id or name as the organizer spells it.

Output Schema

NameRequiredDescriptionDefault
okNo
codeNo
undoNo
errorNo
siteIdNo
appliedNo
changesNo
messageNo
reasonsNo
failedOpNo
servedByNo
draftPreviewLinkNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed26 schema fields changed
    • changedInput schema / properties / eventIdOrName / description
      Previous value: -"The event id or the event name as the organizer spells it."New value: +"The event id or name as the organizer spells it."
    • changedInput schema / properties / ops / description
      Previous value: -"The operations, in order, applied together or not at all."New value: +"The operations, applied together or not at all."
    • removedInput schema / properties / ops / items / properties / after / description
      Removed value: -"Place it after this short id."
    • removedInput schema / properties / ops / items / properties / before / description
      Removed value: -"Place it before this short id."
    • removedInput schema / properties / ops / items / properties / columns / description
      Removed value: -"set_layout: how many columns, 1 to 3."
    • removedInput schema / properties / ops / items / properties / field / description
      Removed value: -"set_text: which words (text, label, heading, intro, alt, title)."
    • changedInput schema / properties / ops / items / properties / href / description
      Previous value: -"set_link: an https or mailto address, #<short id> on this page, or page:<page id> for another page of this site."New value: +"https, mailto, #<id> or page:<page id>."
    • removedInput schema / properties / ops / items / properties / index / description
      Removed value: -"The position, from 0."
    • removedInput schema / properties / ops / items / properties / into / description
      Removed value: -"Place it inside this column or band."
    • changedInput schema / properties / ops / items / properties / keepHeading / description
      Previous value: -"rename_page: true whenever the person indicates, in ANY words, that the page heading should stay as it was (for example keep the heading, leave the title, keep it as is, leave the heading alone, just the menu); absent, the heading follows the new menu label."New value: +"true whenever the person indicates, in ANY words, that the page heading should stay as it was (keep the heading, leave the title, keep it as is, leave the heading alone, just the menu)."
    • removedInput schema / properties / ops / items / properties / kind / description
      Removed value: -"insert: the block kind from the library."
    • removedInput schema / properties / ops / items / properties / leftOf / description
      Removed value: -"move and insert: place it in the column to the left of this block; a one-column row gets a second column."
    • removedInput schema / properties / ops / items / properties / nav / description
      Removed value: -"reorder_nav: the site menu in order, page ids and {label, href} https links."
    • removedInput schema / properties / ops / items / properties / navLabel / description
      Removed value: -"rename_page: the shorter label in the site menu; empty uses the title."
    • changedInput schema / properties / ops / items / properties / node / description
      Previous value: -"The short id of the block or band it changes."New value: +"Block or band id or label."
    • changedInput schema / properties / ops / items / properties / op / description
      Previous value: -"move, insert, remove, remove_page, set_text, set_link, set_style, set_theme, add_page, rename_page, reorder_nav or set_layout (a row, or the band holding it, in `columns` 1 to 3 of equal width). A move or insert may go `rightOf` or `leftOf` a block, into the column beside it. Blocks, bands and pages may be named by their short id or by the label site_get gives them."New value: +"set_layout puts a row in `columns` 1 to 3; move and insert may go `rightOf` or `leftOf` a block."
    • removedInput schema / properties / ops / items / properties / page / description
      Removed value: -"The page the operation is on; home when absent."
    • removedInput schema / properties / ops / items / properties / props / description
      Removed value: -"insert: the block's own fields. heading {text, level 1-4}; text {text} (plain words); button {label, href, variant: primary or secondary}; image {src, alt, fit}; card {heading, text, image, alt, button {label, href}}; video {provider: youtube or vimeo, videoId, title}; spacer {size 1-8}; logo {size: small, medium or large}; a live block {heading, intro, layout}."
    • removedInput schema / properties / ops / items / properties / rightOf / description
      Removed value: -"move and insert: place it in the column to the right of this block; a one-column row gets a second column."
    • removedInput schema / properties / ops / items / properties / style / description
      Removed value: -"set_style or insert: style tokens; null clears one."
    • changedInput schema / properties / ops / items / properties / template / description
      Previous value: -"add_page: blank (a page with its title as a heading), agenda, speakers, exhibitors, sponsors, venue-travel, faq, register or contact."New value: +"add_page: blank, agenda, speakers, exhibitors, sponsors, venue-travel, faq, register or contact."
    • changedInput schema / properties / ops / items / properties / text / description
      Previous value: -"set_text and insert: the words, plain text; a blank line starts a new paragraph. On insert they go to the block's own words (heading and text: text; button: label; card: heading; image and logo: alt; video: title; a live block: heading), or to `field`."New value: +"Plain words."
    • removedInput schema / properties / ops / items / properties / theme / description
      Removed value: -"set_theme: the look; null clears one."
    • removedInput schema / properties / ops / items / properties / title / description
      Removed value: -"add_page and rename_page: the page's title."
    • removedInput schema / properties / ops / items / properties / toPage / description
      Removed value: -"move: the page it goes to."
    • changedInput schema / properties / siteId / description
      Previous value: -"The site's id as site_list gives it."New value: +"The site id from site_list."
  2. Changed11 schema fields changed
    • changedInput schema / properties / ops / items / properties / after / maxLength
      Previous value: -32New value: +60
    • changedInput schema / properties / ops / items / properties / before / maxLength
      Previous value: -32New value: +60
    • addedInput schema / properties / ops / items / properties / columns
      Added value: +{
      +  "description": "set_layout: how many columns, 1 to 3.",
      +  "maximum": 3,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / ops / items / properties / into / maxLength
      Previous value: -32New value: +60
    • addedInput schema / properties / ops / items / properties / leftOf
      Added value: +{
      +  "description": "move and insert: place it in the column to the left of this block; a one-column row gets a second column.",
      +  "maxLength": 60,
      +  "type": "string"
      +}
    • changedInput schema / properties / ops / items / properties / node / maxLength
      Previous value: -32New value: +60
    • changedInput schema / properties / ops / items / properties / op / description
      Previous value: -"move, insert, remove, remove_page, set_text, set_link, set_style, set_theme, add_page, rename_page or reorder_nav."New value: +"move, insert, remove, remove_page, set_text, set_link, set_style, set_theme, add_page, rename_page, reorder_nav or set_layout (a row, or the band holding it, in `columns` 1 to 3 of equal width). A move or insert may go `rightOf` or `leftOf` a block, into the column beside it. Blocks, bands and pages may be named by their short id or by the label site_get gives them."
    • changedInput schema / properties / ops / items / properties / op / enum
      Previous value: -[
      -  "move",
      -  "insert",
      -  "remove",
      -  "remove_page",
      -  "set_text",
      -  "set_link",
      -  "set_style",
      -  "set_theme",
      -  "add_page",
      -  "rename_page",
      -  "reorder_nav"
      -]New value: +[
      +  "move",
      +  "insert",
      +  "remove",
      +  "remove_page",
      +  "set_text",
      +  "set_link",
      +  "set_style",
      +  "set_theme",
      +  "add_page",
      +  "rename_page",
      +  "reorder_nav",
      +  "set_layout"
      +]
    • changedInput schema / properties / ops / items / properties / page / maxLength
      Previous value: -32New value: +60
    • addedInput schema / properties / ops / items / properties / rightOf
      Added value: +{
      +  "description": "move and insert: place it in the column to the right of this block; a one-column row gets a second column.",
      +  "maxLength": 60,
      +  "type": "string"
      +}
    • changedInput schema / properties / ops / items / properties / toPage / maxLength
      Previous value: -32New value: +60
  3. Changed11 schema fields changed
    • changedInput schema / properties / ops / items / properties / href / description
      Previous value: -"set_link: an https or mailto address."New value: +"set_link: an https or mailto address, #<short id> on this page, or page:<page id> for another page of this site."
    • addedInput schema / properties / ops / items / properties / keepHeading
      Added value: +{
      +  "description": "rename_page: true whenever the person indicates, in ANY words, that the page heading should stay as it was (for example keep the heading, leave the title, keep it as is, leave the heading alone, just the menu); absent, the heading follows the new menu label.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / ops / items / properties / nav
      Added value: +{
      +  "description": "reorder_nav: the site menu in order, page ids and {label, href} https links.",
      +  "items": {
      +    "anyOf": [
      +      {
      +        "maxLength": 32,
      +        "type": "string"
      +      },
      +      {
      +        "properties": {
      +          "href": {
      +            "maxLength": 500,
      +            "type": "string"
      +          },
      +          "label": {
      +            "maxLength": 24,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "label",
      +          "href"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  "maxItems": 8,
      +  "type": "array"
      +}
    • addedInput schema / properties / ops / items / properties / navLabel
      Added value: +{
      +  "description": "rename_page: the shorter label in the site menu; empty uses the title.",
      +  "maxLength": 24,
      +  "type": "string"
      +}
    • changedInput schema / properties / ops / items / properties / op / description
      Previous value: -"move, insert, remove, set_text, set_link, set_style, set_theme or add_page; rename_page and reorder_nav arrive with multi-page sites."New value: +"move, insert, remove, remove_page, set_text, set_link, set_style, set_theme, add_page, rename_page or reorder_nav."
    • changedInput schema / properties / ops / items / properties / op / enum
      Previous value: -[
      -  "move",
      -  "insert",
      -  "remove",
      -  "set_text",
      -  "set_link",
      -  "set_style",
      -  "set_theme",
      -  "add_page",
      -  "rename_page",
      -  "reorder_nav"
      -]New value: +[
      +  "move",
      +  "insert",
      +  "remove",
      +  "remove_page",
      +  "set_text",
      +  "set_link",
      +  "set_style",
      +  "set_theme",
      +  "add_page",
      +  "rename_page",
      +  "reorder_nav"
      +]
    • changedInput schema / properties / ops / items / properties / props / description
      Previous value: -"insert: the block's own fields."New value: +"insert: the block's own fields. heading {text, level 1-4}; text {text} (plain words); button {label, href, variant: primary or secondary}; image {src, alt, fit}; card {heading, text, image, alt, button {label, href}}; video {provider: youtube or vimeo, videoId, title}; spacer {size 1-8}; logo {size: small, medium or large}; a live block {heading, intro, layout}."
    • changedInput schema / properties / ops / items / properties / template / description
      Previous value: -"add_page: blank, agenda, speakers, exhibitors, faq or venue."New value: +"add_page: blank (a page with its title as a heading), agenda, speakers, exhibitors, sponsors, venue-travel, faq, register or contact."
    • changedInput schema / properties / ops / items / properties / text / description
      Previous value: -"set_text: the new words, plain text; a blank line starts a new paragraph."New value: +"set_text and insert: the words, plain text; a blank line starts a new paragraph. On insert they go to the block's own words (heading and text: text; button: label; card: heading; image and logo: alt; video: title; a live block: heading), or to `field`."
    • addedInput schema / properties / ops / items / properties / title
      Added value: +{
      +  "description": "add_page and rename_page: the page's title.",
      +  "maxLength": 60,
      +  "type": "string"
      +}
    • addedOutput schema / properties / undo
      Added value: +{
      +  "items": {
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  4. Added

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the destructiveHint/readOnlyHint annotations: atomic all-or-nothing application, drafts not touching the live site until site_publish, refusal rules for embedding dates/speaker names, and the undo/suggestion reply behavior. Very strong, though the return shape for non-rename ops is left thin (partly covered by the output schema).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the body is a single dense paragraph with long parenthetical enumerations (all block kinds, all live blocks) that is hard to scan. Much of the detail earns its place, but the readability suffers from run-on structure rather than tight, separable statements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, many-op mutation tool with an output schema, the description covers auth, atomicity, draft-vs-live, refusal and suggestion behavior, and live-token substitution — enough for an agent to call it correctly without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, yet the description still adds real meaning: it enumerates each op, documents the props shapes per block kind (heading/text/card/image/video/live), explains live tokens, and gives concrete template and keepHeading conditions. This is substantially more than the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Changes the DRAFT of one event website') and scopes it sharply ('small operations, not a whole design'), clearly separating it from siblings site_publish and site_get. An agent can distinguish edit-draft from publish/read without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly delineates when this is used vs. not: draft-only until site_publish, organizer-only with a personal connector token, and detailed routing for the rename+keepHeading case and its undo. It also names the refused-edit path and the suggestion resend, so the agent knows exactly which call to make in each scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources