PPT自动生成服务

通过Model Context Protocol(MCP)提供自动生成和操作PowerPoint演示文稿的服务器,支持AI模型或其他客户端轻松创建和编辑PPT文档。

  • by 1282saa
  • Python
  • 本地部署
  • 更新于

使用说明

PowerPoint MCP 服务器

该项目提供了一种服务器,通过模型上下文协议(MCP)可以自动创建和操作PowerPoint演示文稿。它使得AI模型或其他客户端能够轻松创建和编辑PowerPoint文档。

主要功能

  • 创建新的PowerPoint演示文稿
  • 打开现有的PowerPoint文件
  • 添加和编辑幻灯片
  • 添加文本、图像、表格、图表等元素
  • 多种设计风格选择及应用(默认、极简、现代蓝、企业、深色模式)
  • 支持暗黑模式演示
  • 支持圆形编号样式及多种项目符号
  • 通过与Claude AI的联动,实现自然语言到PPT的生成
  • 通过MCP协议提供API
  • 提供HTTP API及标准输入输出(stdio)接口

项目结构

mcp开发/ ├── ppt_mcp_server.py # MCP服务器(支持HTTP API和stdio模式) ├── main.py # 主入口 ├── config_loader.py # 配置加载器 ├── ppt_generator.py # PPT生成模块 ├── ppt_utils.py # PPT 工具函数 ├── smithery.yaml # SmitheryAI 配置文件 ├── README.md # 文档 ├── requirements.txt # 所需包列表 ├── data/ # 数据文件夹 │ ├── slide_content.json # 幻灯片内容 │ └── design_system.json # 设计设置(包含多种风格) └── output/ # 生成文件保存文件夹


## 실행 흐름

1. `ppt_mcp_server.py` - MCP 서버로 시작 (HTTP API 또는 stdio 모드)
2. `config_loader.py`로 디자인 설정 로드
3. `ppt_generator.py`로 슬라이드 내용 처리 및 PPT 생성
4. `ppt_utils.py`의 함수들을 통해 PowerPoint 조작
5. 최종 파일은 지정된 경로에 저장

## 설치 방법

### 요구사항

- Python 3.6 이상
- 필수 패키지: python-pptx, flask, aiohttp

### 설치 단계

```bash
# 필요한 패키지 설치
pip install -r requirements.txt

执行方法

MCP服务器启动(HTTP模式)

python ppt_mcp_server.py --host 0.0.0.0 --port 5011

MCP服务器启动(stdio模式,用于SmitheryAI)

python ppt_mcp_server.py --stdio

可用的样式

服务器支持以下多种PPT设计风格:

  1. 默认基本风格

    • Pretendard 字体,居中对齐
    • 白色背景,蓝色圆形编号样式
    • 简洁现代的设计
  2. 最小化极简风格

    • Nanum Gothic字体,左对齐
    • 白色背景,简单的项目符号
    • 简洁明了的设计
  3. 现代蓝现代蓝色风格

    • 标题字体,左对齐
    • 白色背景,蓝色圆形号码样式
    • 蓝色系的现代设计
  4. 公司企业风格

    • Nanum Square 字体,左对齐
    • 白色背景,箭头形状的项目符号
    • 适合企业演示的设计
  5. 暗色模式深色模式风格

    • Freewheeling字体,居中对齐
    • 黑色背景,浅绿色圆形编号样式
    • 现代设计,以深色背景搭配亮色文字

若要选择或更改样式,可以使用以下工具:

  • get_styles查看可用的样式列表
  • set_style基本样式设置

可用工具

演示工具

  • create_presentation创建新演示文稿
  • open_presentation打开现有演示文稿
  • save_presentation保存演示文稿

幻灯片工具

  • add_slide添加幻灯片
  • set_title设置幻灯片标题
  • add_bullet_points在幻灯片中添加项目符号

内容生成工具

  • generate_from_template使用模板和数据创建演示文稿
  • claude_to_ppt使用 Claude AI 用自然语言生成 PPT

样式管理工具

  • get_styles查看可用样式列表
  • set_style基本样式设置

Claude 桌面联动

本服务器可与Claude桌面应用程序联动,将自然语言提示转换为PPT。

使用方法

  1. 运行Claude桌面应用程序
  2. 运行PPT MCP服务器
  3. 向MCP服务器发送自然语言提示:
claude_to_ppt "인공지능에 관한 발표 자료를 만들어줘" --output_path "ai_presentation.pptx" --style_name "modern_blue"

SmitheryAI 连接

本服务器可与SmitheryAI联动, smithery.yaml 文件已设置为允许SmitheryAI将此服务器用作MCP(模型上下文协议)。

SmitheryAI中使用的方法

  1. SmitheryAI 执行
  2. 可以使用以下工具:
    • claude_to_ppt通过Claude用自然语言生成PPT
    • get_styles查看可用的PPT样式列表
    • set_style基本PPT样式设置
    • 其他PPT操作工具

PPT风格自定义

data/design_system.json 可以通过修改文件来更改设计风格或添加新风格。

风格结构

{
  "styles": {
    "스타일_이름": {
      "slide_layouts": { ... },
      "slide_text_settings": {
        "title_font": "폰트명",
        "alignment": "정렬(center/left/right)",
        ...
      },
      "color_scheme": {
        "background": [R, G, B],
        "primary": [R, G, B],
        ...
      },
      "bullet_settings": {
        "type": "bullet 타입(circle_number/standard)",
        ...
      },
      ...
    },
    ...
  },
  "current_style": "기본_스타일_이름"
}

解决问题

  • 错误:找不到软件包根据上面的信息,执行如下指令: pip install -r requirements.txt 使用命令安装所需的软件包。
  • 错误:Claude桌面连接失败确认 Claude 桌面应用程序是否正在运行,以及是否在指定端口(默认值:5000)上运行。
  • 错误:无法保存演示文稿请确认输出路径是否有效,是否具有写入权限。

API 示例

使用Claude生成PPT(HTTP API)

curl -X POST http://localhost:5011/tools/claude-to-ppt \
  -H "Content-Type: application/json" \
  -d '{
    "message": "인공지능의 윤리적 이슈에 대한 발표자료",
    "output_path": "ai_ethics.pptx",
    "style_name": "modern_blue"
  }'

检查可用样式 (HTTP API)

curl -X GET http://localhost:5011/tools/get_styles