MCP 문서 관리

메뉴

Office-PowerPoint-MCP-Server

Office-PowerPoint-MCP-Server

Office-PowerPoint-MCP-Server는 Microsoft PowerPoint 문서를 생성, 읽기 및 조작하기 위한 MCP 서버입니다. 이 서버를 통해 LLM은 프레젠테이션을 처음부터 생성하거나 기존 프레젠테이션을 수정하고, 슬라이드를 추가, 편집, 서식 지정할 수 있습니다. 또한 텍스트, 이미지, 차트, 표, 도형 등의 요소를 관리하고 애니메이션이나 전환 효과를 적용하는 기능도 제공합니다.

특징

  • 프레젠테이션 관리: 새 프레젠테이션 생성, 기존 파일 열기, 저장 및 내보내기
  • 슬라이드 관리: 슬라이드 추가, 삭제, 순서 변경, 복제
  • 레이아웃 적용: 다양한 슬라이드 레이아웃 및 템플릿 적용
  • 콘텐츠 편집: 텍스트, 이미지, 표, 차트, 도형 등의 요소 추가 및 편집
  • 서식 적용: 색상 테마, 글꼴, 스타일 등 프레젠테이션 서식 지정
  • 애니메이션: 슬라이드 요소에 애니메이션 및 전환 효과 적용
  • 메타데이터 관리: 제목, 저자, 키워드 등 문서 메타데이터 편집
  • PDF 내보내기: 프레젠테이션을 PDF 및 기타 형식으로 내보내기
  • 일괄 처리: 여러 프레젠테이션의 일괄 생성 및 수정

API

도구

프레젠테이션 관리 도구

  • create_presentation: 새 프레젠테이션 생성
  • 입력: 제목, 테마, 옵션
  • 출력: 생성된 프레젠테이션 ID 및 경로

  • open_presentation: 기존 프레젠테이션 열기

  • 입력: 파일 경로
  • 출력: 로드된 프레젠테이션 ID 및 메타데이터

  • save_presentation: 프레젠테이션 저장

  • 입력: 프레젠테이션 ID, 저장 경로, 형식
  • 출력: 저장 결과 및 파일 정보

슬라이드 관리 도구

  • add_slide: 슬라이드 추가
  • 입력: 프레젠테이션 ID, 레이아웃 유형, 위치
  • 출력: 추가된 슬라이드 ID

  • delete_slide: 슬라이드 삭제

  • 입력: 프레젠테이션 ID, 슬라이드 인덱스
  • 출력: 삭제 결과

  • duplicate_slide: 슬라이드 복제

  • 입력: 프레젠테이션 ID, 소스 슬라이드 인덱스, 대상 위치
  • 출력: 복제된 슬라이드 ID

  • reorder_slides: 슬라이드 순서 변경

  • 입력: 프레젠테이션 ID, 슬라이드 인덱스 배열
  • 출력: 재정렬 결과

콘텐츠 편집 도구

  • add_text: 텍스트 요소 추가
  • 입력: 프레젠테이션 ID, 슬라이드 인덱스, 텍스트 내용, 위치, 서식
  • 출력: 추가된 텍스트 요소 ID

  • add_image: 이미지 추가

  • 입력: 프레젠테이션 ID, 슬라이드 인덱스, 이미지 경로/URL, 위치, 크기
  • 출력: 추가된 이미지 요소 ID

  • add_shape: 도형 추가

  • 입력: 프레젠테이션 ID, 슬라이드 인덱스, 도형 유형, 위치, 크기, 스타일
  • 출력: 추가된 도형 요소 ID

  • add_chart: 차트 추가

  • 입력: 프레젠테이션 ID, 슬라이드 인덱스, 차트 유형, 데이터, 위치, 크기
  • 출력: 추가된 차트 요소 ID

  • add_table: 표 추가

  • 입력: 프레젠테이션 ID, 슬라이드 인덱스, 행/열 수, 데이터, 위치, 스타일
  • 출력: 추가된 표 요소 ID

서식 및 디자인 도구

  • apply_theme: 테마 적용
  • 입력: 프레젠테이션 ID, 테마 이름 또는 경로
  • 출력: 테마 적용 결과

  • format_element: 요소 서식 지정

  • 입력: 프레젠테이션 ID, 요소 ID, 서식 옵션(색상, 글꼴, 크기 등)
  • 출력: 서식 적용 결과

  • apply_animation: 애니메이션 적용

  • 입력: 프레젠테이션 ID, 요소 ID, 애니메이션 유형, 옵션
  • 출력: 애니메이션 적용 결과

유틸리티 도구

  • export_to_pdf: PDF로 내보내기
  • 입력: 프레젠테이션 ID, 출력 경로, 옵션
  • 출력: 내보내기 결과 및 파일 정보

  • export_to_image: 슬라이드를 이미지로 내보내기

  • 입력: 프레젠테이션 ID, 슬라이드 인덱스 배열, 이미지 형식, 옵션
  • 출력: 내보내진 이미지 파일 경로 목록

  • get_presentation_info: 프레젠테이션 정보 조회

  • 입력: 프레젠테이션 ID
  • 출력: 슬라이드 수, 제목, 작성자 등 프레젠테이션 정보

사용 방법

설치

# npm을 통한 설치
npm install -g office-powerpoint-mcp-server

# 또는 GitHub 저장소에서 직접 설치
git clone https://github.com/author/office-powerpoint-mcp-server
cd office-powerpoint-mcp-server
npm install

필요 조건

  • Windows 환경: Microsoft PowerPoint가 설치되어 있어야 합니다.
  • macOS/Linux 환경: PowerPoint Online API 연결을 위한 Microsoft 계정 또는 호환 라이브러리
  • Node.js 14 이상이 설치되어 있어야 합니다.

구성

Claude Desktop에서 이 서버를 사용하려면 다음과 같이 설정할 수 있습니다:

{
  "mcpServers": {
    "powerpoint": {
      "command": "npx",
      "args": ["-y", "office-powerpoint-mcp-server"],
      "env": {
        "MICROSOFT_OFFICE_PATH": "/path/to/office",
        "OUTPUT_DIRECTORY": "/path/to/output"
      }
    }
  }
}

사용 예시

// 새 프레젠테이션 생성
const presentation = await create_presentation({
  title: "분기별 사업 보고서",
  theme: "professional"
});

// 제목 슬라이드 추가
const titleSlide = await add_slide({
  presentationId: presentation.id,
  layout: "title"
});

// 제목 텍스트 추가
await add_text({
  presentationId: presentation.id,
  slideIndex: 0,
  text: "2025년 2분기 사업 보고서",
  position: "title",
  format: {
    fontSize: 44,
    fontFamily: "Arial",
    color: "#2E5090"
  }
});

// 부제목 추가
await add_text({
  presentationId: presentation.id,
  slideIndex: 0,
  text: "마케팅 부서",
  position: "subtitle",
  format: {
    fontSize: 24,
    fontFamily: "Arial",
    color: "#404040"
  }
});

// 내용 슬라이드 추가
const contentSlide = await add_slide({
  presentationId: presentation.id,
  layout: "title_and_content"
});

// 슬라이드 제목 추가
await add_text({
  presentationId: presentation.id,
  slideIndex: 1,
  text: "분기별 실적",
  position: "title",
  format: {
    fontSize: 32,
    fontFamily: "Arial"
  }
});

// 차트 추가
await add_chart({
  presentationId: presentation.id,
  slideIndex: 1,
  chartType: "column",
  data: {
    categories: ["1월", "2월", "3월"],
    series: [
      {
        name: "매출",
        values: [4200, 4800, 5400]
      },
      {
        name: "비용",
        values: [3100, 3300, 3600]
      }
    ]
  },
  position: "content",
  size: { width: 600, height: 400 }
});

// 프레젠테이션 저장
await save_presentation({
  presentationId: presentation.id,
  path: "/path/to/quarterly_report.pptx"
});

// PDF로 내보내기
await export_to_pdf({
  presentationId: presentation.id,
  path: "/path/to/quarterly_report.pdf"
});

연결된 구성 요소

  • Office-Word-MCP-Server - PowerPoint 프레젠테이션과 Word 문서 간의 콘텐츠 공유 및 통합
  • Excel - Excel 데이터를 PowerPoint 차트 및 표로 가져오기
  • Image Generation - AI 생성 이미지를 프레젠테이션에 통합
  • Markdownify - 프레젠테이션을 Markdown으로 변환하거나 Markdown에서 프레젠테이션 생성