Because each layout is its own call, the model has to decide what kind of slide it is making — title, section header, content, table, chart, picture — and the deck comes out structured rather than as a wall of bullet points. Two things to remember: the deck is only written when the save tool is called, and image generation is optional, so leave the Stable Diffusion settings out if you are supplying your own pictures.
A Python MCP server that assembles .pptx files. You start a presentation, add typed slides to it, and save — and it can also open an existing deck and add to it.
- `create-presentation` to start one, `save-presentation` to write it out, `open-presentation` to work on an existing file (which backs it up first)
- Typed slide layouts: `add-slide-title-only`, `add-slide-section-header`, `add-slide-title-content`
- `add-slide-title-with-table` builds a table from the data you pass
- `add-slide-title-with-chart` builds a chart and picks the type it judges best for the data
- `add-slide-picture-with-caption` places an image with a caption, from your folder or from a generated one
- `generate-and-save-image` creates the image through a Stable Diffusion endpoint you point it at
Uv, and a folder path passed on the command line — every deck and image is read from and written to that folder. Image generation needs a running ForgeUI or Automatic1111 endpoint set in `SD_WEBUI_URL`, with `SD_AUTH_USER` and `SD_AUTH_PASS` if it requires authentication. Everything else works without it.
