Office MCP Server
AI-Powered Office Automation - 基于 MCP 协议的 Office 文档智能处理服务
📋 项目简介
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-docx、openpyxl、python-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)实现 |
已完整支持的核心功能 ✅
尽管存在上述限制,本项目已完整实现以下功能,足以满足绝大多数办公自动化场景:
📝 Excel 核心功能(点击展开)
- ✅ 工作簿与工作表管理:创建、打开、保存、复制、保护
- ✅ 数据操作:单元格读写、批量数据处理、数据清除
- ✅ 公式与函数:100+ 常用函数(SUM、VLOOKUP、IF 等)
- ✅ 数据格式化:字体、颜色、对齐、边框、条件格式
- ✅ 数据排序与筛选:多列排序、按颜色排序、自动筛选
- ✅ 图表创建:柱状图、折线图、饼图、散点图、组合图、趋势线
- ✅ 行列操作:插入、删除、隐藏、调整大小、复制、移动
- ✅ 数据导入导出:CSV、JSON、PDF、HTML 格式互转
- ✅ 打印设置:页面设置、页边距、打印区域、分页符
- ✅ 数据分析:描述性统计、回归分析、方差分析、t检验、趋势预测
- ✅ 协作功能:批注添加、查看、删除
- ✅ 安全功能:工作簿加密、单元格锁定、数据脱敏
- ✅ 批量处理:批量文件处理、工作簿合并、报表自动化
📄 Word 核心功能(点击展开)
- ✅ 文档基础操作:创建、打开、保存、插入文本、添加标题、分页符
- ✅ 文本编辑与格式化:字体设置、字符样式、段落格式、列表格式、正则表达式查找替换(新增)
- ✅ 特殊字符:插入 40+ 种特殊字符(版权、商标、数学符号、箭头、货币符号等)(新增)
- ✅ 样式与主题:应用内置样式、创建自定义段落样式、列出所有样式(新增)
- ✅ 表格操作:创建表格、填充数据、读取数据、插入/删除行列、合并单元格、格式化、表格排序、数据导入(新增)
- ✅ 图片与多媒体:从文件/URL 插入图片、完整的大小和对齐控制(新增)
- ✅ 页眉页脚与页码:添加页眉页脚、插入页码、首页不同、奇偶页不同(新增)、插入日期时间域(新增)
- ✅ 目录与引用:生成目录
- ✅ 书签与超链接:添加/删除书签、添加/编辑/删除超链接、批量更新超链接(新增)
- ✅ 文档元数据:获取和设置文档属性(作者、标题、主题、关键词等)(新增)
- ✅ 内容提取:提取文本、段落、表格数据、图片信息、超链接、文档统计
- ✅ 导出功能:导出为 PDF、HTML、TXT、Markdown、RTF
- ✅ 批量操作:批量替换文本、批量应用样式、批量转换格式(新增)、批量添加页眉页脚(新增)、批量插入内容(新增)
- ✅ 高级功能:邮件合并、文档合并、文档拆分、多级列表(新增)
🎨 PowerPoint 核心功能(点击展开)
- ✅ 演示文稿管理:创建、打开、保存、获取信息
- ✅ 幻灯片操作:添加、删除、移动、复制、布局设置
- ✅ 文本处理:文本框插入、字符格式、段落格式、项目符号
- ✅ 图片操作:图片插入、大小调整、位置设置
- ✅ 表格功能:表格创建、数据填充、单元格合并、格式化
- ✅ 形状绘制:矩形、椭圆、三角形、箭头、圆角矩形
- ✅ 图表创建:柱状图、折线图、饼图、条形图、面积图
- ✅ 样式设置:主题应用、背景设置、过渡效果
- ✅ 演讲者备注:添加、获取、编辑备注
- ✅ 超链接:网页链接、幻灯片链接、文件链接、邮箱链接
- ✅ 批量操作:批量设置过渡、批量添加页脚
- ✅ 内容提取:提取文本、标题、备注、图片信息、超链接(新增)
- ✅ 导出功能:导出为 PDF(需 PowerPoint 应用)、HTML
💡 使用建议
Excel 使用建议
- 日常办公自动化:本项目完全满足需求,无需担心功能限制
- 数据分析场景:已提供丰富的统计分析工具,可替代 Excel 的大部分分析功能
- 复杂 VBA 宏:建议改用 Python 脚本实现,更易维护和跨平台
- 企业级数据建模:推荐使用专业 BI 工具(如 Power BI、Tableau)或 Python 数据分析栈
PowerPoint 使用建议
- 演示文稿创建与编辑:核心功能完整,满足日常演示需求
- 复杂动画效果:建议在 PowerPoint 中手动添加,或使用基础动画效果
- 多媒体内容:音频/视频需在 PowerPoint 中手动添加
- SmartArt 图形:可使用形状组合实现类似效果
- 批量处理:利用 Python 脚本实现批量演示文稿生成和处理
- 内容分析:使用新增的内容提取功能分析演示文稿结构
Word 使用建议
- 日常文档处理:核心功能完整,满足绝大多数文档创建和编辑需求
- 文本编辑增强:使用正则表达式查找替换功能处理复杂文本模式
- 样式管理:创建自定义样式实现文档格式统一,提高效率
- 批量处理:利用批量操作功能处理多个文档,节省时间
- 内容提取:使用内容提取功能分析文档结构和数据
- 脚注与交叉引用:这些功能受限,建议在 Word 中手动添加
- 文档保护:使用 PDF 格式或在 Word 中手动设置保护
- 复杂域代码:基础日期时间域已支持,复杂域建议在 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+ | ✅ 支持读写 |
| 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 编辑器
- 打开 MCP 设置:
Ctrl+Shift+P→View: Open MCP Settings - 编辑配置文件(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
📚 文档
- 技术方案设计 - 完整的技术架构和实现方案
- 开发计划 - 详细的开发路线图
- 服务集成指南 - 客户端集成指南
- Word 功能说明 - Word 功能详细说明
- Excel 功能说明 - Excel 功能详细说明
- PowerPoint 功能说明 - PowerPoint 功能详细说明
🤝 贡献
欢迎贡献代码、报告问题或提出建议!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件
🙏 致谢
- Anthropic - MCP 协议开发者
- GongRzhe/Office-Word-MCP-Server - 参考实现
- python-docx - Word 文档处理库
- openpyxl - Excel 表格处理库
- python-pptx - PowerPoint 演示处理库
📞 联系方式
- 项目主页: https://github.com/your-username/office-mcp-server
- 问题反馈: https://github.com/your-username/office-mcp-server/issues
- 讨论区: https://github.com/your-username/office-mcp-server/discussions
⭐ 如果这个项目对你有帮助,请给个 Star!