关于 docx-mcp
docx-mcp 是一个 MCP 服务,让 AI Agent 读取和编辑 Word(.docx)文档,修订以追踪更改形式呈现。面向法务、咨询、安全测试和合规审计等需要处理 Word 交付物的专业人员。
主要功能
- 01以追踪更改方式插入、删除和替换文本
- 02添加并回复批注
- 03查找替换,支持正则表达式
- 04生成修订变更日志
- 05文档结构校验和审计
- 06支持 OOXML 层面的脚注管理
适用场景
- 01对合同进行带修订标记的审阅
- 02根据 Markdown 生成带模板的报告
- 03批量替换模板库中的内容并审计文档
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露读取、编辑和校验 .docx 文档的大量工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
docx-mcp
让你的 AI 编码 Agent 能够创建、读取和编辑 Word 文档。编辑内容会以修订的形式显示在 Microsoft Word 中——删除内容为红色删除线,插入内容为绿色下划线。每次修订完成后,Agent 都能生成一份可直接用于邮件的变更日志,列出所有插入、删除和替换内容。你也可以比较两个独立文件,自动获得相同的输出。
适用人群
需要制作 Word 交付件,并希望 AI Agent 直接处理文档工作的专业人士:
- 法律 — 使用修订标记审阅合同、批量替换模板中的条款、添加解释每项变更的批注、管理脚注
- 安全与渗透测试 — 根据 Markdown 调查结果生成渗透测试报告、合并多个项目的附录、添加执行摘要批注、交付前移除 DRAFT 水印
- 咨询 — 使用模板编制提案和工作说明书(SOW)、将会议记录转换为格式规范的交付件、批量更新一组文档中的付款条款
- 合规与审计 — 验证文档完整性结构、检查交叉引用、审计标题级别、执行保护策略
可以让你的 Agent 执行哪些任务
审阅合同:
“打开 contract.docx,查找所有 ‘Net 30’,将其改为 ‘Net 60’,并在每处添加批注,说明这是根据 Amendment 3 更新的。另存为 contract_revised.docx。”
根据 Markdown 生成报告:
“将我的 pentest-findings.md 转换为 Word 文档,并使用客户的报告模板。为每个 CVE 引用添加脚注。”
批量编辑模板库:
“打开 MSA 模板,将所有 ‘ACME Corp’ 替换为 ‘GlobalTech Inc’,更新页眉中的生效日期,并将文档保护设置为仅跟踪修订。”
发送前审计文档:
“打开最终交付件,执行结构审计,检查是否存在 DRAFT 或 TODO 标记,验证所有脚注交叉引用,并移除所有水印。”
你的 Agent 会处理整个工作流——打开文件、浏览文档结构、进行精确编辑并保留完整修订历史、验证完整性并保存文件——让你专注于内容本身。
安装
Claude Code(推荐):
claude mcp add docx-mcp -- uvx docx-mcp-server
就是这么简单。配套的 技能 会在服务首次启动时自动安装,指导 Claude 完成文档编辑工作流、避开 OOXML 陷阱并执行审计清单。每次升级时都会自动更新。
其他平台和安装方式
Claude Desktop:
添加到你的 MCP 设置中:
{
"mcpServers": {
"docx-mcp": {
"command": "uvx",
"args": ["docx-mcp-server"]
}
}
}
Cursor / Windsurf / VS Code:
添加到你的 MCP 配置文件中:
{
"mcpServers": {
"docx-mcp": {
"command": "uvx",
"args": ["docx-mcp-server"]
}
}
}
OpenClaw:
mcpServers:
docx-mcp:
command: uvx
args:
- docx-mcp-server
使用 pip:
pip install docx-mcp-server
| 功能 | Agent 可以执行的操作 |
|---|---|
| 创建文档 | 从空白文档、.dotx 模板或 Markdown 开始创建文档——支持标题、表格、列表、图片、脚注、代码块和智能排版 |
| 跟踪修订 | 以跟踪修订的形式插入、删除和替换文本——插入内容带下划线,删除内容以红色删除线显示。对任何编辑工具传入 tracked=False,即可直接写入更改,不添加修订标记。按作者接受或拒绝更改。 |
| 更改日志 | 使用跟踪修订编辑后,调用 generate_change_summary 生成带编号的 .txt 文件,列出每一处插入、删除和替换。或者使用 diff_to_text 比较两个独立文件并自动生成相同的输出——适用于你未亲自编辑的文档版本。 |
| 批注 | 为特定段落添加批注,回复批注讨论串 |
| 查找和替换 | 在正文、脚注和批注中按文本或正则表达式搜索,然后进行针对性编辑 |
| 表格 | 创建表格、修改单元格、添加或删除行——所有操作均支持跟踪修订 |
| 脚注和尾注 | 添加、列出并验证交叉引用 |
| 格式设置 | 粗体、斜体、下划线、颜色——支持跟踪修订,可查看格式更改 |
| 页眉和页脚 | 使用跟踪修订读取和编辑页眉/页脚内容 |
| 图片 | 列出嵌入的图片,按指定尺寸插入新图片 |
| 分节和版式 | 分页符、分节符、页面大小、方向、页边距 |
| 交叉引用 | 使用书签在段落之间添加内部超链接 |
| 合并文档 | 合并多个 DOCX 文件的内容 |
| 保护 | 使用密码将文档锁定为仅允许跟踪修订、只读或仅允许批注 |
| 结构审查 | 在交付前验证脚注、标题、书签、图片和内部一致性 |
| 移除水印 | 检测并移除页眉中的 DRAFT 水印 |
| PII 清理 (实验性) | 使用 Presidio + spaCy NER 检测姓名、电子邮件、电话号码、SSN 等。执行真正的 XML 涂黑——原文将被永久删除,并替换为纯黑矩形。不适用于生产环境——请参阅限制。 |
示例:带修订痕迹的合同审阅
1. open_document("services-agreement.docx")
2. get_headings() → see document structure
3. search_text("30 days") → find the payment clause
4. delete_text(para_id, "30 days") → tracked deletion (red strikethrough)
5. insert_text(para_id, "60 days") → tracked insertion (green underline)
6. add_comment(para_id, "Extended per client request — see Amendment 3")
7. audit_document() → verify structural integrity
8. save_document("services-agreement_redlined.docx")
在 Word 中打开输出文件,你看到的效果与人工审阅者的成果完全一致——修订标记、页边批注和整洁的文档结构。
示例:修订会话后的更改日志
1. open_document("contract.docx")
2. replace_text(para_id, "30 days", "60 days") → tracked revision (del + ins)
3. add_comment(para_id, "Extended per Amendment 3")
4. save_document("contract_redlined.docx")
5. generate_change_summary("contract_changes.txt")
.txt 输出内容如下:
1. REPLACEMENT by Claude on 2026-05-25
Deleted: "30 days"
Inserted: "60 days"
将其粘贴到电子邮件、PR 描述或交接说明中。
示例:比较两个独立的文档版本
无需编辑会话——指定任意两个文件即可:
1. diff_to_text("proposal_v1.docx", "proposal_v2.docx")
会返回两个文件:
proposal_v1_diff.docx— 在 Word 中打开即可查看文档内的跟踪修订proposal_v1_diff.txt— 纯文本摘要,可直接粘贴到任何位置
示例:根据 Markdown 生成渗透测试报告
1. create_from_markdown("pentest-report.docx",
md_path="findings.md",
template_path="client-template.dotx")
2. audit_document() → verify integrity
3. save_document() → ready for delivery
你的 Markdown 调查结果——标题、受影响主机的表格、包含概念验证输出的代码块、严重性评级——会转换成符合客户模板格式的 Word 文档。系统会自动应用智能排版(弯引号、长破折号、规范的省略号)。
PII 清理(实验性)
此功能处于实验阶段,不适合用于生产环境,也不应作为保护特权、受监管或法律敏感文档的唯一措施。
scrub_pii 使用 Microsoft Presidio 和 spaCy NER 模型(en_core_web_lg,约 560 MB,首次调用时下载)来检测并永久删除个人信息。被删除的文本片段会替换为实心黑色 DrawingML 矩形 — 原始文本会从 XML 中删除,而不仅仅是隐藏。
可可靠检测的内容(通过正则表达式/模式匹配,高置信度):
- 电子邮件地址、电话号码、信用卡号、SSN、IBAN、IP 地址、美国护照号码
通过统计方式检测的内容(通过 NER,可能会漏检):
- 人名、组织名称、地点、日期
已知的 NER 缺漏 — 以下内容会被漏检:
- 全部大写的人名(常见于分类账、表格标题、法律文件中的当事人称谓)
- 周围没有上下文的单词式姓名
- 非英语人名(此英语模型对阿拉伯语、CJK 及非洲姓名模式的召回率较低)
- 嵌在法律套话中的姓名(
Lender: Jane Doe、Authorized Signatory: John Smith)
建议的工作流:
1. open_document("sensitive.docx")
2. scrub_pii(dry_run=True) → review detected entities — check for misses
3. scrub_pii("sensitive_redacted.docx") → produce redacted copy
4. open the output in Word and verify manually before sharing
请始终将输出视为需要人工审核的初步结果,而非已完成的删除版本。
工作原理
.docx 文件是由 XML 文件组成的 ZIP 归档。此服务会解压归档、直接编辑 XML,然后重新打包。正因如此,它能够生成真正的修订记录、批注和脚注 — 这是更高层级的文档库无法做到的。
每次编辑在保存前都会根据 OOXML 规范进行验证,以捕获孤立脚注、重复的内部 ID 和损坏的交叉引用等问题,避免 Word 因此“修复”文档(并在不提示的情况下重写文档)。
完整工具清单(200+ 个工具)
文档生命周期
| 工具 | 描述 |
|---|---|
open_document | 打开 .docx 文件以进行读取和编辑 |
create_document | 创建新的空白 .docx(或使用 .dotx 模板创建) |
create_from_markdown | 从 GitHub 风格的 Markdown 创建 .docx |
close_document | 关闭当前文档并清理 |
get_document_info | 获取概览统计数据(段落、标题、脚注、批注) |
save_document | 将更改保存回 .docx(可覆盖原文件或保存到新路径) |
读取
| 工具 | 描述 |
|---|---|
get_headings | 获取标题结构及其级别和文本 |
search_text | 在正文、脚注和批注中搜索(文本或正则表达式) |
get_paragraph | 获取段落的完整文本和样式 |
修订
| 工具 | 描述 |
|---|---|
insert_text | 以修订记录的形式插入文本(在 Word 中带下划线)— 或使用 tracked=False 直接插入 |
delete_text | 标记文本为已删除(在 Word 中显示红色删除线)— 或使用 tracked=False 直接删除 |
replace_text | 以跟踪的删除和插入对替换文本 — 或使用 tracked=False 直接替换 |
modify_cell | 修改表格单元格 — 默认跟踪更改;直接写入请使用 tracked=False |
edit_header_footer | 编辑页眉/页脚文本 — 默认跟踪更改;直接写入请使用 tracked=False |
set_formatting | 使用修订标记应用粗体/斜体/下划线/颜色 |
set_track_changes | 启用或禁用 Word 内置的修订记录标志 |
get_tracked_changes | 列出所有待处理的修订(作者、日期、类型、文本) |
accept_changes | 接受修订,可按作者筛选 |
reject_changes | 拒绝修订,可按作者筛选 |
更改日志
| 工具 | 描述 |
|---|---|
generate_change_summary | 将打开的文档中的所有修订导出为带编号的 .txt 文件——插入、删除,以及合并为替换项的相邻删除+插入对 |
compare_documents | 对比两个 DOCX 文件并生成带修订的 DOCX 文件(可用 Word 打开) |
diff_to_text | 对比两个 DOCX 文件,并生成带修订的 DOCX 文件和纯文本摘要 .txt 文件 |
表格
| 工具 | 描述 |
|---|---|
get_tables | 获取所有表格及其行数、列数和单元格内容 |
add_table | 在段落后插入新表格 |
modify_cell | 以修订方式修改表格单元格 |
add_table_row | 向表格添加一行 |
delete_table_row | 以修订方式删除表格行 |
列表
| 工具 | 描述 |
|---|---|
add_list | 为段落应用项目符号或编号列表格式 |
评论
| 工具 | 描述 |
|---|---|
get_comments | 列出所有评论及其 ID、作者、日期和文本 |
add_comment | 添加锚定到段落的评论 |
reply_to_comment | 回复现有评论(线程式) |
脚注和尾注
| 工具 | 描述 |
|---|---|
get_footnotes | 列出所有脚注及其 ID 和文本 |
add_footnote | 添加带上标引用的脚注 |
validate_footnotes | 验证脚注交叉引用 |
get_endnotes | 列出所有尾注及其 ID 和文本 |
add_endnote | 添加带上标引用的尾注 |
validate_endnotes | 验证尾注交叉引用 |
页眉、页脚和样式
| 工具 | 描述 |
|---|---|
get_headers_footers | 获取所有页眉和页脚及其文本内容 |
edit_header_footer | 以修订方式编辑页眉/页脚文本 |
get_styles | 获取所有已定义的样式 |
属性和图像
| 工具 | 描述 |
|---|---|
get_properties | 获取文档核心属性(标题、创建者、日期) |
set_properties | 设置文档核心属性 |
get_images | 获取所有嵌入图像及其尺寸 |
insert_image | 在段落后插入图像 |
分节和交叉引用
| 工具 | 描述 |
|---|---|
add_page_break | 在段落后插入分页符 |
add_section_break | 添加分节符(nextPage、continuous、evenPage、oddPage) |
set_section_properties | 设置页面大小、方向和页边距 |
add_cross_reference | 添加段落之间的交叉引用链接 |
保护和合并
| 工具 | 描述 |
|---|---|
set_document_protection | 设置文档保护,可选择设置密码 |
merge_documents | 合并另一个 DOCX 文件中的内容 |
验证和审计
| 工具 | 描述 |
|---|---|
validate_paraids | 检查文档所有部分中的内部 ID 是否唯一 |
remove_watermark | 移除文档页眉中的 VML 水印 |
audit_document | 全面的结构审计 |
要求
- Python 3.10+
- 支持 macOS、Linux 和 Windows
隐私政策 · 服务条款 · © 2026 Security Ronin Ltd

评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。