这是一个使用 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
该服务器提供了超过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取消幻灯片中所有包含文本的组。
initialize_powerpoint()open_presentation() 或 create_presentation()get_slide_shapes() 以了解幻灯片结构ungroup_shapes()save_presentation() 以持久化更改所有函数返回字典,其中包含成功数据或错误信息:
// 成功响应
{
"success": true,
"message": "操作完成",
"data": {...}
}
// 错误响应
{
"error": "出错描述"
}
添加到您的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文件。