mcpField
P
PPT maker MCP server

PPT maker MCP server

本地服务
github.com/ltc6539生产力6673 周前更新

关于 PPT maker MCP server

PPT maker MCP 服务是一个用于生成和编辑 PowerPoint 演示文稿的 MCP 服务,基于 python-pptx 库构建。用户可以通过与大模型对话完成演示文稿的创建、编辑和保存。

主要功能

  1. 01创建演示文稿并返回唯一 ID
  2. 02支持标题页、内容页、章节页、图片页和表格页
  3. 03保存为文件或生成 base64 数据 URI
  4. 04查询演示文稿信息与大纲资源
  5. 05删除指定序号的幻灯片
  6. 06通过 SVG 生成幻灯片图片

适用场景

  1. 01根据自然语言描述自动生成演示文稿
  2. 02通过对话逐步编辑已有演示文稿的幻灯片结构
  3. 03将表格或图片数据整理成幻灯片

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露创建、编辑和保存演示文稿的工具,并提供大纲资源与 SVG 提示词函数。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

PPT maker MCP 服务

🌐 中文版README

此 MCP 服务支持动态创建、编辑和保存 PowerPoint 演示文稿。它基于 MCP,并使用 python-pptx 库,提供灵活的接口,可添加幻灯片、图片、表格及其他元素。用户只需与大模型聊天,即可轻松创建、编辑和保存演示文稿,从而简化整个工作流。

功能

  • 创建演示文稿
    使用标题初始化新的 PowerPoint 演示文稿,并生成唯一的演示文稿 ID。

  • 幻灯片操作

    • 标题幻灯片: 添加带有可选副标题的标题幻灯片。
    • 内容幻灯片: 创建包含标题和项目符号内容的幻灯片。
    • 章节幻灯片: 插入章节分隔幻灯片,其中包含居中的大标题和可选的背景颜色。
    • 图片幻灯片: 添加包含本地文件或 URL 图片的幻灯片,并设置标题和描述性替代文本。
    • 表格幻灯片: 插入包含表格的幻灯片,并指定表头和行数据。
  • 演示文稿管理

    • 保存演示文稿: 将演示文稿写入指定文件路径,并在需要时处理临时目录。
    • 下载链接: 生成包含 Base64 编码演示文稿内容的数据 URI,供直接下载。
    • 演示文稿信息: 获取演示文稿的元数据,例如幻灯片数量和可用的幻灯片版式。
    • 演示文稿大纲: 通过专用资源端点获取演示文稿结构的文本大纲。
    • 移除幻灯片: 按从 1 开始的索引删除幻灯片。
    • 导出为 Base64: 将完整的演示文稿导出为 Base64 编码字符串,以便进一步处理。

安装

  1. 克隆仓库

    git clone https://github.com/ltc6539/mcp-ppt.git
    cd mcp-ppt
    
  2. 创建虚拟环境(可选,但建议)

    python3 -m venv .venv
    source .venv/bin/activate  # On Windows use: .venv\Scripts\activate
    
  3. 然后将 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 图像。该函数返回由两条消息组成的列表:
    1. 一条设定 Claude 为 SVG 专家的系统消息
    2. 一条包含具体 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。