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 |
| 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43089fc2c11d2ce06c5fc574d50bb0f1f28d1aff2320921b9c993935a3cfa02d
|
|
| MD5 |
4e3638a9af5137cd97532761c8ec3787
|
|
| BLAKE2b-256 |
ad660571ce3268229b0b77ebb73603e9b7f0a2928816b31607a8737063195241
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d0c710acd96db2bf731a2c3115e0d3a4e35aee7ef048ea0d8ee9ee01b21b9b3
|
|
| MD5 |
207b8e37681b0dc0547169d8b60fd9e6
|
|
| BLAKE2b-256 |
8680dc5ebef39ec76fcc4be1a1fc253b12c4e4d0013793d48c58a62f0ace546d
|