返回市场
<中文翻译>
powerpoint自动化mcp

<中文翻译> powerpoint自动化mcp

作者:buckylee201917 星标更新:2025-10-02

项目介绍

PowerPoint 自动化 MCP 服务器

这是一个使用 python-pptx 提供全面 PowerPoint 自动化功能的 Model Context Protocol (MCP) 服务器。该服务器使AI助手能够通过编程方式创建、修改和管理PowerPoint演示文稿。

示例

https://github.com/user-attachments/assets/3daf3bef-4d75-4639-a891-0e64b80b4807

功能

  • 演示文稿管理:创建、打开、保存和关闭演示文稿
  • 幻灯片操作:添加、删除和管理具有各种布局的幻灯片
  • 内容创作:添加文本框、图片、表格和图表
  • 文本格式化:更新文本的字体样式(名称、大小、粗体、斜体)
  • 形状操作:移动、调整大小和修改形状属性
  • 表格操作:创建表格并更新单元格内容
  • 图表创建:添加各种类型的图表(柱状图、折线图、饼图、条形图)及其数据
  • 组管理:取消组合形状以便于操作
  • 布局支持:处理不同的幻灯片布局和占位符

安装

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": true,
  "message": "操作完成",
  "data": {...}
}

// 错误响应
{
  "error": "出错描述"
}

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文件。