Server · #372 trending MCP repo · ↗ +1 stars this week

MCP Ms Office Documents

ForLegalAI/mcp-ms-office-documents

MCP server providing tools to create Ms Office documents like presentations, emails, spreadsheets and word docs (pptx, docx, eml, xlsx)

Stars
44
This week
+1
Forks
32
Open issues
11
Latest release
v4.1
Star trend · last 9 days+1 ★
Oct 29, 2026: 43 starsOct 30, 2026: 43 starsOct 31, 2026: 43 starsNov 1, 2026: 43 starsNov 2, 2026: 43 starsNov 3, 2026: 43 starsNov 4, 2026: 43 starsNov 5, 2026: 43 starsNov 6, 2026: 43 starsNov 7, 2026: 44 stars

Documentation

README

View on GitHub ↗

📄 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 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.

Releases

Recent versions

All releases ↗
  1. v4.1v4.1 — Word forms, FastMCP 4, patched image
  2. v4.1-beta.3v4.1-beta.3 — FastMCP 4 and the 2026-07-28 protocolpre-release
  3. v4.1-beta.2v4.1-beta.2 — `<br>` + Enter is one soft break, not a new paragraphpre-release
  4. v4.1-beta.1v4.1-beta.1 — Word forms: content controls filled by their Tagpre-release
  5. v4.0v4.0 - PowerPoint built around your template and full admin UI
  6. v4.0-beta.8v4.0-beta.8 — Safety pass for PowerPoint and Word; rejected slides say what would workpre-release