Office Word MCP服务器
](https://smithery.ai/server/@GongRzhe/Office-Word-MCP-Server)
用于创建、读取和操作Microsoft Word文档的模型上下文协议(MCP)服务器。该服务器使AI助手能够通过标准化的界面处理Word文档,提供丰富的文档编辑功能。

概述
Office Word MCP服务器实现 模型上下文协议 将Word文档操作作为工具和资源公开。它是AI助手和Microsoft Word文档之间的桥梁,允许文档创建、内容添加、格式化和分析。
该服务器采用模块化架构,将关注点分为核心功能、工具和实用程序,使其具有高度的可维护性和可扩展性,以适应未来的增强。
示例
提示
输出
特性
文档管理
- 使用元数据创建新的Word文档
- 提取文本并分析文档结构
- 查看文档属性和统计信息
- 列出目录中的可用文档
- 创建现有文档的副本
- 将多个文档合并为一个文档
- 将Word文档转换为PDF格式
内容创建
- 添加不同级别和直接格式的标题(字体、大小、粗体、斜体、边框)
- 插入具有可选样式和直接格式(字体、大小、粗体、斜体、颜色)的段落
- 使用自定义数据创建表
- 添加按比例缩放的图像
- 插入分页符
- 插入具有适当XML格式的项目符号和编号列表
- 在文档中添加脚注和尾注
- 将脚注转换为尾注
- 自定义脚注和尾注样式
- 为技术文档创建专业的表格布局
- 为教学材料设计标注框和格式化内容
- 为具有一致样式的业务报告构建结构化数据表
- 插入与现有文本或段落索引相关的内容
支援多文本格式编写
- 设置特定文本部分的格式(粗体、斜体、下划线)
- 更改文本颜色和字体属性
- 将自定义样式应用于文本元素
- 在文档中搜索和替换文本
- 表格中的单个单元格文本格式
- 多种格式组合,增强视觉吸引力
- 具有字体系列和大小控制的字体定制
- 内容创建过程中的直接格式化(段落和标题)
- 通过将内容创建与格式设置相结合来减少函数调用
- 添加节标题边框以进行视觉分隔
表格格式
- 设置带边框和样式的表格格式
- 创建具有不同格式的标题行
- 应用单元格着色和自定义边框
- 结构化表格以提高可读性
- 支持颜色的单个单元格背景着色
- 交替行颜色以提高可读性
- 使用自定义颜色增强标题行突出显示
- 单元格文本格式,包括粗体、斜体、下划线、颜色、字体大小和字体系列
- 具有命名颜色和十六进制颜色代码的全面颜色支持
- 单元填充管理,可独立控制所有方面
- 细胞排列(水平和垂直定位)
- 单元格合并(水平、垂直和矩形区域)
- 使用多个单位(点、百分比、自动调整)进行列宽管理
- 动态柱尺寸的自动调整功能
- 专业标注表支持图标单元格和样式化内容
高级文档操作
- 删除段落
- 插入与特定文本或段落索引相关的内容
- 插入具有适当XML编号结构的项目符号和编号列表
- 在目标位置之前或之后插入标题和段落
- 创建自定义文档样式
- 在整个文档中应用一致的格式
- 设置具有详细控制的特定文本范围的格式
- 灵活的填充单元,支持基于分数和百分比的测量
- 清晰易读的表格演示文稿,对齐和间距得当
文档保护
- 为文档添加密码保护
- 使用可编辑部分实现受限编辑
- 在文档中添加数字签名
- 验证文档的真实性和完整性
评论提取
- 从文档中提取所有注释
- 按作者筛选评论
- 获取特定段落的评论
- 访问评论元数据(作者、日期、文本)
安装
通过Smithery安装
通过以下方式自动安装适用于Claude Desktop的Office Word文档服务器 史密瑟里:
npx -y @smithery/cli install @GongRzhe/Office-Word-MCP-Server --client claude先决条件
- Python 3.8或更高版本
- pip包管理器
基本安装
# Clone the repository
git clone https://github.com/GongRzhe/Office-Word-MCP-Server.git
cd Office-Word-MCP-Server
# Install dependencies
pip install -r requirements.txt使用安装脚本
或者,您可以使用提供的安装脚本,该脚本处理:
- 检查先决条件
- 设置虚拟环境
- 安装依赖项
- 生成MCP配置
python setup_mcp.py使用Claude for Desktop
配置
方法1:本地安装后
- 安装后,将服务器添加到Claude for Desktop配置文件中:
{
"mcpServers": {
"word-document-server": {
"command": "python",
"args": ["/path/to/word_mcp_server.py"]
}
}
}方法2:无需安装(使用uvx)
- 您还可以使用uvx包管理器配置Claude for Desktop,使其在不进行本地安装的情况下使用服务器:
{
"mcpServers": {
"word-document-server": {
"command": "uvx",
"args": ["--from", "office-word-mcp-server", "word_mcp_server"]
}
}
}- 配置文件位置:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json
- 重新启动Claude for Desktop以加载配置。
示例操作
配置后,您可以要求Claude执行以下操作:
- “创建一个名为'report.docx'的带有标题页的新文档”
- “在我的文档中添加一个标题和三个段落”
- “在文档顶部用36磅黑体字添加我的名字”
- “添加Helvetica 14pt粗体带底部边框的“摘要”部分标题”
- “在Times New Roman 14pt中添加一段斜体蓝色文本”
- “在包含‘导言’的段落后插入项目符号列表”
- 插入一个包含以下项目的编号列表:“第一步”、“第二步”和“第三步”
- “在‘摘要’标题后添加要点”
- “插入一个包含销售数据的4x4表格”
- “将第2段中的‘重要’一词设置为粗体和红色”
- 搜索“旧术语”的所有实例并将其替换为“新术语”
- “为节标题创建自定义样式”
- “将格式应用于我文档中的表”
- “从我的文档中提取所有评论”
- “显示John Doe的所有评论”
- “获取第3段的评论”
- “使用14pt字体将表单元格(1,2)中的文本设置为粗体和蓝色”
- “在标题单元格的所有侧面添加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 content relative to existing text or paragraph index
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)
# Insert bulleted or numbered lists with proper XML formatting
insert_numbered_list_near_text(filename, target_text=None, list_items=None,
position='after', target_paragraph_index=None,
bullet_type='bullet')
# bullet_type options:
# 'bullet' - Creates bulleted list with bullets (•)
# 'number' - Creates numbered list (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")
# Cell merging tools
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)
# Cell alignment tools
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")
# Cell text formatting tools
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)
# Cell padding tools
set_table_cell_padding(filename, table_index, row_index, col_index,
top=None, bottom=None, left=None, right=None, unit="points")
# Column width management
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)故障排除
常见问题
- 缺少样式
- 某些文档可能缺少标题和表格操作所需的样式 - 服务器将尝试创建缺少的样式或使用直接格式 - 为了获得最佳效果,请使用具有标准Word样式的模板
- 权限问题
- 确保服务器具有读取/写入文档路径的权限 - 使用 copy_document 创建锁定文档的可编辑副本的功能 - 如果操作失败,请检查文件所有权和权限
- 图像插入问题
- 对图像文件使用绝对路径 - 验证图像格式兼容性(建议使用JPEG、PNG) - 检查图像文件大小和权限
- 表格格式问题
- 单元格索引错误:确保行和列索引在表边界内(基于0的索引) - 颜色格式问题:使用没有“#”前缀的十六进制颜色(例如,“FF0000”表示红色)或标准颜色名称 - 填充单元混乱:在设置单元格填充时明确指定“点”或“百分比” - 列宽冲突:自动调整可能会覆盖手动列宽设置 - 文本格式持久性:在设置单元格内容后应用单元格文本格式以获得最佳结果
调试
通过设置环境变量启用详细日志记录:
export MCP_DEBUG=1 # Linux/macOS
set MCP_DEBUG=1 # Windows贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
致谢
- 模型上下文协议 对于协议规范
- python docx 用于Word文档操作
- FastMCP 用于Python MCP实现
______________________________________________________________________
_注意:此服务器与您系统上的文档文件进行交互。在Claude中确认桌面或其他MCP客户端的操作之前,始终验证所请求的操作是否合适。_
