Turn Markdown Docs into a PowerPoint Deck
Have a README or .md documentation file? Turn it into a .pptx presentation in one API call — or let an AI agent do it over MCP. Here's exactly how.
Posted by
Related reading
Find-and-Replace in python-pptx Breaks Your Fonts. Here's the Run-Safe Fix.
PowerPoint splits a single string across multiple runs, so python-pptx find-and-replace either misses the keyword or resets the font to default. Here's why it happens — and a one-call API that swaps the text while keeping every bit of formatting.
If your documentation already lives in Markdown — a README.md, release notes, or an internal spec — you don't need to rebuild it slide by slide. The PowerPoint Engine API reads Markdown directly and returns a real .pptx file. This tutorial shows the markup rules, a REST example, and how to do the same thing from an AI agent over MCP.
How Markdown maps to slides
The generator uses a small, predictable set of rules so you stay in control of where slides break:
- A single # Heading sets the deck title.
- Every ## Heading starts a new slide.
- ### Heading and deeper become sub-headings inside the current slide.
- - or * lines become bullet points; numbered lists are kept as-is.
- Fenced code blocks, links, **bold**, and inline code are cleaned up so no stray Markdown symbols leak onto the slide.
- Horizontal rules (---) and front-matter are ignored.
Rule of thumb: one # title at the top, then one ## per slide.
1. Generate from a .md file (REST)
Read the file, send its contents as the markup field, and save the returned download URL. Here it is with curl and jq:
curl -s https://powerpointengine.io/api/powerpoint/generate \
-H "Content-Type: application/json" \
-d "$(jq -Rs '{markup: ., theme: "corporate"}' README.md)" \
| jq -r '.result.downloadUrl'Or in Python:
import json, requests
markup = open("README.md").read()
r = requests.post(
"https://powerpointengine.io/api/powerpoint/generate",
json={"markup": markup, "theme": "corporate"},
)
data = r.json()["result"]
print(data["slideCount"], "slides ->", data["downloadUrl"])Themes: corporate, modern, minimal, colorful. The free tier returns a watermarked file; the Pro plan removes the watermark.
2. Let an AI agent do it (MCP)
The same engine is exposed as a Model Context Protocol server, so an AI assistant can build the deck for you. Connect it once:
claude mcp add --transport http powerpoint-engine \
https://powerpointengine.io/api/mcp/mcpAuthorize in the browser (one click), then ask your agent to “turn this README into a presentation.” It calls the generate_presentation tool with your Markdown and hands back a download link. The get_account_status tool lets it check remaining credits first.
What it costs
Generation is billed in credits: 1 credit = up to 10 slides. A typical README turns into a handful of slides — one credit. Larger docs cost proportionally more. You can watch usage live on your dashboard, including which generation came from the API vs an MCP agent.
Try it
Paste a Markdown doc into the live tool to see the deck instantly, or read the full API documentation.