이 프로젝트는 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]python main.py기본적으로 서버는 localhost:8000에서 실행됩니다. 다른 호스트/포트를 사용하려면:
python main.py --host 0.0.0.0 --port 8080python test_client.pycreate_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]명령으로 필요한 패키지를 설치합니다. - 오류: 서버를 시작할 수 없음: 포트가 이미 사용 중인지 확인하고, 다른 포트를 지정해 보세요.
- 오류: 프레젠테이션을 저장할 수 없음: 출력 경로가 유효한지, 쓰기 권한이 있는지 확인하세요.
data/slide_content.json의 기본 구조는 다음과 같습니다:
{
"title": "프레젠테이션 제목",
"mainTopics": {
"주제1": {
"하위주제1": { ... },
"하위주제2": { ... }
},
"주제2": [ ... ]
}
}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: 항목 목록 생성