返回市场
办公-Word-MCP-服务器

办公-Word-MCP-服务器

作者:GongRzhe998 星标更新:2025-10-17

项目介绍

Office-Word-MCP-Server

smithery 徽章

一个用于创建、读取和操作Microsoft Word文档的模型上下文协议(MCP)服务器。该服务器使AI助手能够通过标准化接口与Word文档进行交互,提供丰富的文档编辑功能。

<a href="https://glama.ai/mcp/servers/@GongRzhe/Office-Word-MCP-Server"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=2353607300,3830135840&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Office Word Server MCP 服务器" /> </a>

概述

Office-Word-MCP-Server 实现了 模型上下文协议,将Word文档操作暴露为工具和资源。它充当AI助手与Microsoft Word文档之间的桥梁,允许进行文档创建、内容添加、格式化和分析。

服务器采用模块化架构,将核心功能、工具和实用程序分离,使其易于维护并便于未来扩展。

示例

提示

image

输出

image

功能

文档管理

  • 创建带有元数据的新Word文档
  • 提取文本并分析文档结构
  • 查看文档属性和统计信息
  • 列出目录中的可用文档
  • 复制现有文档
  • 合并多个文档到单个文档
  • 将Word文档转换为PDF格式

内容创建

  • 添加不同级别的标题和直接格式化(字体、大小、粗体、斜体、边框)
  • 插入可选样式的段落和直接格式化(字体、大小、粗体、斜体、颜色)
  • 创建带有自定义数据的表格
  • 添加具有比例缩放的图片
  • 插入分页符
  • 插入带有正确XML格式的项目符号和编号列表
  • 在文档中添加脚注和尾注
  • 将脚注转换为尾注
  • 自定义脚注和尾注样式
  • 为技术文档创建专业表格布局
  • 设计用于教学材料的标注框和格式化内容
  • 构建用于商业报告的一致样式的结构化数据表
  • 根据现有文本或段落索引插入内容

丰富文本格式化

  • 格式化特定文本部分(粗体、斜体、下划线)
  • 更改文本颜色和字体属性
  • 应用自定义样式到文本元素
  • 在整个文档中搜索和替换文本
  • 表格内单元格文本格式化
  • 多种格式组合以增强视觉效果
  • 字体自定义,包括字体族和大小控制
  • 内容创建时的直接格式化(段落和标题)
  • 通过结合内容创建和格式化减少函数调用
  • 添加节标题边框以实现视觉分割

表格格式化

  • 使用边框和样式格式化表格
  • 创建具有独特格式化的表头行
  • 应用单元格填充和自定义边框
  • 结构化表格以提高可读性
  • 单独单元格背景填充,支持颜色
  • 交替行颜色以提高可读性
  • 带有自定义颜色的突出显示表头行
  • 单元格文本格式化,包括粗体、斜体、下划线、颜色、字体大小和字体族
  • 全面的颜色支持,包括命名颜色和十六进制颜色代码
  • 单元格填充管理,独立控制四边
  • 单元格对齐(水平和垂直定位)
  • 单元格合并(横向、纵向和矩形区域)
  • 列宽管理,支持多种单位(点数、百分比、自动调整)
  • 动态列宽自动调整能力
  • 支持带有图标单元格和格式化内容的专业标注表格

高级文档操作

  • 删除段落
  • 根据特定文本或段落索引插入内容
  • 插入带有正确XML编号结构的项目符号和编号列表
  • 在目标位置之前或之后插入标题和段落
  • 创建自定义文档样式
  • 在整个文档中应用一致的格式
  • 对特定文本范围进行详细控制的格式化
  • 灵活的填充单位,支持点数和基于百分比的测量
  • 清晰易读的表格呈现,包括适当的对齐和间距

文档保护

  • 为文档添加密码保护
  • 实现受限编辑,包括可编辑部分
  • 为文档添加数字签名
  • 验证文档的真实性和完整性

注释提取

  • 从文档中提取所有注释
  • 按作者过滤注释
  • 获取特定段落的注释
  • 访问注释元数据(作者、日期、文本)

安装

通过Smithery安装

要通过 Smithery 自动安装Office Word文档服务器:

npx -y @smithery/cli install @GongRzhe/Office-Word-MCP-Server --client claude

先决条件

  • Python 3.8 或更高版本
  • pip 包管理器

基本安装

# 克隆仓库
git clone https://github.com/GongRzhe/Office-Word-MCP-Server.git
cd Office-Word-MCP-Server

# 安装依赖
pip install -r requirements.txt

使用设置脚本

或者,您可以使用提供的设置脚本,该脚本处理以下操作:

  • 检查先决条件
  • 设置虚拟环境
  • 安装依赖
  • 生成MCP配置
python setup_mcp.py

与桌面版Claude的使用

配置

方法1:本地安装后

  1. 安装后,在您的桌面版Claude配置文件中添加服务器:
{
  "mcpServers": {
    "word-document-server": {
      "command": "python",
      "args": ["/path/to/word_mcp_server.py"]
    }
  }
}

方法2:无需安装(使用uvx)

  1. 您也可以配置桌面版Claude使用服务器而无需本地安装,通过使用uvx包管理器:
{
  "mcpServers": {
    "word-document-server": {
      "command": "uvx",
      "args": ["--from", "office-word-mcp-server", "word_mcp_server"]
    }
  }
}
  1. 配置文件位置:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. 重启桌面版Claude以加载配置。

示例操作

配置完成后,您可以请求Claude执行如下操作:

  • "创建名为'report.docx'的新文档,并添加标题页"
  • "在我的文档中添加一个标题和三个段落"
  • "在文档顶部添加我的名字,字体为Helvetica 36pt 粗体"
  • "在'Summary'标题下添加一个底部边框的Helvetica 14pt 粗体节标题"
  • "在Times New Roman 14pt 斜体蓝色文本中添加一个段落"
  • "在包含'Introduction'的段落后插入一个项目符号列表"
  • "插入一个编号列表,项目为:'第一步','第二步','第三步'"
  • "在'Summary'标题下添加项目符号"
  • "插入一个包含销售数据的4x4表格"
  • "将第2段中的'重要'一词格式化为红色粗体"
  • "搜索并替换所有'旧术语'为'新术语'"
  • "为节标题创建自定义样式"
  • "对文档中的表格应用格式化"
  • "从我的文档中提取所有注释"
  • "显示John Doe的所有注释"
  • "获取第3段的注释"
  • "将表格单元格(1,2)中的文本设置为14pt 蓝色粗体"
  • "为标题单元格的所有四边增加10点填充"
  • "创建一个带有蓝色勾号图标和白色文本的标注表格"
  • "将第一列宽度设置为50点,并自动调整其余列"
  • "应用交替行颜色以提高表格可读性"

API参考

文档创建和属性

create_document(filename, title=None, author=None)
get_document_info(filename)
get_document_text(filename)
get_document_outline(filename)
list_available_documents(directory=".")
copy_document(source_filename, destination_filename=None)
convert_to_pdf(filename, output_filename=None)

内容添加

add_heading(filename, text, level=1, font_name=None, font_size=None,
            bold=None, italic=None, border_bottom=False)
add_paragraph(filename, text, style=None, font_name=None, font_size=None,
              bold=None, italic=None, color=None)
add_table(filename, rows, cols, data=None)
add_picture(filename, image_path, width=None)
add_page_break(filename)

高级内容操作

# 根据现有文本或段落索引插入内容
insert_header_near_text(filename, target_text=None, header_title=None,
                       position='after', header_style='Heading 1',
                       target_paragraph_index=None)

insert_line_or_paragraph_near_text(filename, target_text=None, line_text=None,
                                   position='after', line_style=None,
                                   target_paragraph_index=None)

# 插入带有正确XML格式的项目符号或编号列表
insert_numbered_list_near_text(filename, target_text=None, list_items=None,
                              position='after', target_paragraph_index=None,
                              bullet_type='bullet')
# bullet_type 选项:
#   'bullet' - 创建带有项目符号(•)的项目符号列表
#   'number' - 创建编号列表(1, 2, 3, ...)

内容提取

get_document_text(filename)
get_paragraph_text_from_document(filename, paragraph_index)
find_text_in_document(filename, text_to_find, match_case=True, whole_word=False)

文本格式化

format_text(filename, paragraph_index, start_pos, end_pos, bold=None,
            italic=None, underline=None, color=None, font_size=None, font_name=None)
search_and_replace(filename, find_text, replace_text)
delete_paragraph(filename, paragraph_index)
create_custom_style(filename, style_name, bold=None, italic=None,
                    font_size=None, font_name=None, color=None, base_style=None)

表格格式化

format_table(filename, table_index, has_header_row=None,
             border_style=None, shading=None)
set_table_cell_shading(filename, table_index, row_index, col_index, 
                      fill_color, pattern="clear")
apply_table_alternating_rows(filename, table_index, 
                            color1="FFFFFF", color2="F2F2F2")
highlight_table_header(filename, table_index, 
                      header_color="4472C4", text_color="FFFFFF")

# 单元格合并工具
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_cell_alignment(filename, table_index, row_index, col_index,
                        horizontal="left", vertical="top")
set_table_alignment_all(filename, table_index, 
                       horizontal="left", vertical="top")

# 单元格文本格式化工具
format_table_cell_text(filename, table_index, row_index, col_index,
                      text_content=None, bold=None, italic=None, underline=None,
                      color=None, font_size=None, font_name=None)

# 单元格填充工具
set_table_cell_padding(filename, table_index, row_index, col_index,
                      top=None, bottom=None, left=None, right=None, unit="points")

# 列宽管理
set_table_column_width(filename, table_index, col_index, width, width_type="points")
set_table_column_widths(filename, table_index, widths, width_type="points")
set_table_width(filename, table_index, width, width_type="points")
auto_fit_table_columns(filename, table_index)

注释提取

get_all_comments(filename)
get_comments_by_author(filename, author)
get_comments_for_paragraph(filename, paragraph_index)

故障排除

常见问题

  1. 缺少样式

    • 某些文档可能缺乏标题和表格操作所需的样式
    • 服务器将尝试创建缺失的样式或使用直接格式化
    • 为了获得最佳结果,请使用带有标准Word样式的模板
  2. 权限问题

    • 确保服务器有权读写文档路径
    • 使用copy_document函数创建锁定文档的可编辑副本
    • 如果操作失败,请检查文件所有权和权限
  3. 图像插入问题

    • 使用绝对路径的图像文件
    • 验证图像格式兼容性(推荐JPEG、PNG)
    • 检查图像文件大小和权限
  4. 表格格式化问题

    • 单元格索引错误:确保行和列索引在表格范围内(基于0的索引)
    • 颜色格式问题:使用不带'#'前缀的十六进制颜色(例如,"FF0000"表示红色)或标准颜色名称
    • 填充单位混淆:明确指定“点数”或“百分比”作为单元格填充设置
    • 列宽冲突:自动调整可能会覆盖手动设置的列宽
    • 文本格式化持久性:在设置单元格内容后应用单元格文本格式化以获得最佳结果

调试

启用详细日志记录,设置环境变量:

export MCP_DEBUG=1  # Linux/macOS
set MCP_DEBUG=1     # Windows

贡献

欢迎贡献!请随时提交Pull Request。

  1. 分叉仓库
  2. 创建您的功能分支(git checkout -b feature/amazing-feature
  3. 提交更改(git commit -m '添加一些精彩的功能'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开Pull Request

许可证

此项目根据MIT许可证发布 - 详情请参阅LICENSE文件。

致谢


注意:此服务器与系统上的文档文件进行交互。在Claude桌面版或其他MCP客户端中确认请求的操作前,请始终验证其适当性。