Docx Editing

Polar Sponsor
爱发电 赞助
.NET 9.0

通过Safe-DOCX MCP服务器对现有(brownfield).docx文件进行精确编辑,保持格式并启用修订跟踪。当用户说“编辑这个文档”、“修改这份文件”等类似需求时使用。

编辑 .docx 文件,带有 Safe-DOCQQSafe-DOCX 是本地的MCP 服务器,用于手术编辑现有的.docx文件. .1. 它保留格式化,生成跟踪

功能概述

编辑 .docx 文件,带有 Safe-DOCQQSafe-DOCX 是本地的MCP 服务器,用于手术编辑现有的.docx文件. .1. 它保留格式化,生成跟踪是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

使用 Safe-DOCX 编辑 .docx 文件

Safe-DOCX 是一个本地 MCP 服务器,专用于精准编辑已有的 .docx 文件。它保留原始格式、自动生成带修订标记(tracked-changes)的比对红标文档(redlines),且安装完成后完全在本地文件系统中运行,全程零网络活动。

源代码与审计

Safe-DOCX 完全开源(MIT 许可证)。请在安装前完整审阅其源代码:

  • GitHub: https://github.com/UseJunior/safe-docx
  • npm registry: https://www.npmjs.com/package/@usejunior/safe-docx
  • 代码覆盖率: 每次发布均通过 Codecov 公布
  • 一致性测试套件: CI 系统在每次提交时自动运行规范覆盖测试
  • 无 postinstall 脚本 — 验证方式:npm view @usejunior/safe-docx scripts 输出中不包含 postinstall 或 install 钩子

下方所有安全声明均可通过阅读源代码进行验证。

运行时依赖

Safe-DOCX 要求主机上已安装以下二进制程序:

二进制程序 最低版本 用途说明
node 18.0.0 权威版本定义于 packages/safe-docx/package.json 的 engines 字段
npx 随 npm 捆绑提供 推荐的 MCP 连接器使用该命令启动服务器

如您不希望使用 npx,请参见下方的离线 / 版本锁定安装部分获取替代方案。

安全模型

Safe-DOCX 的安全模型分为两个明确阶段:安装时(下载包时)和 运行时(MCP 服务器运行期间)。

安装时行为(需网络连接,仅一次)

  • npm registry 下载 — 推荐的连接器命令 npx -y @usejunior/safe-docx 在首次运行时从 registry.npmjs.org 下载包;后续运行默认使用缓存副本,除非手动清空缓存。
  • 无 postinstall 脚本 — 该包未声明任何 postinstall、preinstall 或 install 钩子。可通过 npm view @usejunior/safe-docx scripts 验证。
  • 来源可信性保障 — 所有发布版本均启用 npm provenance(--provenance),您可据此验证该包确由 GitHub 公共仓库经 GitHub Actions 构建而成。
  • 如需确保离线安装 — 请锁定特定版本并将其本地化托管(vendored)。详见下一节。

运行时行为(零网络连接)

  • 仅限本地 stdio 运行时 — MCP 服务器作为子进程运行,永不绑定端口。验证方式:入口点(src/server.ts)使用 StdioServerTransport,且未配置任何 HTTP 监听器。(源码依据)
  • 无出站网络调用 — 运行时,该包不发起任何出站 HTTP 请求。验证方式:grep -r "fetch|http.|https.|net." packages/safe-docx/src/ 在应用代码中(排除测试夹具)不返回任何匹配项。
  • 路径访问策略 — 仅允许访问 ~/(用户主目录)及系统临时目录下的文件。符号链接必须解析至允许的根路径内。
  • 归档防护机制 — 内置 ZIP 炸弹检测与恶意载荷拦截能力,防范格式异常的 .docx 输入文件。

离线 / 版本锁定安装

在高安全性环境中(例如禁止 npx 自动拉取场景),请手动安装并显式锁定版本:

# 方案一:全局安装并锁定特定版本
npm install -g @usejunior/safe-docx@0.9.0

# 然后在 MCP 客户端中按路径调用:
# command: "safe-docx"
# args: []

# 方案二:将包本地化托管至项目中
npm pack @usejunior/safe-docx@0.9.0
# 检查生成的 tarball,再从本地磁盘安装:
npm install -g ./usejunior-safe-docx-0.9.0.tgz

# 方案三:从源码构建(最可审计)
git clone https://github.com/UseJunior/safe-docx.git
cd safe-docx
git checkout 
npm ci
npm run build
npm link packages/safe-docx

完成任一安装方式后,您的 MCP 客户端配置如下:

{
  "mcpServers": {
    "safe-docx": {
      "command": "safe-docx",
      "args": []
    }
  }
}

使用 command: "safe-docx"(已安装的二进制程序)而非 command: "npx",可彻底避免每次调用时触发安装阶段的网络拉取操作。

始终锁定版本

即使使用 npx,您也可通过显式指定版本号防止意外升级:

{
  "mcpServers": {
    "safe-docx": {
      "command": "npx",
      "args": ["-y", "@usejunior/safe-docx@0.9.0"]
    }
  }
}

升级前,请查阅更新日志:https://github.com/UseJunior/safe-docx/blob/main/CHANGELOG.md

适用场景

当您需要执行以下操作时,请使用 Safe-DOCX:

  • 修改已有 .docx 文件中的条款或段落
  • 插入或删除内容,同时保持原有格式
  • 为审阅者添加批注(comments)或脚注(footnotes)
  • 基于编辑内容生成带修订标记(tracked-changes)的红标文档(redline)
  • 对比两个 .docx 文件并输出红标差异
  • 将修订内容提取为结构化 JSON 格式
  • 应用版式格式设置(如段落间距、表格行高、单元格内边距)

不适用于从零生成文档

Safe-DOCX 仅支持编辑已存在的 .docx 文件,无法从空白创建新文档。对于全新文档生成,请使用模板填充工作流(例如 OpenAgreements)。Safe-DOCX 可在生成后的文档基础上进行下游精修。

快速入门

1. read_file(file_path="~/doc.docx")        → 查看段落及其稳定 _bk_* ID
2. grep(file_path="~/doc.docx", patterns=["目标短语"])  → 查找段落 ID
3. replace_text(session_id, target_paragraph_id, old_string, new_string, instruction)
4. save(session_id, save_to_local_path="~/doc-edited.docx")

核心工作流:读取 → 定位 → 编辑 → 保存

步骤一 — 读取。 调用 read_file 并设置 format: "toon"(高效 token 表示法),以查看段落及其稳定的 _bk_* ID。

步骤二 — 定位。 使用 grep 配合正则表达式模式查找目标段落。该方法将返回匹配段落 ID 及其上下文。

步骤三 — 编辑。 使用 replace_text 替换段落内文本,或使用 insert_paragraph 在锚点段落前后插入新段落。

步骤四 — 保存。 调用 save 写入结果。默认 save_format: "both" 将同时生成干净副本与带修订标记的红标文档。

常见陷阱(务必注意)

要求唯一匹配

replace_text 要求 old_string 在目标段落中**严格匹配且仅出现一次**。若文本多次出现,则返回 MULTIPLE_MATCHES 错误。解决方法:在 old_string 中增加更多上下文。

BAD:  old_string: "the Company"          → 出现 5 次,失败
GOOD: old_string: "the Company shall indemnify"  → 唯一匹配,成功

脚注标记仅为显示用途

read_file 将脚注显示为 [^1]、[^2] 等形式,但这些标记不属于可编辑文本。您无法通过 replace_text 搜索或替换 [^1]。如需修改脚注,请使用专用工具:add_footnote、update_footnote 和 delete_footnote。

超链接为只读

read_file 将超链接显示为 text,但您无法通过 replace_text 或 insert_paragraph 创建新超链接。 标签会在新文本中被自动剥离。编辑周围文本时,原有超链接将被保留。

段落 ID 作用域限定于会话

_bk_* 书签 ID 在文档打开时动态生成,并与当前会话强绑定。请勿跨会话存储或复用这些 ID。每次操作前都应重新调用 read_file 获取最新 ID。

智能文本匹配

replace_text 对以下情况具备容错能力:

  • 引号变体:直角引号 "、弯角引号 u201cu201d、角括号 u00abu00bb 可相互匹配
  • 空白符差异:多个空格、制表符、换行符会被标准化处理

这意味着您可以直接从 read_file 输出中复制文本,用作 old_string,即使底层 XML 使用了不同引号字符亦可正常匹配。

格式化标签

在 replace_text 或 insert_paragraph 的 new_string 中编写内容时,可使用内联标签施加格式:

标签 效果
text 加粗
text 斜体
text 下划线
text 黄色高亮

标签支持嵌套:例如 加粗斜体。未加标签的替换文本将继承原匹配文本的格式。

使用 apply_plan 批量编辑

针对单个文档执行 3 次及以上编辑操作时,建议优先使用 apply_plan,而非连续调用 replace_text。apply_plan 会在实际应用前校验全部步骤,从而提供“全有或全无”的事务语义。

1. read_file / grep  → 收集段落 ID 与文本
2. apply_plan(file_path, steps=[
     { step_id: "1", operation: "replace_text", target_paragraph_id, old_string, new_string, instruction },
     { step_id: "2", operation: "insert_paragraph", positional_anchor_node_id, new_string, instruction },
     ...
   ])
3. save(session_id, save_to_local_path)

插入段落

insert_paragraph 在锚点段落之前或之后插入新内容。

  • position: "BEFORE" 或 "AFTER"(默认为 "AFTER")
  • style_source_id: 可选参数,指定一个 _bk_* ID,用于克隆其段落格式
  • 多段落支持:在 new_string 中使用 nn 分隔各段落(每个分隔段落将独立成段)

批注与脚注

批注(Comments):add_comment 可锚定至某一段落(亦可选择通过 anchor_text 锚定至具体文本片段)。使用 get_comments 列出批注,delete_comment 删除批注。支持通过 parent_comment_id 实现嵌套式回复。

脚注(Footnotes):add_footnote 在段落中插入脚注标记(亦可选择通过 after_text 指定插入位置)。使用 get_footnotes、update_footnote、delete_footnote 进行管理。

文档对比

支持两种对比模式:

  • 双文件对比:compare_documents(original_file_path, revised_file_path, save_to_local_path) —— 输出红标差异文档
  • 会话内对比:compare_documents(session_id) —— 将当前会话状态与原始文档进行对比

对任意含修订标记的文档,可调用 extract_revisions 提取结构化 JSON 差异数据。

接受修订标记

调用 accept_changes(session_id) 可将所有修订标记合并为干净文档,彻底清除修订标记。

会话行为

  • 会话在您首次使用任意工具配合 file_path 参数时自动创建
  • 会话在1 小时无操作后自动过期(每次工具调用重置计时器)
  • 操作完成后可调用 clear_session 主动清理资源
  • 文档在打开时会自动标准化:格式一致的连续段落将被合并,校对错误标记(proof-error markers)将被移除,从而提升文本匹配可靠性

版式格式设置

format_layout 可在不改动文本内容的前提下,设置段落间距、表格行高及单元格内边距。单位采用 twips(1/20 点)或 DXA(1/635 英寸)。

路径限制

默认情况下,仅允许访问 ~/(用户主目录)及系统临时目录下的文件。符号链接必须解析至允许的根路径内。

相关技能

  • Open Agreements(open-agreements)—— 填充标准法律模板(如 NDA、SAFE、云服务协议),并生成可供签署的 DOCX 文件:clawhub install open-agreements/open-agreements
  • Outlook Email Management(outlook-email-management)—— 使用 AI Agent 管理 Outlook 邮件:clawhub install stevenobiajulu/outlook-email-management

连接器

有关 MCP 服务器配置说明(Claude Desktop、Cursor、Claude Code),请参见 CONNECTORS.md。

反馈

如本技能对您有所帮助,欢迎在 GitHub 上为我们点亮 Star:https://github.com/UseJunior/safe-docx 在 ClawHub 上执行:clawhub star usejunior/docx-editing

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习