mcpField
D
docxredline

docxredline

本地服务
github.com/CloudCorpRecords生产力01 周前更新

关于 docxredline

docxredline 是面向 Agent 的本地 .docx 读取与修订工具,可通过命令行或 stdio MCP 使用。它生成 Word 原生跟踪修订,并可清理文档元数据;不操作 Word 界面,也不支持评论。

主要功能

  1. 01逐段读取 .docx 并显示修订
  2. 02批量编辑并生成跟踪修订
  3. 03接受或拒绝指定修订
  4. 04清理作者字段和修订标识
  5. 05命令行与 stdio MCP 接口

适用场景

  1. 01检查合同中的付款条款
  2. 02批量修改协议文本并保留修订记录
  3. 03分发前清理文档元数据

MCP 相关

提供 stdio MCP 服务,暴露读取、批量处理和定稿三个文档工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-docxredline": {
"command": "npx",
"args": [
"-y",
"@reneturcios/docxredline"
]
}
}
}
启动命令npx -y @reneturcios/docxredline

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/docxredline0.1.0
ocighcr.io/cloudcorprecords/docxredline:0.1.0

工具

3

收录的工具列表 · 更新于 1 周前

参数类型必填说明
pagenumber否要返回的模拟页码(段落按页分组)。
pathstring是.docx 文件的路径。
clean_viewboolean否读取最终的清稿版本(接受所有修订)。
search_querystring否仅返回包含此文本的段落。

详细介绍

docxredline

docxredline 以 Agent 所需的方式处理 Word .docx 文件: 将文件读取为便于推理的纯文本,编辑文件以便 Word 本身显示修订痕迹,并在文件离开工作环境前将其清理干净。所有操作都在本地进行——文档不会离开本机,除了 stdio MCP 接口外,不包含任何服务端组件。

这是一个标注过的核心子集:仅包含三个文档工具 (read_docx、process_document_batch、finalize_document),不包含其他内容。它不会驱动正在运行的 Word 实例,不会渲染任何 UI,也不处理文档批注(请参阅下方各工具的说明)。

安装

npx @reneturcios/docxredline read agreement.docx

或者运行容器映像:

docker run -i ghcr.io/cloudcorprecords/docxredline

容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。请注意,CLI 按路径读取和写入文件,因此需要为容器挂载包含文档的卷。

CLI

# Read a document (tracked changes shown as CriticMarkup)
docxredline read agreement.docx

# Read the final clean version instead
docxredline read agreement.docx --clean

# Only paragraphs mentioning payment terms; synthetic page 2
docxredline read agreement.docx --search "payment"
docxredline read agreement.docx --page 2

# Apply a batch of edits from a JSON file
docxredline batch agreement.docx changes.json --author "Review Bot"

# Pre-send scrub, locked read-only
docxredline finalize agreement.docx --protection read_only

docxredline --version

退出代码:成功时为 0,无法读取文件或批次中没有任何更改生效时为 1,用法错误时为 2。所有命令都接受 --json。

更改文件是一个由更改对象组成的 JSON 数组:

[
  { "type": "modify", "target_text": "thirty days", "new_text": "sixty days" },
  { "type": "modify", "target_text": "old clause", "new_text": "new clause", "match_mode": "all" },
  { "type": "accept", "target_text": "12" },
  { "type": "reject", "target_text": "13" }
]

MCP 服务

一个可执行文件同时提供这两种接口。mcp 子命令会启动 stdio MCP 服务:

npx -y @reneturcios/docxredline mcp

MCP 客户端配置:

{
  "mcpServers": {
    "docxredline": {
      "command": "npx",
      "args": ["-y", "@reneturcios/docxredline", "mcp"]
    }
  }
}
工具
工具输入功能
read_docxpath(字符串,必需);clean_view(布尔值)、search_query(字符串)、page(数字)可选逐段返回类似 Markdown 的文档文本。现有修订痕迹会呈现为 CriticMarkup——{++inserted++} 和 {--deleted--}——除非通过 clean_view 将其消除。search_query 仅保留包含该文本的段落。
process_document_batchpath(字符串,必需)、changes(数组,必需);output_path、author 可选应用一批更改并写入结果(默认写入输入文件所在目录下的 <name>.redlined.docx)。返回已生效的更改数量,以及其余更改的逐项错误列表。只有至少一项更改生效时才会写入输出文件。
finalize_documentpath(字符串,必需);output_path、protection_mode 可选写入可供分发的副本(默认写入 <name>.scrubbed.docx):清空 docProps/core.xml 中的作者字段,从正文中剥离 w:rsid* 属性,并在设置 protection_mode: "read_only" 时添加 documentProtection 锁定。
此子集中的编辑与 ID 工作方式
  • modify 更改会在单个段落的文本中查找 target_text,并重写包含该文本的运行:旧文本会包裹在 <w:del> 元素中,新文本会包裹在 <w:ins> 元素中;两者都会标记批次中的 author,并使用新的 w:id,因此 Word 会显示真正的修订痕迹。
  • 安全检查:对于非正则表达式 modify,若使用默认的 match_mode "first",且目标匹配到多个段落,则会因存在歧义而拒绝操作,而不会猜测段落并应用更改。请使用更长的目标,或使用 match_mode: "all" 编辑每个匹配段落中的所有匹配项。regex: true 会将 target_text 视为正则表达式。
  • 跨越段落内多个运行的目标无法通过此子集重写,并会作为单项更改失败报告。
  • accept / reject 使用修订痕迹的 w:id 字符串作为 target_text。接受会保留插入文本并删除删除内容;拒绝则相反。(此处未复现原工具对批注和范围更丰富的 ID 模型。)
  • 此子集不支持 reply:它会作为单项更改失败返回,错误信息为 "comments not supported in this subset",绝不会被静默计为已生效。
合成分页

.docx 没有分页概念,因此 page 是一项本地约定:每 40 个段落分为一页,页码从 1 开始。每次返回结果时,read_docx 都会报告文档的段落总数和合成页数,以便调用方有意分页。

最终说明

当文档没有 word/settings.xml 部件且请求了保护时,docxredline 会创建一个仅包含保护元素的最小文件。完整的软件包还会在 [Content_Types].xml 和软件包关系中注册该部件;此子集将其记录为已知缺口,而不会重写这些部件。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network
npm run dev     # run the CLI from source via tsx

测试会在临时目录中使用该工具自带的同一存储式 ZIP 写入器生成自己的最小 .docx 测试文件,因此测试套件会端到端地运行真正的归档读取器。

许可证

MIT — 请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

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