Your AI Agent Can Now Edit, Merge, Translate and PDF Decks — 8 MCP Tools
The PowerPoint Engine MCP server grew from 3 tools to 8: replace text in an existing deck, do slide surgery, merge presentations, convert to PDF and translate — all chainable in one agent conversation.
Posted by
Related reading
Convert PPTX to PDF Over One API Call
python-pptx can't export PDF — it's a file-format library, not a renderer. The usual workarounds are PowerPoint COM automation or babysitting LibreOffice yourself. Now it's one HTTP call.
Markdown Tables and Combo Charts, Natively in PowerPoint
A markdown table becomes a styled, editable PowerPoint table. A combo chart with a secondary axis takes five lines. No python-pptx XML archaeology required.
Slide Surgery: What python-pptx Can't Do, Over One API Call
Duplicate, delete and reorder slides in an existing .pptx — the three oldest open python-pptx feature requests — now one HTTP call. Formatting untouched.
Until now, an MCP-connected agent could generate a new deck with PowerPoint Engine — and that was it. Everything else our REST API does (structure-preserving text replacement, slide surgery, merging, PDF export, translation) required the agent to write glue code. As of this week the remote MCP server exposes the whole engine:
- generate_presentation / generate_from_template — markup or structured JSON → .pptx
- replace_text — fill {{placeholders}} or rewrite named shapes in an existing deck without breaking its formatting
- edit_slides — duplicate, delete, move slides (1-based, sequential)
- merge_presentations — combine 2–5 decks, each keeps its own design
- convert_to_pdf — server-side LibreOffice render, no local install
- translate_presentation — translate every text run in place, layout untouched
- get_account_status — plan, credits, recent failures (for self-diagnosis)
Files travel as URLs, so tools chain
MCP tool arguments are produced by the model, so pushing megabytes of base64 through a context window was never going to work. Instead, every file-taking tool accepts a file_url — and every tool that produces a file returns a signed downloadUrl. The output of one call is the input of the next, which turns a multi-step document workflow into a plain conversation:
User: "Take the Q3 template, fill in this quarter's numbers,
add a copy of the summary slide, and give me a PDF."
Agent: replace_text(file_url=<template>, replacements={...})
→ downloadUrl A
edit_slides(file_url=A, operations=[{"op":"duplicate","slide":7}])
→ downloadUrl B
convert_to_pdf(file_url=B)
→ the PDF link the user actually wantedNo downloads to the agent's machine, no temp files, no glue code — three tool calls.
Connect in one line
claude mcp add --transport http powerpoint-engine \
https://powerpointengine.io/api/mcp/mcpFirst call opens a browser window for OAuth (one click), and the agent is in business — the same flow works in Cursor and any MCP client that speaks Streamable HTTP. There is also an installable agent skill that teaches the markup dialect (charts, tables, section slides), and llms.txt for agents that discover APIs on their own. Full endpoint reference in the docs.