MCPInstall
mcp-pptx-presentations-creator logo

mcp-pptx-presentations-creator

by dvejsada 43 stars dvejsada/mcp-pptx-presentations-creator

MCP SSE server providing tools that creates PowerPoint presentation based on LLM instructions

READMEmaster

📄 MCP Office Documents Server

MCP Toplist

Let your AI assistant create professional Office documents — PowerPoint, Word, Excel, emails & XML — with a single prompt.

Docker MCP License


💡 What is this?

This is an MCP (Model Context Protocol) server that runs in Docker and gives AI assistants (like Claude, Cursor, or any MCP-compatible client) the ability to generate real Office files on demand.

Just ask your AI to "create a sales presentation" or "draft a welcome email" — and it will produce a ready-to-use file for you.

No coding required. Install, connect, and start creating.


✨ Features at a Glance

Document TypeToolHighlights
📊 PowerPointcreate_powerpoint_presentationTyped slide schema (14 slide types incl. KPI, timeline, agenda, free-form blank) · Outline-pane sections · Markdown bullet bodies · Tables, category charts & XY scatter · Inline & data-URI images · Theme colours · Autofit with overflow warnings · Proofing language · 4:3 or 16:9 · Custom templates
📝 Wordcreate_word_from_markdownWrite in Markdown, get a .docx · Headings, lists (with auto-restart), tables, links, images, block quotes, page breaks & text alignment · Superscript, subscript, underline & highlighted text · Table column alignment, borderless tables, proportional widths & multi-paragraph cells · Headers/footers with page numbers · Table of Contents · Custom style mapping & per-block style tags
📈 Excelcreate_excel_from_markdownMarkdown tables → .xlsx · Multiple sheets · Formulas with table-relative & cross-sheet references · Column data types · Freeze panes & auto-filter · Column alignment
📧 Emailcreate_email_draftHTML email drafts (.eml) · Subject, recipients, priority, language
🗂️ XMLcreate_xml_fileWell-formed XML files · Auto-validates & adds XML declaration if missing

All tools accept an optional file_name parameter. When provided, the output file will use that name (without extension) instead of a randomly generated identifier.

All tools also accept an optional add_unique_prefix parameter. Left unset, it follows the storage backend: true for LOCAL/S3/GCS/AZURE/MINIO, where an 8-character UUID prefix prevents collisions in shared storage (e.g., ff8ae81d_My_Report.docx), and false for LibreChat, which adds its own UUID prefix during file storage. Set it explicitly to override — false gives clean filenames (e.g., My_Report.docx).

Dynamic templates:

  • 📧 Reusable Email Templates — Define parameterized email layouts in YAML. Each becomes its own tool with typed arguments (e.g., first_name, promo_code).
  • 📝 Reusable Word Templates — Create .docx files with {{placeholders}}. Each template becomes an AI tool. Placeholders support full Markdown.

Output options:

  • Local — Files saved to the output/ folder
  • Cloud — Upload to S3, Google Cloud Storage, Azure Blob, or MinIO and get a time-limited download link

🚀 Quick Start

1. Get the compose file

curl -L -o docker-compose.yml https://raw.githubusercontent.com/ForLegalAI/mcp-ms-office-documents/master/docker-compose.yml
curl -L -o .env.example https://raw.githubusercontent.com/ForLegalAI/mcp-ms-office-documents/master/.env.example

Already cloned the repo? Skip this step — both files are already there.

2. Set up your environment

cp .env.example .env

The defaults work out of the box — files are saved locally to output/.

3. Start the server

docker compose up -d

✅ Done! Your MCP endpoint is ready at http://localhost:8958/mcp. Point your client at it — snippets for Claude Desktop, LibreChat and Cursor are in Connecting an AI client.


⚙️ Configuration

Everything is set through environment variables in .env. The ones most deployments touch:

VariableDescriptionDefault
API_KEYRequire an API key on every request (Bearer, plain Authorization, or x-api-key)(disabled)
UPLOAD_STRATEGYWhere files go: LOCAL, S3, GCS, AZURE, MINIO, LIBRECHATLOCAL
SIGNED_URL_EXPIRES_INLifetime of cloud download links, in seconds3600
ADMIN_ENABLEDTurn on the browser UI for managing templates(off)
DEBUGDebug-level logging(off)

The full list, including the per-backend credentials, thread-pool and multi-replica settings, is in Configuration. Deployment notes (volumes, health probes, running without Docker, more than one replica) are in Deployment.


📚 Documentation

Using the tools

  • Markdown reference — everything the Word and Excel tools accept: headings, lists with restart rules, tables and directives, inline formatting, formulas with table-relative and cross-sheet references, column types, cell styling.
  • PowerPoint slide reference — the fourteen slide types and their fields, bodies in Markdown, warnings, compatibility notes.
  • Templates — drop in your own Word, PowerPoint, email and Excel templates; register several PowerPoint designs by name; turn a Word or email file with {{placeholders}} into a tool of its own.
  • Template Admin UI — do all of that from the browser, no YAML, no restart.
  • Connecting an AI client

Working on the code

The index is at docs/README.md.


🤝 Contributing

Contributions are welcome. Read CONTRIBUTING.md, then fork, branch, and open a pull request. Bug reports, feature ideas and documentation fixes are all appreciated — open an issue to start a discussion.

📄 License

MIT — see LICENSE.

More Productivity & Workflow MCP servers

Similar servers from the same category.

Integrates with monday.com API to enable direct access to boards, workflows, and data for automating tasks and managing resources without context switching.

Productivity & Workflow

Activepieces

activepieces

Dynamic server to which you can add apps (Google Calendar, Notion, etc) or advanced Activepieces Flows (Refund logic, a research and enrichment logic, etc).

search

Time

modelcontextprotocol

Time and timezone conversion capabilities

timeconversion

Interact with Microsoft Word.

word