mcpField
M
MCP Server Demo - PowerPoint Automation

MCP Server Demo - PowerPoint Automation

本地服务
github.com/buckylee2019生产力1741 周前更新

关于 MCP Server Demo - PowerPoint Automation

这是一个基于 python-pptx 的 PowerPoint MCP 服务,供 AI 助手以编程方式创建、检查和修改演示文稿。它提供演示文稿、幻灯片、文本、形状、表格和图表操作。

主要功能

  1. 01创建、打开和保存演示文稿
  2. 02添加、删除和管理幻灯片
  3. 03读取及格式化文本
  4. 04调整形状位置和属性
  5. 05创建表格并编辑单元格
  6. 06添加多种类型的图表

适用场景

  1. 01批量翻译演示文稿内容
  2. 02更新幻灯片文本和格式
  3. 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

取消幻灯片中所有包含文本的组合。

  • 仅处理简单组合(不含嵌套组合)
  • 保留形状的位置和属性
  • 跳过不含文本的组合

使用工作流

  1. 初始化:调用 initialize_powerpoint()
  2. 打开/创建:使用 open_presentation() 或 create_presentation()
  3. 检查:始终先运行 get_slide_shapes(),以了解幻灯片结构
  4. 按需取消组合:如果检测到组合形状,则使用 ungroup_shapes()
  5. 修改:使用相应工具添加/修改内容
  6. 保存:调用 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 文件。

评论

支持 Markdown

第一次接触 MCP?

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

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