使用说明
PPT制作MCP服务器
此MCP服务器支持动态创建、编辑和保存PowerPoint演示文稿。建在 主控程序 并使用 python pptx 库,它提供了一个灵活的界面来添加幻灯片、图像、表格和其他元素。用户只需与大型语言模型聊天,即可轻松制作、编辑和保存演示文稿,简化整个工作流程
特性
-
创建演示文稿
使用生成唯一演示文稿ID的标题初始化新的PowerPoint演示文稿。 -
滑动操作
- 标题幻灯片: 添加带有可选字幕的标题幻灯片。
- 内容幻灯片: 创建带有标题和要点内容的幻灯片。
- 章节幻灯片: 插入一个带有大居中标题和可选背景颜色的分段幻灯片。
- 图片幻灯片: 添加幻灯片,其中包含来自本地文件或URL的图像,并带有标题和描述性alt文本。
- 表格幻灯片: 插入包含已定义标题和行数据的表格的幻灯片。
-
展示管理
- 保存演示文稿: 将演示文稿写入指定的文件路径,必要时处理临时目录。
- 下载链接: 生成一个包含base64编码的演示内容的数据URI,以便直接下载。
- 演示信息: 检索演示文稿的元数据,如幻灯片数量和可用幻灯片布局。
- 演示大纲: 通过专用资源端点获取演示结构的基于文本的大纲。
- 删除幻灯片: 按幻灯片从1开始的索引删除幻灯片。
- 导出到Base64: 将完整的演示文稿导出为base64编码字符串以供进一步处理。
安装
-
克隆存储库
git clone https://github.com/ltc6539/mcp-ppt.git cd mcp-ppt -
创建虚拟环境(可选但推荐)
python3 -m venv .venv source .venv/bin/activate # On Windows use: .venv\Scripts\activate -
然后将MCP添加到您的项目依赖关系中
uv add "mcp[cli]" uv run mcp
您可以在以下位置安装此服务器 克劳德桌面版 并通过运行以下命令立即与之交互:
mcp install server-local.py
或者,您可以使用MCP检查器进行测试:
mcp dev server-local.py
如果claude桌面有错误,您可能需要在命令字段中输入uv可执行文件的完整路径。你可以通过跑步来获得这个 which uv 在MacOS/Linux或 where uv 在Windows上。
在启动期间,服务器将Python和Python-pptx版本信息记录到stderr。执行过程中的任何错误也会打印到stderr,以便于调试。
刀具清单
每个MCP工具功能都可以通过MCP服务器直接访问。以下是可用的主要操作:
1.创建演示文稿
- 功能:
create_presentation(title: str) -> str - 说明: 初始化新演示文稿并返回唯一的演示文稿ID。
2.添加标题幻灯片
- 功能:
add_title_slide(prs_id: str, title: str, subtitle: Optional[str] = None) -> str - 说明: 将标题幻灯片添加到指定的演示文稿中。
3.添加内容幻灯片
- 功能:
add_content_slide(prs_id: str, title: str, content: List[str]) -> str - 说明: 插入带有标题和多个项目符号的内容幻灯片。
4.添加章节幻灯片
- 功能:
add_section_slide(prs_id: str, section_title: str, background_color: Optional[str] = None) -> str - 说明: 创建具有可自定义背景颜色和居中大文本的分段幻灯片。
5.添加图片幻灯片
- 功能:
add_image_slide(prs_id: str, title: str, image_path: str, image_description: str) -> str - 说明: 添加图像幻灯片。图像可以从本地文件加载或从URL下载。
6.添加表格幻灯片
- 功能:
add_table_slide(prs_id: str, title: str, headers: List[str], rows: List[List[str]]) -> str - 说明: 插入一张幻灯片,其中包含由列标题和数据行定义的表。
7.保存演示文稿
- 功能:
save_presentation(prs_id: str, output_path: str) -> str - 说明: 将演示文稿保存到指定的输出路径,必要时管理临时目录。
8.获取演示文稿下载链接
- 功能:
get_presentation_download_link(prs_id: str) -> str - 说明: 返回一个数据URI,其中包含base64编码的演示数据,用于直接浏览器下载。
9.获取演示信息
- 功能:
get_presentation_info(prs_id: str) -> str - 说明: 检索元数据,如幻灯片计数和可用幻灯片布局的详细信息。
10.获取演示大纲
- 资源终结点:
presentation://{prs_id}/outline - 说明: 提供演示文稿结构的文本表示,包括幻灯片标题和内容摘要。
11.拆卸滑块
- 功能:
remove_slide(prs_id: str, slide_index: int) -> str - 说明: 从演示文稿中删除由其从1开始的索引标识的幻灯片。
12.导出到Base64
- 功能:
export_to_base64(prs_id: str) -> str - 说明: 将演示文稿导出为base64编码字符串(前100个字符显示为示例)。
13.SVG生成器提示功能
- 功能:
svggenerator_prompt(description: str) -> list[base.Message] - 说明: 创建一个提示,指示Claude根据自然语言描述生成SVG图像。该函数返回两条消息的列表:
- 设置Claude作为SVG专家角色的系统消息
- 包含特定SVG请求的用户消息
14.生成SVG函数
- 功能:
generate_svg(prs_id: str, svg_markup: str, title: str = None, width: float = 6.0) -> str - 说明: 采用SVG标记并将其添加到PowerPoint演示文稿中:
- 需要演示ID和SVG标记
- 可选地接受标题和宽度参数(默认6英寸)
- 将SVG写入临时文件
- 使用rsvg转换工具将SVG转换为PNG
- 在演示文稿中创建新幻灯片
- 如果提供,将标题添加到幻灯片中
- 将PNG图像定位并添加到幻灯片中
- 清理临时文件
- 返回带有幻灯片位置的确认消息
错误处理和调试
-
错误检查:
每个工具都会验证输入(例如,验证演示文稿ID或文件是否存在),并返回描述性错误消息。 -
临时目录:
服务器确保文件保存在可写目录中(通常/tmp)如果提供的路径是只读的,则相应地回退。 -
登录中:
错误和版本信息被输出到stderr,以帮助调试和监控。
贡献
欢迎捐款。如果您遇到问题或有改进建议,请打开问题或提交拉取请求。