Office文档生成服务

一个让AI助手通过自然语言生成专业Office文件(PowerPoint、Word、Excel、邮件和XML)的MCP服务,适用于文档自动化与智能办公场景。

  • by ForLegalAI
  • Python
  • 本地部署
  • 43 星标
  • 更新于
在 GitHub 查看 dvejsada/mcp-pptx-presentations-creator

使用说明

📄 MCP Office Documents Server

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


💡 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 Type Tool Highlights
📊 PowerPoint create_powerpoint_presentation Typed 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
📝 Word create_word_from_markdown Write 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
📈 Excel create_excel_from_markdown Markdown tables → .xlsx · Multiple sheets · Formulas with table-relative & cross-sheet references · Column data types · Freeze panes & auto-filter · Column alignment
📧 Email create_email_draft HTML email drafts (.eml) · Subject, recipients, priority, language
🗂️ XML create_xml_file Well-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:

Variable Description Default
API_KEY Require an API key on every request (Bearer, plain Authorization, or x-api-key) (disabled)
UPLOAD_STRATEGY Where files go: LOCAL, S3, GCS, AZURE, MINIO, LIBRECHAT LOCAL
SIGNED_URL_EXPIRES_IN Lifetime of cloud download links, in seconds 3600
ADMIN_ENABLED Turn on the browser UI for managing templates (off)
DEBUG Debug-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.