关于 MCP Server Demo - PowerPoint Automation
这是一个基于 python-pptx 的 PowerPoint MCP 服务,供 AI 助手以编程方式创建、检查和修改演示文稿。它提供演示文稿、幻灯片、文本、形状、表格和图表操作。
主要功能
- 01创建、打开和保存演示文稿
- 02添加、删除和管理幻灯片
- 03读取及格式化文本
- 04调整形状位置和属性
- 05创建表格并编辑单元格
- 06添加多种类型的图表
适用场景
- 01批量翻译演示文稿内容
- 02更新幻灯片文本和格式
- 03在幻灯片中添加图像、表格或图表
MCP 相关
该 MCP 服务向 AI 助手提供 PowerPoint 演示文稿和幻灯片操作工具,包括内容检查、编辑与保存。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
PowerPoint 自动化 MCP 服务
一个使用 python-pptx 提供全面 PowerPoint 自动化功能的模型上下文协议(MCP)服务。此服务支持 AI 助手以编程方式创建、修改和管理 PowerPoint 演示文稿。
演示
https://github.com/user-attachments/assets/3daf3bef-4d75-4639-a891-0e64b80b4807
功能
- 演示文稿管理:创建、打开、保存和关闭演示文稿
- 幻灯片操作:使用各种版式添加、删除和管理幻灯片
- 内容创建:添加文本框、图片、表格和图表
- 文本格式设置:使用字体样式(名称、字号、粗体、斜体)更新文本
- 形状操作:移动、调整大小和修改形状属性
- 表格操作:创建表格并更新单元格内容
- 图表创建:添加各种图表类型(柱形图、折线图、饼图、条形图)及数据
- 组合管理:取消形状组合,以便更轻松地进行操作
- 版式支持:使用不同的幻灯片版式和占位符
推荐提示词
翻译场景
翻译演示文稿时,请分批处理,以避免上下文溢出并确保数据安全:
Translate this presentation [absolute path of ppt], processing 10 slides at a time and saving after each batch of 10 slides.
这种方法可以:
- 避免大型演示文稿的令牌数量限制问题
- 增量保存进度,避免数据丢失
- 支持在批次之间进行审核
安装
git clone https://github.com/buckylee2019/powerpoint-automation-mcp.git
cd powerpoint-automation-mcp
uv sync
运行服务
uv run --directory /path/to/powerpoint-automation-mcp mcp-ppt-server
API 参考
该服务提供 25+ 个工具,可全面实现 PowerPoint 自动化。所有操作都针对单个活动演示文稿进行,以简化 API。
演示文稿管理
initialize_powerpoint() -> bool
初始化 PowerPoint 自动化系统。
create_presentation(template: str = None) -> Dict
创建新的演示文稿,可选择使用模板。
template:可选的模板文件路径
open_presentation(file_path: str) -> Dict
打开现有的 PowerPoint 文件。
file_path:.pptx文件的完整路径
get_presentation() -> Dict
获取当前活动演示文稿的信息。
save_presentation(path: str = None) -> Dict
保存活动演示文稿。
path:可选的保存路径(省略时使用当前路径)
close_presentation() -> Dict
关闭活动演示文稿。
幻灯片管理
get_slides() -> List[Dict]
获取所有幻灯片及其元数据的列表。
add_slide(layout_index: int = 1) -> Dict
使用指定版式添加新幻灯片。
layout_index:版式类型(0=标题,1=标题+内容,等等)
delete_slide(slide_index: int) -> Dict
从演示文稿中删除幻灯片。
slide_index:从 0 开始的幻灯片索引
get_slide_layouts() -> Dict
获取所有可用幻灯片版式及其属性。
set_slide_title(slide_index: int, title: str) -> Dict
设置幻灯片标题。
内容检查
get_slide_shapes(slide_index: int) -> Dict
务必先运行! 获取幻灯片中的所有形状及其属性和 ID。
- 返回形状类型、位置、大小和文本内容
- 识别可能需要取消组合的组合形状
get_slide_text(slide_index: int) -> Dict
按形状整理并获取幻灯片中的所有文本内容。
- 检测可能需要先取消组合的组合形状
文本和形状操作
update_text(slide_index: int, shape_index: int, text: str, font_name: str = None, font_size: int = None, bold: bool = None, italic: bool = None, preserve_existing: bool = True) -> Dict
更新文本内容,并可选择设置格式。
- 支持设置字体样式,同时保留现有格式
preserve_existing:保留未指定属性的原有格式
update_shape_by_id(slide_index: int, shape_id: str, text: str = None, left: float = None, top: float = None, width: float = None, height: float = None) -> Dict
根据 ID 更新形状属性。
- 位置和大小的单位为英寸
内容创建
add_textbox(slide_index: int, text: str, left: float = 1, top: float = 1, width: float = 4, height: float = 2) -> Dict
向幻灯片添加文本框。
add_image(slide_index: int, image_path: str, left: float = 1, top: float = 1, width: float = None, height: float = None) -> Dict
向幻灯片添加图片。
- 仅指定宽度或高度时保持纵横比
add_table(slide_index: int, rows: int, cols: int, left: float = 1, top: float = 1, width: float = 8, height: float = 4) -> Dict
向幻灯片添加表格。
add_chart(slide_index: int, chart_type: str, categories: List[str], series_names: List[str], series_values: List[List[float]], left: float = 1, top: float = 1, width: float = 8, height: float = 4, has_legend: bool = True) -> Dict
添加包含多个数据系列的图表。
chart_type:'COLUMN'、'LINE'、'PIE'、'BAR'categories:X 轴标签series_names:图例标签series_values:各数据系列的值
表格操作
update_table_cell(slide_index: int, shape_index: int, row: int, col: int, text: str) -> Dict
更新指定表格单元格中的文本。
get_table_content(slide_index: int, shape_index: int) -> Dict
获取表格中的所有内容。
高级操作
ungroup_shapes(slide_index: int) -> Dict
取消幻灯片中所有包含文本的组合。
- 仅处理简单组合(不含嵌套组合)
- 保留形状的位置和属性
- 跳过不含文本的组合
使用工作流
- 初始化:调用
initialize_powerpoint() - 打开/创建:使用
open_presentation()或create_presentation() - 检查:始终先运行
get_slide_shapes(),以了解幻灯片结构 - 按需取消组合:如果检测到组合形状,则使用
ungroup_shapes() - 修改:使用相应工具添加/修改内容
- 保存:调用
save_presentation()以保存更改
错误处理
所有函数均返回字典,其中包含成功数据或错误信息:
// Success response
{
"success": true,
"message": "Operation completed",
"data": {...}
}
// Error response
{
"error": "Description of what went wrong"
}
MCP 配置
添加到 MCP 设置中:
{
"mcpServers": {
"powerpoint-automation": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/powerpoint-automation-mcp",
"mcp-ppt-server"
]
}
}
}
依赖项
python-pptx:PowerPoint 文件操作mcp:Model Context Protocol 框架fastmcp:简化 MCP 服务创建
许可证
MIT 许可证 - 详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。