Back to the catalog

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.

[![npm](https://img.shields.io/npm/v/docx-forge-mcp)](https://www.npmjs.com/package/docx-forge-mcp)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-blue)](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

More