Skip to main content
Glama
GongRzhe

PowerPoint MCP Server

Office-PowerPoint-MCP-Server

鍛冶屋のバッジ

Python-pptx を使用した PowerPoint 操作用の MCP (Model Context Protocol) サーバーです。このサーバーは、MCP プロトコルを介して PowerPoint プレゼンテーションを作成、編集、操作するためのツールを提供します。

ポンプト

出力

デモの GIF -> (./public/demo.mp4)

デモ

特徴

  • すべての要素を含む Open XML プレゼンテーション (.pptx ファイル) をラウンドトリップします。

  • スライドを追加する

  • テキストプレースホルダーを入力します。たとえば、箇条書きのスライドを作成します。

  • 任意の位置とサイズでスライドに画像を追加する

  • スライドにテキストボックスを追加し、テキストのフォントサイズと太字を操作する

  • スライドに表を追加する

  • スライドに自動図形(多角形、フローチャート図形など)を追加する

  • 縦棒グラフ、横棒グラフ、折れ線グラフ、円グラフを追加して操作する

  • タイトルや件名などの主要なドキュメントプロパティにアクセスして変更する

Related MCP server: PowerPoint MCP Server

インストール

Smithery経由でインストール

Smithery経由で Claude Desktop 用の PowerPoint Manipulation Server を自動的にインストールするには:

npx -y @smithery/cli install @GongRzhe/Office-PowerPoint-MCP-Server --client claude

前提条件

  • Python 3.10以上

  • pip パッケージマネージャー

インストールオプション

オプション 1: セットアップ スクリプトを使用する (推奨)

PowerPoint MCP サーバーをセットアップする最も簡単な方法は、インストール プロセスを自動化する、提供されているセットアップ スクリプトを使用することです。

python setup_mcp.py

このスクリプトは次のことを行います。

  • 前提条件を確認する

  • インストール オプションを提供します:

    • PyPIからインストールする(ほとんどのユーザーに推奨)

    • ローカル開発環境をセットアップする

  • 必要な依存関係をインストールする

  • 適切なMCP構成ファイルを生成する

  • Claude Desktopとの統合手順を説明します

スクリプトは、環境に応じてさまざまなパスを提供します。

  • uvxがインストールされている場合は、UVXを使用して設定されます(推奨)

  • サーバーがすでにインストールされている場合は、設定オプションが提供されます。

  • サーバーがインストールされていない場合は、インストール方法を提供します

オプション2: 手動インストール

  1. リポジトリをクローンします。

    git clone https://github.com/GongRzhe/Office-PowerPoint-MCP-Server.git
    cd Office-PowerPoint-MCP-Server
  2. 依存関係をインストールします:

    pip install -r requirements.txt
  3. サーバーを実行可能にします。

    chmod +x ppt_mcp_server.py

使用法

サーバーの起動

サーバーを実行します。

python ppt_mcp_server.py

MCP構成

オプション1: ローカルPythonサーバー

MCP 設定構成ファイルにサーバーを追加します。

{
  "mcpServers": {
    "ppt": {
      "command": "python",
      "args": ["/path/to/ppt_mcp_server.py"],
      "env": {}
    }
  }
}

オプション 2: UVX を使用する (ローカルインストールは不要)

uvxがインストールされている場合は、ローカルにインストールせずに PyPI から直接サーバーを実行できます。

{
  "mcpServers": {
    "ppt": {
      "command": "uvx",
      "args": [
        "--from", "office-powerpoint-mcp-server", "ppt_mcp_server"
      ],
      "env": {}
    }
  }
}

利用可能なツール

プレゼンテーションツール

  • create_presentation : 新しいPowerPointプレゼンテーションを作成する

  • open_presentation : ファイルから既存の PowerPoint プレゼンテーションを開く

  • save_presentation : 現在のプレゼンテーションをファイルに保存する

  • get_presentation_info : 現在のプレゼンテーションに関する情報を取得する

  • set_core_properties : 現在のプレゼンテーションのコアドキュメントプロパティを設定する

スライドツール

  • add_slide : 現在のプレゼンテーションに新しいスライドを追加する

  • get_slide_info : 特定のスライドに関する情報を取得する

  • populate_placeholder : プレースホルダーにテキストを入力する

  • add_bullet_points : プレースホルダーに箇条書きを追加する

テキストツール

  • add_textbox : スライドにテキストボックスを追加する

画像ツール

  • add_image : スライドに画像を追加する

  • add_image_from_base64 : base64 でエンコードされた文字列からスライドに画像を追加する

テーブルツール

  • add_table : スライドに表を追加する

  • format_table_cell : 表のセルをフォーマットする

シェイプツール

  • add_shape : スライドに自動シェイプを追加する

チャートツール

  • add_chart : スライドにグラフを追加する

新しいプレゼンテーションを作成する

# Create a new presentation
result = use_mcp_tool(
    server_name="ppt",
    tool_name="create_presentation",
    arguments={}
)
presentation_id = result["presentation_id"]

# Add a title slide
result = use_mcp_tool(
    server_name="ppt",
    tool_name="add_slide",
    arguments={
        "layout_index": 0,  # Title slide layout
        "title": "My Presentation",
        "presentation_id": presentation_id
    }
)
slide_index = result["slide_index"]

# Populate subtitle placeholder
result = use_mcp_tool(
    server_name="ppt",
    tool_name="populate_placeholder",
    arguments={
        "slide_index": slide_index,
        "placeholder_idx": 1,  # Subtitle placeholder
        "text": "Created with PowerPoint MCP Server",
        "presentation_id": presentation_id
    }
)

# Save the presentation
result = use_mcp_tool(
    server_name="ppt",
    tool_name="save_presentation",
    arguments={
        "file_path": "my_presentation.pptx",
        "presentation_id": presentation_id
    }
)

チャートの追加

# Add a chart slide
result = use_mcp_tool(
    server_name="ppt",
    tool_name="add_slide",
    arguments={
        "layout_index": 1,  # Content slide layout
        "title": "Sales Data",
        "presentation_id": presentation_id
    }
)
slide_index = result["slide_index"]

# Add a column chart
result = use_mcp_tool(
    server_name="ppt",
    tool_name="add_chart",
    arguments={
        "slide_index": slide_index,
        "chart_type": "column",
        "left": 1.0,
        "top": 2.0,
        "width": 8.0,
        "height": 4.5,
        "categories": ["Q1", "Q2", "Q3", "Q4"],
        "series_names": ["2023", "2024"],
        "series_values": [
            [100, 120, 140, 160],
            [110, 130, 150, 170]
        ],
        "has_legend": True,
        "legend_position": "bottom",
        "has_data_labels": True,
        "title": "Quarterly Sales",
        "presentation_id": presentation_id
    }
)

ライセンス

マサチューセッツ工科大学

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GongRzhe/Office-PowerPoint-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server