Skip to main content
Glama

Create Presentation

create_presentation
DestructiveIdempotent

Build a finished, designed presentation from a prompt, text, or outline; export it as PPTX, PDF, or images, or share it by link.

Instructions

Create a finished, designed presentation from a prompt, text, or an outline.

Use it when the user asks for a presentation, deck, slides, a pitch, or a PowerPoint. The deck is saved in the user's Presentations.AI workspace and can be exported as PPTX, PDF or slide images, or shared by link.

deck takes the same fields as POST /decks: e.g. prompt, sources ({"type": "text", "content": ...}), slide_count, audience, level_of_detail, deck_purpose, brand_kit_id (find one with search_brand_kits), or an edited outline from create_outline. Retrying an identical call returns the same deck; pass a new request_id to generate another copy.

Generation spends credits and takes a few minutes in the background: poll task_id with get_task, then fetch the file with get_export, or a public link with share_deck when the user asks for one.

Input Schema

NameRequiredDescriptionDefault
deckYes`POST /decks` input; the outline schema is enforced on submit, not spelled out here.
request_idNoOptional idempotency key. Omitted: retrying an identical request returns the same deck; after a FAILED run, or once that deck is deleted, it starts a new one.

Output Schema

NameRequiredDescriptionDefault
statusYesLifecycle state of an async task: CREATED (queued), RUNNING, then COMPLETED or FAILED.
deck_idYes
task_idYes
deck_urlYesOpens the deck in the PresentationsAI app; requires signing in as a member with access. Not a public link: use `share_deck` for one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Beyond the annotations it discloses that generation is asynchronous (a few minutes, poll task_id), consumes credits, saves into the workspace, and that an identical retry returns the same deck while a new request_id makes another copy — all non-obvious and not in the structured fields. It does not explain failure handling or what a spent-credit failed run leaves behind, so the mutation lifecycle is only partly covered.

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 purpose and trigger, then input construction, then the asynchronous follow-up path — a sensible order for a complex tool. A few parentheticals (e.g. the sources example object) are borderline redundant with the 100%-covered schema, but nothing is wasted enough to hurt.

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 tool with 20+ nested deck fields, no output-schema explanation is needed, and the description instead supplies the piece an agent actually needs: the generate-then-poll-then-export/share workflow. Combined with the full schema coverage, an agent has enough to call it correctly and handle the result.

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; the description adds real routing value by pointing brand_kit_id at search_brand_kits and outline at create_outline's output, and by enumerating representative deck fields (prompt, sources, slide_count, audience, level_of_detail, deck_purpose). It stops short of explaining the outline-vs-prompt mutual exclusivity enforced by the oneOf, which the agent must infer from 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?

The first sentence gives a specific verb and resource with scope: 'Create a finished, designed presentation from a prompt, text, or an outline.' The second sentence lists the user phrasings that should trigger it (presentation, deck, slides, pitch, PowerPoint), which separates it cleanly from create_outline (outline only) and get_deck (retrieval).

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?

Explicit trigger language ('Use it when the user asks for...') plus routing to siblings: create_outline for the outline input, search_brand_kits for brand_kit_id, get_task/get_export/share_deck for the post-generation steps. The user's request for a public link is named as the condition that selects share_deck.

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