内容
# PowerPoint 服务器
一款提供全面 PowerPoint 演示文稿操作能力的模型上下文协议(MCP)服务器。该服务器使 Claude 等 AI 助手能够使用基本 OpenXML 操作和高级 OpenXmlPowerTools 功能来创建、修改和分析 PowerPoint 演示文稿。
## 功能
### 核心 PowerPoint 操作
- **幻灯片管理**:获取、添加、更新和删除幻灯片
- **内容提取**:从演示文稿和单个幻灯片中提取文本内容
- **布局管理**:获取可用的幻灯片布局并将其应用于幻灯片
- **占位符处理**:添加具有特定占位符内容的幻灯片
### 高级 PowerTools 功能
- **演示文稿合并**:将多个 PowerPoint 文件合并为一个
- **演示文稿拆分**:将演示文稿拆分为单个幻灯片文件
- **搜索和替换**:基于正则表达式的文本搜索和替换
- **演示文稿指标**:提取详细的元数据和统计信息
## 安装
### 先决条件
- .NET 8.0 SDK
- PowerShell(用于配置)
### 构建服务器
```bash
git clone <your-repo-url>
cd mcp-powerpoint
dotnet build
```
## 配置
### 添加到 Claude Desktop
1. **找到 Claude Desktop 配置文件**:
- **macOS**:`~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**:`%APPDATA%\Claude\claude_desktop_config.json`
2. **添加 MCP 服务器配置**:
```json
{
"mcpServers": {
"powerpoint": {
"command": "/absolute/path/to/mcp-powerpoint/src/bin/Debug/net8.0/PowerPointHelper",
"args": [],
"env": {}
}
}
}
```
3. **更新路径**:将 `/absolute/path/to/mcp-powerpoint/src/bin/Debug/net8.0/PowerPointHelper` 替换为实际的构建可执行文件的绝对路径。
- **Windows**:使用 `PowerPointHelper.exe`
- **macOS/Linux**:使用 `PowerPointHelper`(无扩展名)
4. **重启 Claude Desktop** 以使更改生效。
### 替代:开发模式(需要 .NET SDK)
用于开发目的,您可以直接从源代码运行:
```json
{
"mcpServers": {
"powerpoint": {
"command": "dotnet",
"args": ["run", "--project", "/absolute/path/to/mcp-powerpoint/src"],
"env": {}
}
}
}
```
## 可用工具
### 基本操作
- `getSlideCount` - 获取演示文稿中的幻灯片数量
- `getAllSlideContent` - 获取所有幻灯片的内容
- `getSlideContent` - 获取特定幻灯片的内容
- `addSlide` - 添加带有标题和内容的新的幻灯片
- `addSlideWithPlaceholders` - 使用特定的布局和占位符内容添加幻灯片
- `updateSlide` - 更新现有的幻灯片内容
- `deleteSlide` - 从演示文稿中删除幻灯片
### 布局管理
- `getSlideLayouts` - 获取所有可用的幻灯片布局及其占位符
- `applySlideLayout` - 将特定的布局应用于现有的幻灯片
### 高级 PowerTools 操作
- `combinePresentations` - 合并多个 PowerPoint 文件
- `splitPresentation` - 将演示文稿拆分为单独的文件
- `searchAndReplace` - 基于正则表达式的文本搜索和替换
- `getPresentationMetrics` - 获取详细的演示文稿统计信息
## 使用示例
### 创建新幻灯片
```typescript
// 添加基本幻灯片
{
"tool": "addSlide",
"arguments": {
"filePath": "/path/to/presentation.pptx",
"title": "我的新幻灯片",
"content": "这是幻灯片内容",
"position": 1
}
}
```
### 使用布局和占位符
```typescript
// 首先,获取可用的布局
{
"tool": "getSlideLayouts",
"arguments": {
"filePath": "/path/to/presentation.pptx"
}
}
// 然后,使用特定的占位符添加幻灯片
{
"tool": "addSlideWithPlaceholders",
"arguments": {
"filePath": "/path/to/presentation.pptx",
"layoutId": "rId2",
"placeholderContents": {
"Title": "我的标题",
"Content": "我的内容"
}
}
}
```
### 高级操作
```typescript
// 合并多个演示文稿
{
"tool": "combinePresentations",
"arguments": {
"filePaths": ["/path/to/presentation1.pptx", "/path/to/presentation2.pptx"],
"outputPath": "/path/to/combined.pptx"
}
}
// 搜索和替换文本
{
"tool": "searchAndReplace",
"arguments": {
"filePath": "/path/to/presentation.pptx",
"searchPattern": "旧文本",
"replacement": "新文本",
"ignoreCase": true
}
}
```
## 项目结构
```
mcp-powerpoint/
├── src/
│ ├── PowerPointHelper.csproj # 项目文件
│ ├── Program.cs # MCP 服务器入口点
│ ├── PowerPointTools.cs # MCP 工具定义
│ ├── SlideOperations.cs # 核心幻灯片操作
│ ├── LayoutOperations.cs # 布局管理
│ ├── TextExtractor.cs # 文本提取实用程序
│ └── PowerToolsOperations.cs # 高级 PowerTools 功能
├── CLAUDE.md # Claude 代码说明
├── SLIDE_LAYOUTS.md # 布局文档
├── .gitignore # Git 忽略规则
└── README.md # 本文件
```
## 依赖项
- **DocumentFormat.OpenXml** (3.3.0) - 核心 OpenXML 功能
- **OpenXmlPowerTools** (4.5.3.2) - 高级 PowerPoint 操作
- **ModelContextProtocol** (0.2.0-preview.3) - MCP 服务器框架
- **Microsoft.Extensions.Hosting** (9.0.0) - .NET 主机基础设施
## 故障排除
### 常见问题
1. **"无法找到 OpenXmlPowerTools 包"**
- 尽管 .NET Framework 兼容性警告,包仍能正确安装
- 构建应成功,并带有关于 .NET Framework 与 .NET 9 的警告
2. **文件路径问题**
- 调用工具时始终使用绝对文件路径
- 确保 PowerPoint 文件存在,然后再执行操作
3. **权限错误**
- 确保 PowerPoint 文件未在其他应用程序中打开
- 检查文件权限以获取读/写访问权限
### 调试
服务器记录到标准错误。要在从 Claude Desktop 运行服务器时查看调试输出,请检查 Claude 应用程序日志或手动运行服务器:
```bash
cd src
dotnet run
```
## 贡献
1. 复刻仓库
2. 创建功能分支
3. 进行更改
4. 使用各种 PowerPoint 文件彻底测试
5. 提交拉取请求
## 许可证
该项目根据 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。
## 致谢
- 使用 [OpenXML SDK](https://github.com/OfficeDev/Open-XML-SDK) 构建
- 高级功能由 [OpenXmlPowerTools](https://github.com/OfficeDev/Open-Xml-PowerTools) 提供支持
- 使用 [模型上下文协议](https://modelcontextprotocol.io/) 进行 AI 集成