关于 Safe Docx
Safe Docx 是一个本地 MCP 服务和命令行工具,用于读取、搜索、编辑、比较和保存 Word(.docx)及 OpenDocument 文件。它面向编码 Agent,可保留 DOCX 结构,并输出干净版或修订跟踪版文档。文件全部在本机处理。
主要功能
- 01精准文本替换,保留文档其余内容
- 02生成干净版或修订跟踪版文档
- 03文档比较与修订查看
- 04批注与脚注的添加和管理
- 05格式、编号与分节调整
- 06全程本地处理,不上传云端
适用场景
- 01由编码 Agent 修改合同中的管辖法律条款
- 02对比两个版本的合同并生成修订记录
- 03批量处理文档中的批注与脚注
MCP 相关
该项目是一个 MCP 服务,以 stdio 方式运行且不接受参数。它向 MCP 客户端暴露读取、编辑、格式化、修订、比较、批注和保存等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
26收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| file_path | string | 否 | DOCX 或 ODT 文件的路径。 |
| google_doc_id | string | 否 | Google Doc ID 或 URL(file_path 的替代项)。从 URL 中提取:docs.google.com/document/d/{ID}/edit |
| offset | number | 否 | 用于分页的段落偏移量,从 1 开始。负值从末尾开始计数。 |
| limit | number | 否 | 要返回的最大段落数。省略时,输出受约 14k 个令牌的限制,并附带分页信息。 |
| node_ids | array | 否 | 段落选择器。每项可接受 safe-docx `_bk_*` ID,或(仅 DOCX)任何其他书签名称,前提是其 w:id 配对范围恰好覆盖一个段落。按名称精确匹配;点书签或跨多个段落的范围将被拒绝。即使通过其他书签名称选择,返回的行也始终报告段落的规范 `_bk_*` ID;结果会去重并按文档顺序返回。 |
| format | enum | 否 | toon | json | simple |
| comment_rendering | enum | 否 | 如何在 read_file 输出中呈现评论。使用 "paragraph_notes"(默认值)呈现段落内评论串;使用 "inline_markers" 在 TOON 输出中添加 `[cm-start:N]`/`[cm-end:N]` 标记(与评论串块组合);使用 "endnotes" 将串联评论收集到 TOON 输出末尾的 #COMMENTS 块中;使用 "none" 则采用不呈现评论的旧版输出。none | paragraph_notes | endnotes | inline_markers |
| show_formatting | boolean | 否 | 为 true(默认值)时,显示行内格式标签(<b>、<i>、<u>、<highlighting>、<a>)。为 false 时,输出不含行内标签的纯文本。 |
| include_fingerprint | boolean | 否 | 当为 true 且 format="json" 时,在每个段落中包含可移植的 content_fingerprint("sha256:nfkc:<32hex>")。这是从段落规范化可见文本派生的只读元数据,不能用作编辑锚点。编辑工具接受 `_bk_*` ID,或(仅 DOCX)其 w:id 配对范围恰好覆盖该段落的其他书签名称。对 TOON/simple 输出无效。对 Google Docs 和 ODT 忽略。 |
| include_fingerprint_ordinal | boolean | 否 | 当为 true,且 include_fingerprint 和 format="json" 同时启用时,为每个段落添加用于消歧重复项的元数据:`content_fingerprint_ordinal`(具有相同 content_fingerprint 的段落按文档顺序排列的位置,从 1 开始)、`content_fingerprint_count_in_document`(整个文档中具有该指纹的段落总数,即使启用了分页也如此),以及 `portable_paragraph_ref`("<content_fingerprint>#<ordinal>")。这是只读消歧信息,不能用作编辑锚点;重复项重新排序可能会改变序号。未启用 include_fingerprint 时无效,对 TOON/simple 输出也无效。对 Google Docs 和 ODT 忽略。默认值:false。 |
| include_footnotes | boolean | 否 | 单次调用同时检索正文和脚注。当为 true 且 format="json" 时,响应会增加文档级顶层 `footnotes` 数组——每个条目为 {id, display_number, ref_paragraph_ids(引用该脚注的段落 ID 数组), paragraphs[]({text, tagged_text(带运行级格式标签), style})}——保留多段正文以及脚注内部的粗体/斜体/引用格式。此顶层数组不会内嵌到 content[],因此保留 content[] 索引一一对应的不变量。为向后兼容,每个作为锚点的段落节点也会附带轻量级的 `footnotes` 数组({id, display_number, text}),范围限于返回的切片。当为 true 且 format="toon" 时,会在末尾附加 `#FOOTNOTES` 旁路块(与 `#COMMENTS` 对称)。正文为空或 display_number 为 0 的脚注会被排除。对 simple 输出无效。对 Google Docs 和 ODT 忽略。默认值:false。 |
详细介绍
@usejunior/safe-docx
使用编码 Agent 编辑 Word 和 OpenDocument 文件。
Safe Docx 是一款本地 MCP 服务和命令行工具,可用于读取、搜索、编辑、比较、转换和保存文档文件。它会保留 DOCX 结构,并可生成清稿或带修订痕迹的输出。文档均在你的设备上处理。
示例
向你的编码 Agent 提出要求:
Edit NDA.docx. Change the governing law from New York to Delaware.
Save a clean copy and a tracked-changes copy. Do not change anything else.
Safe Docx 会找到相关条款,按要求进行针对性编辑,并写入两个文件供审阅。文档的其余部分不会受到此次编辑的影响。
请参阅完整的编辑演练。
安装
npm install --global @usejunior/safe-docx
safe-docx --help
该软件包会同时安装 safe-docx 和 safedocx;在新配置中请使用 safe-docx。
配置 MCP 客户端
使用 command -v safe-docx 查找已安装的可执行文件(Windows 上使用 where safe-docx)。桌面应用可能无法继承终端的 PATH,因此请使用绝对路径配置客户端。该服务不需要参数,并使用 stdio。
Claude Code:
claude mcp add safe-docx -- /absolute/path/to/safe-docx
基于 JSON 的客户端,包括 Antigravity CLI(~/.gemini/config/mcp_config.json):
{
"mcpServers": {
"safe-docx": {
"command": "/absolute/path/to/safe-docx",
"args": []
}
}
}
有关固定版本、安装前检查软件包以及从源代码构建的说明,请参阅安装和验证。
工具
- 读取和导航:
read_file、get_document_outline、get_sections、grep - 编辑:
replace_text、insert_paragraph、batch_edit、clear_formatting - 格式设置:
format_layout、format_numbering、format_section、insert_section_break - 修订痕迹:
has_tracked_changes、extract_revisions、accept_changes、accept_ai_edits、reject_ai_edits - 比较:
compare_documents - 批注和脚注:
add_comment、get_comments、delete_comment、get_footnotes、add_footnote、update_footnote、delete_footnote - 保存和转换:
save、export、convert_to_odt、get_file_status、close_file
每个工具的参数和行为请参阅工具参考。
非优化用途
Safe Docx 不是可视化编辑器或版面引擎。它不提供浏览器渲染、实时协作或像素级分页保证。使用 .dotx 模板前,必须先将其转换为 .docx。
链接
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。