本記事は 春のスキルアップ応援フェア2026 4/25付の記事です。 |
こんにちは。Masedatiです。
私はLT(ライトニングトーク)が好きですが、スライド作成にもついつい時間をかけてしまいます。
最近登壇や講義活動が多く、いつの間にか1日が終わっていることもしばしばです。
そこで、今回ご紹介するものは、そんなスライド作成の悩みを解決してくれるツール「spec-driven-presentation-maker」です。
spec-driven-presentation-makerとは
「spec-driven-presentation-maker」は、AWS公式のサンプルリポジトリで公開されているプレゼンテーション作成ツールキットです。
仕様駆動開発の考え方をプレゼン作成に応用したもので、「何を伝えるか」を仕様として設計し、生成AIがテンプレートに沿って自動的にスライドを作成してくれます。
Layer1~4まで定義されており、利用規模や用途に応じて、アーキテクチャを選ぶことができます。
| レイヤー | 用途 | 必要なもの |
| Layer1:スキル(エンジン) | プレゼン生成、プレゼンテンプレート解析、レイアウト最適化など、PC上でPythonスクリプトとして使います。 | Python, uv |
| Layer2:ローカルMCPサーバー | Layer1をMCPプロトコル化したものです。
KiroやVS Codeなど任意のMCPクライアントから「プレゼン作って」と命令するだけで使えます。 |
Python, uv |
| Layer3:リモートMCPサーバー | AWSにデプロイして、MCPサーバを共有できるようになります。 | AWSアカウント, CDK |
| Layer4:エージェント + Web UI | Webブラウザからチャット画面でプレゼンを作れるようになります。 | AWSアカウント, CDK |
今回私は、Kiroでプレゼン作成を支援してほしいため、Layer2を構築してみようと思います。
やってみた
公式ドキュメントをもとに構築を行います。
Layer2の構築
リポジトリのクローン
リポジトリをクローンします。
git clone https://github.com/aws-samples/sample-spec-driven-presentation-maker.git
サーバーの起動
Layer2をセットアップするためのフォルダは「mcp-local」です。
cd msp-local uv sync uv run python server.py
uv syncでやっていること
msp-localフォルダ配下にある pyproject.tomlを読み取って、必要なライブラリを一括インストールします。
server.pyでやっていること
FastMCP というライブラリを使って、MCPサーバーを作成します。
Layer2でのMCPツールは以下17個です。
| ツール | 役割 |
| init_presentation | プレゼンの作業フォルダを作成 |
| analyze_template | PPTXテンプレートのレイアウト・色・フォントを解析 |
| generate_pptx | JSONからPPTXファイルを生成 |
| get_preview | スライドのPNGプレビューを生成 |
| measure_slides | テキストがはみ出していないか計測 |
| search_assets | アイコン・画像をキーワード検索 |
| list_templates | skill/templates/ 内の .pptx ファイル名一覧を返す |
| list_asset_sources | 利用可能なアセットソースの名前、件数、説明の一覧を返す |
| list_styles | デザインスタイルの名前と説明の一覧を返す |
| read_examples | デザインパターン・コンポーネントの例を読み取る |
| list_workflows | references/workflows/ 内のワークフロー文書の名前と説明の一覧を返す |
| read_workflows | 指定したワークフロー文書の内容を返す |
| list_guides | references/guides/ 内のガイド文書の名前と説明の一覧を返す |
| read_guides | 指定したガイド文書の内容を返す |
| code_to_slide | ソースコードをシンタックスハイライト付きのスライド要素JSONに変換する。 |
| pptx_to_json | 既存のPPTXファイルをJSON表現に逆変換する |
| grid | CSS Grid風の仕様から要素の配置座標を計算する |
server.py は標準入出力で通信するMCPサーバーなので、起動すると何も表示されずに入力待ちの状態になります。
ここでrunするとターミナルが固まっているように見えますが、裏でMCPクライアントからの接続を待っています。
ここでは動作確認のため、エラーがなければCtrl + C で停止してください。
後続手順でKiroなどのMCP設定に登録すれば、MCPクライアントが自動で起動・接続してくれます。
MCPクライアントの設定
あとはKiroのMCP設定ファイルに以下を追加するだけです。
なお、mcp-localのパスだけ変更する必要があります。
{
"mcpServers": {
"spec-driven-presentation-maker": {
"command": "uv",
"args": [
"run",
"--directory",
"/Users/hoge/sample-spec-driven-presentation-maker/mcp-local",
"python",
"server.py"
]
}
}
}
他のMCPと同じように認識してくれました。
プレゼンテーションを作って
「プレゼンテーションを作って」と命令すると、テーマ・対象者などのヒアリングがスタートします。
さっそく、このツールを使って「新卒入社向けの弊社紹介スライド」を作成してみましょう。
情報が集まると、各MCPツールを使ってプレゼンテーションを作成してくれます。
特筆すべきは、デザインパターンの情報取得です。これにより、既存のプレゼンテーションデザインを読み込んでくれます。
つまり、各社独自のテンプレートがすでにあれば、そのデザインやトーンを維持したままスライドを生成してくれることができるのです。
(今回は、デフォルトで用意されているelegant-darkデザインを採用しています)
できたプレゼンテーション
作成してくれたプレゼンテーションの一部はこちらです。
特に指定していないですが、いい感じのAgendaはもちろん、デザインや配置のバランスがとれた美しいスライドを作ってくれています。








