Skip to main content

MCP server for complete Office document manipulation — create, read, edit, convert DOCX/XLSX/PPTX/PDF/EML

Project description

docforge-mcp

MCP server for complete Office document manipulation — create, read, edit, convert, and template DOCX, XLSX, PPTX, PDF, and EML files.

Built for AI agents that need full document lifecycle control, not just one-shot generation.

Install

# Via uvx (no install needed)
uvx docforge-mcp

# Or install globally
uv tool install docforge-mcp

# Or pip
pip install docforge-mcp

Tools (38)

Category Tools Capabilities
Word (DOCX) 12 Create from markdown, read, edit paragraphs, insert, delete, search/replace, headers/footers, images, merge, templates
Excel (XLSX) 7 Create from markdown, read sheets, edit cells, insert/delete rows, charts, conditional formatting
PowerPoint (PPTX) 9 Create presentations, read slides, edit text, add shapes/images, reorder, duplicate, delete, merge, templates
PDF 3 Create from markdown, convert DOCX→PDF, read
Email (EML) 1 Create HTML email drafts
XML 1 Create well-formed XML
Templates 2 Render DOCX/PPTX with variables, conditionals ({{#if}}), loops ({{#each}})
Metadata 1 Get document info/stats
Merge 2 Merge multiple DOCX or PPTX files

Usage

As MCP server (stdio — default)

docforge-mcp

As HTTP server

MCP_TRANSPORT=streamable-http MCP_PORT=8958 docforge-mcp

MCP client configuration

{
  "mcpServers": {
    "office-documents": {
      "command": "docforge-mcp",
      "autoApprove": ["read_document", "get_document_info", "get_docx_paragraphs", "get_pptx_slides", "get_xlsx_sheets"]
    }
  }
}

Origins

This project was born from ForLegalAI/mcp-ms-office-documents (MIT license). It diverged in scope and philosophy:

ForLegalAI (upstream) docforge-mcp
Goal One-shot document generation Full document lifecycle
Read ✅ Read any DOCX/XLSX/PPTX
Edit ✅ Edit paragraphs, cells, slides
Convert ✅ DOCX→PDF
Templates Simple {{var}} Conditionals + loops
Transport Docker + HTTP only stdio + HTTP
Install Docker uvx docforge-mcp

We continue to contribute compatible features upstream (PRs #57, #58, #59) while developing the full toolkit independently.

Development

git clone https://github.com/filhocf/docforge-mcp.git
cd docforge-mcp
uv sync --group dev
uv run pytest tests/ -v
uv run ruff check .

License

MIT — see LICENSE for details. Original work © ForLegalAI, extensions © Claudio Ferreira Filho.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docforge_mcp-0.1.0.tar.gz (189.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docforge_mcp-0.1.0-py3-none-any.whl (87.9 kB view details)

Uploaded Python 3

File details

Details for the file docforge_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: docforge_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 189.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":null,"id":"forky","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for docforge_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 43089fc2c11d2ce06c5fc574d50bb0f1f28d1aff2320921b9c993935a3cfa02d
MD5 4e3638a9af5137cd97532761c8ec3787
BLAKE2b-256 ad660571ce3268229b0b77ebb73603e9b7f0a2928816b31607a8737063195241

See more details on using hashes here.

File details

Details for the file docforge_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: docforge_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 87.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":null,"id":"forky","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for docforge_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0d0c710acd96db2bf731a2c3115e0d3a4e35aee7ef048ea0d8ee9ee01b21b9b3
MD5 207b8e37681b0dc0547169d8b60fd9e6
BLAKE2b-256 8680dc5ebef39ec76fcc4be1a1fc253b12c4e4d0013793d48c58a62f0ace546d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page