docx-mcp
@SecurityRonin
MCP server for reading and editing Word (.docx) documents with track changes, comments, footnotes, and structural validation. The only cross-platform MCP server combining tracked changes, threaded comments, and footnotes with OOXML-level structural validation.
概要
What is docx-mcp?
docx-mcp is an MCP server for reading and editing Word (.docx) documents with full support for track changes, comments, footnotes, and OOXML-level structural validation. It is designed for developers and AI agents who need programmatic control over .docx files.
How to use docx-mcp?
Install via pip (pip install docx-mcp-server) or uvx (uvx docx-mcp-server). Configure the server in your MCP client’s settings JSON (e.g., Claude Desktop, Cursor, VS Code), then use the provided tools such as open_document, insert_text, and save_document to interact with .docx files.
Key features of docx-mcp
- Track changes with proper
w:ins/w:delmarkup for revisions - Add, reply to, and read threaded comments
- Add, list, and validate footnotes
- Validate paraId uniqueness across all document parts
- Detect and remove VML watermarks (e.g., DRAFT)
- Perform comprehensive structural audits (footnotes, headings, bookmarks, images)
Use cases of docx-mcp
- Editing contracts with tracked changes and client comments
- Automating document revision workflows with revision marks
- Auditing document structure for heading and footnote consistency
- Searching and replacing text across body, footnotes, and comments
- Removing draft watermarks from document headers programmatically
FAQ from docx-mcp
What are the system requirements?
Python 3.10+ and the lxml library are required.
How does docx-mcp differ from python-docx?
docx-mcp manipulates OOXML directly, giving full control over track changes (w:ins/w:del), comments, and structural validation that python-docx does not expose.
Can I save changes to a new file?
Yes, the save_document tool supports saving to a new path or overwriting the original file.
What data does the server access?
Only the .docx files you explicitly open via the open_document tool; no remote data is accessed.
Is there authentication or a specific transport?
No authentication is required; the server runs locally over standard I/O as an MCP server.