🔷

Gemini CLI×MCPでスライド資料作成を試してみた結果...

に公開

MTECの鈴木です。今回は「スライド資料の自動生成」を試した結果についてご紹介します。

TL;DR

  • Gemini CLIを用いて論文(pdf)の解説資料(ppt)を作成できるかを試みる
  • pdf操作とppt操作はMCPを利用
  • ppt操作が難しくうまく指示を守ってくれない
  • 4Pほどの論文の解説資料を作成するのにもそれなりにトークンを消費する
  • 良い感じの資料を作るためには、スライド生成サービスを使うor自分で色々と作り込むか

モチベーション

今回はGemini CLIを用いて論文(pdf)の内容を解説したパワーポイント(ppt)資料を作成できるかを試してみます。一般に研究においては「サーベイ⇒先行研究の論文精読⇒研究テーマ策定⇒研究」といったフローがあります。現時点においては生成AI(Deep Researchなど)でサーベイを行い、論文(pdf)の内容を精読してくれるようになってきていますが、その内容をスライド資料で分かり易くまとめるといったことまで出来ると、(パワーポイントが主となる企業においては)他の人への情報共有の手段として有効なのではと考えられます。

準備

Gemini CLIのインストールは、下記の記事を参考にしています。
https://qiita.com/mix_dvd/items/384e452b7c8233fd1907

envファイルで、利用するモデルとAPIキーを設定します。今回は後述するようにかなりトークンを消費するのでgemini-2.5-flashにしました。

.env
GEMINI_MODEL=gemini-2.5-flash
GEMINI_API_KEY=your_api_key_here

また、pdf操作とppt操作はMCP (Model Context Protocol)で行うことにします。それぞれ既存のMCPを利用しており、pdf操作はpymupdf4llm-mcp、ppt操作はOffice-PowerPoint-MCP-Serverを採用しています。

MCPの呼び出し方は、下記の記事を参考にしています。
https://zenn.dev/acntechjp/articles/77a521ec0ac654

実際に、以下のようにsettings.jsonを作成しています。

settings.json
{
  "mcpServers": {
    "ppt": {
      "command": "uvx",
      "args": [
        "--from",
        "office-powerpoint-mcp-server",
        "ppt_mcp_server"
      ],
      "trust": true
    },
    "pymupdf4llm-mcp": {
      "command": "uvx",
      "args": [
        "pymupdf4llm-mcp@latest",
        "stdio"
      ],
      "trust": true
    }
  }
}

実際にターミナル画面でgeminiコマンドを実行しGemini CLIを起動し、/mcpと打った時に上記のMCPのtoolが見れていればOKです。

さらに、Office-PowerPoint-MCP-Serverではテンプレートを使えるとのことだったので、templates直下に自分のテンプレートファイルを置いてみました。(デザインは適当に作りました。)

Supported formats: .pptx and .potx files
Existing content: Templates can contain existing slides (preserved during creation)
Layout availability: All custom layouts and slide masters are accessible
Search locations: Configurable via PPT_TEMPLATE_PATH environment variable
Default search paths: Current directory, ./templates, ./assets, ./resources

これは事前に実験した際に、デフォルトのスライドデザインだと、白地のデザインに文字サイズが32ptとかなり大きいサイズで設定されており、スライドから文字がはみ出してしまうことが確認されたためです。プロンプトで文字サイズを指定してもうまく行かなかったので本記事の執筆時点ではテンプレートのスライドマスターで文字サイズをコントロールせざるを得ないと考えています。

スライド資料の自動生成

今回は以下のようなプロンプト文を入力しました。(※何回か試行錯誤)

@sample.pdf
この論文をプレゼン発表用のパワーポイント資料にまとめてください。
まとめる際は以下の指示に従ってください。
・テンプレートのスライドデザインを利用する
・要点ごとにスライドを作成し、全体的に話の流れが分かり易い構成にする
・表紙と中表紙と本文のスライドデザインは使い分ける
・2P目に本文のスライドデザインを用いて目次を作成する
・スライド1ページあたり最大200字以内にする
・PDFに含まれる図表や画像(Figure)は同ディレクトリに保存してスライドに添付する
・図表や画像を貼りつける場合はスライドの下側に貼りつける
・図表や画像を貼りつけたスライドにおける文章は2文以内で主張を簡潔に述べる

Gemini CLIではディレクトリ配下のファイルを@で指定することで、そのファイルを対象に処理を実行することが出来ます。今回はJSAI2025で発表した自分の論文を対象としました。
(内容についてはブログ解説記事を是非ご一読ください。)

https://confit.atlas.jp/guide/event/jsai2025/subject/1Win4-59/tables?cryptoId=

すると、色々とToolを呼び出しながら処理が実行され数分でスライド資料が完成します。ちなみに一回の実行で、入力に約350万トークン、出力に約5000トークン消費しています。
(※何回か試してみましたが、入力はだいたい200~350万トークン程度でした。)

出来上がりはイマイチ

結論から申し上げると、全然うまく行きませんでした(涙)。プロンプト文を変えたりと、試行錯誤も行ったのですが、何かしら課題が残る結果となりました。いくつか完成したスライドのスクリーンショットを掲載していきます。

まず、テンプレートはうまく使えているのですが、図表がうまく貼りつけ出来ていない例です。これはおそらくですが、テンプレートのpptファイルの設定とMCPでのppt操作の平仄が揃っていないためだと思われます。

次に自分のテンプレートではないものを使った例です。上記のプロンプトのように、テンプレートファイルの存在を曖昧に書くと、Office-PowerPoint-MCP-Server側のテンプレートファイルなるものが呼び出されることがあるみたいです。この場合、図表は貼りつけ出来ているのですが、スライドの出来上がりはよくわからないことになっています...。

いずれにせよ、プロンプト文にある

・PDFに含まれる図表や画像(Figure)は同ディレクトリに保存してスライドに添付する

については、ちゃんと画像が保存されており、従ってpdf操作のMCP(pymupdf4llm-mcp)はそれなりに機能していると思われます。また、pdfからmarkdown形式で論文をまとめるタスクについては生成AIの得意とするところかと思いますので、結局はppt操作のMCPのToolがうまく使いこなせていないことが要因かな、と想定されます。

どうすれば良いのか?

Gemini CLIではなく、既存のスライド生成サービスを使うのが一つの選択肢になるかなと思います。最近では、Manus(マヌス)のスライド自動生成機能が良いとのことなので、MCPの組み合わせで頑張るよりも、それに特化したサービスを活用するのが楽かと思われます。下記の記事の出来上がり例を見る限り、見栄えのレベル感が全然違いますね。

https://note.com/doerstokyo_kb/n/n7d00f30db450

もう1つは、MCPやAIエージェントのワークフローを作り込むという手段が考えられるかなと思います。こちらは当然ながらコストがかかるものの、自分好みのスライドのデザインや構成にすることが出来るかと思います。

さいごに

ということで、今回はGemini CLIとMCPでどれだけの資料を作れるのかを試してみましたが、お世辞にも良いクオリティとは言えない結果でした。個人的には、(今のところはですが、)生成AIにpdf2markdownで分かり易くまとめてもらって、markdownからスライド資料の作成は自分好みに作っていく方がしっくりくるかなという印象です。また、スライド資料にまとめるときに自分で内容を深く理解していくことが出来る気がするので、その観点においても何でもかんでも自動化していくのも良くないな~と思った次第です。

最後までお読みいただきありがとうございました!

MTEC Tech Blog

Discussion