docx-mcp

docx-mcp

An MCP server for reading, editing, and validating Microsoft Word documents with specialized support for track changes, comments, and footnotes. It enables structural auditing, heading extraction, and precise OOXML-level document manipulation through natural language tools.

Category
Visit Server

README

docx-mcp

PyPI Python License: MIT CI Coverage Sponsor

<a href="https://glama.ai/mcp/servers/h4x0r/docx-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/h4x0r/docx-mcp/badges/card.svg" alt="docx-mcp MCP server" /> </a>

MCP server for reading and editing Word (.docx) documents with track changes, comments, footnotes, and structural validation.

The only cross-platform MCP server that combines track changes, comments, and footnotes in a single package — with OOXML-level structural validation that no other server offers.

Features

Capability Description
Track changes Insert/delete text with proper w:ins/w:del markup — shows as revisions in Word
Comments Add comments, reply to threads, read existing comments
Footnotes Add footnotes, list all footnotes, validate cross-references
ParaId validation Check uniqueness across all document parts (headers, footers, footnotes)
Watermark removal Detect and remove VML watermarks (e.g., DRAFT) from headers
Structural audit Validate footnotes, paraIds, heading levels, bookmarks, relationships, images
Text search Search across body, footnotes, and comments — plain text or regex
Heading extraction Get the full heading structure with levels and paragraph IDs

Installation

# Claude Code (recommended)
claude mcp add docx-mcp -- uvx docx-mcp-server

# With pip
pip install docx-mcp-server

# With uvx
uvx docx-mcp-server

Optional: Install the companion skill for Claude Code — it teaches Claude when and how to use the tools automatically:

curl -sSL https://raw.githubusercontent.com/SecurityRonin/docx-mcp/main/install.sh | bash

Configuration

Claude Desktop / Claude Code

Add to your MCP settings:

{
  "mcpServers": {
    "docx-mcp": {
      "command": "uvx",
      "args": ["docx-mcp-server"]
    }
  }
}

Cursor / Windsurf / VS Code

Add to your MCP configuration file:

{
  "mcpServers": {
    "docx-mcp": {
      "command": "uvx",
      "args": ["docx-mcp-server"]
    }
  }
}

With pip install

{
  "mcpServers": {
    "docx-mcp": {
      "command": "docx-mcp"
    }
  }
}

Available Tools

Document Lifecycle

Tool Description
open_document Open a .docx file for reading and editing
close_document Close the current document and clean up
get_document_info Get overview stats (paragraphs, headings, footnotes, comments)
save_document Save changes back to .docx (can overwrite or save to new path)

Reading

Tool Description
get_headings Get heading structure with levels, text, styles, and paraIds
search_text Search across body, footnotes, and comments (text or regex)
get_paragraph Get full text and style of a paragraph by paraId

Track Changes

Tool Description
insert_text Insert text with tracked-change markup (w:ins)
delete_text Mark text as deleted with tracked-change markup (w:del)

Comments

Tool Description
get_comments List all comments with ID, author, date, and text
add_comment Add a comment anchored to a paragraph
reply_to_comment Reply to an existing comment (threaded)

Footnotes

Tool Description
get_footnotes List all footnotes with ID and text
add_footnote Add a footnote with superscript reference
validate_footnotes Cross-reference IDs between document body and footnotes.xml

Validation & Audit

Tool Description
validate_paraids Check paraId uniqueness and range validity across all parts
remove_watermark Remove VML watermarks from document headers
audit_document Comprehensive structural audit (footnotes, paraIds, headings, bookmarks, relationships, images, artifacts)

Example Workflow

1. open_document("/path/to/contract.docx")
2. get_headings()                          → see document structure
3. search_text("30 days")                  → find the clause
4. delete_text(para_id, "30 days")         → tracked deletion
5. insert_text(para_id, "60 days")         → tracked insertion
6. add_comment(para_id, "Extended per client request")
7. audit_document()                        → verify structural integrity
8. save_document("/path/to/contract_revised.docx")

The resulting document opens in Microsoft Word with proper revision marks — deletions shown as red strikethrough, insertions as green underline, comments in the sidebar.

How It Works

A .docx file is a ZIP archive of XML files. This server:

  1. Unpacks the archive to a temporary directory
  2. Parses all XML parts with lxml and caches them in memory
  3. Edits the cached DOM trees directly (no intermediate abstraction layer)
  4. Repacks modified XML back into a valid .docx archive

This approach gives full control over OOXML markup — essential for track changes (w:ins/w:del), comments (w:comment + range markers), and structural validation that higher-level libraries like python-docx don't expose.

Requirements

  • Python 3.10+
  • lxml

License

MIT

<img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=95beebbb-0f2e-46cc-9a68-a8e66f613180" />

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured