Built by Metorial, the integration platform for agentic AI.

Learn More

moon/ppt_se

PowerPoint Presentation Automation Server

    Server Summary

    • Create new PowerPoint presentations

    • Open existing PowerPoint files

    • Add and edit slides

    • Insert text, images, tables, and charts

    • Apply design styles consistently

    • Provide API via MCP protocol

PowerPoint MCP 서버

이 프로젝트는 Model Context Protocol(MCP)을 통해 PowerPoint 프레젠테이션을 자동으로 생성하고 조작할 수 있는 서버를 제공합니다. AI 모델이나 다른 클라이언트가 쉽게 파워포인트 문서를 만들고 편집할 수 있게 합니다.

주요 기능

  • 새 PowerPoint 프레젠테이션 생성
  • 기존 PowerPoint 파일 열기
  • 슬라이드 추가 및 편집
  • 텍스트, 이미지, 표, 차트 등 요소 추가
  • 디자인 시스템 설정을 통한 일관된 스타일 적용
  • MCP 프로토콜을 통한 API 제공

프로젝트 구조

mcp개발/ ├── main.py # 메인 진입점 (새로 생성) ├── config_loader.py # 설정 로더 (새로 생성) ├── ppt_generator.py # PPT 생성 모듈 (슬라이드생성.py 이름 변경) ├── README.md # 문서 (자동화_PPT_README.md 이름 변경) ├── requirements.txt # 필요 패키지 목록 ├── data/ # 데이터 폴더 │ ├── slide_content.json # 슬라이드 내용 (슬라이드.json 이동) │ └── design_system.json # 디자인 설정 (ppt_design_system_config_v2.json 이동) ├── output/ # 생성된 파일 저장 폴더 └── utils/ # 유틸리티 모듈 폴더 (기존 그대로 유지)

실행 흐름

  1. main.py - 메인 진입점에서 시작
  2. config_loader.py로 디자인 설정 로드
  3. ppt_generator.py로 슬라이드 내용 처리 및 PPT 생성
  4. utils 모듈들을 통해 PowerPoint 조작
  5. 최종 파일은 output 폴더에 저장

설치 방법

요구사항

  • Python 3.6 이상
  • python-pptx 라이브러리
  • mcp 라이브러리

설치 단계

# 필요한 패키지 설치
pip install python-pptx mcp[cli]

실행 방법

MCP 서버 시작

python main.py

기본적으로 서버는 localhost:8000에서 실행됩니다. 다른 호스트/포트를 사용하려면:

python main.py --host 0.0.0.0 --port 8080

테스트 클라이언트 실행

python test_client.py

사용 가능한 도구

프레젠테이션 도구

  • create_presentation: 새 프레젠테이션 생성
  • open_presentation: 기존 프레젠테이션 열기
  • save_presentation: 프레젠테이션 저장

슬라이드 도구

  • add_slide_to_presentation: 슬라이드 추가
  • add_content_to_slide: 슬라이드에 내용 추가
  • add_bullet_points_to_slide: 슬라이드에 글머리 기호 추가

템플릿 도구

  • generate_from_template: 템플릿과 데이터로 프레젠테이션 생성

문제 해결

  • 오류: 패키지를 찾을 수 없음: pip install python-pptx mcp[cli] 명령으로 필요한 패키지를 설치합니다.
  • 오류: 서버를 시작할 수 없음: 포트가 이미 사용 중인지 확인하고, 다른 포트를 지정해 보세요.
  • 오류: 프레젠테이션을 저장할 수 없음: 출력 경로가 유효한지, 쓰기 권한이 있는지 확인하세요.

파일 형식

슬라이드 내용 파일 (JSON)

data/slide_content.json의 기본 구조는 다음과 같습니다:

{
  "title": "프레젠테이션 제목",
  "mainTopics": {
    "주제1": {
      "하위주제1": { ... },
      "하위주제2": { ... }
    },
    "주제2": [ ... ]
  }
}

디자인 시스템 설정 (JSON)

data/design_system.json의 기본 구조는 다음과 같습니다:

{
  "slide_text_settings": {
    "title_font": "Arial",
    "title_font_size": 32,
    ...
  },
  "table_styles": {
    "default": {
      "header_bg_color": [200, 200, 200],
      ...
    }
  },
  ...
}

커스터마이징

내용 커스터마이징

data/slide_content.json 파일을 수정하여 프레젠테이션 내용을 변경할 수 있습니다.

디자인 커스터마이징

data/design_system.json 파일을 수정하여 디자인 스타일을 변경할 수 있습니다.

코드 커스터마이징

ppt_generator.py 파일의 다음 메서드를 수정하여 슬라이드 생성 방식을 변경할 수 있습니다:

  • _create_title_slide: 표지 슬라이드 생성
  • _create_topic_slides: 주제별 슬라이드 생성
  • _create_subtopic_slide: 하위 주제 슬라이드 생성
  • _create_term_table: 용어 정의 테이블 생성
  • _create_item_list: 항목 목록 생성