This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+5 more
ReleasePort's take
Light signalAll five editing tools now accept a `tracked` flag to control revision markup; new MCP utilities enhance change tracking and footnote handling.
Why it matters: Enables precise XML edits without unwanted revision metadata, improving version‑control workflows for developers and SREs managing document pipelines.
Summary
AI summaryUpdates Footnote Improvements, What's New, and Bug Fixes across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
All five editing tools now accept `tracked: bool = True`; pass `tracked=False` for direct XML edits without revision markup. All five editing tools now accept `tracked: bool = True`; pass `tracked=False` for direct XML edits without revision markup. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
`generate_change_summary` tool creates email‑ready numbered change log from tracked changes. `generate_change_summary` tool creates email‑ready numbered change log from tracked changes. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Feature | Medium |
`diff_to_text` tool produces plain‑text diff alongside DOCX comparison output. `diff_to_text` tool produces plain‑text diff alongside DOCX comparison output. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Feature | Medium |
`add_footnote` gains `url=` parameter to wrap footnote text in a hyperlink. `add_footnote` gains `url=` parameter to wrap footnote text in a hyperlink. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Feature | Medium |
`add_footnote_ref` supports internal bookmark cross‑references. `add_footnote_ref` supports internal bookmark cross‑references. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Feature | Medium |
Consecutive footnote superscript references are now comma‑delimited (e.g., `¹,²,³`). Consecutive footnote superscript references are now comma‑delimited (e.g., `¹,²,³`). Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Feature | Medium |
Internal hyperlinks and bookmark cross‑references now function within footnotes. Internal hyperlinks and bookmark cross‑references now function within footnotes. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Feature | Medium |
Added 44 real‑world DOCX test fixtures from Apache POI, Pandoc, Mammoth.js, python‑docx, and LibreOffice; all pass `DocxDocument.open()`. Added 44 real‑world DOCX test fixtures from Apache POI, Pandoc, Mammoth.js, python‑docx, and LibreOffice; all pass `DocxDocument.open()`. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Bugfix | Medium |
Multilevel list tab stops are now written into every `w:lvl`, preventing rightward drift of heading text. Multilevel list tab stops are now written into every `w:lvl`, preventing rightward drift of heading text. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Moved `import sys as _sys` to module top and unquoted type annotations (issue UP037). Moved `import sys as _sys` to module top and unquoted type annotations (issue UP037). Source: llm_adapter@2026-05-23 Confidence: high |
— |
Full changelog
What's New
Direct Edits Without Tracked-Change Markup (tracked=False)
All five editing tools now accept tracked: bool = True. Pass tracked=False to apply changes directly to the XML without emitting w:ins/w:del markup — useful for programmatic clean-up workflows where revision history is unwanted.
Affected tools: insert_text, delete_text, replace_text, modify_cell, edit_header_footer.
generate_change_summary — Email-Ready Change Log
New MCP tool that scans the open document for w:ins/w:del elements and writes a numbered .txt file with author, date, and text per change. Adjacent del+ins sibling pairs are grouped as REPLACEMENT entries. Suitable for pasting directly into an email or pull-request description.
diff_to_text — DOCX Diff With Plain-Text Output
New MCP tool that combines compare_documents (tracked-change DOCX) with a companion plain-text summary. Returns {docx_path, text_path, change_count}.
Multilevel List Tab-Alignment Fix
Explicit w:tabs/w:tab[@w:val="num"] tab stops are now written into every w:lvl in both create_multilevel_list() and the static _NUMBERING_XML template. Without these stops Word uses default tab intervals, causing section-heading text to drift rightward as numbers grow longer (e.g. 24.1 vs 24.1.1).
Footnote Improvements
add_footnotegains aurl=parameter that wraps the footnote text in a hyperlinkadd_footnote_reffor internal bookmark cross-references- Consecutive superscript refs are comma-delimited (
¹,²,³) - Internal hyperlinks and bookmark cross-references in footnotes
Real-World DOCX Test Corpus (44 fixtures)
44 .docx files sourced from Apache POI, Pandoc, Mammoth.js, python-docx, and LibreOffice test suites. All 44 pass DocxDocument.open(). These serve as the doer-checker gate — synthetic fixtures alone cannot catch real-world OOXML quirks.
Bug Fixes
- Fix CI:
import sys as _sysmoved to module top; quoted type annotations unquoted (UP037)
Full Changelog
https://github.com/SecurityRonin/docx-mcp/compare/v0.6.1...v0.7.0
Full Changelog: https://github.com/SecurityRonin/docx-mcp/compare/v0.6.1...v0.7.0
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About SecurityRonin/docx-mcp
Read and edit Word (.docx) documents with track changes, comments, footnotes, and structural validation. The only MCP server combining w:ins/w:del tracked changes, threaded comments, and footnotes with OOXML-level paraId validation and document auditing. 18 tools, Python 3.10+.
Related context
Related tools
Earlier breaking changes
- v0.6.1 Empty `document_handle` resolves to `__default__` slot, maintaining backward compatibility.
Beta — feedback welcome: [email protected]