Skip to main content
Glama

Add several slides

add_slides

Add several slides at once to a presentation you may edit, at the end or from "position" (1-based) on. Each slide is {"name", "w", "h", "bg", "fit", "transition", "transition_duration", "background", "objects": [blocks]}. A link {"kind": "slide", "slide_number": N} counts the slides of the presentation as they are after the insertion, so new slides may lead to each other. Returns the new slides (ids only unless "response" is "full").

Input Schema

NameRequiredDescriptionDefault
slugYesThe presentation's slug (its address: /movie/<slug>/).
slidesYesThe slides: [{"name", "w", "h", "bg", "fit", "transition", "transition_duration", "background", "objects"}].
positionNo1-based place of the first new slide; default: the end.
responseNo"brief" (default): only the ids, numbers and types of the slides and blocks; "full": every prop of every block too.

Output Schema

NameRequiredDescriptionDefault
totalNoSlides in the presentation now.
slidesYesThe new slides.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / slides / items / properties / objects / items / properties / type / description
      Previous value: -"text, shape, button, line, image or code."New value: +"text, shape, button, line, image, code or table."
  2. Changed2 schema fields changed
    • addedOutput schema / properties / slides / items / properties / layout_warnings / items / properties / lang
      Added value: +{
      +  "description": "Only the text in this language has the problem.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / slides / items / properties / missing_translations / items / properties / outdated
      Added value: +{
      +  "description": "There is a translation, written for an earlier text.",
      +  "type": "boolean"
      +}
  3. Changed1 schema field changed
    • addedOutput schema / properties / slides / items / properties / notes
      Added value: +{
      +  "description": "The speaker notes (for those who may edit; only when there are some).",
      +  "type": "string"
      +}
  4. Changed4 schema fields changed
    • addedOutput schema / properties / slides / items / properties / layout_warnings
      Added value: +{
      +  "description": "How the changed slides will probably look: texts too long for their blocks, blocks outside the slide, texts over each other (estimated -- look at them).",
      +  "items": {
      +    "properties": {
      +      "block_id": {
      +        "type": "integer"
      +      },
      +      "detail": {
      +        "type": "string"
      +      },
      +      "problem": {
      +        "description": "overflow, cut, outside or overlap.",
      +        "type": "string"
      +      },
      +      "slide_id": {
      +        "type": "integer"
      +      },
      +      "slide_number": {
      +        "type": "integer"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / slides / items / properties / missing_translations / description
      Previous value: -"What is not translated yet into the other languages of the site (add it)."New value: +"What is not translated yet into the other languages of the site (add it): the first ones; \"missing_translations_count\" says how many there are."
    • addedOutput schema / properties / slides / items / properties / missing_translations_count
      Added value: +{
      +  "description": "How many texts are not translated yet.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / slides / items / properties / version
      Added value: +{
      +  "description": "Stamp of the content as it is now: give it back as \"base_version\" to change it only if nobody else did meanwhile.",
      +  "type": "string"
      +}
  5. Changed4 schema fields changed
    • changedInput schema / properties / slides / description
      Previous value: -"The slides: [{\"name\", \"w\", \"h\", \"bg\", \"fit\", \"background\", \"objects\"}]."New value: +"The slides: [{\"name\", \"w\", \"h\", \"bg\", \"fit\", \"transition\", \"transition_duration\", \"background\", \"objects\"}]."
    • addedInput schema / properties / slides / items / properties
      Added value: +{
      +  "background": {
      +    "description": "Background picture: the \"src\" of an uploaded picture; null removes it.",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  },
      +  "bg": {
      +    "description": "Background colour, #rrggbb.",
      +    "type": "string"
      +  },
      +  "fit": {
      +    "description": "How the background picture fits.",
      +    "enum": [
      +      "contain",
      +      "cover",
      +      "stretch"
      +    ],
      +    "type": "string"
      +  },
      +  "h": {
      +    "description": "Canvas height in px (default 720).",
      +    "type": "integer"
      +  },
      +  "name": {
      +    "description": "Slide name (at most 100 characters), in the language of the presentation.",
      +    "maxLength": 100,
      +    "type": "string"
      +  },
      +  "name_tr": {
      +    "additionalProperties": {
      +      "type": "string"
      +    },
      +    "description": "The slide name in the other languages of the site: {\"en\": \"...\"}.",
      +    "type": "object"
      +  },
      +  "objects": {
      +    "description": "Blocks of the slide, bottom to top: [{\"type\": \"text\"|\"shape\"|\"button\"|\"line\"|\"image\"|\"code\", \"props\": {...}}]. Missing props take the presentation theme's defaults (every prop is described in the block format reference). A link to a slide of the same presentation may be given as {\"kind\": \"slide\", \"slide_number\": N}.",
      +    "items": {
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "transition": {
      +    "default": "none",
      +    "description": "Entrance effect of this incoming slide (default: none).",
      +    "enum": [
      +      "none",
      +      "fade",
      +      "slide-left",
      +      "slide-right",
      +      "zoom"
      +    ],
      +    "type": "string"
      +  },
      +  "transition_duration": {
      +    "default": 500,
      +    "description": "Animation duration in milliseconds (100-3000, default 500); not auto advance. Values outside the range are clamped.",
      +    "type": "integer"
      +  },
      +  "w": {
      +    "description": "Canvas width in px (200-4000, default 1280).",
      +    "type": "integer"
      +  }
      +}
    • addedOutput schema / properties / slides / items / properties / transition
      Added value: +{
      +  "description": "Entrance effect of this incoming slide.",
      +  "enum": [
      +    "none",
      +    "fade",
      +    "slide-left",
      +    "slide-right",
      +    "zoom"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / slides / items / properties / transition_duration
      Added value: +{
      +  "description": "Animation milliseconds, not auto advance.",
      +  "maximum": 3000,
      +  "minimum": 100,
      +  "type": "integer"
      +}
  6. Changed2 schema fields changed
    • addedOutput schema / properties / slides / items / properties / missing_translations
      Added value: +{
      +  "description": "What is not translated yet into the other languages of the site (add it).",
      +  "items": {
      +    "properties": {
      +      "block_id": {
      +        "type": "integer"
      +      },
      +      "lang": {
      +        "type": "string"
      +      },
      +      "slide_id": {
      +        "type": "integer"
      +      },
      +      "slide_number": {
      +        "type": "integer"
      +      },
      +      "what": {
      +        "description": "title, slide name or block.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / slides / items / properties / name_tr
      Added value: +{
      +  "description": "The same text in the other languages of the site: {\"en\": \"...\"}.",
      +  "type": "object"
      +}
  7. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-idempotent, non-destructive mutation. The description adds useful behavior: it requires edit permission, returns the new slides, and explains that slide_number links count slides after insertion so new slides can link to each other.

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

Conciseness5/5

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

The description is dense but front-loaded: purpose first, then slide object shape, then link-resolution behavior, then return format. Every sentence contributes useful information without wasted prose.

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?

With a 100%-covered schema and an output schema, the description is nearly complete for invocation. The only minor gap is that nested block props are only referenced indirectly rather than described, but that is acceptable given the structured schema and block format reference.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema carries the baseline. The description adds meaningful semantics beyond the schema by clarifying that position is 1-based, defaulting to the end, and by explaining that slide-number links are resolved after insertion.

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?

The description states a specific verb and resource: adding several slides at once to an editable presentation. It also distinguishes bulk insertion from the singular sibling add_slide by emphasizing 'several slides at once' and specifying insertion positions.

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

Usage Guidelines4/5

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

The description gives clear usage context: the presentation must be editable, and slides are inserted at the end or from a 1-based position. It does not explicitly compare with add_slide or copy_slides, so the alternative selection guidance is implied rather than stated.

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