Skip to main content
Glama

Import a PowerPoint or EaseWeb file

import_presentation

Create a new presentation of yours from a PowerPoint file (.pptx) or an EaseWeb archive (.zip, as exported by the site): slides, texts with their formatting, shapes, pictures, backgrounds and links become editable blocks, the way the "Import" button of the site does it. Returns the new presentation (ids only unless "response" is "full") and "warnings" about what could not be converted. With "into" (the slug of a presentation you may edit) the file updates that presentation instead: slide N of the file replaces the blocks and the background of slide N, which keeps its id, so links to it, notes and history stay; unchanged texts keep their translations. "slides" limits it to some numbers of the file; slides of the file after the last one of the presentation are added. Its title, theme, slide names and database scripts stay.

Input Schema

NameRequiredDescriptionDefault
intoNoSlug of an existing presentation to update from the file (instead of creating a new one).
titleNoTitle of the new presentation (optional).
accessNoWho sees it (default "private": only you, until you publish it; "public": everybody reads it; "open": every signed-in person edits it too).
renameNoWith "into": give the slides the names the file has (default false: they keep theirs).
slidesNoWith "into": only these slide numbers of the file (1-based); all by default.
projectNoSlug of one of your projects to put the presentation in.
filenameNoName of the file, like "lecture.pptx" (its extension helps to recognise the format; without a title, it gives the title).
responseNo"brief" (default): only the ids, numbers and types of the slides and blocks; "full": every prop of every block too.
data_base64YesThe file, base64 (a data: URL prefix is allowed; at most 28 MB).
base_versionNoWith "into": the "version" of the presentation as you read it; refused (409) when it changed meanwhile.
remove_extraNoWith "into": remove the slides of the presentation after the last slide of the file (default false).

Output Schema

NameRequiredDescriptionDefault
idYes
urlNoThe address people open in a browser.
langNoThe language its texts are written in; "tr" holds the others.
slugYesThe address of the presentation: /movie/<slug>/.
ownerNoUser name of the author.
themeNo
titleNo
accessNoopen, public or private.
slidesYes
projectNoThe project it belongs to, or null.
updatedNo
versionNoStamp of the content as it is now: give it back as "base_version" to change it only if nobody else did meanwhile.
can_editNoWhether you may change it.
databaseNoSetup scripts of the databases of runnable code blocks (shown to the author only).
title_trNoThe same text in the other languages of the site: {"en": "..."}.
warningsNoWhat could not be converted.
languagesNoThe languages of the site.
cover_slideNoId of the slide shown as its cover in the lists (null: an uploaded picture, or no slides).
descriptionNo
database_charsNoA part or the words only were read: how long each database script is (the whole presentation without "texts_only" gives them).
missing_translationsNoWhat is not translated yet into the other languages of the site (add it): the first ones; "missing_translations_count" says how many there are.
missing_translations_countNoHow many texts are not translated yet.

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. Changed3 schema fields changed
    • addedOutput schema / properties / missing_translations / items / properties / outdated
      Added value: +{
      +  "description": "There is a translation, written for an earlier text.",
      +  "type": "boolean"
      +}
    • 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. Changed2 schema fields changed
    • addedOutput schema / properties / database_chars
      Added value: +{
      +  "description": "A part or the words only were read: how long each database script is (the whole presentation without \"texts_only\" gives them).",
      +  "type": "object"
      +}
    • 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. Changed1 schema field changed
    • addedInput schema / properties / access
      Added value: +{
      +  "description": "Who sees it (default \"private\": only you, until you publish it; \"public\": everybody reads it; \"open\": every signed-in person edits it too).",
      +  "enum": [
      +    "open",
      +    "public",
      +    "private"
      +  ],
      +  "type": "string"
      +}
  5. Changed13 schema fields changed
    • addedInput schema / properties / base_version
      Added value: +{
      +  "description": "With \"into\": the \"version\" of the presentation as you read it; refused (409) when it changed meanwhile.",
      +  "type": "string"
      +}
    • addedInput schema / properties / into
      Added value: +{
      +  "description": "Slug of an existing presentation to update from the file (instead of creating a new one).",
      +  "type": "string"
      +}
    • addedInput schema / properties / remove_extra
      Added value: +{
      +  "description": "With \"into\": remove the slides of the presentation after the last slide of the file (default false).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / rename
      Added value: +{
      +  "description": "With \"into\": give the slides the names the file has (default false: they keep theirs).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / slides
      Added value: +{
      +  "description": "With \"into\": only these slide numbers of the file (1-based); all by default.",
      +  "items": {
      +    "type": "integer"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / 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 / missing_translations_count
      Added value: +{
      +  "description": "How many texts are not translated yet.",
      +  "type": "integer"
      +}
    • 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"
      +}
    • addedOutput schema / properties / updated
      Added value: +{
      +  "properties": {
      +    "added": {
      +      "description": "Numbers of the slides it added.",
      +      "items": {
      +        "type": "integer"
      +      },
      +      "type": "array"
      +    },
      +    "changed": {
      +      "description": "Numbers of the slides the file replaced.",
      +      "items": {
      +        "type": "integer"
      +      },
      +      "type": "array"
      +    },
      +    "removed": {
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / 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"
      +}
  6. Changed2 schema fields changed
    • addedOutput schema / properties / cover_slide
      Added value: +{
      +  "description": "Id of the slide shown as its cover in the lists (null: an uploaded picture, or no slides).",
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / database / properties / clickhouse
      Added value: +{
      +  "type": "string"
      +}
  7. Changed2 schema fields changed
    • 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"
      +}
  8. Changed6 schema fields changed
    • addedOutput schema / properties / lang
      Added value: +{
      +  "description": "The language its texts are written in; \"tr\" holds the others.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / languages
      Added value: +{
      +  "description": "The languages of the site.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / 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 / 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"
      +}
    • addedOutput schema / properties / title_tr
      Added value: +{
      +  "description": "The same text in the other languages of the site: {\"en\": \"...\"}.",
      +  "type": "object"
      +}
  9. Changed2 schema fields changed
    • addedInput schema / properties / project
      Added value: +{
      +  "description": "Slug of one of your projects to put the presentation in.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / project
      Added value: +{
      +  "description": "The project it belongs to, or null.",
      +  "properties": {
      +    "slug": {
      +      "type": "string"
      +    },
      +    "title": {
      +      "type": "string"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  10. Added

TDQS

A4.6/5.0
Behavior5/5

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

With annotations only declaring the safety flags, the description carries real weight: it explains that slide N replaces the blocks and background of slide N while keeping the id, notes, history and translations, that trailing slides of the file are appended, and that title/theme/slide names/database scripts are left untouched. It also discloses the response contract (ids only unless "full") and the 'warnings' channel for unconvertible content.

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?

Two paragraphs split cleanly along the create-vs-update axis, with the primary outcome and return shape front-loaded. A few sentences are long and clause-heavy (the 'into' paragraph chains four preservation rules), but each clause adds a distinct behavioral fact rather than restating the schema.

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 an 11-parameter mutation tool with an output schema, the description covers what an agent actually needs to decide: mode selection, in-place replacement scope, what survives, and that conversion problems surface as warnings rather than errors. Return-value detail is correctly left to the output schema and parameter detail to the 100%-covered input schema.

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 coverage is 100%, so the baseline is 3, but the description meaningfully enriches the hardest parameters: it explains the 'into' replacement semantics and the exact meaning of 'slides' (1-based slide numbers of the file, with trailing file slides added). Parameters like 'access', 'project', 'rename', 'remove_extra' and 'base_version' are left entirely to the schema.

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 ('Create a new presentation ... from a PowerPoint file (.pptx) or an EaseWeb archive (.zip)') and names the source formats and conversion behavior. It is clearly distinguishable from siblings like create_presentation (empty deck), copy_slides, and export_presentation.

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?

It explicitly lays out the two mutually exclusive modes: omit 'into' to create a new presentation, or pass 'into' to update an existing one in place. What is missing is a stated exclusion or pointer to alternatives (e.g., use create_presentation when you have no file), which keeps it short of a 5.

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