Skip to main content
Glama
theWDY

office-editor-mcp

by theWDY

Office Document Processing MCP Server

EN CN

MCP Server Python License

一个用于办公文档处理的 MCP(模型上下文协议)服务器,支持在 MCP 客户端中创建和编辑 Word、Excel 和 PowerPoint 文档,而无需离开 AI 助手环境。

概述

Office-Editor-MCP 实现了 Model Context Protocol 标准,将 Office 文档操作以工具和资源的形式暴露出来。它充当 AI 助手与 Microsoft Office 文档之间的桥梁,使您能够通过 AI 助手创建、编辑、格式化和分析各种 Office 文档。

Related MCP server: word-doc-mcp

功能特性

Word 文档操作

文档管理

  • 创建带有元数据(标题、作者等)的新 Word 文档

  • 提取文本内容并分析文档结构

  • 查看文档属性和统计信息

  • 列出目录中的可用文档

  • 创建文档副本

内容创建

  • 添加不同级别的标题

  • 插入可自定义样式的段落

  • 创建包含自定义数据的表格

  • 添加按比例缩放的图片

  • 插入分页符

文本格式化

  • 格式化特定文本部分(粗体、斜体、下划线)

  • 更改文本颜色和字体属性

  • 对文本元素应用自定义样式

  • 在整个文档中搜索并替换文本

Excel 操作

工作簿管理

  • 创建新的 Excel 工作簿

  • 打开现有的 Excel 文件

  • 添加/删除/重命名工作表

数据处理

  • 读写单元格内容

  • 插入/删除行和列

  • 排序和筛选数据

  • 应用公式和函数

PowerPoint 操作

演示文稿管理

  • 创建新的 PowerPoint 演示文稿

  • 添加/删除/重新排列幻灯片

  • 设置幻灯片主题和背景

内容编辑

  • 添加文本和图形元素

  • 插入表格和图表

  • 添加动画和切换效果

高级功能

  • OCR 识别(从图像中提取文本)

  • 文档比较(比较文档之间的差异)

  • 文档翻译

  • 文档加密和解密

  • 表格数据导入/导出(数据库交互)

安装指南

前提条件

  • Python 3.10 或更高版本

  • pip 包管理器

  • 仅当需要使用 Windows COM 功能(如 PDF 导出、动画、切换效果和旧版 Office 格式)时才需要 Microsoft Office

  • 使用 ocr_recognize_text 时需要 Tesseract OCR

基本安装

# Clone the repository
git clone https://github.com/theWDY/office-editor-mcp.git
cd office-editor-mcp

# Install dependencies
pip install -r requirements.txt

该仓库提供了四个独立的 MCP 服务器:word_server.py、excel_server.py、powerpoint_server.py 和 general_server.py。只需配置你需要的服务器。仓库中已包含的 .cursor/mcp.json 提供了一个完整的四服务器示例。

配置

在 Cursor 中配置

方法一:UI 配置

  1. 打开 Cursor

  2. 转到 设置 > 功能 > MCP

  3. 点击“+ 添加新的 MCP 服务器”

  4. 填写配置信息:

    • 名称:Office Assistant(可按偏好修改)

    • 类型:选择 stdio

    • 命令:输入运行服务器的完整路径,例如:

      python /path/to/office-editor-mcp/word_server.py

      注意:请替换为你的实际文件路径

方法二:JSON 配置文件(推荐)

  1. 在项目目录中创建 .cursor 文件夹(如果不存在)

  2. 在该文件夹中创建 mcp.json 文件,内容如下:

{
  "mcpServers": {
    "office-assistant": {
      "command": "python",
      "args": ["/path/to/office-editor-mcp/word_server.py"],
      "env": {"OFFICE_EDIT_PATH": "/path/to/output"}
    }
  }
}

在 Claude for Desktop 中配置

  1. 编辑 Claude 配置文件:

    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows:%APPDATA%\Claude\claude_desktop_config.json

  2. 添加以下配置:

{
  "mcpServers": {
    "office-document-server": {
      "command": "python",
      "args": [
        "/path/to/office-editor-mcp/word_server.py"
      ]
    }
  }
}
  1. 重启 Claude 以应用配置。

由 general_server.py 处理的所有路径必须位于 OFFICE_EDIT_PATH 内。除非显式配置了 OFFICE_ALLOW_DESTRUCTIVE=true,否则移动和删除操作将被禁用。

新建的加密文件使用带随机盐和 Scrypt 密码派生函数的版本化 Fernet 容器。现有的加密文件仍然可读,并且可以重新加密以进行升级。批量操作限制为每个请求 100 个文件和 16 个工作进程。

使用示例

配置完成后,你可以向 AI 助手发出如下命令:

Word 文档操作

  • “创建一个名为 'quarterly_report.docx' 的新文档,并包含标题页”

  • “向文档添加一个标题和三个段落”

  • “插入一个包含销售数据的 4x4 表格”

  • “将第 2 段中的单词 'important' 设置为粗体和红色”

  • “搜索并将所有 'old term' 替换为 'new term'”

Excel 操作

  • “创建一个名为 'financial_analysis.xlsx' 的新 Excel 工作簿”

  • “在单元格 A1 中插入 'Quarterly Sales' 作为标题”

  • “创建一个包含部门销售数据的表格并计算总和”

  • “为销售数据创建柱状图”

  • “按降序对 B 列中的数据进行排序”

PowerPoint 操作

  • “创建一个名为 'project_presentation.pptx' 的演示文稿”

  • “添加一个标题为 'Project Overview' 的新幻灯片”

  • “在第 2 张幻灯片中插入公司徽标”

  • “为标题添加飞入动画”

API 参考

Word 文档操作

# Document Creation and Properties
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)

# Content Addition
add_heading(filename, text, level=1)
add_paragraph(filename, text, style=None)
add_table(filename, rows, cols, data=None)
add_picture(filename, image_path, width=None)
add_page_break(filename)

# Text Formatting
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)

Excel 操作

# Workbook Operations
create_workbook(filename)
open_workbook(filename)
save_workbook(filename, new_filename=None)
add_worksheet(filename, sheet_name=None)
list_worksheets(filename)

# Cell Operations
read_cell(filename, sheet_name, cell_reference)
write_cell(filename, sheet_name, cell_reference, value)
format_cell(filename, sheet_name, cell_reference, **format_args)

PowerPoint 操作

# Presentation Operations
create_presentation(filename)
open_presentation(filename)
save_presentation(filename, new_filename=None)
add_slide(filename, layout=None)

故障排除

常见问题

  1. 缺少样式

    • 某些文档可能缺少标题和表格操作所需的样式

    • 服务器将尝试创建缺失的样式或使用直接格式化

    • 为获得最佳效果,请使用带有标准 Office 样式的模板

  2. 权限问题

    • 确保服务器具有对文档路径的读写权限

    • 使用 copy_document 函数创建锁定文档的可编辑副本

    • 如果操作失败,请检查文件所有者和权限

  3. 图片插入问题

    • 为图片文件使用绝对路径

    • 验证图片格式兼容性(推荐使用 JPEG、PNG)

    • 检查图片文件大小和权限

调试

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

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

实现进度

  • ✅ 构建 MCP 服务器基本框架

  • ✅ 与 AI 助手成功集成

  • ✅ 基本的 Word 文档操作

  • ✅ 基本的 Excel 工作簿操作

  • ✅ 基本的 PowerPoint 演示文稿操作

  • ✅ 高级功能增强

  • ✅ 性能优化

  • ✅ 跨平台兼容性测试

贡献

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

  1. Fork 该仓库

  2. 创建你的功能分支(git checkout -b feature/amazing-feature)

  3. 提交你的更改(git commit -m 'Add some amazing feature')

  4. 推送到分支(git push origin feature/amazing-feature)

  5. 打开一个 Pull Request

许可证

本项目采用 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。

致谢


注意:此服务器会与您系统上的文档文件进行交互。在 AI 助手或其他 MCP 客户端中确认操作之前,请始终核实所请求的操作是否合适。

Related MCP Connectors

Related MCP Servers