Weichenleeeee123/ppt-mcp-server
If you are the rightful owner of ppt-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This is a PowerPoint editing server based on the Model Context Protocol (MCP), offering comprehensive features for creating and editing PowerPoint presentations, including content editing, formatting, and professional animation effects.
add_slide_animation
Adds animation transition effects to a single slide.
make_presentation_dynamic
Applies a uniform animation effect to the entire presentation.
make_professional_presentation
Automatically adds elegant fade transitions to all slides.
add_smooth_transitions
Adds smooth transition animations to the presentation.
add_dynamic_effects
Adds dynamic transition effects to the presentation.
PowerPoint编辑MCP Server
这是一个基于MCP (Model Context Protocol) 的PowerPoint编辑服务器,提供了创建和编辑PowerPoint演示文稿的完整功能,包括内容编辑、格式化和专业动画效果。
✨ 最新更新
- 🎬 全新动画系统 - 添加了多种专业过渡动画效果
- 🚀 一键专业化 - 快速让演示文稿变得专业
- 🎯 智能推荐 - 优化工具描述,提高AI模型使用率
- 🛠️ 便利函数 - 简化复杂操作,提供直观的参数接口
项目结构
main.py
- MCP服务器主程序,处理MCP协议通信tool.py
- PowerPoint编辑器工具类,包含所有PPT编辑功能example.py
- 使用示例test_transitions.py
- 过渡动画功能测试transition_improvements_guide.md
- 动画功能改进指南requirements.txt
- 项目依赖mcp_config.json
- MCP客户端配置文件
功能特性
基础功能
- 创建新的PowerPoint演示文稿
- 打开现有的PowerPoint文件
- 保存演示文稿
- 获取演示文稿信息
幻灯片操作
- 添加新幻灯片(支持不同布局)
- 删除幻灯片
- 复制幻灯片
- 移动幻灯片位置
- 设置幻灯片背景颜色
内容编辑
- 添加文本框和文本内容
- 添加标题幻灯片
- 添加带项目符号的内容
- 插入图片
- 添加各种形状(矩形、椭圆、三角形等)
- 添加表格
- 设置表格单元格文本
格式化功能
- 设置文本格式(字体、大小、颜色、粗体、斜体、下划线)
- 为形状添加超链接
- 获取幻灯片中所有形状的详细信息
🎬 专业动画和过渡效果
- 一键专业化 - 快速为整个演示文稿添加专业过渡效果
- 多种动画风格 - 淡入淡出、推入、擦除、分割、缩放、百叶窗、溶解等8种效果
- 智能速度控制 - 快速、中等、慢速三档速度选择
- 自动播放支持 - 支持自动前进和点击前进
- 批量应用 - 一次性为所有幻灯片设置统一动画
- 便利函数 - 提供流畅过渡、动感效果等预设选项
安装依赖
pip install -r requirements.txt
使用方法
作为MCP Server运行
python main.py
直接使用PowerPointEditor类
from tool import PowerPointEditor
# 创建编辑器实例
editor = PowerPointEditor()
# 创建新演示文稿
editor.create_presentation()
# 添加标题幻灯片
editor.add_title_slide("我的演示文稿", "副标题")
# 保存文件
editor.save_presentation("my_presentation.pptx")
运行示例
python example.py
测试动画功能
python test_transitions.py
🎬 动画功能快速开始
from tool import PowerPointEditor
editor = PowerPointEditor()
editor.create_presentation()
# 添加几张幻灯片
editor.add_title_slide("欢迎", "我的演示文稿")
editor.add_title_slide("内容", "主要内容")
editor.add_title_slide("结束", "谢谢观看")
# 一键专业化 - 为所有幻灯片添加淡入淡出效果
editor.make_presentation_professional()
# 或者添加动感效果
# editor.add_dynamic_effects()
# 保存文件
editor.save_presentation("professional_presentation.pptx")
🛠️ 可用工具
🎬 动画和过渡工具(新增)
add_slide_animation
为单张幻灯片添加动画过渡效果,让演示更生动有趣
slide_index
: 幻灯片索引animation_style
: 动画风格(fade, push, wipe, zoom, split, blinds, dissolve, none)speed
: 动画速度(fast, medium, slow)auto_advance
: 是否自动切换到下一张auto_advance_seconds
: 自动切换延迟时间
make_presentation_dynamic
为整个演示文稿添加统一的动画效果,制作专业演示文稿的重要步骤
animation_style
: 统一的动画风格(默认fade)speed
: 动画速度(默认medium)
make_professional_presentation ⭐
一键让演示文稿变得专业!自动为所有幻灯片添加优雅的淡入淡出过渡效果
- 无参数,一键操作
add_smooth_transitions
为演示文稿添加流畅的过渡动画,让幻灯片切换更加自然
- 无参数,预设流畅效果
add_dynamic_effects
为演示文稿添加动感的过渡效果,让演示更有活力
- 无参数,预设动感效果
get_animation_options
查看所有可用的幻灯片动画效果选项
- 无参数
📄 基础工具
1. create_presentation
创建新的PowerPoint演示文稿
2. open_presentation
打开现有的PowerPoint文件
file_path
: 文件路径
3. save_presentation
保存演示文稿
file_path
: 保存路径(可选)
📝 内容编辑工具
4. add_slide
添加新幻灯片
layout_index
: 布局索引(0=标题幻灯片,1=标题和内容)
5. add_text_box
添加文本框
slide_index
: 幻灯片索引text
: 文本内容left
,top
,width
,height
: 位置和大小(英寸)font_size
: 字体大小font_color
: 字体颜色(十六进制)
6. add_title_slide
添加标题幻灯片
title
: 标题subtitle
: 副标题(可选)
7. add_bullet_points
添加项目符号内容
slide_index
: 幻灯片索引title
: 标题bullet_points
: 项目符号列表
8. add_image
添加图片
slide_index
: 幻灯片索引image_path
: 图片路径left
,top
: 位置(英寸)width
,height
: 大小(英寸,可选)
9. add_shape
添加形状
slide_index
: 幻灯片索引shape_type
: 形状类型(rectangle, oval, triangle, diamond, pentagon, hexagon, star, arrow)left
,top
,width
,height
: 位置和大小(英寸)fill_color
: 填充颜色(十六进制)
10. add_table
添加表格
slide_index
: 幻灯片索引rows
: 表格行数cols
: 表格列数left
,top
,width
,height
: 位置和大小(英寸)
11. set_table_cell_text
设置表格单元格文本
slide_index
: 幻灯片索引table_index
: 表格索引row
: 行索引col
: 列索引text
: 文本内容
🎨 格式化和样式工具
12. set_slide_background_color
设置幻灯片背景颜色
slide_index
: 幻灯片索引color
: 背景颜色(十六进制)
13. add_hyperlink
为形状添加超链接
slide_index
: 幻灯片索引shape_index
: 形状索引url
: 超链接URLdisplay_text
: 显示文本(可选)
14. set_text_formatting
设置文本格式
slide_index
: 幻灯片索引shape_index
: 形状索引font_name
: 字体名称(可选)font_size
: 字体大小(可选)font_color
: 字体颜色(可选)bold
: 是否加粗(可选)italic
: 是否斜体(可选)underline
: 是否下划线(可选)
🔧 管理工具
15. get_presentation_info
获取演示文稿信息
16. delete_slide
删除幻灯片
slide_index
: 要删除的幻灯片索引
17. duplicate_slide
复制幻灯片
slide_index
: 要复制的幻灯片索引
18. move_slide
移动幻灯片位置
from_index
: 源位置索引to_index
: 目标位置索引
19. get_slide_shapes_info
获取幻灯片中所有形状的信息
slide_index
: 幻灯片索引
🎬 传统动画工具(向后兼容)
20. set_slide_transition
设置幻灯片过渡效果(推荐使用新的动画工具)
slide_index
: 幻灯片索引transition_type
: 过渡类型(none, fade, push, wipe, split, zoom, blinds, dissolve)duration
: 过渡持续时间(秒)advance_on_click
: 是否点击前进advance_after_time
: 自动前进时间(秒,可选)
21. get_available_transitions
获取可用的过渡效果列表
- 无参数
💡 使用技巧
让AI更好地使用动画功能
为了让AI模型更主动地使用动画功能,可以在对话中使用这些关键词:
- "让演示更专业" → AI会调用
make_professional_presentation
- "添加动画效果" → AI会使用
add_slide_animation
或make_presentation_dynamic
- "让幻灯片切换更流畅" → AI会调用
add_smooth_transitions
- "让演示更有活力" → AI会使用
add_dynamic_effects
推荐的工作流程
- 创建内容 - 先添加所有幻灯片和内容
- 一键专业化 - 使用
make_professional_presentation()
快速添加过渡效果 - 个性化调整 - 根据需要为特定幻灯片设置不同的动画效果
- 预览和保存 - 保存文件并在PowerPoint中预览效果
⚠️ 注意事项
- 确保安装了所有必需的依赖包(特别是
lxml
用于动画功能) - 图片文件路径必须存在且可访问
- 幻灯片索引从0开始
- 颜色使用十六进制格式(如:000000表示黑色,FF0000表示红色)
- 位置和大小单位为英寸
- 动画效果需要在PowerPoint中打开文件才能看到完整效果
错误处理
所有操作都包含错误处理,返回格式为:
{
"success": true/false,
"message": "操作结果消息",
"error": "错误信息(如果有)"
}
🤝 贡献
欢迎提交Issue和Pull Request来改进这个项目!
📄 许可证
MIT License