list_presentations
List the authenticated user's presentations.
No parameters.
Returns presentations and resource_uri. Read-only; no operation ID is needed.
MCP guide · Recommended
Connect Flamigo to your assistant with MCP.
A Flamigo account is required.
Copy the prompt into your agent to install MCP and the Flamigo skill.
Install Flamigo MCP and its skill in my current agent. I authorize the required configuration and skill changes. Execute the setup yourself; ask me only for unavoidable sign-in, consent, permissions or restart actions.
Refresh MCP and skill discovery. Confirm the saved endpoint, recognized skill, and authenticated tool/resource discovery, then call list_presentations (an empty list is valid). Do not create or modify presentations or spend generation Credits to test setup.
Report the agent, endpoint, skill location and verification result briefly. Say "Flamigo is ready" only after all checks pass. If a capability, download, authorization or reload is blocked, finish independent steps and report what remains and the smallest required user action. Do not equate saved configuration with a verified connection.
flamigo://themes, choose one color ID and one font ID, then pass color_preset_id and font_preset_id to create_presentation with the title and source material. Omit them to use color-navy-white and font-modern.draft_outline. Review the resulting sentences and layouts.generate_slides_from_outline to replace all pages and their checkpoints./slides resource. For each slide with has_html=false, call render_slide with its own current revision.layout_content_current in each existing preview's slide detail. Refresh stale previews with render_slide. Once every slide is ready, read flamigo://presentations/{presentation_id}/export/html and save the returned HTML document.To edit an existing slide, read its metadata and /dsl resource first. Use update_slide for content replacement, generate_slide_dsl for new structured content. Call render_slide after editing. Save a checkpoint before a design change you may want to undo. Refresh the web workspace to see MCP changes.
Call update_presentation with the current presentation revision and the desired preset IDs, presentation_style or illustration_instruction. presentation_style selects the native component library and layout strategy: editorial (default), swiss or minimal. Generated illustrations are image components in the slide DSL. Existing illustrations are reused. The optional background_image_url sets a separate slide background; illustration_instruction guides newly generated illustrations (up to 4,000 Unicode characters). An empty string clears this instruction; omitted or null values leave it unchanged on update. Ask whether to refresh existing slides after a style change. Colors supply canvas, text and accent; the renderer derives the remaining roles. Fonts supply display and body as ordered fallback stacks, not lists of options to select separately.
If theme_changed is true, render each entry in slides_to_refresh with a new operation ID, the presentation ID, its slide ID, expected_revision and apply_project_theme. Existing illustration components are reused. Pending slides without HTML follow the normal generation workflow. Review the refreshed slides before exporting; saved HTML and exports keep their previous appearance until rendering completes.
The refresh list is a snapshot, including when an operation is replayed. Re-read slide revisions if other edits occurred. With apply_project_theme: true, rendering uses the current project presets and style. Otherwise it prefers the saved slide theme.
Read the single-slide resource. has_html indicates a saved preview exists; layout_content_current indicates it matches the saved content and layout. If false, call render_slide before comparing designs. To replace the entire layout, including manual placements, call redraw_slide with the current slide revision.
Call generate_slide_alternatives with the current revision of a rendered slide to explore up to five component variant combinations while preserving its content, layout and background. Read the returned batch resource for status and each ready candidate’s preview_resource_uri to inspect its HTML. Generation and previews do not change the saved slide. Apply a choice with apply_slide_alternative, its batch and candidate IDs, and the batch’s base_revision as expected_revision.
Choices use compatible component variants from the saved slide theme, falling back to project settings for missing or invalid fields and retain the saved background. Generating and previewing these choices makes no LLM calls and spends no Credits. They expire (normally after 30 minutes) and become stale after slide, theme or renderer changes. Generate a new set when that happens; fresh: true requests another batch once the current batch finishes. Pending batches are reused. Save a checkpoint before applying if you need an undo point.
Pro accounts can read flamigo://presentations/{presentation_id}/export/pptx. Save the decoded MCP binary blob as a .pptx file. Text is editable; complex visuals are separate images. Fonts are not embedded, so PowerPoint may substitute missing fonts. Export does not spend Credits. HTML export remains available for browser presentation.
This is a JSON-RPC request after client initialization and authorization. Subsequent writes need new operation IDs and the revisions returned by current resources.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_presentation",
"arguments": {
"operation_id": "review-create-001",
"title": "Quarterly review",
"color_preset_id": "color-navy-white",
"font_preset_id": "font-modern",
"source_content": "Revenue grew 20%. Next quarter: expand onboarding."
}
}
}Read resource contents using resources/read with { "uri": "flamigo://presentations" }. Resource URIs are MCP identifiers, not browser download links.
All 16 tools are listed below. Parameters without a default are required. Presentation and slide IDs use UUID strings; preset IDs are slugs such as font-modern; None means optional/null. Discover tools/list on the connected server for its current schemas.
expected_revision is the presentation revision for presentation operations and create_slide; it is the slide revision for all other slide writes. operation_id is required for every write.
NarrativeOutlineInput: page_no ≥ 1, sentence 1–500 characters, and a supported layout. SlideDslInput: optional page_no matching the 1-based array position and complete dsl as an object or JSON string. Layouts: hero, section, groups, split, process, comparison, chart, table, quote, image-focus, diagram. Complexity: concise, medium or detailed. presentation_style: editorial (default), swiss or minimal. illustration_instruction: optional art direction, up to 4,000 Unicode characters. draft_outline.direction: up to 900 Unicode characters. max_pages is a maximum of 1–30 slides; sparse material may produce fewer. Source material and single-slide AI writing input each allow up to 30,000 Unicode characters, including spaces and line breaks.
list_presentationsList the authenticated user's presentations.
No parameters.
Returns presentations and resource_uri. Read-only; no operation ID is needed.
create_presentationCreate an empty presentation. Select color_preset_id and font_preset_id from flamigo://themes by type. Defaults: color-navy-white, font-modern. IDs are preset slugs.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
title | str | Required |
source_content | strMaximum 30,000 Unicode characters, including spaces and line breaks. | '' |
color_preset_id | str | None | None |
font_preset_id | str | None | None |
presentation_style | Literal['editorial', 'swiss', 'minimal'] | NoneNative component library and layout strategy. Defaults to editorial on creation; omitted or null leaves it unchanged on update. | None |
illustration_instruction | str | NoneArt direction for newly generated DSL images, up to 4,000 Unicode characters. Existing illustrations are reused. Empty string clears the instruction. | None |
Returns presentation metadata, its revision, resource_uri and web_url. Creates an empty presentation; it does not generate slides.
update_presentationUpdate metadata, source, presentation_style, illustration_instruction, or independent color_preset_id/font_preset_id from flamigo://themes. Ask the user whether to refresh existing HTML after a style change. Omitted or null values leave selections unchanged. Uses the presentation revision. Does not render HTML; returns theme_changed and slides_to_refresh with slide revisions and the theme refresh flag.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
expected_revision | intRevision of the target presentation (at least 1). | Required |
title | str | None | None |
source_content | str | NoneMaximum 30,000 Unicode characters, including spaces and line breaks. | None |
color_preset_id | str | None | None |
font_preset_id | str | None | None |
presentation_style | Literal['editorial', 'swiss', 'minimal'] | NoneNative component library and layout strategy. Defaults to editorial on creation; omitted or null leaves it unchanged on update. | None |
illustration_instruction | str | NoneArt direction for newly generated DSL images, up to 4,000 Unicode characters. Existing illustrations are reused. Empty string clears the instruction. | None |
Returns presentation metadata, resource_uri, theme_changed and slides_to_refresh. Each refresh entry contains slide_id, page_no, expected_revision and apply_project_theme. Existing HTML is unchanged until rendered. Omitted or null values leave existing selections unchanged.
create_slideCreate a slide, optionally after an existing slide.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
expected_revision | intRevision of the target presentation (at least 1). | Required |
after_slide_id | UUID | None | None |
Returns the new slide, presentation_revision and resource_uri. expected_revision belongs to the presentation. Omit after_slide_id to append.
update_slideSupply at least one update: complete slide DSL or background_image_url.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
slide_id | UUID | Required |
expected_revision | intRevision of the target slide (at least 1). | Required |
dsl | dict[str, Any] | str | None | None |
background_image_url | str | NoneHTTPS URL to set the background, empty string to remove it, or null/omitted to keep it. | None |
Returns slide ID, page number, revision, title and resource_uri. Supply a complete DSL object or serialized JSON, not a JSON Patch. Re-render after content changes.
draft_outlineDraft a presentation-level narrative outline from the saved source.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
expected_revision | intRevision of the target presentation (at least 1). | Required |
max_pages | intMaximum slide count (1–30); sparse source material may produce fewer. | 8 |
direction | strMaximum 900 Unicode characters. | '' |
Returns outline, presentation_revision and resource_uri. Uses saved source_content. Each outline item contains page_no, sentence and layout.
generate_slides_from_dslReplace all slides in the presentation with the supplied complete slide DSL objects. Existing slides and their checkpoints are deleted. This clears the previous generation batch. Read /slides and render every page with has_html=false.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
expected_revision | intRevision of the target presentation (at least 1). | Required |
slides | list[SlideDslInput]All pages in display order. Page numbers are assigned from 1. | Required |
Returns slides, presentation_revision and resource_uri. Supply at least one { dsl } entry in display order. Use update_slide for a single page.
generate_slides_from_outlineGenerate DSL from the reviewed outline, using its sentences as source material when the saved source is empty. Replace all slides and their checkpoints. Render each new slide afterward.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
expected_revision | intRevision of the target presentation (at least 1). | Required |
outline | list[NarrativeOutlineInput] | Required |
complexity | Literal['concise', 'medium', 'detailed'] | 'detailed' |
Returns generation_id, status, phase, slide_count, presentation_revision and resource_uri. Supply outline items { page_no, sentence, layout }. Their sentences supply the material when source_content is empty. HTML rendering remains pending.
render_slideRender a slide. Automatically reuse a saved layout when possible or create one when needed. Set apply_project_theme to refresh its theme. Returns the HTML resource_uri, including on replay.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
slide_id | UUID | Required |
expected_revision | intRevision of the target slide (at least 1). | Required |
apply_project_theme | bool | False |
Returns slide_id, revision and an HTML resource_uri. Older replay results can omit page_no. The default reuses the saved layout when possible and creates one when needed. Generated illustrations are stored once as DSL images. Read the latest slide revision before calling.
redraw_slideRedesign the whole slide layout from its saved content and render a new preview, replacing any manual layout.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
slide_id | UUID | Required |
expected_revision | intRevision of the target slide (at least 1). | Required |
Returns slide_id, page_no, revision and an HTML resource_uri. Replans the entire slide, including any manual layout, using its saved content and effective slide theme.
generate_slide_dslReplace the target slide content with newly generated DSL and clear its saved layout and HTML. Render it afterward.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
slide_id | UUID | Required |
expected_revision | intRevision of the target slide (at least 1). | Required |
content | strMaximum 30,000 Unicode characters, including spaces and line breaks. | Required |
layout | SlideDslLayout | 'section' |
complexity | Literal['concise', 'medium', 'detailed'] | 'detailed' |
Returns slide data including DSL, and resource_uri. Replaces the slide content and clears its layout and HTML; call render_slide afterward.
get_generation_statusRead generation batch progress. Direct DSL imports have idle status. Use has_html in /slides to find missing previews and layout_content_current in slide detail to find stale previews.
| Parameter | Type | Default |
|---|---|---|
presentation_id | UUID | Required |
Returns presentation metadata and per-slide id, page_no, status, error and revision. Read-only; use this to identify unfinished or failed slides.
save_checkpointSave the current slide design as a restorable checkpoint.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
slide_id | UUID | Required |
expected_revision | intRevision of the target slide (at least 1). | Required |
label | str | 'Agent checkpoint' |
Returns checkpoint, slide_revision and resource_uri. Retain the returned checkpoint ID for restoration.
restore_checkpointRestore a saved checkpoint with revision protection.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
slide_id | UUID | Required |
checkpoint_id | UUID | Required |
expected_revision | intRevision of the target slide (at least 1). | Required |
Returns checkpoint, slide_revision and the slide HTML resource_uri. The checkpoint must belong to the selected slide.
generate_slide_alternativesGenerate up to five variant combinations using the slide’s saved theme, preserving geometry and background. Waits for newly created choices; reuses existing choices unless fresh=true. May return pending choices from another request: read resource_uri for status. Preview ready candidates using preview_resource_uri, then apply_slide_alternative. Requires configured Redis and a preview matching the current slide and layout. No LLM calls or generation credits. Choices expire. Replaying operation_id returns the original snapshot; read resource_uri for current status.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
slide_id | UUID | Required |
expected_revision | intRevision of the target slide (at least 1). | Required |
fresh | boolRequest a new batch after the current batch finishes. An in-progress batch is always reused. | False |
Returns a batch with base_revision, candidate status, resource_uri and preview_resource_uri values. Read the resource for current status; operation replay returns the original snapshot. Choices preserve layout and background, with no AI calls or Credits.
apply_slide_alternativeApply a ready design choice with the batch's base_revision as expected_revision. Preserves slide content and saves the selected design and HTML. Expired choices or changes to the slide/theme require generating a new set.
| Parameter | Type | Default |
|---|---|---|
operation_id | strAccount-wide operation ID, 1–128 characters after trimming. Reuse only for an identical retry. | Required |
presentation_id | UUID | Required |
slide_id | UUID | Required |
batch_id | UUID | Required |
candidate_id | Literal['1', '2', '3', '4', '5'] | Required |
expected_revision | intbase_revision returned by the candidate batch (at least 1). | Required |
Returns slide_id, page_no, revision and the saved HTML resource_uri. Use the batch base_revision as expected_revision. Keeps the current DSL and saves the chosen design.
Read resources with resources/read; discover fixed URIs with resources/list and parameterized URIs with resources/templates/list. Use returned UUIDs for presentation and slide IDs. Use the returned preset slug for {preset_id}.
flamigo://presentationsThe authenticated user's Flamigo presentations. application/json
flamigo://presentations/{presentation_id}Presentation metadata and generation state; large content has dedicated resources. application/json
flamigo://presentations/{presentation_id}/sourceThe complete source material for a presentation. text/markdown
flamigo://presentations/{presentation_id}/outlineThe current presentation-level narrative outline and layout choices. application/json
flamigo://presentations/{presentation_id}/export/htmlExport saved HTML with slide navigation. For the latest content, render missing or stale previews first. text/html
flamigo://presentations/{presentation_id}/slidesOrdered slide IDs, revisions, and has_html. Render pages with has_html=false regardless of generation status. application/json
flamigo://presentations/{presentation_id}/slides/{slide_id}Slide metadata, revision and layout_content_current (whether saved HTML matches the slide content and layout). application/json
flamigo://presentations/{presentation_id}/slides/{slide_id}/dslThe complete structured Slide DSL for one slide. application/json
flamigo://presentations/{presentation_id}/slides/{slide_id}/htmlThe complete rendered document for one slide. text/html
flamigo://themesAvailable color and font presets. Select one ID of each type. application/json
flamigo://themes/{preset_id}One color or font preset and its JSON parameters. application/json
flamigo://presentations/{presentation_id}/export/pptxExport saved slide previews as a PPTX binary. Requires Pro. For the latest content, render missing or stale previews first. application/vnd.openxmlformats-officedocument.presentationml.presentation
flamigo://presentations/{presentation_id}/slides/{slide_id}/alternatives/{batch_id}Current design choices and preview URIs. Choices expire and become stale after edits. application/json
flamigo://presentations/{presentation_id}/slides/{slide_id}/alternatives/{batch_id}/{candidate_id}/htmlPreview one ready design without changing the saved slide. text/html
Metadata and slide lists are lightweight: they omit full source, DSL and HTML. Read the dedicated resources only when needed. The HTML export includes presentation navigation; linked assets may still require network access.
operation_id of 1–128 characters for each new write. The ID is scoped to your account across tools.get_generation_status for per-slide errors. Resolve the reported cause, then render missing or stale previews using current slide revisions and new operation IDs.Tool failures are reported as MCP tool errors; application HTTP codes may appear inside the error message. Resource failures are MCP resource errors. Treat an error response as a failed operation, not as a completed presentation.
Explore complete presentation examples →
Back to top ↑