如何让AI直接处理当前打开的Word文档——word-mcp-live 安装与实战


如何让 AI 直接处理当前打开的 Word 文档

痛点:AI 和 Word 之间有一堵墙

做国土咨询最烦的是什么?改报告。

传统流程:把 docx 丢给 AI → AI 生成/修改 → 导出文件 → 打开看 → 发现不够满意 → 改 prompt → 重复。

有没有办法让 AI 直接操作你 WPS/Word 里正在编辑的文档,实时看到修改效果?

有。word-mcp-live

什么是 word-mcp-live

word-mcp-live 是一个 MCP 服务器,让 AI 通过 MCP 协议直接控制 Microsoft Word(以及 WPS,因为它实现了 Word 的 COM 接口)。

核心能力:

  • 文档打开状态下实时编辑:不需要保存-关闭-处理-重新打开
  • 跟踪更改(Track Changes):用你的名字做修订,Ctrl+Z 随时撤回
  • 批注和线程回复:像人类审阅者一样添加、回复、解决批注
  • 共 120 个工具:涵盖文本操作、格式、表格、页眉页脚、书签、交叉引用、公式、水印等

安装

环境要求

  • Windows 10/11
  • Python 3.11+
  • Microsoft Word 或 WPS(已安装)
  • mcporter CLI(已有)

安装步骤

# 使用系统 Python 安装(避开 QClaw 的 pip shim 编码问题)
& "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\python.exe" -m pip install word-mcp-live --user

安装完成后会在 C:\Users\Administrator\AppData\Roaming\Python\Python311\Scripts\ 下生成 word_mcp_server.exe

配置 mcporter

word-mcp-live 支持两种传输模式:

  • stdio:标准输入输出(在 QClaw 环境下容易断连,不推荐)
  • SSE:HTTP 长连接(推荐,兼容 WPS,稳定性好)

配置文件路径:C:\Users\Administrator\.qclaw\workspace\config\mcporter.json

{
  "mcpServers": {
    "word-mcp-live": {
      "baseUrl": "http://127.0.0.1:8765/sse"
    }
  }
}

启动 SSE 服务

不能通过 mcporter 启动 SSE 模式(mcporter 对 FastMCP SSE 的支持有限),需要手动启动守护进程:

$env:MCP_TRANSPORT = 'sse'
$env:MCP_HOST = '127.0.0.1'
$env:MCP_PORT = '8765'
$env:MCP_AUTHOR = '王帅'
$env:MCP_AUTHOR_INITIALS = 'WS'

Start-Process -FilePath "C:\Users\Administrator\AppData\Roaming\Python\Python311\Scripts\word_mcp_server.exe" -WindowStyle Hidden

环境变量说明:

变量 默认值 说明
MCP_TRANSPORT stdio 传输模式,推荐 sse
MCP_HOST 0.0.0.0 SSE 绑定地址
MCP_PORT 8000 SSE 端口
MCP_AUTHOR "Author" 跟踪更改和批注的作者名
MCP_AUTHOR_INITIALS "" 批注作者缩写

两种工作模式

word-mcp-live 的工具分两类:

1. 跨平台模式(python-docx)

  • 操作已保存的 .docx 文件
  • 不需要 Word/WPS 打开
  • 适合批量处理、文档生成
  • 工具名不带 word_live_ 前缀,如 add_paragraphsearch_and_replaceadd_table
# 示例:创建新文档
mcporter call word-mcp-live.create_document filename="C:\test.docx" title="测试文档" author="王帅"

# 示例:查找替换(跨平台)
mcporter call word-mcp-live.search_and_replace filename="C:\test.docx" find_text="旧文本" replace_text="新文本"

2. 实时模式(COM 自动化,仅 Windows)

  • 操作 Word/WPS 中正在打开的文档
  • 修改实时可见
  • 每一步都可 Ctrl+Z 撤回
  • 工具名带 word_live_ 前缀
# 示例:在已打开的文档末尾插入文本
mcporter call word-mcp-live.word_live_insert_text text="这是AI实时写入的内容" position="end"

# 示例:查找并替换(带跟踪更改)
mcporter call word-mcp-live.word_live_replace_text find_text="河津市" replace_text="河津市(测试)" track_changes=true

常用工具速查

文档操作

工具 说明
word_live_list_open 列出所有打开的文档
word_live_get_text 读取文档文本(默认前3页)
word_live_get_page_text 读取指定页
word_live_get_info 文档元信息(页数/字数/段数/表数)
word_live_save 保存文档
word_live_undo 撤销操作(可指定次数)

文本编辑

工具 说明
word_live_insert_text 在指定位置插入文本
word_live_replace_text 查找替换(支持通配符、跟踪更改)
word_live_find_text 查找文本,返回位置和上下文
word_live_insert_paragraphs 在指定段落前后插入段落
word_live_delete_text 删除文本

格式

工具 说明
word_live_format_text 设置字体/字号/颜色/加粗/高亮/样式等
word_live_get_paragraph_format 读取段落格式
word_live_set_paragraph_spacing 设置段落间距
word_live_set_page_layout 页面布局(方向/尺寸)

批注和修订

工具 说明
word_live_add_comment 添加批注
word_live_get_comments 列出批注
word_live_reply_to_comment 回复批注
word_live_resolve_comment 解决/取消解决批注
word_live_delete_comment 删除批注
word_live_list_revisions 列出修订
word_live_accept_revisions 接受修订
word_live_reject_revisions 拒绝修订
word_live_toggle_track_changes 开关跟踪更改

表格

工具 说明
word_live_add_table 插入表格
word_live_format_table 格式化表格(边框/对齐/列宽)
word_live_modify_table 修改表格(增删行列/合并单元格)

其他

工具 说明
word_live_add_bookmark 添加书签
word_live_insert_cross_reference 插入交叉引用
word_live_insert_equation 插入公式
word_live_add_header_footer 添加页眉页脚
word_live_add_page_numbers 添加页码
word_live_add_watermark 添加水印
word_live_diagnose_layout 布局诊断
word_screen_capture 截取文档窗口截图

实测结果

测试环境:Windows 11 + WPS Office + Python 3.11.2
测试文档:A磋商文件(93页,2008段落,14张表)

功能 结果 备注
文档检测 正确识别 WPS 打开的文档
文本读取 分页返回,2008段落完整
文本插入 WPS 中实时可见
文本查找 21处匹配,带上下文
文本替换 7处全部替换
撤销操作 单步+批量均正常
跟踪更改 开关正常
批注写入 作者「王帅」正确
批注读取 ⚠️ WPS 报错 <unknown>.Comments,疑似 COM 兼容问题
文档信息 93页/40028字/2008段/14表
段落格式 字号/字体/对齐/加粗均可读取
表格插入 ⚠️ mcporter 传数组参数有 PowerShell 转义坑
布局诊断 93页太慢超时,建议指定页面范围
页码定位 ⚠️ find_text 只返回字符位置,不能直接映射页码。字符不均分布,计算推算是坑。必须逐页确认

已知问题与避坑

1. mcporter 数组参数传参(重要)

word_live_add_tabledata 参数是二维数组。mcporter CLI 在 PowerShell 下传 JSON 数组有坑,引号被 PowerShell 吃掉。

解决方案:用 --args-from-file 传 JSON 文件:

# 1. 写一个 JSON 文件
@'
{"rows":3,"cols":4,"position":"end","data":["姓名","电话","邮箱","备注","张三","138xxxx","a@a.com","","李四","139xxxx","b@b.com",""]}
'@ | Out-File -FilePath args.json -Encoding utf8

# 2. 从文件传参
mcporter call word-mcp-live.word_live_add_table --args-from-file args.json

2. 不要并发调用

SSE 模式下同时发多个请求会导致响应拥堵甚至超时。串行调用,一个一个来

3. WPS 兼容性

word-mcp-live 基于 Word COM 接口开发,WPS 因为实现了同样的 COM 接口所以大部分工具能用。但个别工具(如 get_comments)报 COM 对象名不一致的问题,add_comment 则完全正常。

4. 大文档性能

93页的布局诊断(word_live_diagnose_layout)会超时。建议:

  • 大文档操作时指定页面范围
  • 布局诊断只查关键页

5. 并发丢弃

mcporter 内部对同一服务器的并发连接有限制,多个长调用会互相阻塞。超过60秒会掉线,重调即可。

6. 页码推算不可靠(重要)

不能用 总字符数 ÷ 总页数 × 字符位置 推算页码。文档内容不是均匀分布的——报价函模板一页只有 300 字符,正文一页可能有 600+,尾页可能全是空白。用 word_live_find_text 获取字符位置后,必须再调 word_live_get_page_text 逐个页码确认,不能凭计算猜。

翻车案例:根据 42199÷93≈453 字符/页推算「我方承诺已经具备」在 92 页,实际读了 71 页才发现它就在那里。

7. 大文档远端页不要急着杀进程

读取大文档末尾页面(如 93 页文档的 91/92 页)时,如果页面包含表格、修订标记、特殊格式,WPS COM 渲染会很慢。60 秒超时是正常等待,不是挂了。把 timeout 拉到 120 秒以上,别急着 kill。 误杀之后重试反而更慢(SSE 连接重建 + COM 重新初始化)。

实战场景

场景1:评审意见修改

"帮我用跟踪更改,把这个文件里所有的'供应商'改成'投标人',然后给第三条评标标准加个批注问是否需要引用最新政策"

→ 一次性完成:全文档替换 + 批注添加,WPS 里实时看到红色修订标记和右侧批注。

场景2:格式统一

"把正文所有一级标题设为三号黑体加粗居中,二级标题设为四号宋体加粗,段前段后各6磅"

→ 遍历所有标题样式段落,统一修改格式。

场景3:报告数据提取

"读取这个磋商文件的预算金额、履约期限和资质条件要求,整理成表格放在文档末尾"

→ 先 word_live_find_text 定位关键信息,再 word_live_add_table 插入汇总表。

场景4:批量替换项目名称

"把文档里所有的'河津市自然资源局2026年度国土空间总体规划动态维护工作项目'替换为'XX县国土空间规划动态维护项目',用跟踪更改"

→ 一次调用,全文档替换+修订标记。

场景5:文档审阅

"审阅这份报告,给有疑问的地方加批注,把明显的格式错误做标记"

→ AI 先读全文,逐个加批注,人类审阅者在 WPS 里直接看到批注并回复。

总结

word-mcp-live 把 AI 的能力延伸到了 Word/WPS 的实时编辑层。对国土行业来说,最核心的价值在于:

  1. 节省来回切换时间:AI 直接在文档里干活,你看着就行
  2. 跟踪更改可控:每次修改都是可审计的修订,不满意就 Ctrl+Z
  3. 批注即沟通:AI 对文档内容的疑问直接以批注形式留在文档里,和人类同事的批注混在一起,统一处理

唯一的依赖是电脑上得开着一个 SSE 守护进程。建议写个启动脚本放到开机自启里。


关于 word-mcp-live 操作 Word 表格——踩坑与正解

背景

写标书时遇到大量表格要填:人员汇总表、简历表、业绩表……每张表少则十几格,多则几十格。手工填?太慢。让 word-mcp-live 来?

坑一:replace_text + \t 分隔符

思路

Word 表格中,按 Tab 键可以跳到下一个单元格。所以我想当然地用 replace_text 把一行数据用 \t 拼接,一次性写入:

word_live_replace_text({
    "find_text": "项目成员",
    "replace_text": "技术负责人\t廖宣淇\t工程师\t信息管理与信息系统\t工程师\t中级\t129315141",
    "track_changes": false
})

实际效果

时灵时不灵。

场景 结果
17页简历表(6列,简单结构) 部分生效,部分挤在同一格
16页汇总表(9列,复杂表头) 全部挤在一个单元格里
多次测试 行为不可预测,无法依赖

原因分析

replace_text 底层是用 Word COM 的 Find.Execute + Replacement.Text 实现的。在替换文本中插入 \t(制表符),Word 的行为取决于当前光标位置和表格结构——有时解释为「跳到下一格」,有时解释为「在当前格插入一个制表符」。这不是 bug,是 Word COM 本身的设计

坑二:insert_text 也不行

word_live_insert_text 只能在文档末尾或光标处插入文本,不能定位到表格的指定单元格。参数也不支持 near_text 之类的锚点。

更深的问题:SSE 服务卡死

进一步测试发现,word_live_insert_textposition 参数只支持字符串 'cursor''end'

  • position='cursor' → ✅ 成功(但需手动定位光标,批量填空不现实)
  • position={'type':'char','start':134} → ❌ 服务卡死
  • position=134(整数)→ ❌ 服务卡死
  • position='start' + start=134 → ❌ 服务卡死
  • word_live_find_text → ❌ 服务卡死
  • word_live_track_insertafter_text 锚点)→ ❌ 工具不存在

每次卡死需要 taskkill /F /IM word_mcp_server.exe + 重启服务。replace_text 能工作但会改变原有空格格式,不是真正的插入。

正解一:COM 直连文本插入(com_insert.py)

绕过 SSE 服务,用 pywin32 直连 WPS/Word COM 接口,实现真正的文本插入。

核心代码

import win32com.client

def _get_word_app():
    for progid in ['KWPS.Application', 'Word.Application']:
        try:
            return win32com.client.GetActiveObject(progid)
        except:
            pass
    raise RuntimeError('找不到运行的 WPS 或 Word 实例')

def insert_text_at_pos(para_index, char_pos, text):
    """在指定段落的 char_pos 位置(0-based)插入文字,不影响格式"""
    app = _get_word_app()
    doc = app.ActiveDocument
    para = doc.Paragraphs(para_index)
    abs_pos = para.Range.Start + char_pos
    insert_rng = doc.Range(abs_pos, abs_pos)
    insert_rng.InsertBefore(text)
    return True

CLI 用法

$py = "C:\Users\ZhuanZ\AppData\Local\Programs\Python\Python312\python.exe"
$script = "E:\王帅工作\0、标书\.workbuddy\scripts\com_insert.py"
& $py $script read 12                                     # 读第12段
& $py $script insert 12 10 "山西金辉土地资产评估有限公司"  # 第12段pos 10插入
& $py $script after "供应商:" "山西金辉土地资产评估有限公司"  # 锚点后插入

实测效果

原文:   供应商:                     (加盖公章)
插入后: 供应商:      山西金辉土地资产评估有限公司               (加盖公章)

pos 10 插入公司名,前6个空格保留,后11个空格保留。真正的插入,不改格式。

⚠️ Python 环境:QClaw 自带 Python 无 pywin32,需用 C:\Users\ZhuanZ\AppData\Local\Programs\Python\Python312\python.exe

正解二:modify_table + set_cell

工具:word_live_modify_table

这是 word-mcp-live 专门为表格操作设计的工具,支持以下操作:

get_info, set_cell, set_row, set_range,
add_column, delete_column, add_row, delete_row,
merge_cells, autofit, delete_table

关键参数

参数 说明 注意事项
table_index 表格序号(1-based) 不是页码,是全文第几张表
operation 操作类型 "set_cell"
row 行号(1-based) Word COM 标准,从1开始
col 列号(1-based) 同上
text 要写入的文本 空字符串清空单元格

单格写入示例

word_live_modify_table({
    "table_index": 6,
    "operation": "set_cell",
    "row": 4,
    "col": 3,
    "text": "廖宣淇",
    "track_changes": false
})

批量写入脚本

填一张表要几十个单元格,一个个调太慢。写了个批量脚本:

"""批量填表:一次性发送所有 set_cell 请求"""
import socket, re, json, select, time, sys, io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')

# 所有要填的单元格:(行, 列, 文本)
cells = [
    # 第3行 = 姓名1
    (3, 4, "高级工程师"),
    (3, 6, "国土空间规划高级工程师"),
    (3, 7, "高级"),
    (3, 8, "2414000902820015"),
    # 第4行 = 姓名2
    (4, 2, "技术负责人"),
    (4, 3, "姓名2"),
    (4, 4, "工程师"),
    (4, 5, "信息管理与信息系统"),
    (4, 6, "工程师"),
    (4, 7, "中级"),
    (4, 8, "129315141"),
    # ... 更多行
]

# 连接 word-mcp-live SSE
sse = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sse.settimeout(30)
sse.connect(('127.0.0.1', 8765))
sse.sendall(b'GET /sse HTTP/1.1\r\nHost: 127.0.0.1:8765\r\nConnection: keep-alive\r\n\r\n')

# 获取 session_id
data = b''
sid = None
while not sid:
    chunk = sse.recv(4096)
    m = re.search(r'session_id=([a-f0-9]+)', chunk.decode('utf-8', errors='replace'))
    if m: sid = m.group(1)

# MCP initialize
def post(method, params, rid):
    body = json.dumps({'jsonrpc':'2.0','id':rid,'method':method,'params':params})
    p = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    p.connect(('127.0.0.1', 8765))
    p.sendall(f'POST /messages/?session_id={sid} HTTP/1.1\r\nHost: 127.0.0.1:8765\r\nContent-Type: application/json\r\nContent-Length: {len(body)}\r\nConnection: close\r\n\r\n{body}'.encode())
    p.close()

post('initialize', {'protocolVersion':'2024-11-05','capabilities':{},'clientInfo':{'name':'fill-tool','version':'1.0'}}, 1)
time.sleep(0.5)

# 批量发送 set_cell
for i, (row, col, text) in enumerate(cells):
    post('tools/call', {
        'name': 'word_live_modify_table',
        'arguments': {'table_index': 6, 'operation': 'set_cell', 'row': row, 'col': col, 'text': text}
    }, i + 10)
    time.sleep(0.15)  # 避免请求过快

# 等待并收集所有响应
time.sleep(3)
all_data = b''
deadline = time.time() + 10
while time.time() < deadline:
    r, _, _ = select.select([sse], [], [], 0.5)
    if r:
        chunk = sse.recv(65536)
        if chunk: all_data += chunk
        else: break

sse.close()

# 统计结果
success = fail = 0
for line in all_data.decode('utf-8', errors='replace').split('\n'):
    if line.startswith('data:') and '{' in line:
        try:
            obj = json.loads(line[5:].strip())
            if 'result' in obj:
                inner = json.loads(obj['result']['content'][0]['text'])
                if inner.get('success'): success += 1
                else: fail += 1
        except: pass

print(f"Done: {success} success, {fail} fail out of {len(cells)} cells")

实测结果

Sent 41 set_cell requests
Done: 41 success, 0 fail out of 41 cells

41个单元格全部成功,0失败。切到 WPS 看,数据全部到位。

如何找到正确的 table_index

table_index 是全文第几张表(1-based),不是页码。用 get_info 遍历:

for i in range(1, 20):
    result = word_live_modify_table({"table_index": i, "operation": "get_info"})
    # result 返回 rows, cols, data(二维数组)
    # 通过 data 内容判断哪张表是你要填的

示例输出:

Table 6: 17行×9列,表头是「序号|本项目任职|姓名|职称|专业|...」→ 这是人员汇总表
Table 7: 16行×6列,表头是「姓名|侯秀秀|年龄|34|证书名称|...」→ 这是简历表

其他有用的表格操作

操作 参数 用途
set_row cells: ["1", "项目负责人", "姓名1", ...] 一次填一整行
set_range cells: [[...], [...]], start_row, start_col 批量填矩形区域
add_row before_row: 5, cells: [...] 插入新行并填数据
delete_row row: 10 删除空行
autofit autofit_mode: "content" 自动调整列宽
merge_cells start_row, start_col, end_row, end_col 合并单元格

总结

方法 可靠性 适用场景
replace_text + \t ❌ 不可靠 不推荐用于表格
insert_text ❌ 不能定位 仅末尾追加
modify_table + set_cell ✅ 100%可靠 填表首选
modify_table + set_row ✅ 可靠 整行写入更快
modify_table + set_range ✅ 可靠 批量矩形区域

一句话:填 Word 表格,永远用 modify_table + set_cell,别碰 replace_text

能力边界:word-mcp-live 能"看"文档中的图片吗?

直接结论:不能

word-mcp-live 的工具集中,没有提取或识别文档内嵌图片的能力。

相关工具分析

工具 能力 能"看"图片? 说明
word_live_insert_image 向文档插入图片 只能写,不能读
word_screen_capture 截取当前Word窗口存为PNG ⚠️ 间接——截图后AI可以看到屏幕上显示的内容
get_document_text 提取文档纯文本 图片中的文字(即使是扫描件上的)不会被提取
get_document_xml 读取XML结构 XML中只有 <w:drawing> 引用,不含像素数据

这意味着什么

在实际使用中,有一个明显的盲区:

AI 可以往文档里放图片(插入营业执照、资质证书、签字扫描件),但看不到已经在文档里的图片是什么

举个例子:你说"我已经把资质证书放到了第8页",AI 无法直接验证那个图片是不是城乡规划乙级资质证书、证书编号对不对、是否在有效期内。AI 只能通过文字上下文推断。

补救方案

方案A:截图法

word_screen_capture({"output_path": "C:\\temp\\page8.png"})

→ AI 读取截图,间接"看"到图片内容。但这是整个窗口的截图,需要你在WPS翻到目标页面。

方案B:提取法(推荐)

# 直接解压 docx,从 word/media/ 目录提取所有内嵌图片
import zipfile, os
with zipfile.ZipFile('金辉.docx', 'r') as z:
    for name in z.namelist():
        if name.startswith('word/media/'):
            z.extract(name, 'extracted_images/')
            # 然后用 AI 的图片识别能力逐个分析

→ 把docx里的图片文件全部抽出来,AI直接读取图片内容进行分析。

方案C:文本法 直接用 get_document_text 读该页的文字,如果是扫描件附的说明文字或表格,可能已经在文字中体现了关键信息。

实际影响

在标书审阅场景中,AI 能审查的是:

  • ✅ 文字内容(段落、表格)
  • ✅ 文档结构(标题、页码、段数)
  • ⚠️ 图片(需要截图或提取后才能看)
  • ❌ 图片中的细节点(非嵌入不可见)

所以目前 AI 对标书的审查存在一个边界:文本层全覆盖,图形层需额外操作。如果你放的资质证书、业绩合同扫描件、身份证等都是图片而不是文字,AI 必须走截图或提取路线才能"看"到它们。


附录:word-mcp-live v3.4.2 全部 120 个工具速查

通过 MCP 协议 tools/list 方法实时拉取,非人工整理。按功能分类排列。

一、实时模式工具(word_live_ 前缀,Windows COM,48个)

操作 Word/WPS 中正在打开的文档,修改实时可见,每步可 Ctrl+Z 撤回。

1. 文档信息与读取(7个)

工具 说明 关键参数
word_live_list_open 列出所有打开的文档(名称、路径、页数、保存状态)
word_live_get_info 文档元信息(页数/字数/段数/表数/节数) filename
word_live_get_text 读取全文段落(大文档自动返回前3页) filename
word_live_get_page_text 页码读取段落,返回带 index/char_start/char_end filename, page, end_page
word_live_get_paragraph_format 段落索引读取格式(字体/字号/对齐/间距/列表/高亮等) filename, start_paragraph, end_paragraph, include_runs
word_live_get_diff 对比快照,返回变更的段落(新增/修改/删除) filename
word_live_get_undo_history 获取撤销栈(MCP 操作作为命名条目) filename

2. 文本编辑(6个)

工具 说明 关键参数
word_live_insert_text 在指定位置插入文本(start/end/cursor/书签) filename, text, position, bookmark, track_changes
word_live_insert_paragraphs 在目标段落前后插入多个段落(按文本或段索引定位) filename, paragraphs, target_text, target_paragraph_index, position, style
word_live_delete_text 按字符位置删除文本 filename, start, end, track_changes
word_live_replace_text 查找替换(支持通配符 m/t/p/s、跟踪更改) filename, find_text, replace_text, match_case, match_whole_word, use_wildcards, replace_all, track_changes
word_live_find_text 搜索文本,返回位置和上下文(支持通配符) filename, search_text, match_case, whole_word, use_wildcards, context_chars, max_results
word_live_format_text 格式化文本(字体/字号/颜色/高亮/样式/对齐/分页/删除线) filename, start, end, start_paragraph, end_paragraph, bold, italic, font_name, font_size, font_color, highlight_color, style_name, paragraph_alignment, page_break_before, track_changes

3. 段落格式与列表(3个)

工具 说明 关键参数
word_live_set_paragraph_spacing 设置段落间距/行距/对齐/段后分页/与下段同页 filename, start_paragraph, end_paragraph, space_before_pt, space_after_pt, line_spacing, line_spacing_rule, keep_with_next, keep_together, alignment
word_live_apply_list 应用/移除项目符号、编号、多级列表 filename, start_paragraph, end_paragraph, list_type, level, remove, continue_previous, number_format, number_style, start_at, level_map, track_changes
word_live_setup_heading_numbering 设置多级标题自动编号(1. / 1.1 格式) filename, h1_paragraphs, h2_paragraphs, heading_map, strip_manual_numbers, h1_number_format, h2_number_format, font_name, h1_size, h2_size, bold, alignment

4. 表格操作(2个)

工具 说明 关键参数
word_live_add_table 插入表格(可选数据、样式、自动适应) filename, rows, cols, position, data, style, autofit, track_changes
word_live_modify_table 修改表格:get_info/set_cell/set_row/set_range/add_column/delete_column/add_row/delete_row/merge_cells/autofit/delete_table filename, table_index, operation, row, col, text, before_row, before_col, header, cells, start_row, start_col, end_row, end_col, autofit_mode, accept_revisions, track_changes
word_live_format_table 格式化表格(边框/加粗/对齐/列宽/底纹/自动适应) filename, table_index, border_style, cell_bold, cell_alignment, column_widths, table_alignment, cell_shading, autofit

5. 批注与修订(8个)

工具 说明 关键参数
word_live_add_comment 添加批注(按字符位置或段落索引) filename, start, end, paragraph_index, text, author
word_live_get_comments 获取所有批注 filename
word_live_reply_to_comment 回复批注(线程回复) filename, comment_index, text, author
word_live_resolve_comment 解决/取消解决批注 filename, comment_index, resolve
word_live_delete_comment 删除批注 filename, comment_index
word_live_toggle_track_changes 开关跟踪更改模式 filename, enable
word_live_list_revisions 列出所有修订 filename
word_live_accept_revisions 接受修订(可按作者/ID过滤) filename, author, revision_ids
word_live_reject_revisions 拒绝修订(可按作者/ID过滤) filename, author, revision_ids

6. 页面与布局(4个)

工具 说明 关键参数
word_live_set_page_layout 页面布局(方向/尺寸/页边距) filename, section_index, orientation, page_width_inches, page_height_inches, margin_top_inches, margin_bottom_inches, margin_left_inches, margin_right_inches
word_live_add_section_break 插入分节符(new_page/continuous/even_page/odd_page) filename, break_type
word_live_add_header_footer 添加页眉/页脚 filename, section_index, header_text, footer_text, header_alignment, footer_alignment
word_live_add_page_numbers 添加页码(PAGE/NUMPAGES 域) filename, section_index, position, alignment, prefix, suffix, include_total

7. 高级功能(10个)

工具 说明 关键参数
word_live_add_bookmark 添加书签(1-indexed 段落) filename, paragraph_index, bookmark_name
word_live_insert_cross_reference 插入交叉引用(标题/书签/图表/表格/公式/脚注/尾注) filename, ref_type, ref_item, ref_kind, insert_position, paragraph_index, insert_as_hyperlink
word_live_list_cross_reference_items 列出可引用的目标 filename, ref_type
word_live_insert_equation 插入数学公式(UnicodeMath 语法) filename, equation, paragraph_index, position, display_mode
word_live_insert_image 插入图片(按段落/位置/尺寸/对齐/环绕/边框) filename, image_path, paragraph_index, position, width_inches, height_inches, alignment, wrapping, border_style, border_color
word_live_add_watermark 添加水印 filename, text, font_size, font_color, rotation, section_index
word_live_save 保存文档(可另存为) filename, save_as
word_live_undo 撤销操作(每次 MCP 调用 = 1个撤销条目) filename, times
word_live_set_core_properties 设置文档属性(标题/作者/关键词/公司等) filename, title, subject, author, keywords, comments, category, manager, company, last_author
word_live_diagnose_layout 布局诊断(keep_with_next 链/标题样式/分页/样式摘要) filename

8. 快照与差异(3个)

工具 说明 关键参数
word_live_take_snapshot 存储文档文本快照(不返回全文) filename
word_live_snapshot_status 查询快照状态(是否存在/年龄/段落数) filename
word_live_get_diff 对比快照,返回变更段落(自动更新快照) filename

9. 截图(1个)

工具 说明 关键参数
word_screen_capture 截取 Word 窗口截图存为 PNG filename, output_path

二、跨平台模式工具(python-docx,文件操作,72个)

操作已保存的 .docx 文件,不需要 Word/WPS 打开,适合批量处理。

1. 文档创建与管理(7个)

工具 说明 关键参数
create_document 创建新文档(可选标题/作者) filename, title, author
copy_document 复制文档 source_filename, destination_filename
merge_documents 合并多个文档 target_filename, source_filenames, add_page_breaks
convert_to_pdf 转换为 PDF filename, output_filename
list_available_documents 列出目录下所有 .docx 文件 directory
get_document_info 文档信息 filename
get_document_outline 文档结构大纲 filename

2. 文本读取(6个)

工具 说明 关键参数
get_document_text 提取全文(可选显示修订标记) filename, show_revisions
get_paragraph_text_from_document 按段落索引读取 filename, paragraph_index
get_document_xml 读取原始 XML 结构 filename
get_highlighted_text 提取高亮/彩色文本(含表格内) filename, color
find_text_in_document 查找文本 filename, text_to_find, match_case, whole_word
search_and_replace 查找替换 filename, find_text, replace_text

3. 文本编辑与格式(5个)

工具 说明 关键参数
add_paragraph 添加段落(可选样式/字体/字号/加粗/斜体/颜色) filename, text, style, font_name, font_size, bold, italic, color
add_heading 添加标题(1-9级,可选字体/字号/加粗/下边框) filename, text, level, font_name, font_size, bold, italic, border_bottom
add_page_break 插入分页符 filename
format_text 格式化段落内文本(加粗/斜体/下划线/颜色/字号/字体) filename, paragraph_index, start_pos, end_pos, bold, italic, underline, color, font_size, font_name
delete_paragraph 删除段落 filename, paragraph_index

4. 跟踪更改(5个)

工具 说明 关键参数
track_insert 插入文本并标记为修订 filename, after_text, insert_text, author
track_delete 标记文本为删除(修订) filename, text, author
track_replace 替换文本并标记修订(旧文本删除+新文本插入) filename, old_text, new_text, author
accept_tracked_changes 接受跟踪更改(可按作者/ID过滤) filename, author, change_ids
reject_tracked_changes 拒绝跟踪更改(可按作者/ID过滤) filename, author, change_ids
list_tracked_changes 列出所有跟踪更改(作者/日期/文本/段落上下文) filename

5. 批注(5个)

工具 说明 关键参数
add_comment 添加批注(锚定到指定文本) filename, target_text, comment_text, author, initials
get_all_comments 提取所有批注 filename
get_comments_by_author 按作者提取批注 filename, author
get_comments_for_paragraph 按段落提取批注 filename, paragraph_index

6. 脚注与尾注(10个)

工具 说明 关键参数
add_footnote_to_document 添加脚注到指定段落 filename, paragraph_index, footnote_text
add_footnote_enhanced 增强版脚注(保证上标格式) filename, paragraph_index, footnote_text, output_filename
add_footnote_after_text 在指定文本后添加脚注 filename, search_text, footnote_text, output_filename
add_footnote_before_text 在指定文本前添加脚注 filename, search_text, footnote_text, output_filename
add_footnote_robust 健壮版脚注(验证+自动修复) filename, search_text, paragraph_index, footnote_text, validate_location, auto_repair
delete_footnote_from_document 删除脚注(按ID或文本定位) filename, footnote_id, search_text, output_filename
delete_footnote_robust 健壮版删除脚注(清理孤立内容) filename, footnote_id, search_text, clean_orphans
add_endnote_to_document 添加尾注到指定段落 filename, paragraph_index, endnote_text
customize_footnote_style 自定义脚注编号格式和字体 filename, numbering_format, start_number, font_name, font_size
validate_document_footnotes 验证所有脚注的完整性和合规性 filename

7. 表格操作(14个)

工具 说明 关键参数
add_table 添加表格 filename, rows, cols, data
format_table 格式化表格(边框/底纹/表头) filename, table_index, has_header_row, border_style, shading
format_table_cell_text 格式化单元格文本(加粗/斜体/下划线/颜色/字号/字体) filename, table_index, row_index, col_index, text_content, bold, italic, underline, color, font_size, font_name
merge_table_cells 合并矩形区域单元格 filename, table_index, start_row, start_col, end_row, end_col
merge_table_cells_horizontal 水平合并单元格 filename, table_index, row_index, start_col, end_col
merge_table_cells_vertical 垂直合并单元格 filename, table_index, col_index, start_row, end_row
set_table_alignment_all 设置全表文字对齐 filename, table_index, horizontal, vertical
set_table_cell_alignment 设置单元格文字对齐 filename, table_index, row_index, col_index, horizontal, vertical
set_table_cell_padding 设置单元格内边距 filename, table_index, row_index, col_index, top, bottom, left, right, unit
set_table_cell_shading 设置单元格底纹 filename, table_index, row_index, col_index, fill_color, pattern
set_table_column_width 设置单列宽度 filename, table_index, col_index, width, width_type
set_table_column_widths 设置多列宽度 filename, table_index, widths, width_type
set_table_width 设置表格总宽度 filename, table_index, width, width_type
auto_fit_table_columns 自动适应列宽 filename, table_index
apply_table_alternating_rows 隔行变色 filename, table_index, color1, color2
highlight_table_header 表头高亮 filename, table_index, header_color, text_color

8. 段落间距(1个)

工具 说明 关键参数
set_paragraph_spacing 设置段落间距/行距 filename, paragraph_index, start_paragraph, end_paragraph, space_before_pt, space_after_pt, line_spacing, line_spacing_rule

9. 页面布局(2个)

工具 说明 关键参数
set_page_layout 页面布局(方向/尺寸/页边距) filename, section_index, orientation, page_width_inches, page_height_inches, margin_top_inches, margin_bottom_inches, margin_left_inches, margin_right_inches
add_section_break 插入分节符 filename, break_type

10. 页眉页脚与页码(3个)

工具 说明 关键参数
add_header_footer 添加页眉/页脚 filename, section_index, header_text, footer_text, header_alignment, footer_alignment
add_page_numbers 添加页码 filename, section_index, position, alignment, prefix, suffix, include_total
add_watermark 添加水印 filename, text, font_size, font_color, rotation, section_index

11. 目录与书签(3个)

工具 说明 关键参数
add_table_of_contents 添加目录 filename, title, max_level
add_bookmark 添加书签 filename, paragraph_index, bookmark_name
add_picture 添加图片 filename, image_path, width

12. 样式与超链接(3个)

工具 说明 关键参数
create_custom_style 创建自定义样式 filename, style_name, bold, italic, font_size, font_name, color, base_style
manage_hyperlinks 添加/管理超链接 filename, action, text, url, paragraph_index

13. 锚点段落插入(3个)

工具 说明 关键参数
insert_header_near_text 在目标段落附近插入标题 filename, target_text, header_title, position, header_style, target_paragraph_index
insert_line_or_paragraph_near_text 在目标段落附近插入段落 filename, target_text, line_text, position, line_style, target_paragraph_index
insert_numbered_list_near_text 在目标段落附近插入编号列表 filename, target_text, list_items, position, target_paragraph_index, bullet_type

14. 块替换(2个)

工具 说明 关键参数
replace_block_between_manual_anchors 替换两个锚点之间的内容 filename, start_anchor_text, new_paragraphs, end_anchor_text, new_paragraph_style
replace_paragraph_block_below_header 替换标题下的段落块 filename, header_text, new_paragraphs

15. 文档保护(4个)

工具 说明 关键参数
protect_document 添加密码保护 filename, password
unprotect_document 移除密码保护 filename, password
add_digital_signature 添加数字签名 filename, signer_name, reason
verify_document 验证保护和/或签名 filename, password
add_restricted_editing 限制编辑(仅允许指定区域) filename, password, editable_sections

三、实时模式段落级能力详解

这是之前文章中的知识盲区,补全。

实时模式虽然没有独立的 word_live_get_paragraph_text 工具,但段落级能力分布在多个工具中:

能力 工具 段落定位方式
读取段落文本 word_live_get_page_text 返回每段带 index(全文段落索引)
读取段落格式 word_live_get_paragraph_format start_paragraph + end_paragraph(1-indexed)
插入段落 word_live_insert_paragraphs target_paragraph_index(0-based)或 target_text
格式化段落 word_live_format_text start_paragraph + end_paragraph(1-indexed)
设置间距 word_live_set_paragraph_spacing start_paragraph + end_paragraph(1-indexed)
应用列表 word_live_apply_list start_paragraph + end_paragraph(1-indexed)
添加书签 word_live_add_bookmark paragraph_index(1-indexed)
添加批注 word_live_add_comment paragraph_index(1-indexed)
插入图片 word_live_insert_image paragraph_index(1-indexed)
插入公式 word_live_insert_equation paragraph_index(1-indexed)
插入交叉引用 word_live_insert_cross_reference paragraph_index(1-indexed)

注意索引基准不统一

  • word_live_get_text / word_live_insert_paragraphs0-based
  • word_live_get_paragraph_format / word_live_format_text / word_live_set_paragraph_spacing1-based
  • word_live_get_page_text 返回的 index 字段 → 与 word_live_get_text 一致(0-based)

⚠️ 这是实际使用中最容易踩的坑:不同工具的段落索引基准不同,混用时会差1。建议统一从 word_live_get_page_textword_live_get_text 的返回值中读取 index,再根据目标工具的基准做偏移。


文章作者: 摸鱼
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 摸鱼 !
  目录