Office-PowerPoint-MCP-Server:基于 python-pptx 的 MCP 协议 PowerPoint 操作服务器项目

A MCP (Model Context Protocol) server for PowerPoint manipulation using python-pptx. This server provides tools for creating, editing, and manipulating PowerPoint presentations through the MCP protocol.

分支2Tags0
当前项目代码仓暂无内容

Office-PowerPoint-MCP-Server

smithery badge

一个基于 python-pptx 的全面 MCP(模型上下文协议)服务器,用于 PowerPoint 操作。2.0 版本提供了 32 个强大工具,这些工具分为 11 个专业模块,可实现完整的 PowerPoint 创建、管理和专业设计功能。该服务器采用模块化架构,具有增强的参数处理、智能操作选择和全面的错误处理能力。


全新幻灯片布局模板,让演示不再单调

截屏2025-06-20 15 53 45


示例

提示词

650f4cc5d0f1ea4f3b1580800cb0deb

输出结果

084f1cf4bc7e4fcd4890c8f94f536c1

演示 GIF -> (./public/demo.mp4)

demo

功能特点

核心 PowerPoint 操作

  • 往返支持任何 Open XML 演示文稿(.pptx 文件),包括所有元素
  • 模板支持,自动保留主题和布局
  • 多演示文稿管理,带有全局状态跟踪
  • 核心文档属性管理(标题、主题、作者、关键词、备注)

内容创建与管理

  • 幻灯片管理,支持灵活的布局选择
  • 文本操作,包括占位符填充和项目符号创建
  • 高级文本格式,带有字体、颜色、对齐方式和样式控制
  • 文本验证,带有自动适配检查和优化建议

视觉元素

  • 图片处理,支持文件和 base64 输入
  • 图片增强,使用 Pillow 进行亮度、对比度、饱和度和滤镜控制
  • 专业图片效果,包括阴影、反射、发光和柔化边缘
  • 形状创建,支持 20 多种自动形状类型(矩形、椭圆形、流程图元素等)
  • 表格创建,带有高级单元格格式和样式设置

图表与数据可视化

  • 图表支持:支持柱状图、条形图、折线图和饼图
  • 数据系列管理:支持分类和多系列数据
  • 图表格式化:包含图例、数据标签和标题设置

专业设计功能

  • 4种专业配色方案(现代蓝、商务灰、雅致绿、温暖红)
  • 专业排版:采用Segoe UI字体家族及预设字号
  • 主题应用:演示文稿全局自动样式统一
  • 渐变背景:支持自定义方向和配色方案
  • 幻灯片增强:现有内容优化工具
  • 25种内置幻灯片模板:具备动态尺寸调整和视觉效果
  • 高级模板功能:包括自动换行、动态字体大小调整和专业动画效果

高级功能

  • 字体分析与优化:基于FontTools实现
  • 图片效果:提供9种不同视觉效果(阴影、反射、发光、斜面等)
  • 全面验证:具备自动错误修复功能
  • 模板搜索:支持可配置目录路径
  • 专业布局计算:包含边距和间距管理

安装

通过Smithery安装

如需为Claude Desktop自动安装PowerPoint操作服务器,请通过Smithery

npx -y @smithery/cli install @GongRzhe/Office-PowerPoint-MCP-Server --client claude

前提条件

  • Python 3.6 或更高版本(如 pyproject.toml 中所指定)
  • pip 包管理器
  • 可选:uvx(用于无需本地安装即可执行包)

安装选项

选项 1:使用安装脚本(推荐)

设置 PowerPoint MCP Server 最简单的方法是使用提供的安装脚本,该脚本可自动完成安装过程:

python setup_mcp.py

此脚本将:

  • 检查先决条件
  • 提供安装选项:
    • 从 PyPI 安装(推荐大多数用户使用)
    • 设置本地开发环境
  • 安装所需依赖项
  • 生成相应的 MCP 配置文件
  • 提供与 Claude Desktop 集成的说明

该脚本会根据您的环境提供不同的路径:

  • 如果您已安装 uvx,将使用 UVX 进行配置(推荐)
  • 如果服务器已安装,将提供配置选项
  • 如果服务器未安装,将提供安装方法

选项 2:手动安装

  1. 克隆仓库:

    git clone https://github.com/GongRzhe/Office-PowerPoint-MCP-Server.git
    cd Office-PowerPoint-MCP-Server
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 使服务器可执行:

    chmod +x ppt_mcp_server.py
    

使用方法

显示帮助文本:

python ppt_mcp_server.py -h

启动标准输入输出服务器

运行标准输入输出服务器:

python ppt_mcp_server.py

启动 Streamable-Http 服务器

在 8000 端口运行 streamable-http 服务器:

python ppt_mcp_server.py --transport http --port 8000

在 Docker 中运行

docker build -t ppt_mcp_server .
docker run -d --rm -p 8000:8000 ppt_mcp_server -t http

MCP 配置

选项 1:本地 Python 服务器

将服务器添加到您的 MCP 设置配置文件中:

{
  "mcpServers": {
    "ppt": {
      "command": "python",
      "args": ["/path/to/ppt_mcp_server.py"],
      "env": {}
    }
  }
}

选项 2:使用 UVX(无需本地安装)

如果您已安装 uvx,则可以直接从 PyPI 运行服务器,无需进行本地安装:

{
  "mcpServers": {
    "ppt": {
      "command": "uvx",
      "args": [
        "--from", "office-powerpoint-mcp-server", "ppt_mcp_server"
      ],
      "env": {}
    }
  }
}

🚀 v2.0 版本新特性

全面的工具套件(32 款工具)

  • 完整的 PowerPoint 操作功能,配备 34 款专业工具
  • 11 个精心组织的模块,涵盖演示文稿创建的各个方面
  • 增强的参数处理,具备全面的验证机制
  • 智能默认值和基于操作的直观界面

内置幻灯片模板

  • 25+ 款专业幻灯片模板,内置动态功能
  • 高级模板系统,具备自动生成能力
  • 自动调整大小的文本,可根据内容长度和容器尺寸智能适配
  • 专业视觉效果,包括阴影、发光和渐变
  • 基于模板序列的完整演示文稿生成

模块化架构

  • 11 个专业模块:演示文稿、内容、结构、专业、模板、超链接、图表、连接器、母版和切换工具
  • 更好的可维护性,通过关注点分离实现
  • 更简单的扩展性,便于添加新功能
  • 更清晰的代码结构,配备共享工具库

可用工具

服务器提供34 款专业工具,分为以下类别:

演示文稿管理(7 款工具)

  1. create_presentation - 创建新演示文稿
  2. create_presentation_from_template - 从模板创建并保留主题样式
  3. open_presentation - 打开现有演示文稿
  4. save_presentation - 将演示文稿保存到文件
  5. get_presentation_info - 获取全面的演示文稿信息
  6. get_template_file_info - 分析模板文件和布局
  7. set_core_properties - 设置文档属性

内容管理(8 款工具)

  1. add_slide - 添加幻灯片,可选背景样式设置
  2. get_slide_info - 获取详细的幻灯片信息
  3. extract_slide_text - ✨ 新增 从特定幻灯片提取所有文本内容
  4. extract_presentation_text - ✨ 新增 从演示文稿的所有幻灯片中提取文本内容
  5. populate_placeholder - 用文本填充占位符
  6. add_bullet_points - 添加带格式的项目符号
  7. manage_text - ✨ 统一文本工具(添加/格式化/验证/格式运行)
  8. manage_image - ✨ 统一图像工具(添加/增强)

模板操作(7 个工具)

  1. list_slide_templates - 浏览可用的幻灯片布局模板
  2. apply_slide_template - 将结构化布局模板应用于现有幻灯片
  3. create_slide_from_template - 使用布局模板创建新幻灯片
  4. create_presentation_from_templates - 通过模板序列创建完整演示文稿
  5. get_template_info - 获取特定模板的详细信息
  6. auto_generate_presentation - 根据主题自动生成演示文稿
  7. optimize_slide_text - 优化文本元素以提升可读性和适配性

结构元素(4 个工具)

  1. add_table - 创建具有增强格式的表格
  2. format_table_cell - 设置单个表格单元格的格式
  3. add_shape - 添加带有文本和格式选项的形状
  4. add_chart - 创建支持全面自定义的图表

专业设计(3 个工具)

  1. apply_professional_design - ✨ 统一设计工具(主题/幻灯片/增强效果)
  2. apply_picture_effects - ✨ 统一效果工具(9 种以上效果组合)
  3. manage_fonts - ✨ 统一字体工具(分析/优化/推荐)

特色功能(5 个工具)

  1. manage_hyperlinks - 完整超链接管理(添加/删除/列出/更新)
  2. manage_slide_masters - 访问和管理幻灯片母版属性及布局
  3. add_connector - 在幻灯片上的点之间添加连接线/箭头
  4. update_chart_data - 用新的类别和系列替换现有图表数据
  5. manage_slide_transitions - 基本幻灯片切换效果管理

🌟 核心统一工具

manage_text - 一体化文本管理

# Add text box
manage_text(slide_index=0, operation="add", text="Hello World", font_size=24)

# Format existing text
manage_text(slide_index=0, operation="format", shape_index=0, bold=True, color=[255,0,0])

# Validate text fit with auto-fix
manage_text(slide_index=0, operation="validate", shape_index=0, validation_only=False)

manage_image - 完整图像处理

# Add image with enhancement
manage_image(slide_index=0, operation="add", image_source="logo.png", 
            enhancement_style="presentation")

# Enhance existing image
manage_image(slide_index=0, operation="enhance", image_source="photo.jpg",
            brightness=1.2, contrast=1.1, saturation=1.3)

apply_picture_effects - 一次调用应用多种效果

# Apply combined effects
apply_picture_effects(slide_index=0, shape_index=0, effects={
    "shadow": {"blur_radius": 4.0, "color": [128,128,128]},
    "glow": {"size": 5.0, "color": [0,176,240]},
    "rotation": {"rotation": 15.0}
})

apply_professional_design - 主题与设计管理

# Add professional slide
apply_professional_design(operation="slide", slide_type="title_content", 
                         color_scheme="modern_blue", title="My Presentation")

# Apply theme to entire presentation  
apply_professional_design(operation="theme", color_scheme="corporate_gray")

# Enhance existing slide
apply_professional_design(operation="enhance", slide_index=0, color_scheme="elegant_green")

示例

创建新演示文稿

# Create a new presentation
result = use_mcp_tool(
    server_name="ppt",
    tool_name="create_presentation",
    arguments={}
)
presentation_id = result["presentation_id"]

# Add a title slide
result = use_mcp_tool(
    server_name="ppt",
    tool_name="add_slide",
    arguments={
        "layout_index": 0,  # Title slide layout
        "title": "My Presentation",
        "presentation_id": presentation_id
    }
)
slide_index = result["slide_index"]

# Populate subtitle placeholder
result = use_mcp_tool(
    server_name="ppt",
    tool_name="populate_placeholder",
    arguments={
        "slide_index": slide_index,
        "placeholder_idx": 1,  # Subtitle placeholder
        "text": "Created with PowerPoint MCP Server",
        "presentation_id": presentation_id
    }
)

# Save the presentation
result = use_mcp_tool(
    server_name="ppt",
    tool_name="save_presentation",
    arguments={
        "file_path": "my_presentation.pptx",
        "presentation_id": presentation_id
    }
)

使用 v2.0 创建专业演示文稿

# Create a professional slide with modern styling - CONSOLIDATED TOOL
result = use_mcp_tool(
    server_name="ppt",
    tool_name="apply_professional_design",
    arguments={
        "operation": "slide",
        "slide_type": "title_content",
        "color_scheme": "modern_blue",
        "title": "Quarterly Business Review",
        "content": [
            "Revenue increased by 15% compared to last quarter",
            "Customer satisfaction scores reached all-time high of 94%",
            "Successfully launched 3 new product features",
            "Expanded team by 12 new talented professionals"
        ]
    }
)

# Apply professional theme to entire presentation - SAME TOOL, DIFFERENT OPERATION
result = use_mcp_tool(
    server_name="ppt",
    tool_name="apply_professional_design",
    arguments={
        "operation": "theme",
        "color_scheme": "modern_blue",
        "apply_to_existing": True
    }
)

# Add slide with gradient background - ENHANCED ADD_SLIDE
result = use_mcp_tool(
    server_name="ppt",
    tool_name="add_slide",
    arguments={
        "layout_index": 0,
        "background_type": "professional_gradient",
        "color_scheme": "modern_blue",
        "gradient_direction": "diagonal"
    }
)

使用内置幻灯片模板(v2.0 新增功能)

# List all available slide templates with their features
result = use_mcp_tool(
    server_name="ppt",
    tool_name="list_slide_templates",
    arguments={}
)

# Apply a professional template to an existing slide
result = use_mcp_tool(
    server_name="ppt",
    tool_name="apply_slide_template",
    arguments={
        "slide_index": 0,
        "template_id": "title_slide",
        "color_scheme": "modern_blue",
        "content_mapping": {
            "title": "Quarterly Business Review",
            "subtitle": "Q4 2024 Results",
            "author": "Leadership Team"
        }
    }
)

# Create a new slide using a template
result = use_mcp_tool(
    server_name="ppt",
    tool_name="create_slide_from_template",
    arguments={
        "template_id": "text_with_image",
        "color_scheme": "elegant_green",
        "content_mapping": {
            "title": "Our Revolutionary Solution",
            "content": "• 250% increase in efficiency\n• 98% customer satisfaction\n• Industry-leading performance"
        },
        "image_paths": {
            "supporting": "path/to/product_image.jpg"
        }
    }
)

# Generate a complete presentation from multiple templates
result = use_mcp_tool(
    server_name="ppt",
    tool_name="create_presentation_from_templates",
    arguments={
        "template_sequence": [
            {
                "template_id": "title_slide",
                "content": {
                    "title": "2024 Annual Report",
                    "subtitle": "Growth and Innovation",
                    "author": "Executive Team"
                }
            },
            {
                "template_id": "key_metrics_dashboard",
                "content": {
                    "metric_1_value": "94%",
                    "metric_2_value": "$2.4M",
                    "metric_3_value": "247"
                }
            },
            {
                "template_id": "before_after_comparison",
                "content": {
                    "content_left": "Manual processes taking hours",
                    "content_right": "Automated workflows in minutes"
                }
            }
        ],
        "color_scheme": "modern_blue"
    }
)

v2.0 版本的增强型图片管理功能

# Add image with automatic enhancement - CONSOLIDATED TOOL
result = use_mcp_tool(
    server_name="ppt",
    tool_name="manage_image",
    arguments={
        "slide_index": 1,
        "operation": "add",
        "image_source": "company_logo.png",
        "left": 1.0,
        "top": 1.0,
        "width": 3.0,
        "height": 2.0,
        "enhancement_style": "presentation"
    }
)

# Apply multiple picture effects at once - CONSOLIDATED TOOL
result = use_mcp_tool(
    server_name="ppt",
    tool_name="apply_picture_effects",
    arguments={
        "slide_index": 1,
        "shape_index": 0,
        "effects": {
            "shadow": {
                "shadow_type": "outer",
                "blur_radius": 4.0,
                "distance": 3.0,
                "direction": 315.0,
                "color": [128, 128, 128],
                "transparency": 0.6
            },
            "glow": {
                "size": 5.0,
                "color": [0, 176, 240],
                "transparency": 0.4
            }
        }
    }
)

使用 v2.0 进行高级文本管理

# Add and format text in one operation - CONSOLIDATED TOOL
result = use_mcp_tool(
    server_name="ppt",
    tool_name="manage_text",
    arguments={
        "slide_index": 0,
        "operation": "add",
        "left": 1.0,
        "top": 2.0,
        "width": 8.0,
        "height": 1.5,
        "text": "Welcome to Our Quarterly Review",
        "font_size": 32,
        "font_name": "Segoe UI",
        "bold": True,
        "color": [0, 120, 215],
        "alignment": "center",
        "auto_fit": True
    }
)

# Validate and fix text fit issues - SAME TOOL, DIFFERENT OPERATION
result = use_mcp_tool(
    server_name="ppt",
    tool_name="manage_text",
    arguments={
        "slide_index": 0,
        "operation": "validate",
        "shape_index": 0,
        "validation_only": False,  # Auto-fix enabled
        "min_font_size": 10,
        "max_font_size": 48
    }
)

从模板创建演示文稿

# First, inspect a template to see its layouts and properties
result = use_mcp_tool(
    server_name="ppt",
    tool_name="get_template_info",
    arguments={
        "template_path": "company_template.pptx"
    }
)
template_info = result

# Create a new presentation from the template
result = use_mcp_tool(
    server_name="ppt",
    tool_name="create_presentation_from_template",
    arguments={
        "template_path": "company_template.pptx"
    }
)
presentation_id = result["presentation_id"]

# Add a slide using one of the template's layouts
result = use_mcp_tool(
    server_name="ppt",
    tool_name="add_slide",
    arguments={
        "layout_index": 1,  # Use layout from template
        "title": "Quarterly Report",
        "presentation_id": presentation_id
    }
)

# Save the presentation
result = use_mcp_tool(
    server_name="ppt",
    tool_name="save_presentation",
    arguments={
        "file_path": "quarterly_report.pptx",
        "presentation_id": presentation_id
    }
)

添加高级图表和数据可视化

# Add a chart slide
result = use_mcp_tool(
    server_name="ppt",
    tool_name="add_slide",
    arguments={
        "layout_index": 1,  # Content slide layout
        "title": "Sales Data",
        "presentation_id": presentation_id
    }
)
slide_index = result["slide_index"]

# Add a column chart with comprehensive customization
result = use_mcp_tool(
    server_name="ppt",
    tool_name="add_chart",
    arguments={
        "slide_index": slide_index,
        "chart_type": "column",
        "left": 1.0,
        "top": 2.0,
        "width": 8.0,
        "height": 4.5,
        "categories": ["Q1", "Q2", "Q3", "Q4"],
        "series_names": ["2023", "2024"],
        "series_values": [
            [100, 120, 140, 160],
            [110, 130, 150, 170]
        ],
        "has_legend": True,
        "legend_position": "bottom",
        "has_data_labels": True,
        "title": "Quarterly Sales Performance",
        "presentation_id": presentation_id
    }
)

使用 v2.0 进行文本验证与优化

# Validate text fit and get optimization suggestions - USING CONSOLIDATED TOOL
result = use_mcp_tool(
    server_name="ppt",
    tool_name="manage_text",
    arguments={
        "slide_index": 0,
        "operation": "validate",
        "shape_index": 0,
        "text": "This is a very long title that might not fit properly in the designated text box area",
        "font_size": 24,
        "validation_only": True
    }
)

# Comprehensive slide validation with automatic fixes - SAME TOOL, AUTO-FIX ENABLED
result = use_mcp_tool(
    server_name="ppt",
    tool_name="manage_text",
    arguments={
        "slide_index": 0,
        "operation": "validate",
        "shape_index": 0,
        "validation_only": False,  # Auto-fix enabled
        "min_font_size": 10,
        "max_font_size": 48
    }
)

使用新文本提取工具读取幻灯片内容(v2.1)

# Extract text content from a specific slide - NEW TOOL
result = use_mcp_tool(
    server_name="ppt",
    tool_name="extract_slide_text",
    arguments={
        "slide_index": 0,
        "presentation_id": presentation_id
    }
)

# The result includes:
{
    "success": True,
    "slide_index": 0,
    "text_content": {
        "slide_title": "Quarterly Business Review",
        "placeholders": [
            {
                "shape_index": 1,
                "shape_name": "Subtitle Placeholder 2",
                "text": "Q4 2024 Results",
                "placeholder_type": "SUBTITLE",
                "placeholder_idx": 1
            }
        ],
        "text_shapes": [
            {
                "shape_index": 3,
                "shape_name": "TextBox 4",
                "text": "Revenue increased by 15%"
            }
        ],
        "table_text": [],
        "all_text_combined": "Quarterly Business Review\nQ4 2024 Results\nRevenue increased by 15%"
    },
    "total_text_shapes": 2,
    "has_title": True,
    "has_tables": False
}

# Extract text from all slides in the presentation - NEW TOOL
result = use_mcp_tool(
    server_name="ppt",
    tool_name="extract_presentation_text",
    arguments={
        "presentation_id": presentation_id,
        "include_slide_info": True
    }
)

# The result includes comprehensive text extraction:
{
    "success": True,
    "presentation_id": "pres_123",
    "total_slides": 5,
    "slides_with_text": 4,
    "total_text_shapes": 12,
    "slides_with_titles": 3,
    "slides_with_tables": 1,
    "slides_text": [...],  # Detailed per-slide text content
    "all_presentation_text_combined": "=== SLIDE 1 ===\nTitle Here\nContent here..."
}

# Extract text without additional slide metadata for cleaner output
result = use_mcp_tool(
    server_name="ppt",
    tool_name="extract_presentation_text",
    arguments={
        "presentation_id": presentation_id,
        "include_slide_info": False
    }
)

模板支持

使用模板

PowerPoint MCP Server 提供全面的模板支持,可从现有模板文件创建演示文稿。此功能支持:

  • 企业品牌塑造,包含预定义主题、版式和样式
  • 跨团队和项目的一致演示文稿
  • 自定义幻灯片母版和专用版式
  • 预配置属性和文档设置
  • 灵活的模板发现,带有可配置的搜索路径

模板文件要求

  • 支持的格式.pptx.potx 文件
  • 现有内容:模板可包含现有幻灯片(创建过程中会保留)
  • 版式可用性:所有自定义版式和幻灯片母版均可访问
  • 搜索位置:可通过 PPT_TEMPLATE_PATH 环境变量配置
  • 默认搜索路径:当前目录、./templates./assets./resources

模板配置

设置 PPT_TEMPLATE_PATH 环境变量以指定自定义模板目录:

# Unix/Linux/macOS
export PPT_TEMPLATE_PATH="/path/to/templates:/another/path"

# Windows  
set PPT_TEMPLATE_PATH="C:\templates;C:\company_templates"

模板工作流程

  1. 检查模板:使用get_template_info分析可用的版式和属性
  2. 从模板创建:使用create_presentation_from_template并自动保留主题
  3. 使用模板版式:添加幻灯片时引用模板分析得到的版式索引
  4. 保持品牌一致性:模板主题、字体和颜色会自动应用于新内容

专业配色方案

服务器包含4种内置专业配色方案:

  • 现代蓝色:微软风格的蓝色主题,搭配互补色
  • 企业灰色:专业灰度主题,带有蓝色强调
  • 雅致绿色:森林绿主题,配以米色和浅绿色点缀
  • 暖红色:深红色主题,搭配橙色和黄色点缀

每种方案均包含主色、辅助色、强调色、浅色和文本色,均针对商务演示进行了优化。

🎨 内置幻灯片模板(v2.0 新增)

PowerPoint MCP Server 现包含25种专业幻灯片模板,具备高级动态功能。所有模板均支持:

动态功能

  • 自动文本大小调整:基于内容长度和容器尺寸
  • 智能文本换行:自动适应指定区域
  • 视觉效果:包括阴影、发光和轮廓
  • 渐变背景:多层组合渐变效果
  • 专业动画:可直接用于演示
  • 交互式悬停效果:提升用户体验
  • 智能内容溢出处理:自动调整内容布局

可用模板类别

标题与介绍幻灯片

  • title_slide - 带渐变背景和文本效果的动态标题幻灯片
  • chapter_intro - 带章节编号和样式的部分分隔页
  • thank_you_slide - 包含联系信息和特效的结束幻灯片

内容布局幻灯片

  • text_with_image - 带风格化图片和交互元素的文本内容
  • two_column_text - 两等列文本,带动态大小调整
  • two_column_text_images - 两列布局,包含文本和对应图片
  • three_column_layout - 三等列布局,包含文本和图片
  • full_image_slide - 大背景图片带文本覆盖层

商务与分析幻灯片

  • key_metrics_dashboard - 带动画计数器的交互式指标仪表板
  • before_after_comparison - 带视觉分隔符的动态比较布局
  • chart_comparison - 两张并排图表,用于性能比较
  • data_table_slide - 专注于表格数据的幻灯片,带专业样式
  • timeline_slide - 带里程碑和特效的水平时间线

流程与流程幻灯片

  • process_flow - 带增强效果的分步流程可视化
  • agenda_slide - 带样式的目录或议程概述
  • quote_testimonial - 带特效的精选引语或客户评价

团队与组织幻灯片

  • team_introduction - 带照片和角色的团队成员展示

模板使用示例

# Browse all available templates
templates = use_mcp_tool("ppt", "list_slide_templates", {})

# Key templates with their features:
{
  "title_slide": {
    "features": ["Dynamic text sizing", "Gradient backgrounds", "Text effects"],
    "elements": ["title", "subtitle", "author", "decorative_accent"]
  },
  "key_metrics_dashboard": {
    "features": ["Animated counters", "Gradient containers", "Trend visualization"],
    "elements": ["3 metric containers", "trend chart", "insights callout"]
  },
  "before_after_comparison": {
    "features": ["Split gradient background", "VS divider", "Improvement arrow"],
    "elements": ["before/after headers", "comparison content", "improvement metrics"]
  }
}

配色方案集成

所有模板均能与 4 种专业配色方案无缝配合:

  • modern_blue:微软风格主题,搭配动态渐变效果
  • corporate_gray:专业灰度配色,辅以蓝色点缀
  • elegant_green:森林绿为主色调,配以奶油色及浅色点缀
  • warm_red:深红色基调,带有橙色与黄色高光

动态内容适配

模板会根据内容自动调整:

  • 字体大小 根据文本长度缩放(范围为 8pt - 44pt)
  • 行间距 自动调整以确保可读性(1.0x - 1.4x)
  • 文本换行 智能在最佳位置断行
  • 容器大小 随内容溢出自动适配
  • 视觉效果 随元素尺寸相应缩放

📁 文件结构

Office-PowerPoint-MCP-Server/
├── ppt_mcp_server.py          # Main consolidated server (v2.0)
├── slide_layout_templates.json # 25+ professional slide templates with dynamic features
├── tools/                     # 11 specialized tool modules (32 tools total)
│   ├── __init__.py
│   ├── presentation_tools.py  # Presentation management (7 tools)
│   ├── content_tools.py       # Content & slides (6 tools)
│   ├── template_tools.py      # Template operations (7 tools)
│   ├── structural_tools.py    # Tables, shapes, charts (4 tools)
│   ├── professional_tools.py  # Themes, effects, fonts (3 tools)
│   ├── hyperlink_tools.py     # Hyperlink management (1 tool)
│   ├── chart_tools.py         # Advanced chart operations (1 tool)
│   ├── connector_tools.py     # Connector lines/arrows (1 tool)
│   ├── master_tools.py        # Slide master management (1 tool)
│   └── transition_tools.py    # Slide transitions (1 tool)
├── utils/                     # 7 organized utility modules (68+ functions)
│   ├── __init__.py
│   ├── core_utils.py          # Error handling & safe operations
│   ├── presentation_utils.py  # Presentation management utilities
│   ├── content_utils.py       # Content & slide operations
│   ├── design_utils.py        # Themes, colors, effects & fonts
│   ├── template_utils.py      # Template management & dynamic features
│   └── validation_utils.py    # Text & layout validation
├── setup_mcp.py              # Interactive setup script
├── pyproject.toml            # Updated for v2.0
└── README.md                 # This documentation

🏗️ 架构优势

模块化设计

  • 7个专注的工具模块,职责明确
  • 11个组织有序的工具模块,覆盖全面功能
  • 68+个实用函数,按功能分类组织
  • 32个MCP工具,满足所有PowerPoint操作需求
  • 清晰的关注点分离,便于开发

代码组织

  • 跨模块逻辑分组相关功能
  • 更好的可发现性,工具分类清晰
  • 更高的可测试性,模块相互独立
  • 模块化结构支持未来扩展

全面覆盖

  • 完整的PowerPoint生命周期,从创建到演示
  • 高级模板系统,具备自动生成能力
  • 专业设计工具,提供多种效果和样式选项
  • 专业功能,包括超链接、连接线和幻灯片母版

开发体验

  • 模块间职责边界清晰
  • 更小的聚焦文件便于调试
  • 功能隔离简化测试流程
  • 关注点分离提升可维护性

🔄 版本2.0新特性

增强功能,全面覆盖工具! 更新后的服务器提供:

新增专业工具:

  • manage_hyperlinks - 文本元素的完整超链接管理
  • update_chart_data - 高级图表数据替换与更新
  • add_connector - 幻灯片元素间的连接线和箭头
  • manage_slide_masters - 访问幻灯片母版属性和版式
  • manage_slide_transitions - 基本幻灯片切换效果管理
  • auto_generate_presentation - AI驱动的演示文稿生成
  • optimize_slide_text - 文本优化提升可读性

增强现有工具:

  • manage_text - 现在支持format_runs操作的文本段落格式化
  • create_presentation_from_templates - 增强模板序列处理能力
  • apply_picture_effects - 扩展效果组合与选项

🔄 2.1 版本新增功能

新增文本提取功能! 现在您可以读取现有演示文稿中的内容:

新增文本提取工具:

  • extract_slide_text - 从特定幻灯片中提取所有文本内容,包括标题、占位符、文本形状和表格
  • extract_presentation_text - 从演示文稿的所有幻灯片中提取文本内容,并提供综合统计信息和合并输出

文本提取的主要功能:

  • 完整文本覆盖 - 从标题、占位符、文本框和表格单元格中提取内容
  • 结构化输出 - 按内容类型(标题、占位符、形状、表格)组织
  • 全演示文稿分析 - 幻灯片文本分布统计信息
  • 灵活的输出选项 - 单个幻灯片内容或合并的演示文稿文本
  • 错误处理 - 优雅处理无法处理的幻灯片

许可证

MIT

项目介绍

一款基于python-pptx的MCP(模型上下文协议)服务器,用于PowerPoint文件的操控。该服务器通过MCP协议提供创建、编辑和操纵PowerPoint演示文稿的工具。【此简介由AI生成】

定制我的领域
111.85 K245访问 GitHub