Ppt Engine
БесплатноНе проверенDrives real PowerPoint desktop application for true-fidelity PDF export and per-slide image export, complementing python-pptx by handling rendering that no libr
Описание
Drives real PowerPoint desktop application for true-fidelity PDF export and per-slide image export, complementing python-pptx by handling rendering that no library can.
README
A local MCP server that drives the real PowerPoint desktop application (COM automation) to do the one thing python-pptx fundamentally cannot: render — true-fidelity PDF export and per-slide image export.
Design philosophy: this server complements library workflows instead of replacing them. Building slides and filling text is faster with python-pptx — but no library has PowerPoint's render engine. This MCP handles only the engine-exclusive part, keeping its tool surface tiny (4 tools).
Requirements
- Windows 10+ with a logged-in interactive desktop session (PowerPoint has no true headless mode)
- Microsoft Office (PowerPoint) installed and licensed — verified on Office 2016+ (PowerPoint 16.0)
- Python 3.10+ — verified on 3.12
- Claude Code or any MCP client
Install
git clone https://github.com/Feynman520/d01-p03-ppt-engine-mcp.git
cd d01-p03-ppt-engine-mcp
py -3.12 -m venv .venv # or: python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
Register with Claude Code
Run this in the cloned folder (uses absolute paths, so it works from anywhere afterwards):
claude mcp add ppt-automation --scope user -- "$PWD\.venv\Scripts\python.exe" "$PWD\server.py"
--scope user makes it available in every project. Use --scope project to limit it to one project.
Verify
$py = ".\.venv\Scripts\python.exe"; $env:PYTHONUTF8 = "1"
& $py tests\smoke_com.py # COM PDF / slide image rendering / zombie cleanup
& $py tests\server_tools.py # MCP tool registration (does not launch PowerPoint)
Tools (2 core + 2 diagnostics)
| # | Tool | Input → Output | Why engine-only |
|---|---|---|---|
| ① | ppt_export_pdf |
src_path, out_path → {out_path} |
PowerPoint render engine PDF (python-pptx has no render engine) |
| ② | ppt_export_images |
src_path, out_dir, fmt?, width?, height? → {out_dir,count,files} |
Renders each slide to an image (thumbnails, previews, embedding in documents) |
| — | ppt_health |
→ {alive, powerpoint_version} |
Session check (launches PowerPoint on first call) |
| — | ppt_restart |
→ {alive} |
Recovery from COM errors |
Typical flow: build a .pptx with python-pptx → ppt_export_pdf for the distributable PDF /
ppt_export_images for slide thumbnails.
Originals are never modified; results are always written to out_path/out_dir.
Architecture notes
- Single STA worker thread (
engine/session.py): every PowerPoint call is serialized onto one dedicated thread (win32com COM objects are thread-bound; FastMCP may hop threads). - Lazy session: PowerPoint starts on the first tool call, is reused, and closes with the server.
DispatchEx+ early binding (gencache.EnsureDispatch): a dedicated instance with type-library calls. PDF viaPresentation.SaveAs(path, 32 /* ppSaveAsPDF */), images viaSlide.Export(path, "PNG", w, h).- No
Visible=False: unlike Excel/Word, PowerPoint throws when you hide the app window — instead presentations are opened windowless viaPresentations.Open(..., WithWindow=msoFalse). - Zombie prevention: PowerPoint gives no usable window handle, so the dedicated instance
PID is identified by diffing the
POWERPNT.EXEprocess list before/afterDispatchEx, and force-killed at shutdown if it survivesQuit(). - RPC-rejection retry / stdout protection: same as excel-engine-mcp.
Limitations
- Not suitable for unattended/service sessions (needs an interactive desktop).
- Slide creation/editing is faster with python-pptx — that is by design.
License
Установка Ppt Engine
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Feynman520/d01-p03-ppt-engine-mcpFAQ
Ppt Engine MCP бесплатный?
Да, Ppt Engine MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Ppt Engine?
Нет, Ppt Engine работает без API-ключей и переменных окружения.
Ppt Engine — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Ppt Engine в Claude Desktop, Claude Code или Cursor?
Открой Ppt Engine на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Omni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
автор: buildwithtazaARA
Generate images, video and audio from any AI agent — one connector.
автор: ARAYouTube
Transcripts, channel stats, search
автор: YouTubeEverArt
AI image generation using various models.
автор: modelcontextprotocolCompare Ppt Engine with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории media
