There is no template-filling shortcut here: each shape, chart and text box is a separate call with its own coordinates, which makes the model responsible for layout. That is heavier than a slide generator, and it is also why the output is a real editable PPTX rather than an export. `getShapesInfo` and `getSlideCount` matter more than they look — they are how a model checks what it has already placed before adding more.
A Java MCP server that drives PowerPoint files through the Aspose.Slides library. A model creates a presentation, adds slides, and then places every element on them — text boxes, shapes, charts, SVG and bitmap images, animations — before saving the file to a path you name.
- Deck lifecycle — `createPresentation` starts an empty file, `addSlide` and `selectSlide` move between slides, `savePresentation` writes it out
- Backgrounds two ways: `setBackgroundColor` for a flat colour, `setBackgroundSvg` for a vector background
- Drawing primitives — `addShape` and `addLine`
- Charts without leaving the chat — `addColumnChart`, `addPieChart` and `addLineChart`
- Images with control over placement: `addPictureFrameWithAspectRatio`, `addPictureFrameFromBase64`, `addPictureFrameWithFormat` and `addPictureFrameFromBase64WithFormat` for borders and rotation, plus `addSvgImage` for vectors
- Text handling — `addTextBox` places the box, `setFormattedText` styles what is inside it
- Animation on both shapes and paragraphs — `addAnimation` and `addParagraphAnimation`
- Read-back before you edit — `getShapesInfo` lists what is on a slide, `getSlideCount` reports deck length
Java and Maven. Build with `mvn clean package`, which produces both a plain JAR and an executable one bundling dependencies; the client launches the bundled JAR with `java -jar`. Transport is stdio. Slide manipulation runs on Aspose.Slides, and the project is written against Java 16.
