Ppt_se
The PowerPoint Presentation Automation Server allows users to easily create and edit PowerPoint presentations using Python. It streamlines the process of generating slides and incorporating various elements like text, images, and charts, making it accessible for AI models and other applications.
Author

1282saa
Quick Info
Actions
Tags
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/ # 유틸리티 모듈 폴더 (기존 그대로 유지)
실행 흐름
main.py
- 메인 진입점에서 시작config_loader.py
로 디자인 설정 로드ppt_generator.py
로 슬라이드 내용 처리 및 PPT 생성utils
모듈들을 통해 PowerPoint 조작- 최종 파일은
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
: 항목 목록 생성