Skip to main content
Glama

Office MCP Server

by walkingzzzy

Office MCP Server

AI-Powered Office Automation - 基于 MCP 协议的 Office 文档智能处理服务

Python Version License MCP Protocol

📋 项目简介

Office MCP Server 是一个基于 Model Context Protocol (MCP) 的 Office 文档自动化服务,支持通过自然语言指令操作 Word、Excel、PowerPoint 文档。

核心功能

  • Word 文档处理: 创建、编辑、格式化 Word 文档

  • Excel 表格处理: 数据操作、公式计算、图表生成

  • PowerPoint 演示: 幻灯片创建、内容排版、样式设置

  • 读写支持: 支持读取和写入现有文档(Python 方案优势)

  • PDF 转换: 原生支持 PDF 生成和转换

  • AI 集成: 与 Claude、Cursor 等 AI 客户端无缝集成

参考项目

本项目参考了 GongRzhe/Office-Word-MCP-Server(960+ stars)的成功实现,采用 Python + FastMCP 技术栈。


⚠️ 功能限制说明

本项目基于 Python 生态的 Office 处理库(python-docxopenpyxlpython-pptx)实现,已覆盖 85%+ 的日常办公自动化需求。但由于技术栈限制,部分 Microsoft Office 专有功能暂不支持。

Excel 功能限制

功能类别

限制说明

技术原因

替代方案

🔧 VBA 宏与自动化

不支持 VBA 宏的执行、录制和编辑

openpyxl

库不支持 VBA 宏引擎

使用 Python 脚本实现自动化逻辑

📊 数据透视表

基础功能可用,但跨平台支持受限

openpyxl

对数据透视表支持有限,完整功能需 Windows +

pywin32

已实现基础创建和刷新功能,复杂场景建议使用 Excel 应用

🔍 Power Query

不支持数据获取和转换功能

Power Query 是 Excel 专有功能,无开源实现

使用 Python 的

pandas

进行数据处理

📈 Power Pivot

不支持数据建模、DAX 公式、KPI

Power Pivot 是 Excel 专有功能

使用 Python 数据分析库(如

pandas

numpy

👥 共享工作簿

不支持多用户协作编辑和更改历史

openpyxl

不支持共享工作簿协议

使用版本控制系统(如 Git)管理文件版本

🎯 高级假设分析

不支持数据表和方案管理器

这些是 Excel 内置的交互式工具

已支持单变量求解(目标搜索),其他场景可用 Python 实现

PowerPoint 功能限制

功能类别

限制说明

技术原因

替代方案

🎬 动画效果

动画支持非常有限,仅提供基础标记

python-pptx

对动画的 API 支持不完整,完整功能需 Windows +

win32com

在 PowerPoint 中手动添加复杂动画,或使用基础动画效果

🎨 SmartArt 图形

不支持 SmartArt 的创建和编辑

SmartArt 是 Microsoft Office 专有功能,

python-pptx

不支持

使用形状组合模拟 SmartArt 效果

🎵 音频与视频

不支持音频和视频文件嵌入

python-pptx

库不支持多媒体嵌入

在 PowerPoint 中手动添加音频/视频

📐 母版编辑

不支持幻灯片母版的完整编辑

python-pptx

对母版的支持非常有限

使用预设模板或在 PowerPoint 中编辑母版

📋 高级表格操作

不支持删除行列、拆分单元格、调整行高列宽

python-pptx

表格操作 API 有限

已支持基础表格创建、数据填充、合并单元格

📄 PDF/视频导出

PDF 导出需要 PowerPoint 应用,不支持视频导出

需要 Microsoft PowerPoint +

comtypes

库(仅 Windows)

使用 PowerPoint 应用手动导出,或使用在线转换工具

📌 页眉页脚

通过文本框模拟,非原生页眉页脚

python-pptx

对页眉页脚支持有限

已实现文本框模拟方案,基本满足需求

🏢 企业级功能

不支持品牌模板管理、批量生成、演示录制等

这些是高级业务功能,需要额外开发

使用 Python 脚本实现批量处理逻辑

Word 功能限制

功能类别

限制说明

技术原因

替代方案

📝 脚注与尾注

不支持脚注和尾注的创建和编辑

python-docx

库不支持脚注/尾注 API

使用文本框或段落备注替代

🔗 交叉引用

不支持交叉引用的创建和更新

python-docx

对域代码支持有限

使用超链接或手动引用

📋 修订跟踪

不支持修订跟踪和批注的完整功能

python-docx

对修订跟踪支持非常有限

使用版本控制系统(如 Git)管理文档版本

🔒 文档保护

不支持文档保护和权限控制

python-docx

不支持文档保护 API

使用 PDF 格式或手动在 Word 中设置保护

📐 域代码

对域代码支持非常有限,仅支持基础日期时间域

python-docx

的域代码 API 不完整

已支持基础日期时间域,复杂域建议在 Word 中手动添加

🔧 VBA 宏

不支持 VBA 宏的执行、录制和编辑

python-docx

不支持 VBA 宏引擎

使用 Python 脚本实现自动化逻辑

🎨 SmartArt

不支持 SmartArt 图形的创建和编辑

SmartArt 是 Microsoft Office 专有功能

使用表格或形状组合实现类似效果

🖼️ 图片高级编辑

不支持图片裁剪、旋转、艺术效果

python-docx

图片操作 API 有限

已支持图片插入和大小调整,高级编辑建议使用图像处理库或 Word

📄 多栏布局

不支持多栏布局设置

python-docx

对分栏支持有限

使用表格模拟多栏效果

📑 分节符

对分节符支持有限

python-docx

分节符 API 不完整

已支持基础分页符,复杂分节建议在 Word 中手动设置

📊 长文档管理

不支持大纲视图、主控文档、子文档

这些是 Word 的高级文档管理功能

使用 Python 脚本实现文档拆分和合并

📇 索引与目录

目录生成支持有限,不支持索引

python-docx

对目录和索引支持不完整

已支持基础目录生成,索引建议在 Word 中手动创建

需要额外系统支持的功能

功能类别

限制说明

技术原因

替代方案

🏢 企业级功能

不支持品牌模板管理、批量文档生成、工作流集成

这些是高级业务功能,需要额外开发

使用 Python 脚本实现批量处理逻辑

☁️ 在线协作

不支持 OneDrive、SharePoint 集成

需要 Microsoft 365 API 集成

使用本地文件系统或第三方云存储

🌐 多语言支持

不支持自动翻译和多语言校对

需要集成翻译 API

使用第三方翻译服务

📊 文档分析

不支持可读性分析、关键词提取等高级分析

需要 NLP 库支持

使用 Python NLP 库(如 spaCy、NLTK)实现

已完整支持的核心功能 ✅

尽管存在上述限制,本项目已完整实现以下功能,足以满足绝大多数办公自动化场景:

  • 工作簿与工作表管理:创建、打开、保存、复制、保护

  • 数据操作:单元格读写、批量数据处理、数据清除

  • 公式与函数:100+ 常用函数(SUM、VLOOKUP、IF 等)

  • 数据格式化:字体、颜色、对齐、边框、条件格式

  • 数据排序与筛选:多列排序、按颜色排序、自动筛选

  • 图表创建:柱状图、折线图、饼图、散点图、组合图、趋势线

  • 行列操作:插入、删除、隐藏、调整大小、复制、移动

  • 数据导入导出:CSV、JSON、PDF、HTML 格式互转

  • 打印设置:页面设置、页边距、打印区域、分页符

  • 数据分析:描述性统计、回归分析、方差分析、t检验、趋势预测

  • 协作功能:批注添加、查看、删除

  • 安全功能:工作簿加密、单元格锁定、数据脱敏

  • 批量处理:批量文件处理、工作簿合并、报表自动化

  • 文档基础操作:创建、打开、保存、插入文本、添加标题、分页符

  • 文本编辑与格式化:字体设置、字符样式、段落格式、列表格式、正则表达式查找替换(新增)

  • 特殊字符:插入 40+ 种特殊字符(版权、商标、数学符号、箭头、货币符号等)(新增)

  • 样式与主题:应用内置样式、创建自定义段落样式、列出所有样式(新增)

  • 表格操作:创建表格、填充数据、读取数据、插入/删除行列、合并单元格、格式化、表格排序、数据导入(新增)

  • 图片与多媒体:从文件/URL 插入图片、完整的大小和对齐控制(新增)

  • 页眉页脚与页码:添加页眉页脚、插入页码、首页不同、奇偶页不同(新增)、插入日期时间域(新增)

  • 目录与引用:生成目录

  • 书签与超链接:添加/删除书签、添加/编辑/删除超链接、批量更新超链接(新增)

  • 文档元数据:获取和设置文档属性(作者、标题、主题、关键词等)(新增)

  • 内容提取:提取文本、段落、表格数据、图片信息、超链接、文档统计

  • 导出功能:导出为 PDF、HTML、TXT、Markdown、RTF

  • 批量操作:批量替换文本、批量应用样式、批量转换格式(新增)、批量添加页眉页脚(新增)、批量插入内容(新增)

  • 高级功能:邮件合并、文档合并、文档拆分、多级列表(新增)

  • 演示文稿管理:创建、打开、保存、获取信息

  • 幻灯片操作:添加、删除、移动、复制、布局设置

  • 文本处理:文本框插入、字符格式、段落格式、项目符号

  • 图片操作:图片插入、大小调整、位置设置

  • 表格功能:表格创建、数据填充、单元格合并、格式化

  • 形状绘制:矩形、椭圆、三角形、箭头、圆角矩形

  • 图表创建:柱状图、折线图、饼图、条形图、面积图

  • 样式设置:主题应用、背景设置、过渡效果

  • 演讲者备注:添加、获取、编辑备注

  • 超链接:网页链接、幻灯片链接、文件链接、邮箱链接

  • 批量操作:批量设置过渡、批量添加页脚

  • 内容提取:提取文本、标题、备注、图片信息、超链接(新增)

  • 导出功能:导出为 PDF(需 PowerPoint 应用)、HTML

💡 使用建议

Excel 使用建议

  1. 日常办公自动化:本项目完全满足需求,无需担心功能限制

  2. 数据分析场景:已提供丰富的统计分析工具,可替代 Excel 的大部分分析功能

  3. 复杂 VBA 宏:建议改用 Python 脚本实现,更易维护和跨平台

  4. 企业级数据建模:推荐使用专业 BI 工具(如 Power BI、Tableau)或 Python 数据分析栈

PowerPoint 使用建议

  1. 演示文稿创建与编辑:核心功能完整,满足日常演示需求

  2. 复杂动画效果:建议在 PowerPoint 中手动添加,或使用基础动画效果

  3. 多媒体内容:音频/视频需在 PowerPoint 中手动添加

  4. SmartArt 图形:可使用形状组合实现类似效果

  5. 批量处理:利用 Python 脚本实现批量演示文稿生成和处理

  6. 内容分析:使用新增的内容提取功能分析演示文稿结构

Word 使用建议

  1. 日常文档处理:核心功能完整,满足绝大多数文档创建和编辑需求

  2. 文本编辑增强:使用正则表达式查找替换功能处理复杂文本模式

  3. 样式管理:创建自定义样式实现文档格式统一,提高效率

  4. 批量处理:利用批量操作功能处理多个文档,节省时间

  5. 内容提取:使用内容提取功能分析文档结构和数据

  6. 脚注与交叉引用:这些功能受限,建议在 Word 中手动添加

  7. 文档保护:使用 PDF 格式或在 Word 中手动设置保护

  8. 复杂域代码:基础日期时间域已支持,复杂域建议在 Word 中手动添加

📊 功能覆盖率

Office 应用

功能类别

覆盖率

说明

📊 Excel

核心办公功能

95%+

工作簿、数据、格式、公式、图表等

📊 Excel

数据分析功能

90%+

统计分析、预测分析、数据可视化

📊 Excel

协作与安全

70%

批注、加密、权限控制(不含共享工作簿)

📊 Excel

高级专有功能

20%

VBA、Power Query、Power Pivot 等

📊 Excel

整体覆盖率

✅ 85%+

满足绝大多数办公自动化需求

🎨 PowerPoint

核心演示功能

90%+

幻灯片管理、文本、图片、表格、图表

🎨 PowerPoint

样式与设计

60%

主题、背景、过渡(动画支持有限)

🎨 PowerPoint

内容提取

100%

文本、标题、备注、图片、超链接提取

🎨 PowerPoint

高级专有功能

10%

SmartArt、音视频、母版、企业级功能

🎨 PowerPoint

整体覆盖率

✅ 60%+

满足日常演示文稿创建和编辑需求

📄 Word

核心文档功能

95%+

文档创建、编辑、格式化、表格、图片(新增功能)

📄 Word

文本编辑增强

90%+

正则表达式、特殊字符、多级列表(新增)

📄 Word

样式与格式

75%

内置样式、自定义样式、主题(部分支持)

📄 Word

内容提取

100%

文本、表格、图片、超链接、元数据提取

📄 Word

批量操作

85%+

批量转换、批量格式化、批量插入(新增)

📄 Word

高级专有功能

20%

脚注、交叉引用、修订跟踪、VBA 宏等

📄 Word

整体覆盖率

✅ 70%+

满足日常文档处理需求,新增 15+ 工具

🎯 项目整体

综合覆盖率

✅ 75%+

覆盖三大 Office 应用的核心功能


🚀 快速开始

前置要求

  • Python: 3.10 或更高版本(推荐 3.11+)

  • 操作系统: Windows 10/11, macOS 10.15+, 或 Linux

  • AI 客户端: Claude Desktop, Cursor, 或其他支持 MCP 的客户端

安装步骤

方式一:使用 pip(推荐)

# 克隆仓库 git clone https://github.com/your-username/office-mcp-server.git cd office-mcp-server # 创建虚拟环境 python -m venv venv # 激活虚拟环境 # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 运行服务器 python src/main.py

方式二:使用 uv(更快)

# 安装 uv pip install uv # 克隆仓库 git clone https://github.com/your-username/office-mcp-server.git cd office-mcp-server # 使用 uv 安装依赖 uv pip install -r requirements.txt # 运行服务器 python src/main.py

方式三:使用 uvx(无需安装)

# 直接运行(如果已发布到 PyPI) uvx office-mcp-server

🛠️ 技术栈

组件

技术

版本

说明

运行环境

Python

3.10+

推荐 3.11 或 3.12

MCP SDK

FastMCP

最新版

简化 MCP 开发

Word

python-docx

1.1.0+

✅ 支持读写

Excel

openpyxl

3.1.0+

✅ 支持读写

PowerPoint

python-pptx

0.6.23+

✅ 支持读写

PDF

reportlab

4.0+

PDF 生成

图像

Pillow

10.0+

图像处理


📦 项目结构

office-mcp-server/ ├── src/ │ ├── main.py # MCP 服务器主入口 │ ├── config.py # 配置管理 │ ├── handlers/ # 业务处理层 │ │ ├── word_handler.py # Word 文档处理 │ │ ├── excel_handler.py # Excel 表格处理 │ │ └── ppt_handler.py # PowerPoint 演示处理 │ ├── tools/ # MCP 工具定义层 │ │ ├── word_tools.py # Word MCP 工具 │ │ ├── excel_tools.py # Excel MCP 工具 │ │ └── ppt_tools.py # PPT MCP 工具 │ └── utils/ # 工具函数层 │ ├── file_manager.py # 文件管理 │ └── format_helper.py # 格式化辅助 ├── tests/ # 测试目录 ├── docs/ # 文档目录 ├── requirements.txt # 依赖列表 ├── pyproject.toml # 项目配置 └── README.md # 项目说明

⚙️ 客户端配置

Cursor 编辑器

  1. 打开 MCP 设置:Ctrl+Shift+PView: Open MCP Settings

  2. 编辑配置文件(Windows: %APPDATA%\Cursor\mcp.json

{ "mcpServers": { "office-suite": { "command": "python", "args": ["C:\\path\\to\\office-mcp-server\\src\\main.py"], "env": { "PYTHONPATH": "C:\\path\\to\\office-mcp-server" } } } }

Claude Desktop

编辑配置文件(Windows: %APPDATA%\Claude\claude_desktop_config.json

{ "mcpServers": { "office-suite": { "command": "python", "args": ["/path/to/office-mcp-server/src/main.py"] } } }

使用 uvx(推荐)

{ "mcpServers": { "office-suite": { "command": "uvx", "args": ["office-mcp-server"] } } }

💡 使用示例

示例 1: 创建 Word 文档

用户指令:

请创建一个名为 "项目报告.docx" 的 Word 文档,包含标题"2024年度项目总结"。

AI 自动调用:

create_word_document( filename="项目报告.docx", title="2024年度项目总结", content="本报告总结了2024年度的主要项目成果。" )

示例 2: 生成 Excel 报表

用户指令:

创建一个销售数据表格,包含产品名称和销售额,并生成柱状图。

AI 自动调用:

create_excel_workbook(filename="销售报表.xlsx") write_excel_data(filename="销售报表.xlsx", data=[...]) create_excel_chart(filename="销售报表.xlsx", chart_type="bar", ...)

示例 3: 制作 PowerPoint 演示

用户指令:

创建一个产品介绍的 PPT,包含标题页和功能列表页。

AI 自动调用:

create_presentation(filename="产品介绍.pptx", title="新产品发布") add_slide_with_content(filename="产品介绍.pptx", title="核心功能", content=[...])

🧪 测试

# 运行所有测试 pytest # 运行特定测试 pytest tests/test_word.py # 生成覆盖率报告 pytest --cov=src --cov-report=html

📚 文档


🤝 贡献

欢迎贡献代码、报告问题或提出建议!

  1. Fork 本仓库

  2. 创建特性分支 (git checkout -b feature/AmazingFeature)

  3. 提交更改 (git commit -m 'Add some AmazingFeature')

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

  5. 开启 Pull Request


📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件


🙏 致谢


📞 联系方式


⭐ 如果这个项目对你有帮助,请给个 Star!

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/walkingzzzy/office-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server