关于 PPT maker MCP server
PPT maker MCP 服务是一个用于生成和编辑 PowerPoint 演示文稿的 MCP 服务,基于 python-pptx 库构建。用户可以通过与大模型对话完成演示文稿的创建、编辑和保存。
主要功能
- 01创建演示文稿并返回唯一 ID
- 02支持标题页、内容页、章节页、图片页和表格页
- 03保存为文件或生成 base64 数据 URI
- 04查询演示文稿信息与大纲资源
- 05删除指定序号的幻灯片
- 06通过 SVG 生成幻灯片图片
适用场景
- 01根据自然语言描述自动生成演示文稿
- 02通过对话逐步编辑已有演示文稿的幻灯片结构
- 03将表格或图片数据整理成幻灯片
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露创建、编辑和保存演示文稿的工具,并提供大纲资源与 SVG 提示词函数。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
PPT maker MCP 服务
此 MCP 服务支持动态创建、编辑和保存 PowerPoint 演示文稿。它基于 MCP,并使用 python-pptx 库,提供灵活的接口,可添加幻灯片、图片、表格及其他元素。用户只需与大模型聊天,即可轻松创建、编辑和保存演示文稿,从而简化整个工作流。
功能
-
创建演示文稿
使用标题初始化新的 PowerPoint 演示文稿,并生成唯一的演示文稿 ID。 -
幻灯片操作
- 标题幻灯片: 添加带有可选副标题的标题幻灯片。
- 内容幻灯片: 创建包含标题和项目符号内容的幻灯片。
- 章节幻灯片: 插入章节分隔幻灯片,其中包含居中的大标题和可选的背景颜色。
- 图片幻灯片: 添加包含本地文件或 URL 图片的幻灯片,并设置标题和描述性替代文本。
- 表格幻灯片: 插入包含表格的幻灯片,并指定表头和行数据。
-
演示文稿管理
- 保存演示文稿: 将演示文稿写入指定文件路径,并在需要时处理临时目录。
- 下载链接: 生成包含 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
你可以在 Claude Desktop 中安装此服务,并通过运行以下命令立即与其交互:
mcp install server-local.py
或者,你也可以使用 MCP Inspector 测试:
mcp dev server-local.py
如果 Claude Desktop 出错,你可能需要在 command 字段中填写 uv 可执行文件的完整路径。在 MacOS/Linux 上运行 which uv,或在 Windows 上运行 where uv,即可获取该路径。
启动期间,服务会将 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 - 说明: 返回包含 Base64 编码演示文稿数据的 data URI,可供浏览器直接下载。
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-convert 工具将 SVG 转换为 PNG
- 在演示文稿中创建新幻灯片
- 如果提供了标题,则将其添加到幻灯片
- 定位并将 PNG 图像添加到幻灯片
- 清理临时文件
- 返回包含幻灯片位置的确认消息
错误处理与调试
-
错误检查:
每个工具都会验证输入(例如,检查演示文稿 ID 或文件是否存在),并返回描述性错误消息。 -
临时目录:
服务端确保文件保存在可写目录(通常为/tmp)中;如果提供的路径为只读,则会相应回退。 -
日志记录:
错误和版本信息会输出到 stderr,以便进行调试和监控。
贡献
欢迎贡献。如果您遇到问题或有改进建议,请提交 issue 或 pull request。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。