# io.github.mdfifty50-boop/docx-forge (npm · docx-forge-mcp)

Professional document generation from structured data

- Trust score: 60/100 (medium)
- Change this week: +16
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `docx-forge-mcp`: 60/100 (this document), [markdown](https://verifymcp.io/servers/mdfifty50-boop-docx-forge/docx-forge-mcp.md), [page](https://verifymcp.io/servers/mdfifty50-boop-docx-forge/docx-forge-mcp)

## Channel facts

- Registry: `npm`
- Package: `docx-forge-mcp`
- Version: `0.1.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (129 of 133), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (129 of 133), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 100 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 49/100
  - 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 833 tokens (~83/item across 10 items; 9 tools + 1 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add mdfifty50-boop-docx-forge -- npx -y docx-forge-mcp
```

### Codex

```bash
codex mcp add mdfifty50-boop-docx-forge -- npx -y docx-forge-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mdfifty50-boop-docx-forge": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "docx-forge-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add mdfifty50-boop-docx-forge --command npx --arg -y --arg docx-forge-mcp
```

### Hermes

```yaml
mcp_servers:
  mdfifty50-boop-docx-forge:
    command: "npx"
    args: ["-y", "docx-forge-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "mdfifty50-boop-docx-forge": {
      "command": "npx",
      "args": [
        "-y",
        "docx-forge-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 60, +55)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → 0
- [functional improvement] MCP protocol: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 5, −21)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 26, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-29 (score 44, +20)

- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → 0

### 2026-07-28 (score 24, −20)

- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 0 → unverified

### 2026-07-27 (score 44)

First indexed and scored.

## MCP tools (9)

### `health_check` (~20 tokens)

Returns server health, uptime, version, and call stats

### `create_document` (~160 tokens)

Create a new .docx Word document from markdown or plain text content. Supports headings (#, ##, ###), bold (**text**), italic (*text*), bullet lists (- item), numbered lists (1. item), and blank lines between paragraphs.

Input parameters:

- `author` (string): Author name stored in document metadata
- `content` (string, required): Document body content as markdown. Supports headings (#, ##, ###), bold (**text**), italic (*text*), bullet lists (- item), and numbered lists (1. item).
- `outputPath` (string, required): Absolute or relative path where the .docx file will be saved (e.g., /tmp/report.docx)
- `title` (string, required): Document title — appears as the document heading

### `read_document` (~55 tokens)

Extract all text, paragraph list, headings, and file metadata from an existing .docx file. Returns structured data suitable for further processing or display.

Input parameters:

- `filePath` (string, required): Path to the .docx file to read

### `add_section` (~108 tokens)

Append a new section (heading + body content) to the end of an existing .docx document. The document is updated in place.

Input parameters:

- `content` (string, required): Section body content (markdown supported)
- `filePath` (string, required): Path to the existing .docx file
- `heading` (string, required): Section heading text
- `headingLevel` (integer): Heading level: 1 = H1 (largest) through 6 = H6 (smallest). Default: 2

### `replace_text` (~118 tokens)

Find and replace text in an existing .docx document. Useful for template substitution — e.g., replacing {{CLIENT_NAME}} with an actual name, or updating dates and contract values.

Input parameters:

- `filePath` (string, required): Path to the .docx file to modify
- `find` (string, required): Text string to search for
- `replace` (string, required): Replacement text (can be empty string to delete the found text)
- `replaceAll` (boolean): If true (default), replace every occurrence. If false, replace only the first occurrence.

### `add_table` (~126 tokens)

Insert a formatted table into an existing .docx document. The table is appended at the end of the document with bold header row and standard cell borders.

Input parameters:

- `filePath` (string, required): Path to the existing .docx file
- `headers` (array, required): Column header labels (e.g., ["Name", "Role", "Department"])
- `rows` (array, required): 2D array of table data. Each inner array is one row and must match the number of headers. Example: [["Alice", "Engineer", "Tech"], ["Bob", "Designer", "UX"]]

### `merge_documents` (~92 tokens)

Combine multiple .docx files into a single document. Each source document is separated by a horizontal divider. Useful for assembling reports, consolidating contracts, or combining chapter files.

Input parameters:

- `filePaths` (array, required): Array of paths to .docx files to merge (minimum 2). Files are merged in the order given.
- `outputPath` (string, required): Path where the merged .docx file will be saved

### `export_to_pdf` (~86 tokens)

Convert a .docx file to PDF. Attempts conversion via LibreOffice (best fidelity) then pandoc. Returns success status and the method used. Requires LibreOffice or pandoc to be installed on the system.

Input parameters:

- `filePath` (string, required): Path to the source .docx file
- `outputPath` (string, required): Path where the output .pdf file will be saved

### `get_document_stats` (~63 tokens)

Get statistics for a .docx document: word count, character count, estimated page count (at 250 words/page), number of sections (headings), and number of tables.

Input parameters:

- `filePath` (string, required): Path to the .docx file to analyze

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/mdfifty50-boop-docx-forge/docx-forge-mcp#diagnostics

## Score history

- 2026-08-03: 60
- 2026-08-02: 60
- 2026-08-01: 5
- 2026-07-31: 26
- 2026-07-29: 44
- 2026-07-28: 24
- 2026-07-27: 44

## Links

- npm package: https://www.npmjs.com/package/docx-forge-mcp
- Socket report: https://socket.dev/npm/package/docx-forge-mcp
- Repository: https://github.com/mdfifty50-boop/docx-forge-mcp
- Changelog RSS feed: https://verifymcp.io/servers/mdfifty50-boop-docx-forge/docx-forge-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/mdfifty50-boop-docx-forge/docx-forge-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/mdfifty50-boop-docx-forge/docx-forge-mcp
