Skip to main content
Glama

update_draft

Updates the saved draft: text, lists, prices and also the IMAGES (gallery and bannerUrl, with the paths image_upload_link returns) and the VIDEO (video, the path video_upload_link returns; null removes it). Only the ZIP stays out: it is uploaded apart and travels with the submission. Same allowed values and same limits as create_draft, all of them in the input schema.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoPublic name of the template, 1 to 80 characters.
tagsNoSearch tags, 1 to 5, of up to 28 characters (free text).
priceNoRegular price in USDC, a NUMBER (49, 49.5), from 1 to 100000. The same number as text ("49") is also accepted and normalized.
stackNoTechnologies of the product (free text, 1 to 5 items of up to 30 characters): "Next.js", "PostgreSQL"…
videoNoOptional. ONE native video of the template: the `path` returned by video_upload_link (you PUT the original MP4, MOV or WebM there first). The server converts it to a single MP4 (H.264 + AAC, 720p or 1080p depending on the source) plus a still cover; it can be submitted while it is still processing, but the human review waits until it is ready, and a video the processing rejected blocks the listing until it is replaced or removed ([VIDEO_FAILED], with its reason). Upload the file BEFORE saving the path: saving it (draft or submission) is what checks it and queues it for processing. my_templates and my_draft give its state (`video.status`: awaiting_upload, queued, processing, ready, failed). null or an empty string removes it. YouTube links are no longer accepted: the old YouTube links field (youtubeLinks) was removed: an empty list is ignored and a non-empty one is rejected with [INVALID_DATA].
demoUrlNoLive demo: full http(s) URL.
galleryNoImages of the product: 3 to 20 PATHS returned by image_upload_link (/api/media/template-media/…/x.webp). Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGE_ASPECT_RATIO], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission. ANIMATED WebP is accepted too, with the same aspect ratio, up to the configured size per image and number per template (gallery and bannerUrl together; image_upload_link gives the live limits in `animated`). When the listing is saved the server keeps a STATIC cover (the first frame, stored next to it as `<path>.poster.webp`) and puts that path in the listing: cards, catalog, social card and every answer use the still frame, and only the gallery of the listing page plays the animation. Over the limits it is rejected with [ANIMATED_IMAGE_TOO_HEAVY], [ANIMATED_IMAGE_TOO_LARGE] (a side over the resolution cap), [TOO_MANY_ANIMATED_IMAGES] or [INVALID_ANIMATED_IMAGE]. Put the cover FIRST: without bannerUrl, the first gallery image is the cover of the card and of the listing (that is what the web wizard does). If you do send bannerUrl, do NOT repeat that image here: the listing shows bannerUrl first and then these. External URLs and other formats are not valid (old templates keep URLs from the former public Vercel Blob host: they are still accepted, but they no longer serve any image).
supportNoSupport contact, ONE single value: the email if supportKind is "email", the http(s) URL if it is "url". When it is submitted for review it travels split into supportEmail or supportUrl.
taglineNoSHORT description (the one shown on the catalog card), 1 to 200 characters.
categoryNoCatalog category. Closed list, lowercase and without accents: only one of these values.
includesNo"What's included": 1 to 4 bullet points of up to 120 characters each.
bannerUrlNoOPTIONAL cover image: a PATH from image_upload_link, just like the gallery ones and with the SAME aspect ratio. Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGE_ASPECT_RATIO], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission. It may be an animated WebP: it counts toward the animated limit and the listing keeps its static first frame as the cover. Usually leave it empty and put the cover as the FIRST gallery image. If you set it, it becomes the first image of the listing, shown BEFORE the gallery, so it must NOT also be in `gallery` (a repeated image is shown once).
platformsNoTarget platforms, 1 to 7. Closed list, lowercase: only these values.
descriptionNoLONG description of the listing. Simple HTML is allowed (the server sanitizes it) with your own images as <img src="/api/media/…">, 1 to 100000 characters. AGENT ACCOUNTS also have two caps of their own from the pre-filter: 8000 plain text characters and 50 links.
licenseTypeNoSale licence. `standard` (the site calls it "Standard"): sold as many times as you want. `exclusive` ("Exclusive"): sale exclusivity, sold ONCE, it leaves the catalog and is never resold on any platform. IT CANNOT BE CHANGED AFTER PUBLISHING. Without this field it is published as `standard`.
nativeLangsNoNATIVE languages of the application being sold (not the language of the listing), 1 to 8. Two letter ISO codes, closed list: es, en, fr, de, it, nl, pt, id.
supportKindNoWhat `support` is: "email" (an email address) or "url" (a link). Only these two values.
discountPriceNoDiscounted price, same format and same range as price, and STRICTLY LOWER than it. It is the effective sale price.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYesAlways true: the draft has been saved.
draftYesThe draft after the update, in the MCP vocabulary.
editingYesAlways null: an EDIT draft is never touched from here.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / video
      Added value: +{
      +  "description": "Optional. ONE native video of the template: the `path` returned by video_upload_link (you PUT the original MP4, MOV or WebM there first). The server converts it to a single MP4 (H.264 + AAC, 720p or 1080p depending on the source) plus a still cover; it can be submitted while it is still processing, but the human review waits until it is ready, and a video the processing rejected blocks the listing until it is replaced or removed ([VIDEO_FAILED], with its reason). Upload the file BEFORE saving the path: saving it (draft or submission) is what checks it and queues it for processing. my_templates and my_draft give its state (`video.status`: awaiting_upload, queued, processing, ready, failed). null or an empty string removes it. YouTube links are no longer accepted: the old YouTube links field (youtubeLinks) was removed: an empty list is ignored and a non-empty one is rejected with [INVALID_DATA].",
      +  "maxLength": 300,
      +  "pattern": "^/api/media/template-media/[A-Za-z0-9_-]+/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\.(mp4|mov|webm)$",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedInput schema / properties / youtubeLinks
      Removed value: -{
      -  "description": "Videos: up to 3 YouTube links (the server extracts the id). Videos are NOT uploaded.",
      -  "items": {
      -    "maxLength": 300,
      -    "type": "string"
      -  },
      -  "maxItems": 3,
      -  "type": "array"
      -}
  2. Changed2 schema fields changed
    • changedInput schema / properties / bannerUrl / description
      Previous value: -"OPTIONAL cover image: a PATH from image_upload_link, just like the gallery ones and with the SAME aspect ratio. Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGE_ASPECT_RATIO], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission. Usually leave it empty and put the cover as the FIRST gallery image. If you set it, it becomes the first image of the listing, shown BEFORE the gallery, so it must NOT also be in `gallery` (a repeated image is shown once)."New value: +"OPTIONAL cover image: a PATH from image_upload_link, just like the gallery ones and with the SAME aspect ratio. Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGE_ASPECT_RATIO], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission. It may be an animated WebP: it counts toward the animated limit and the listing keeps its static first frame as the cover. Usually leave it empty and put the cover as the FIRST gallery image. If you set it, it becomes the first image of the listing, shown BEFORE the gallery, so it must NOT also be in `gallery` (a repeated image is shown once)."
    • changedInput schema / properties / gallery / description
      Previous value: -"Images of the product: 3 to 20 PATHS returned by image_upload_link (/api/media/template-media/…/x.webp). Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGE_ASPECT_RATIO], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission. Put the cover FIRST: without bannerUrl, the first gallery image is the cover of the card and of the listing (that is what the web wizard does). If you do send bannerUrl, do NOT repeat that image here: the listing shows bannerUrl first and then these. External URLs and other formats are not valid (old templates keep URLs from the former public Vercel Blob host: they are still accepted, but they no longer serve any image)."New value: +"Images of the product: 3 to 20 PATHS returned by image_upload_link (/api/media/template-media/…/x.webp). Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGE_ASPECT_RATIO], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission. ANIMATED WebP is accepted too, with the same aspect ratio, up to the configured size per image and number per template (gallery and bannerUrl together; image_upload_link gives the live limits in `animated`). When the listing is saved the server keeps a STATIC cover (the first frame, stored next to it as `<path>.poster.webp`) and puts that path in the listing: cards, catalog, social card and every answer use the still frame, and only the gallery of the listing page plays the animation. Over the limits it is rejected with [ANIMATED_IMAGE_TOO_HEAVY], [ANIMATED_IMAGE_TOO_LARGE] (a side over the resolution cap), [TOO_MANY_ANIMATED_IMAGES] or [INVALID_ANIMATED_IMAGE]. Put the cover FIRST: without bannerUrl, the first gallery image is the cover of the card and of the listing (that is what the web wizard does). If you do send bannerUrl, do NOT repeat that image here: the listing shows bannerUrl first and then these. External URLs and other formats are not valid (old templates keep URLs from the former public Vercel Blob host: they are still accepted, but they no longer serve any image)."
  3. Changed2 schema fields changed
    • changedInput schema / properties / bannerUrl / description
      Previous value: -"Cover image: a PATH from image_upload_link, just like the gallery ones and with the SAME aspect ratio. Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGE_ASPECT_RATIO], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission."New value: +"OPTIONAL cover image: a PATH from image_upload_link, just like the gallery ones and with the SAME aspect ratio. Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGE_ASPECT_RATIO], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission. Usually leave it empty and put the cover as the FIRST gallery image. If you set it, it becomes the first image of the listing, shown BEFORE the gallery, so it must NOT also be in `gallery` (a repeated image is shown once)."
    • changedInput schema / properties / gallery / description
      Previous value: -"Images of the product: 3 to 20 PATHS returned by image_upload_link (/api/media/template-media/…/x.webp). Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGE_ASPECT_RATIO], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission. External URLs and other formats are not valid (old templates keep URLs from the former public Vercel Blob host: they are still accepted, but they no longer serve any image)."New value: +"Images of the product: 3 to 20 PATHS returned by image_upload_link (/api/media/template-media/…/x.webp). Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGE_ASPECT_RATIO], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission. Put the cover FIRST: without bannerUrl, the first gallery image is the cover of the card and of the listing (that is what the web wizard does). If you do send bannerUrl, do NOT repeat that image here: the listing shows bannerUrl first and then these. External URLs and other formats are not valid (old templates keep URLs from the former public Vercel Blob host: they are still accepted, but they no longer serve any image)."
  4. Changed5 schema fields changed
    • changedInput schema / properties / bannerUrl / description
      Previous value: -"Cover image: a PATH from image_upload_link, just like the gallery ones and with the SAME aspect ratio. Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGEN_PROPORCION], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission."New value: +"Cover image: a PATH from image_upload_link, just like the gallery ones and with the SAME aspect ratio. Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGE_ASPECT_RATIO], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission."
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "web",
      -  "mobile",
      -  "desktop",
      -  "saas",
      -  "ecommerce",
      -  "ia",
      -  "landing",
      -  "dashboards",
      -  "juegos",
      -  "api",
      -  "herramientas"
      -]New value: +[
      +  "web",
      +  "mobile",
      +  "desktop",
      +  "saas",
      +  "ecommerce",
      +  "ai",
      +  "landing",
      +  "dashboards",
      +  "games",
      +  "api",
      +  "tools"
      +]
    • changedInput schema / properties / gallery / description
      Previous value: -"Images of the product: 3 to 20 PATHS returned by image_upload_link (/api/media/template-media/…/x.webp). Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGEN_PROPORCION], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission. External URLs and other formats are not valid (old templates keep URLs from the former public Vercel Blob host: they are still accepted, but they no longer serve any image)."New value: +"Images of the product: 3 to 20 PATHS returned by image_upload_link (/api/media/template-media/…/x.webp). Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGE_ASPECT_RATIO], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission. External URLs and other formats are not valid (old templates keep URLs from the former public Vercel Blob host: they are still accepted, but they no longer serve any image)."
    • changedInput schema / properties / licenseType / description
      Previous value: -"Sale licence. `standard` (the site calls it \"Standard\"): sold as many times as you want. `exclusive` (\"Exclusive\"): sale exclusivity, sold ONCE, it leaves the catalog and is never resold on any platform. IT CANNOT BE CHANGED AFTER PUBLISHING. Without this field it is published as `standard`. The old names `recurrente` and `unica` are still accepted."New value: +"Sale licence. `standard` (the site calls it \"Standard\"): sold as many times as you want. `exclusive` (\"Exclusive\"): sale exclusivity, sold ONCE, it leaves the catalog and is never resold on any platform. IT CANNOT BE CHANGED AFTER PUBLISHING. Without this field it is published as `standard`."
    • changedInput schema / properties / platforms / items / enum
      Previous value: -[
      -  "web",
      -  "android",
      -  "ios",
      -  "windows",
      -  "macos",
      -  "linux",
      -  "multiplataforma"
      -]New value: +[
      +  "web",
      +  "android",
      +  "ios",
      +  "windows",
      +  "macos",
      +  "linux",
      +  "multiplatform"
      +]
  5. Changed22 schema fields changed
    • changedInput schema / description
      Previous value: -"Campos del borrador (hay UNO por cuenta y lo comparte con el asistente /vender). Todos son opcionales: el borrador se va rellenando a trozos y my_draft dice qué falta para poder enviarlo. Límites y obligatorios VIGENTES en la plataforma: se leen al responder tools/list y el admin puede cambiarlos (vuelve a pedir tools/list; el error de la validación trae siempre la cifra viva). / Draft fields; all optional, my_draft lists what is still missing. Limits and required fields are the platform's current ones, read when tools/list is answered."New value: +"Draft fields (there is ONE per account and it is shared with the /vender wizard). They are all optional: the draft is filled in piece by piece and my_draft says what is missing before it can be submitted. Limits and required fields are the CURRENT ones on the platform: they are read when tools/list is answered and the admin can change them (ask for tools/list again; the validation error always carries the live figure)."
    • changedInput schema / properties / bannerUrl / description
      Previous value: -"Imagen de portada: una RUTA de image_upload_link, igual que las de gallery y con la MISMA proporción. Proporción 4:3 (tolerancia ±4 %), recomendado 1600x1200 px: es la misma a la que el asistente /vender recorta las imágenes de la web. Lo que no encaje se RECHAZA al enviar ([IMAGEN_PROPORCION], con las medidas que tenía); no se recorta por ti, el encuadre es tuyo. image_upload_link lo repite en su respuesta con las medidas vivas y check_before_submit lo comprueba antes de gastar el envío. / Cover image path from image_upload_link, same 4:3 aspect ratio."New value: +"Cover image: a PATH from image_upload_link, just like the gallery ones and with the SAME aspect ratio. Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGEN_PROPORCION], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission."
    • changedInput schema / properties / category / description
      Previous value: -"Categoría del catálogo. Lista cerrada, en minúsculas y sin acentos: solo uno de estos valores. / Catalog category; closed list, lowercase, exactly one of these values."New value: +"Catalog category. Closed list, lowercase and without accents: only one of these values."
    • changedInput schema / properties / demoUrl / description
      Previous value: -"Demo en vivo: URL http(s) completa. / Live demo; full http(s) URL."New value: +"Live demo: full http(s) URL."
    • changedInput schema / properties / description / description
      Previous value: -"Descripción LARGA de la ficha. Admite HTML sencillo (el servidor lo sanea) con imágenes propias como <img src=\"/api/media/…\">, 1 a 100000 caracteres. Las CUENTAS-AGENTE tienen además dos topes propios del prefiltro: 8000 caracteres de texto plano y 50 enlaces. / Long description, 1 to 100000 characters; simple HTML allowed and sanitized server side. Agent accounts also have their own pre-filter caps: 8000 plain text characters and 50 links."New value: +"LONG description of the listing. Simple HTML is allowed (the server sanitizes it) with your own images as <img src=\"/api/media/…\">, 1 to 100000 characters. AGENT ACCOUNTS also have two caps of their own from the pre-filter: 8000 plain text characters and 50 links."
    • changedInput schema / properties / discountPrice / description
      Previous value: -"Precio con descuento, mismo formato y mismo rango que price, y ESTRICTAMENTE MENOR que él. Es el precio efectivo de venta. / Discounted price; same range as price and strictly lower than it."New value: +"Discounted price, same format and same range as price, and STRICTLY LOWER than it. It is the effective sale price."
    • changedInput schema / properties / gallery / description
      Previous value: -"Imágenes del producto: 3 a 20 RUTAS devueltas por image_upload_link (/api/media/template-media/…/x.webp). Proporción 4:3 (tolerancia ±4 %), recomendado 1600x1200 px: es la misma a la que el asistente /vender recorta las imágenes de la web. Lo que no encaje se RECHAZA al enviar ([IMAGEN_PROPORCION], con las medidas que tenía); no se recorta por ti, el encuadre es tuyo. image_upload_link lo repite en su respuesta con las medidas vivas y check_before_submit lo comprueba antes de gastar el envío. No valen URLs externas ni otros formatos (las plantillas viejas conservan URLs del antiguo host público de Vercel Blob: se siguen aceptando, pero ya no sirven imágenes). / Product images: 3 to 20 paths returned by image_upload_link, WebP only, 4:3 aspect ratio (±4 %); anything else is rejected on submit."New value: +"Images of the product: 3 to 20 PATHS returned by image_upload_link (/api/media/template-media/…/x.webp). Aspect ratio 4:3 (tolerance ±4 %), recommended 1600x1200 px: the same one the /vender wizard crops the web images to. Anything that does not fit is REJECTED on submit ([IMAGEN_PROPORCION], with the size it had); it is not cropped for you, the framing is yours. image_upload_link repeats it in its answer with the live measurements and check_before_submit checks it before spending the submission. External URLs and other formats are not valid (old templates keep URLs from the former public Vercel Blob host: they are still accepted, but they no longer serve any image)."
    • changedInput schema / properties / includes / description
      Previous value: -"«Qué incluye»: 1 a 4 puntos de hasta 120 caracteres cada uno. / What's included: 1 to 4 short bullet points."New value: +"\"What's included\": 1 to 4 bullet points of up to 120 characters each."
    • changedInput schema / properties / licenseType / description
      Previous value: -"Licencia de venta. `standard` (la web la llama «Estándar»): se vende tantas veces como quieras. `exclusive` («Exclusiva»): exclusividad de venta, se vende UNA vez, sale del catálogo y no se revende en ninguna plataforma. NO SE PUEDE CAMBIAR DESPUÉS DE PUBLICAR. Sin este campo se publica como `standard`. Se siguen aceptando los nombres antiguos `recurrente` y `unica`. / Sale licence: `standard` sells many times; `exclusive` sells once and may never be resold anywhere. Cannot be changed after publishing; defaults to `standard`. Legacy values `recurrente` and `unica` are still accepted."New value: +"Sale licence. `standard` (the site calls it \"Standard\"): sold as many times as you want. `exclusive` (\"Exclusive\"): sale exclusivity, sold ONCE, it leaves the catalog and is never resold on any platform. IT CANNOT BE CHANGED AFTER PUBLISHING. Without this field it is published as `standard`. The old names `recurrente` and `unica` are still accepted."
    • changedInput schema / properties / name / description
      Previous value: -"Nombre público de la plantilla, 1 a 80 caracteres. / Public template name, 1 to 80 characters."New value: +"Public name of the template, 1 to 80 characters."
    • changedInput schema / properties / nativeLangs / description
      Previous value: -"Idiomas NATIVOS de la aplicación que se vende (no el idioma de la ficha), 1 a 8. Códigos ISO de dos letras, lista cerrada: es, en, fr, de, it, nl, pt, id. / Languages the delivered app itself ships with, 1 to 8; two letter codes, closed list."New value: +"NATIVE languages of the application being sold (not the language of the listing), 1 to 8. Two letter ISO codes, closed list: es, en, fr, de, it, nl, pt, id."
    • changedInput schema / properties / platforms / description
      Previous value: -"Plataformas objetivo, 1 a 7. Lista cerrada, en minúsculas: solo estos valores. / Target platforms, 1 to 7; closed list, lowercase."New value: +"Target platforms, 1 to 7. Closed list, lowercase: only these values."
    • changedInput schema / properties / price / description
      Previous value: -"Precio regular en USDC, NÚMERO (49, 49.5), de 1 a 100000. También se acepta el mismo número como texto (\"49\") y se normaliza. / Regular price in USDC as a number, 1 to 100000; a numeric string is accepted and normalized."New value: +"Regular price in USDC, a NUMBER (49, 49.5), from 1 to 100000. The same number as text (\"49\") is also accepted and normalized."
    • changedInput schema / properties / stack / description
      Previous value: -"Tecnologías del producto (texto libre, 1 a 5 elementos de hasta 30 caracteres): \"Next.js\", \"PostgreSQL\"… / Tech stack, 1 to 5 free text items."New value: +"Technologies of the product (free text, 1 to 5 items of up to 30 characters): \"Next.js\", \"PostgreSQL\"…"
    • changedInput schema / properties / support / description
      Previous value: -"Contacto de soporte, UN solo valor: el correo si supportKind es \"email\", la URL http(s) si es \"url\". Al enviar a revisión viaja separado en supportEmail o supportUrl. / Support contact value; its kind is supportKind."New value: +"Support contact, ONE single value: the email if supportKind is \"email\", the http(s) URL if it is \"url\". When it is submitted for review it travels split into supportEmail or supportUrl."
    • changedInput schema / properties / supportKind / description
      Previous value: -"Qué es `support`: \"email\" (correo) o \"url\" (enlace). Solo estos dos valores. / What `support` holds: email address or link."New value: +"What `support` is: \"email\" (an email address) or \"url\" (a link). Only these two values."
    • changedInput schema / properties / tagline / description
      Previous value: -"Descripción CORTA (la que se ve en la tarjeta del catálogo), 1 a 200 caracteres. / Short one line description shown on the catalog card, 1 to 200 characters."New value: +"SHORT description (the one shown on the catalog card), 1 to 200 characters."
    • changedInput schema / properties / tags / description
      Previous value: -"Etiquetas de búsqueda, 1 a 5, de hasta 28 caracteres (texto libre). / Search tags, 1 to 5; free text."New value: +"Search tags, 1 to 5, of up to 28 characters (free text)."
    • changedInput schema / properties / youtubeLinks / description
      Previous value: -"Vídeos: hasta 3 enlaces de YouTube (el servidor extrae el id). Los vídeos NO se suben. / YouTube links, up to 3; videos are never uploaded."New value: +"Videos: up to 3 YouTube links (the server extracts the id). Videos are NOT uploaded."
    • changedOutput schema / properties / draft / description
      Previous value: -"El borrador ya actualizado, en el vocabulario del MCP."New value: +"The draft after the update, in the MCP vocabulary."
    • changedOutput schema / properties / editing / description
      Previous value: -"Siempre null: desde aquí no se toca el borrador de una EDICIÓN."New value: +"Always null: an EDIT draft is never touched from here."
    • changedOutput schema / properties / ok / description
      Previous value: -"Siempre true: el borrador se ha guardado."New value: +"Always true: the draft has been saved."
  6. First observed

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does meaningful work: it discloses that the ZIP is uploaded separately and travels with submission, that null removes the video, and that limits/values mirror create_draft. It omits permission/auth requirements and reversibility, but the core behavioral contract is conveyed.

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

Conciseness4/5

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

Front-loaded with the primary action and scope, followed by the notable ZIP exception and the create_draft reference. It is dense but every clause adds routing or constraint value, with little waste.

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

Completeness4/5

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

For an 18-parameter, all-optional draft updater with an output schema and exhaustive per-field documentation, the description supplies the cross-cutting context (ZIP exclusion, shared limits with create_draft) an agent needs. Missing only explicit sibling routing and permission notes.

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

Parameters3/5

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

Schema description coverage is 100% and each of the 18 fields is documented in depth within the schema itself. The description only adds that paths come from image_upload_link/video_upload_link and that null clears the video, which the schema already states, so baseline 3 applies.

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 ("Updates the saved draft") and enumerates exactly which fields it touches: text, lists, prices, images and video. It also draws a clear boundary by naming what it does NOT handle (the ZIP), letting an agent separate it from create_draft and delete_draft.

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

Usage Guidelines3/5

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

It implies update semantics for an existing draft and routes the agent to create_draft for "same allowed values and same limits," and it clarifies that the ZIP must be handled apart. However, it never explicitly states when to use this versus create_draft or delete_draft, leaving usage to inference.

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