内容
# 微软办公软件MCP服务器
本仓库包含用于与微软办公软件应用程序交互的模型上下文协议(MCP)服务器,通过AI助手。目前支持的应用程序:
- PowerPoint:创建和操作演示文稿
- Excel:与工作簿和电子表格交互
两个服务器都使用`pywin32`进行COM自动化,允许直接与正在运行的Office应用程序交互。
## 先决条件
- Windows操作系统
- 已安装微软Office(PowerPoint和/或Excel)
- Python 3.7+
- `pywin32`包
## 安装
1. 克隆仓库:
```bash
git clone https://github.com/jenstangen1/mcp-pptx.git
cd mcp-pptx
```
2. 使用`uv`安装依赖项:
```bash
uv pip install pywin32
```
3. 以管理员权限运行`pywin32`安装后脚本:
```bash
python C:\path\to\your\env\Scripts\pywin32_postinstall.py -install
```
## 与Claude设置
要将这些MCP服务器与Claude集成,请在Claude桌面应用程序设置中添加以下配置:
```json
{
"mcpServers": {
"powerpoint_mcp_win32": {
"command": "uv",
"args": [
"run",
"mcp_powerpoint_server_win32.py"
],
"cwd": "C:\\path\\to\\your\\workspace"
},
"excel_mcp_win32": {
"command": "uv",
"args": [
"run",
"mcp_excel_server_win32.py"
],
"cwd": "C:\\path\\to\\your\\workspace"
}
}
}
```
注意:将`C:\\path\\to\\your\\workspace`替换为您的实际工作区路径。
# PowerPoint MCP服务器
PowerPoint服务器为AI模型提供了一个全面的API,用于与PowerPoint演示文稿交互,支持高级格式化、财务图表和数据集成。
## 功能
### 演示文稿管理
- 创建和修改PowerPoint演示文稿
- 添加、删除和修改幻灯片
- 从工作区保存和加载演示文稿
- 模板管理系统
### 元素操作
- 对幻灯片元素(文本、形状、图像、图表)进行精细控制
- 高级形状创建和样式设置
- 元素定位和分组
- 形状之间的连接线
### 财务集成
- 创建财务图表(线形图、柱形图、饼形图、瀑布图等)
- 生成比较表格
- 支持各种财务指标:
- 收入
- EBITDA
- 利润
- 资产
- 股权
- 增长率
- 利润率
- 目前使用虚拟数据,计划与Proff API集成以获取挪威公司数据
- 通过API自定义适配其他财务数据提供商
### 样式和格式化
- 丰富的文本格式化
- 形状样式设置(填充、渐变、轮廓)
- 图表自定义
- 背景颜色和效果
注意:您可能需要修改目录路径以匹配您的安装位置。
## 可用的MCP工具
### 演示文稿管理
- `list_presentations`:列出工作区中的所有PowerPoint文件
- `upload_presentation`:上传新的演示文稿到工作区
- `save_presentation`:保存当前的演示文稿
### 幻灯片操作
- `add_slide`:在演示文稿中添加新的幻灯片
- `delete_slide`:删除演示文稿中的幻灯片
- `get_slide_count`:获取演示文稿中的幻灯片总数
- `analyze_slide`:分析幻灯片的内容
- `set_background_color`:设置幻灯片的背景颜色
### 元素操作
- `add_text`:在幻灯片中添加文本
- `add_shape`:在幻灯片中添加形状
- `edit_element`:编辑元素的属性
- `style_element`:对元素应用样式
- `connect_shapes`:用连接线连接两个形状
- `find_element`:根据条件查找幻灯片上的元素
### 财务工具
- `get_company_financials`:获取公司的财务数据(目前返回虚拟数据)
- `create_financial_chart`:在幻灯片上创建财务图表
- `create_comparison_table`:创建公司的比较表格
**注意:** 财务工具目前使用虚拟数据。未来版本计划与Proff API集成以自动获取挪威公司数据。用户可以修改代码以连接到本地或首选的财务数据提供商。
### 模板操作
- `list_templates`:列出所有可用的模板
- `apply_template`:将模板应用于演示文稿
- `create_slide_from_template`:从模板创建新的幻灯片
- `save_as_template`:保存幻灯片为模板
### 调试工具
- `debug_element_mappings`:调试工具,用于检查幻灯片的元素映射
## 用法
### 与Claude交互
在Claude桌面应用程序中配置MCP服务器后,您可以通过自然语言命令与PowerPoint和Excel交互。以下是一些示例:
#### PowerPoint示例
```
您:创建一个新幻灯片,标题为“市场分析”,并添加一个显示收入增长的柱形图。
Claude:我将帮助您创建具有标题和图表的幻灯片。我将:
1. 添加新的幻灯片
2. 添加标题文本
3. 创建收入图表
[Claude然后按顺序使用MCP工具:
- add_slide
- add_text
- create_financial_chart]
您:使标题变大并将颜色更改为蓝色。
Claude:我将修改标题的格式。
[Claude将使用:
- find_element(定位标题)
- edit_element(更新格式)]
您:在图表下方添加一个比较表,比较三家公司。
Claude:我将在现有图表下方添加一个比较表。
[Claude将使用:
- create_comparison_table]
```
#### Excel示例
```
您:打开Q4报告并向我显示单元格B2至B5的收入数字。
Claude:我将帮助您检索这些收入数字。
[Claude将使用:
- list_open_workbooks(查找工作簿)
- get_range_values(读取指定单元格)]
您:计算这些数字的总和并将其放入单元格B6中。
Claude:我将计算总和并将其写入B6。
[Claude将使用:
- get_range_values(获取数字)
- set_cell_value(写入总和)]
您:创建一个名为“摘要”的新工作表并复制这些值到那里。
Claude:我将创建一个新工作表并复制数据。
[Claude将使用:
- add_worksheet
- get_range_values(从源)
- set_range_values(到目标)]
```
### 工作原理
1. **自然语言理解**
- Claude解释您的请求并将其分解为特定操作
- 它从之前的交互中理解上下文
- 它可以处理复杂的多步骤操作
2. **工具选择**
- Claude自动为每个任务选择合适的MCP工具
- 它可以将多个工具链接在一起以执行复杂操作
- 它处理错误情况并提供反馈
3. **上下文管理**
- Claude维护以下上下文:
- 当前打开的文件
- 最近的操作
- 选定的元素
- 用户偏好
4. **错误处理**
- 如果操作失败,Claude将:
- 解释出错的内容
- 建议替代方案
- 帮助排查常见问题
### 最佳实践
1. **具体**
- 提及相关幻灯片编号
- 在Excel中指定确切的单元格范围
- 清晰描述所需的格式
2. **复杂操作**
- 将复杂请求分解为步骤
- 确认中间结果
- 根据需要调整
3. **故障排除**
- 确保PowerPoint/Excel正在运行
- 检查文件权限
- 验证COM自动化是否正常工作
- 如有必要,运行pywin32_postinstall.py
### 示例工作流程
#### 创建财务演示文稿
```
您:创建一个关于Q4财务结果的新演示文稿。
Claude:我将创建一个带有标题幻灯片的新演示文稿。
您:添加过去4个季度的收入图表。
Claude:我将创建一个带有季度收入图表的新幻灯片。
您:现在添加与竞争对手的比较。
Claude:我将添加一个比较表,包含您和竞争对手的关键指标。
```
#### 分析Excel数据
```
您:显示Q4分析工作簿中的所有工作表。
Claude:我将列出工作簿中的所有工作表。
您:在列B中找到最高的收入值。
Claude:我将扫描列B并找到最大值。
您:创建一个包含前5个值的摘要。
Claude:我将创建一个带有前5个收入数字的新工作表。
```
## 目录结构
```
pptx-mcp/
├── mcp_powerpoint_server.py # 主服务器实现
├── requirements.txt # Python依赖项
├── presentations/ # 演示文稿工作区
│ └── templates/ # 模板存储
└── README.md # 此文件
```
## 依赖项
- python-pptx:PowerPoint文件操作
- Pillow:图像处理
- numpy:数值运算
- MCP SDK:模型上下文协议实现
## 贡献
欢迎贡献!请随时提交拉取请求。
## 许可证
该项目在MIT许可证下许可 - 有关详细信息,请参见LICENSE文件。
# Excel MCP服务器
Excel服务器通过AI助手提供与Excel工作簿、工作表和单元格数据交互的工具。
## 功能
### 工作簿管理
- 连接到正在运行的Excel实例
- 列出打开的工作簿
- 以各种格式保存工作簿(.xlsx,.xlsm,.xlsb,.xls)
### 工作表操作
- 列出工作簿中的工作表
- 添加新的工作表
- 按名称或索引访问工作表
### 单元格和范围操作
- 读取和写入单个单元格的值
- 获取和设置单元格范围的值
- 处理各种数据类型(文本、数字、日期、货币)
- 自动转换日期和货币值
## 可用的MCP工具
### 工作簿管理
- `list_open_workbooks`:列出所有当前打开的Excel工作簿
- `save_workbook`:以可选的格式选择保存工作簿
### 工作表操作
- `list_worksheets`:列出工作簿中的所有工作表
- `add_worksheet`:向工作簿添加新的工作表
- `get_worksheet`:按名称或索引获取工作表
### 单元格和范围操作
- `get_cell_value`:读取单个单元格的值
- `set_cell_value`:设置单个单元格的值
- `get_range_values`:读取单元格范围的值
- `set_range_values`:设置单元格范围的值
## 注意
- 两个服务器都需要Windows和相应的微软Office应用程序已安装
- 服务器与正在运行的应用程序实例交互
- COM自动化需要正确的初始化;如果遇到COM相关错误,请运行安装后脚本
- 为了更好地处理常量,请考虑使用`makepy`生成Office常量