mcpField
M
MCP Server Demo - PowerPoint Automation

MCP Server Demo - PowerPoint Automation

ローカル
github.com/buckylee2019生産性1741 週間前に更新

MCP Server Demo - PowerPoint Automation について

python-pptx を使い、AI アシスタントが PowerPoint プレゼンテーションを作成、確認、編集できる MCP サーバーです。プレゼンテーション、スライド、テキスト、図形、表、グラフを操作できます。

主な機能

  1. 01プレゼンテーションの作成、開閉、保存
  2. 02スライドの追加、削除、管理
  3. 03テキストの取得と書式設定
  4. 04図形の位置とプロパティの変更
  5. 05表の作成とセルの編集
  6. 06複数種類のグラフの追加

活用シーン

  1. 01プレゼンテーションの内容を分割して翻訳
  2. 02スライドのテキストと書式の更新
  3. 03スライドへの画像、表、グラフの追加

MCP 対応

この MCP サーバーは、PowerPoint のプレゼンテーションやスライドを管理するツールを AI アシスタントに公開し、内容の確認、編集、保存を可能にします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

PowerPoint 自動化 MCP サーバー

python-pptx を使用して包括的な PowerPoint 自動化機能を提供する、Model Context Protocol(MCP)サーバーです。このサーバーを使用すると、AI アシスタントはプログラムから PowerPoint プレゼンテーションを作成、変更、管理できます。

デモ

https://github.com/user-attachments/assets/3daf3bef-4d75-4639-a891-0e64b80b4807

機能

  • プレゼンテーション管理:プレゼンテーションの作成、開く、保存、閉じる
  • スライド操作:さまざまなレイアウトでスライドを追加、削除、管理
  • コンテンツ作成:テキストボックス、画像、表、グラフを追加
  • テキスト書式設定:フォントスタイル(名前、サイズ、太字、斜体)を指定してテキストを更新
  • 図形操作:図形のプロパティを移動、サイズ変更、変更
  • 表の操作:表を作成し、セルの内容を更新
  • グラフ作成:データを使ってさまざまな種類のグラフ(縦棒、折れ線、円、横棒)を追加
  • グループ管理:図形をグループ解除して操作しやすくする
  • レイアウトのサポート:さまざまなスライドレイアウトやプレースホルダーを使用

推奨プロンプト

翻訳シナリオ

プレゼンテーションを翻訳する場合は、コンテキストのあふれを防ぎ、データの安全性を確保するため、バッチに分けて処理します。

Translate this presentation [absolute path of ppt], processing 10 slides at a time and saving after each batch of 10 slides.

この方法には、次の利点があります。

  • 大規模なプレゼンテーションでのトークン制限の問題を防ぎます
  • 進行状況を段階的に保存し、データの損失を防ぎます
  • バッチごとに確認できます

インストール

git clone https://github.com/buckylee2019/powerpoint-automation-mcp.git
cd powerpoint-automation-mcp
uv sync

サーバーの実行

uv run --directory /path/to/powerpoint-automation-mcp mcp-ppt-server

API リファレンス

このサーバーは、包括的な PowerPoint 自動化を実現する25以上のツールを提供します。API をシンプルにするため、すべての操作は1つのアクティブなプレゼンテーションを対象に実行されます。

プレゼンテーション管理
initialize_powerpoint() -> bool

PowerPoint 自動化システムを初期化します。

create_presentation(template: str = None) -> Dict

必要に応じてテンプレートから新しいプレゼンテーションを作成します。

  • template:テンプレートファイルへの任意のパス
open_presentation(file_path: str) -> Dict

既存の PowerPoint ファイルを開きます。

  • file_path:.pptx ファイルのフルパス
get_presentation() -> Dict

現在アクティブなプレゼンテーションの情報を取得します。

save_presentation(path: str = None) -> Dict

アクティブなプレゼンテーションを保存します。

  • path:保存先の任意のパス(省略した場合は現在のパスを使用)
close_presentation() -> Dict

アクティブなプレゼンテーションを閉じます。

スライド管理
get_slides() -> List[Dict]

メタデータ付きで、すべてのスライドの一覧を取得します。

add_slide(layout_index: int = 1) -> Dict

指定したレイアウトで新しいスライドを追加します。

  • layout_index:レイアウトの種類(0=タイトル、1=タイトル+コンテンツなど)
delete_slide(slide_index: int) -> Dict

プレゼンテーションからスライドを削除します。

  • slide_index:0から始まるスライドインデックス
get_slide_layouts() -> Dict

利用可能なすべてのスライドレイアウトとそのプロパティを取得します。

set_slide_title(slide_index: int, title: str) -> Dict

スライドのタイトルを設定します。

コンテンツの確認
get_slide_shapes(slide_index: int) -> Dict

必ず最初に実行してください! スライド内のすべての図形と、そのプロパティおよび ID を取得します。

  • 図形の種類、位置、サイズ、テキストコンテンツを返します
  • グループ解除が必要な場合があるグループ化された図形を特定します
get_slide_text(slide_index: int) -> Dict

スライド内のすべてのテキストコンテンツを図形ごとに整理して取得します。

  • 最初にグループ解除が必要な場合があるグループ化された図形を検出します
テキストと図形の操作
update_text(slide_index: int, shape_index: int, text: str, font_name: str = None, font_size: int = None, bold: bool = None, italic: bool = None, preserve_existing: bool = True) -> Dict

任意の書式設定を指定してテキストコンテンツを更新します。

  • 既存の書式設定を保持しながら、フォントスタイルを指定できます
  • preserve_existing:指定されていないプロパティについて、元の書式設定を保持します
update_shape_by_id(slide_index: int, shape_id: str, text: str = None, left: float = None, top: float = None, width: float = None, height: float = None) -> Dict

ID を指定して図形のプロパティを更新します。

  • 位置とサイズの単位はインチです
コンテンツ作成
add_textbox(slide_index: int, text: str, left: float = 1, top: float = 1, width: float = 4, height: float = 2) -> Dict

スライドにテキストボックスを追加します。

add_image(slide_index: int, image_path: str, left: float = 1, top: float = 1, width: float = None, height: float = None) -> Dict

スライドに画像を追加します。

  • 幅または高さのみを指定した場合、アスペクト比を維持します
add_table(slide_index: int, rows: int, cols: int, left: float = 1, top: float = 1, width: float = 8, height: float = 4) -> Dict

スライドに表を追加します。

add_chart(slide_index: int, chart_type: str, categories: List[str], series_names: List[str], series_values: List[List[float]], left: float = 1, top: float = 1, width: float = 8, height: float = 4, has_legend: bool = True) -> Dict

複数のデータ系列を含むグラフを追加します。

  • chart_type:'COLUMN'、'LINE'、'PIE'、'BAR'
  • categories:X 軸のラベル
  • series_names:凡例のラベル
  • series_values:各系列のデータ値
表の操作
update_table_cell(slide_index: int, shape_index: int, row: int, col: int, text: str) -> Dict

指定した表のセルのテキストを更新します。

get_table_content(slide_index: int, shape_index: int) -> Dict

表のすべての内容を取得します。

高度な操作
ungroup_shapes(slide_index: int) -> Dict

スライド内のテキストを含むグループをすべてグループ解除します。

  • ネストされたグループを含まない単純なグループのみを処理します
  • 図形の位置とプロパティを保持します
  • テキストを含まないグループはスキップします

使用ワークフロー

  1. 初期化:initialize_powerpoint() を呼び出します
  2. 開く/作成する:open_presentation() または create_presentation() を使用します
  3. 確認する:スライドの構造を把握するため、必ず最初に get_slide_shapes() を実行します
  4. 必要に応じてグループ解除する:グループ化された図形が検出された場合は、ungroup_shapes() を使用します
  5. 変更する:適切なツールを使用してコンテンツを追加/変更します
  6. 保存する:変更を保存するため、save_presentation() を呼び出します

エラー処理

すべての関数は、成功時のデータまたはエラー情報を含む辞書を返します。

// Success response
{
  "success": true,
  "message": "Operation completed",
  "data": {...}
}

// Error response
{
  "error": "Description of what went wrong"
}

MCP の設定

MCP の設定に追加します。

{
  "mcpServers": {
    "powerpoint-automation": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/powerpoint-automation-mcp",
        "mcp-ppt-server"
      ]
    }
  }
}

依存関係

  • python-pptx:PowerPoint ファイルの操作
  • mcp:Model Context Protocol フレームワーク
  • fastmcp:MCP サーバーを簡単に作成するためのツール

ライセンス

MIT ライセンス。詳細は LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。