Overview
What a ShareMyPage deck is, creating one, editing slides, and working with layouts.
A slide deck (a "presentation" in the MCP tools) is a set of independently
editable slides. Each slide is its own <section class="slide">, composed
together with a theme's shared CSS and a presentation engine into one
self-contained page, at its own shareable /s/ URL. The engine shows exactly
one slide active at a time, with arrow-key navigation, an overview grid, a
zoom control, and a progress bar, the same way any live viewer sees it.
Creating a presentation
create_presentation seeds a new deck from a theme's starter layouts: a
cover slide, a content slide, and a closing slide.
create_presentation({
title: "Q3 Board Update",
folder: "Board decks"
})themepicks the deck's CSS, fonts, and layout catalog. Omit it and the workspace's own brand theme is used if it has one (you're asked to choose when there are several); otherwise the built-insharemypagetheme is used.folderfiles the presentation into a folder. Presentation folders are their own namespace, separate from page folders.visibilityacceptsworkspace(default),private, orpublicat creation time; a password can be added afterwards from the Share dialog. See Access and sharing for what each level means.logoLightUrl/logoDarkUrlset this presentation's own logo, overriding the workspace default and the theme's own lockup.
The tool returns the deck id, its shareable URL, and the layout ids it was seeded with.
Slides
Once a deck exists, work slide by slide:
| Tool | What it does |
|---|---|
list_slides | List every slide in order: index, slideId, title, size, and last-updated time. |
get_slide | Read one slide's HTML and title. Large embedded images are elided into a placeholder by default (pass assets: "inline" for the raw HTML). |
add_slide | Add a slide, either from a full HTML fragment or from a layout id. |
update_slide / patch_slide | Replace a slide's content, or make a targeted edit, mirroring update_page / patch_page for pages. |
move_slide | Reorder a slide within the deck. |
duplicate_slide / delete_slide | Copy or remove a slide. |
add_slide refers to other slides by a slideId or a 1-based index from
list_slides, and runs a non-blocking lint over the new slide's HTML,
reporting anything that references a class the theme doesn't define.
Layouts
A theme ships a catalog of slide-layout blueprints: covers, content slides, timelines, comparisons, and more.
list_layoutsreturns each layout's id, name, and a one-line description (not its full HTML, to keep the response small).get_layoutreturns one layout's complete<section class="slide">HTML, ready to hand toadd_slide, or to adapt.
A custom theme (from list_themes, workspace-scoped) derives its layouts
from a base theme but carries the custom theme's own colors and logo.
There are two ways to author a slide's content:
- Guided mode (
get_design_guide): reuse the theme's layout catalog and design tokens, writing little to no custom CSS. Call this before hand-authoring slide HTML so it matches the theme's type scale, spacing, and colors. - Freeform mode (
get_developer_guide): hand-author a slide's full HTML and its own scoped CSS, for a presentation that needs to look like a customer's own brand rather than the theme's. Freeform slides still render inside the same engine, under a small contract: one<section class="slide">per slide, never restyle the engine's own classes, scope every custom CSS rule under one wrapper class so it can't leak into other slides, design to fit one fixed frame (no scrolling, no shrinking text to cram, split into another slide instead), and HTML plus CSS only (no<script>, since slides render server-side for export).
Check your work visually
screenshot_page renders a page or a presentation in a real headless
browser and returns an image. For a presentation it shows the first slide by
default; pass slide (a slideId or 1-based index) to check a different one.
Importing a PowerPoint
request_presentation_upload_url and import_uploaded_presentation import
an existing .pptx file as a native deck, in two steps:
request_presentation_upload_urlreturns a URL toPUTthe raw.pptxbytes to directly (any file size), plus a token.import_uploaded_presentationtakes that token and builds the deck.
The importer reads the file's text, tables, and images straight from it,
nothing is invented, and matches them to the target theme's layouts. Two
modes control how: reauthor (the default) has the model lay out the real
content into the theme's layouts, grounded in the file so it can't fabricate
facts; faithful is a plain, deterministic 1:1 reproduction with no model
involved. A slide the importer can't reproduce faithfully (a dense logo
wall, a custom diagram, a very dense table) is deferred, kept as a
placeholder with a suggested fix, rather than faked.
See also
- Access and sharing for how deck visibility and invites work.
- MCP tool reference for the full deck, slide, and theme tool list.