Labsco
MCP SERVER

PPT-Agent

by PrincessGray

Build a PowerPoint deck slide by slide from a conversation — shapes, charts, images, animations and formatted text, all placed by tool call.

Slide & Presentation Generation
Summary
It edits a deck the way a person does, one element at a time.

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.

What it is

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.

What you get
  • 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
Requirements

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.