io.github.mdfifty50-boop/docx-forge
Professional document generation from structured data
Open source Open in the app JSON README (API)
About
Professional document generation from structured data
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- mdfifty50-boop
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.1.1
- Last push
- 2026-04-24T13:41:00Z
- Repository state
- ativo
- Language
- JavaScript
- License
- MIT
- Added
- 2026-08-29 04:00:46
- Updated
- 2026-08-29 04:00:46
- Origin id
io.github.mdfifty50-boop/docx-forge
README
# docx-forge-mcp
**MCP server for Word document (.docx) creation and manipulation — the production-grade document automation tool for AI agents.**
Generate contracts, reports, proposals, and compliance documents directly from agent workflows. No Word installation required.
[](https://www.npmjs.com/package/docx-forge-mcp)
[](LICENSE)
[](https://modelcontextprotocol.io)
---
## Why docx-forge-mcp?
Word documents are the default format for contracts, compliance reports, legal agreements, and business proposals — especially in enterprise and government workflows. This MCP server gives AI agents the ability to produce and manipulate `.docx` files programmatically, without any Office installation, UI automation, or file format guesswork.
**Only 1 competitor exists** for Word document manipulation via MCP as of 2026. This server fills that gap with a production-quality, fully-tested implementation.
---
## Tools
| Tool | Description |
|------|-------------|
| `create_document` | Create a new `.docx` from a title and markdown content |
| `read_document` | Extract text, headings, paragraphs, and metadata from a `.docx` |
| `add_section` | Append a new section (heading + body) to an existing `.docx` |
| `replace_text` | Find and replace text — ideal for template variable substitution |
| `add_table` | Insert a formatted table with bold headers into a `.docx` |
| `merge_documents` | Combine multiple `.docx` files into one |
| `export_to_pdf` | Convert `.docx` to PDF via LibreOffice or pandoc |
| `get_document_stats` | Get word count, page estimate, section count, table count |
---
## Install
### Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"docx-forge": {
"command": "npx",
"args": ["docx-forge-mcp"]
}
}
}
```
### Cursor
Add to your `.cursor/mcp.json`:
```json
{
"mcpServers": {
"docx-forge": {
"command": "npx",
"args": ["docx-forge-mcp"]
}
}
}
```
### Manual (Node.js)
```bash
npm install -g docx-forge-mcp
docx-forge-mcp
```
---
## Usage Examples
### Create a contract from a template
```
create_document(
title="Service Agreement",
content="# Parties\n\n**Client:** {{CLIENT_NAME}}\n**Provider:** Acme Corp\n\n## Scope of Work\n\n{{SCOPE}}\n\n## Payment\n\n{{PAYMENT_TERMS}}",
outputPath="/tmp/contract.docx"
)
replace_text(filePath="/tmp/contract.docx", find="{{CLIENT_NAME}}", replace="TechCorp Ltd")
replace_text(filePath="/tmp/contract.docx", find="{{SCOPE}}", replace="Software development and consulting services.")
replace_text(filePath="/tmp/contract.docx", find="{{PAYMENT_TERMS}}", replace="Net 30 days. $15,000/month.")
export_to_pdf(filePath="/tmp/contract.docx", outputPath="/tmp/contract.pdf")
```
### Build a structured report
```
create_document(
title="Q1 2026 Performance Report",
content="## Executive Summary\n\nRevenue grew 34% YoY.",
outputPath="/tmp/report.docx"
)
add_section(
filePath="/tmp/report.docx",
heading="Revenue Breakdown",
content="Product A: $450K\nProduct B: $320K\nServices: $180K",
headingLevel=2
)
add_table(
filePath="/tmp/report.docx",
headers=["Product", "Q1 Revenue", "Growth"],
rows=[["Product A", "$450K", "+41%"], ["Product B", "$320K", "+28%"], ["Services", "$180K", "+19%"]]
)
get_document_stats(filePath="/tmp/report.docx")
```
### Read and inspect an existing document
```
read_document(filePath="/path/to/existing.docx")
# Returns: { text, paragraphs[], headings[], metadata: { wordCount, fileSizeBytes, ... } }
```
### Merge chapter files into a book
```
merge_documents(
filePaths=["/docs/ch1.docx", "/docs/ch2.docx", "/docs/ch3.docx"],
outputPath="/docs/complete-manual.docx"
)
```
---
## Markdown Support
`create_document` and `add_section` both accept markdown content:
| Markdown | Result |
|----------|--------|
| `# Heading 1` | H1 heading |
| `## Heading 2` | H2 heading |
| `**bold text**` | Bold text |
| `*italic text*` | Italic text |
| `- item` | Bullet list item |
| `1. item` | Numbered list item |
| `---` | Horizontal divider |
| Blank line | Paragraph break |
---
## PDF Export
`export_to_pdf` requires a system-level converter. It tries in order:
1. **LibreOffice** (best fidelity) — `sudo apt-get install libreoffice`
2. **pandoc** — `sudo apt-get install pandoc`
If neither is available, the tool returns `success: false` with installation instructions. The source `.docx` file is always preserved.
---
## Resources
| URI | Description |
|-----|-------------|
| `docx-forge://usage-guide` | Step-by-step guide with workflow examples |
---
## Dependencies
- [`docx`](https://www.npmjs.com/package/docx) — `.docx` creation (no Office required)
- [`mammoth`](https://www.npmjs.com/package/mammoth) — `.docx` reading and text extraction
- [`@modelcontextprotocol/sdk`](https://www.npmjs.com/package/@modelcontextprotocol/sdk) — MCP protocol
- [`zod`](https://www.npmjs.com/package/zod) — Input validation
---
## Requirements
- Node.js >= 18.0.0
- No Microsoft Word or Office installation required
- PDF export requires LibreOffice or pandoc (optional)
---
## Development
```bash
git clone https://github.com/mdfifty50-boop/docx-forge-mcp
cd docx-forge-mcp
npm install
npm test # Run test suite
npm start # Start MCP server (stdio)
```
---
## License
MIT — see [LICENSE](LICENSE)
---
## Related MCP Servers
- [agentic-observability-mcp](https://github.com/mdfifty50-boop/agent-observability-mcp) — Trace, cost-track, and monitor agent actions
- [agent-guard-mcp](https://github.com/mdfifty50-boop/agent-guard-mcp) — Loop detection and circuit breakers
- [compliance-shield-mcp](https://github.com/mdfifty50-boop/compliance-shield-mcp) — EU AI Act audit trails