mcpField
D
Deckforge

Deckforge

ローカル
landing-two-beta-63.vercel.app開発ツール79 週間前に更新

Deckforge について

DeckForgeは、構造化されたスライド仕様や自然言語のプロンプトからプレゼンテーションを生成し、個人やAIエージェント向けに提供します。PPTXとGoogle Slidesに対応し、財務向けレイアウトと自動品質チェックを備えています。

主な機能

  1. 01プロンプトや構造化IRからスライドを生成
  2. 02PPTXまたはGoogle Slidesで出力
  3. 0332種類のスライドと24種類のチャート
  4. 04財務向けスライドレイアウト
  5. 05レイアウト品質の確認と自動修正
  6. 06レンダリング費用の見積もり

活用シーン

  1. 01プロンプトから経営層向け資料を作成
  2. 02財務データをテーマ付きスライドに変換
  3. 03指定されたスライド仕様をレンダリング
  4. 04納品前にプレゼンテーションの品質を確認

MCP 対応

DeckForgeは、資料の生成・レンダリング、テーマとスライドタイプの確認、費用見積もり、料金確認を行う6つのツールを備えたMCPサーバーを含みます。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

DeckForge

人間と AI エージェントのための、API ファーストなプレゼンテーション生成

CI Python 3.12 MIT License npm @lukastan/deckforge API Live 32 種類のスライド 24 種類のチャート 15 種類のテーマ MCP サーバー


エグゼクティブ向けのスライドを、API 呼び出しひとつで。JSON 中間表現(IR)または自然言語のプロンプトを送ると、プロフェッショナルなレイアウト、一貫したブランディング、検証済みの品質を備えた .pptx ファイルまたは Google Slides のデッキが返されます。


🚀 DeckForge を本番環境でご利用中ですか?より高い上限、優先サポート、特定のスライド/チャート機能をお求めですか? ご利用用途をお聞かせください → — すべてのメッセージに目を通しています。


解決できる課題

  • エージェントが、構造化されたスライド仕様を実際の PowerPoint に変換する必要があるものの、ヘッドレスの Office 環境も、手書きの python-pptx コードも使いたくない。 Presentation IR(スライド、要素、テーマ)を render に送信すると、テーマを適用した .pptx(または Google Slides)のデッキに加え、品質スコアとレイアウト/QA の問題数が返されます。
  • エージェントが、ナラティブを自分で設計することなく、1 行のプロンプトからデッキを作成する必要がある。 generate は 4 段階のコンテンツパイプライン(意図 → アウトライン → 展開 → 推敲)を実行し、スライドの種類を選んで内容を作成します。構造化された IR が返され、それを render に渡せます。
  • DCF、比較会社分析テーブル、ウォーターフォール、リターンのレイアウトを毎回作り直すことなく、財務関連のスライドが必要である。 9 種類の財務スライドと財務向けのチャート(ウォーターフォール、トルネード、フットボールフィールド、感応度テーブル)は、IR のファーストクラス要素です。そのため、モデルが出力した数値を、監査可能でテーマが適用されたスライドにできます。
  • エージェントが、有効な slide_type、theme、チャートの値を実行時に選ぶ必要があるものの、推測に頼りたくない。 themes(15 種類)と slide_types(32 種類:汎用 23 種類+財務 9 種類。必須/任意の要素を含む)は、正しい IR を構築するための正確な識別子と要素要件を返す探索ツールです。
  • 試行の呼び出しをせずに、レンダリングに費用をかける前に確定的なコストを把握したい。 cost_estimate は ceil(slides/10) と、財務スライドごとおよびチャートごとの追加料金からクレジットを計算し、内訳と米ドル換算額を返すため、自律型エージェントは処理を実行する前に予算を立てられます。
  • 人間によるデザインチェックなしで、一貫性があり、機械的に検証されたデッキがほしい。 すべてのレンダリングで、コントラスト、はみ出し、配置を自動修正する QA パイプラインが実行され、呼び出し元に quality_score と qa_issues の件数が返されます。

機能

  • 32 種類のスライドタイプ -- タイトル、アジェンダ、箇条書き、比較、タイムライン、プロセスフロー、組織図、統計の強調表示、表、グラフ、マトリクス、ファネル、地図など
  • 金融分野に特化した 9 種類のスライド -- DCF サマリー、コンプテーブル、ウォーターフォールチャート、案件概要、リターン分析、資本構成、市場環境、リスクマトリクス、投資テーゼ
  • 24 種類のグラフ -- 棒グラフ、折れ線グラフ、面グラフ、円グラフ、ドーナツグラフ、散布図、バブルチャート、複合グラフ、ウォーターフォール、ファネル、ツリーマップ、レーダーチャート、トルネードチャート、フットボールフィールド、感度分析表、ヒートマップ、サンキーチャート、ガントチャート、サンバーストなど
  • 組み込みテーマ 15 種類 -- corporate-blue、executive-dark、finance-pro、modern-gradient、minimal-light、tech-neon、その他 9 種類(カスタムブランドキットにも対応)
  • ネイティブ PPTX 出力 -- 要素単位の制御、トランジション、グラフ埋め込みに対応した python-pptx によるレンダリング
  • Google Slides 出力 -- Google Slides API による直接エクスポート(OAuth フローを含む)
  • AI コンテンツ生成 -- Claude、OpenAI、Gemini、または Ollama による自然言語からスライドへの変換(意図、アウトライン、展開、洗練の 4 段階パイプライン)
  • 5 段階の QA パイプライン -- コントラスト、はみ出し、配置などを対象に、自動修正エンジンを備えた品質チェック
  • 制約ベースのレイアウト -- kiwisolver 制約ソルバー、12 列グリッド、適応型オーバーフロー処理(フォント縮小、再配置、分割)
  • MCP サーバー -- AI エージェント連携用の 6 つのツール(render、generate、themes、slide_types、cost_estimate、pricing)
  • x402 決済ミドルウェア -- セルフホスト型デプロイ向けの、任意の呼び出しごとの USDC 決済対応(Base L2)。デフォルトでは無効です
  • 課金インフラストラクチャ -- セルフホスト型デプロイ向けの Stripe サブスクリプションおよびクレジットシステムに対応(ホスト型の有料プランはまだ提供していません)
  • TypeScript SDK -- 流暢なビルダーパターン、完全な型安全性、SSE ストリーミングを備えた @lukastan/deckforge

クイックスタート

5 分以内に、初期状態から初めてのデッキをレンダリングできます。

前提条件
手順
# 1. Clone the repo
git clone https://github.com/Whatsonyourmind/deckforge && cd deckforge

# 2. Copy environment config (works out of the box for local dev)
cp .env.example .env

# 3. Start all services (API, workers, PostgreSQL, Redis, MinIO)
docker compose up -d

# 4. Initialize the database (runs migrations, seeds test user + API key)
bash scripts/bootstrap-db.sh

# 5. Verify the API is running
curl http://localhost:8000/v1/health
# => {"status":"healthy"}

ブートストラップスクリプトはテスト用 API キー(dk_test_...)を出力します。以下の例で使用するため、保存してください。

API の例

IR からデッキをレンダリングする
curl -X POST http://localhost:8000/v1/render \
  -H "Authorization: Bearer dk_test_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Q4 Board Update",
    "theme": "corporate-blue",
    "slides": [
      {
        "slide_type": "title_slide",
        "elements": [
          {"type": "title", "content": "Q4 2026 Board Update"},
          {"type": "subtitle", "content": "Acme Corp -- Confidential"}
        ]
      },
      {
        "slide_type": "stats_callout",
        "elements": [
          {"type": "title", "content": "Key Metrics"},
          {"type": "metric", "content": "$4.2M", "label": "ARR"},
          {"type": "metric", "content": "142%", "label": "YoY Growth"},
          {"type": "metric", "content": "94%", "label": "Retention"}
        ]
      }
    ]
  }' \
  --output board-update.pptx
自然言語からデッキを生成する
curl -X POST http://localhost:8000/v1/generate \
  -H "Authorization: Bearer dk_test_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Create a 10-slide pitch deck for a B2B SaaS startup in the cybersecurity space, Series A, $2M ARR",
    "theme": "executive-dark",
    "output_format": "pptx"
  }' \
  --output pitch-deck.pptx

注: /v1/generate エンドポイントを使用するには、.env で少なくとも 1 つの LLM API キー(Anthropic、OpenAI、Gemini、または Ollama)を設定する必要があります。

利用可能なテーマとスライドタイプを確認する
# List all 15 themes
curl http://localhost:8000/v1/themes

# List all 32 slide types with example IR
curl http://localhost:8000/v1/slide-types

# Estimate credit cost before rendering
curl -X POST http://localhost:8000/v1/estimate \
  -H "Authorization: Bearer dk_test_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"slides": [{"slide_type": "title_slide"}, {"slide_type": "chart_slide"}]}'

TypeScript SDK

npm からインストールします。

npm install @lukastan/deckforge

完全な型安全性を備えた流暢なビルダー:

import { DeckForge, Presentation, Slides } from "@lukastan/deckforge";

const client = new DeckForge({ apiKey: "dk_test_YOUR_KEY_HERE" });

const deck = Presentation.create("Q4 Board Update", "corporate-blue")
  .addSlide(
    Slides.titleSlide({
      title: "Q4 2026 Board Update",
      subtitle: "Acme Corp -- Confidential",
    })
  )
  .addSlide(
    Slides.statsCallout({
      title: "Key Metrics",
      metrics: [
        { value: "$4.2M", label: "ARR" },
        { value: "142%", label: "YoY Growth" },
        { value: "94%", label: "Retention" },
      ],
    })
  );

const pptx = await client.render(deck);
// => Buffer containing .pptx file

SSE ストリーミングを使用してプロンプトから生成します。

const stream = client.generate({
  prompt: "Create a PE deal memo for a $500M LBO of a healthcare platform",
  theme: "finance-pro",
});

for await (const event of stream) {
  console.log(`${event.stage}: ${event.message}`);
}
// intent: Analyzing prompt for presentation structure...
// outline: Creating 12-slide deal memo outline...
// expand: Generating slide content...
// refine: Running QA pipeline (5 passes)...
// complete: Deck ready for download

アーキテクチャ

                        +------------------+
                        |    Clients       |
                        |  (curl/SDK/MCP)  |
                        +--------+---------+
                                 |
                        +--------v---------+
                        |  FastAPI (uvicorn)|
                        |  /v1/* routes     |
                        |  Auth + Rate Limit|
                        |  Credit Billing   |
                        +--+-----+------+--+
                           |     |      |
               +-----------+     |      +----------+
               |                 |                  |
      +--------v------+  +------v--------+  +------v--------+
      | Content Worker |  | Render Worker |  |   Sync Path   |
      | (ARQ + Redis)  |  | (ARQ + Redis) |  | (< 10 slides) |
      | NL -> IR       |  | IR -> PPTX    |  | Direct return  |
      +--------+------+  +------+--------+  +------+--------+
               |                 |                  |
               v                 v                  v
      +--------+------+  +------+---------+  +-----+--------+
      | LLM Adapters  |  | PPTX Renderer  |  | Google Slides|
      | Claude/GPT/   |  | Layout Engine  |  | Renderer     |
      | Gemini/Ollama  |  | Theme Resolver |  | (OAuth)      |
      +---------------+  | Chart Renderer |  +--------------+
                          | QA Pipeline    |
                          +------+---------+
                                 |
                          +------v---------+
                          |    Storage     |
                          | MinIO (dev)    |
                          | R2/S3 (prod)   |
                          +----------------+

      +----------------+  +----------------+
      |   PostgreSQL   |  |     Redis      |
      |   Users, Keys  |  |  Queue, Cache  |
      |   Jobs, Decks  |  |  Rate Limits   |
      |   Billing      |  |  SSE Pub/Sub   |
      +----------------+  +----------------+

API ルート

すべてのルートは /v1 プレフィックス以下に配置されています。対話型ドキュメントは http://localhost:8000/docs で確認できます。

エンドポイントメソッド認証説明
/v1/healthGET不要ヘルスチェック
/v1/renderPOSTAPI キーIR を PPTX/Google Slides にレンダリング
/v1/generatePOSTAPI キー自然言語からスライドを生成
/v1/previewPOSTAPI キーサムネイル PNG を生成
/v1/estimatePOSTAPI キークレジットコストを見積もり
/v1/jobs/{id}GETAPI キー非同期ジョブのステータスを確認
/v1/themesGET不要利用可能なテーマを一覧表示
/v1/slide-typesGET不要スライドタイプを例とともに一覧表示
/v1/decksGET/POST/DELETEAPI キーデッキの CRUD 操作
/v1/batchPOSTAPI キー複数のデッキを一括レンダリング
/v1/webhooksGET/POST/DELETEAPI キーWebhook サブスクリプションを管理
/v1/billing/*VariousAPI キーStripe サブスクリプションを管理
/v1/pricingGET不要現在の料金とプラン情報
/v1/onboard/signupPOST不要アカウントと API キーを作成
/v1/analytics/*GET管理者利用状況の分析とメトリクス
/v1/auth/google/*GETAPI キーSlides 用の Google OAuth フロー

環境変数

すべての変数には DECKFORGE_ がプレフィックスとして付いています。コメントと値の例を含む完全なリファレンスについては、.env.example を参照してください。

変数デフォルト値説明
DECKFORGE_DATABASE_URLpostgresql+psycopg://...localhostPostgreSQL 接続文字列
DECKFORGE_REDIS_URLredis://localhost:6379/0Redis 接続(キュー、キャッシュ、Pub/Sub)
DECKFORGE_S3_ENDPOINT_URLhttp://localhost:9000S3 互換ストレージのエンドポイント
DECKFORGE_S3_ACCESS_KEYminioadminS3 アクセスキー(開発環境での MinIO のデフォルト値)
DECKFORGE_S3_SECRET_KEYminioadminS3 シークレットキー
DECKFORGE_S3_BUCKETdeckforgeS3 バケット名
DECKFORGE_API_HOST0.0.0.0API のバインドアドレス
DECKFORGE_API_PORT8000API ポート
DECKFORGE_DEBUGtrueデバッグモード(本番環境では無効にしてください)
DECKFORGE_ENVIRONMENTdevelopmentdevelopment / staging / production
DECKFORGE_LLM_DEFAULT_PROVIDERclaudeコンテンツ生成に使用するデフォルトの LLM
DECKFORGE_LLM_FALLBACK_CHAINclaude,openai,geminiLLM のフォールバック順序
DECKFORGE_ANTHROPIC_API_KEY--Claude 用の Anthropic API キー
DECKFORGE_OPENAI_API_KEY--OpenAI API キー
DECKFORGE_GEMINI_API_KEY--Google Gemini API キー
DECKFORGE_OLLAMA_BASE_URLhttp://localhost:11434Ollama ローカルサーバーの URL
DECKFORGE_STRIPE_SECRET_KEY--Stripe シークレットキー
DECKFORGE_STRIPE_WEBHOOK_SECRET--Stripe Webhook 署名シークレット
DECKFORGE_STRIPE_STARTER_PRICE_ID--Starter ティアの Stripe 価格 ID
DECKFORGE_STRIPE_PRO_PRICE_ID--Pro ティアの Stripe 価格 ID
DECKFORGE_GOOGLE_CLIENT_ID--Google OAuth クライアント ID(Slides 用)
DECKFORGE_GOOGLE_CLIENT_SECRET--Google OAuth クライアントシークレット
DECKFORGE_GOOGLE_REDIRECT_URIhttp://localhost:8000/v1/auth/google/callbackOAuth リダイレクト URI
DECKFORGE_UNKEY_ROOT_KEY--Unkey ルートキー(本番環境の認証用)
DECKFORGE_UNKEY_API_ID--Unkey API ID
DECKFORGE_X402_ENABLEDfalsex402 USDC 決済を有効にする
DECKFORGE_X402_WALLET_ADDRESS--Base 上で USDC を受け取るウォレットアドレス
DECKFORGE_X402_FACILITATOR_URLhttps://x402.org/facilitatorx402 ファシリテーターのエンドポイント
DECKFORGE_X402_NETWORKeip155:8453Base Mainnet のチェーン ID

デプロイ

Render(推奨)

ホスト型の本番 API は Render で https://deckforge-api.onrender.com として稼働しています。DeckForge には render.yaml ブループリントが含まれています。

  1. Render ダッシュボードで New → Blueprint を選択し、このリポジトリを指定します。Render が render.yaml(Web サービス + ワーカー + マネージド Postgres + Redis)を読み込みます。
  2. サービスの Environment タブで本番環境のシークレット(Stripe / Anthropic / S3)を設定し、初回のデプロイを開始します。
# Verify
curl https://deckforge-api.onrender.com/v1/health
Fly.io(代替)

DeckForge には、本番環境に対応した fly.toml とマルチステージ Dockerfile も含まれています。

# 1. Install Fly CLI
curl -L https://fly.io/install.sh | sh

# 2. Login and launch
fly auth login
fly launch --name deckforge-api --region iad

# 3. Provision PostgreSQL
fly postgres create --name deckforge-db --region iad
fly postgres attach deckforge-db

# 4. Provision Redis (via Upstash or Fly Redis)
fly redis create --name deckforge-redis
# Copy the REDIS_URL from output

# 5. Set production secrets
fly secrets set \
  DECKFORGE_ENVIRONMENT=production \
  DECKFORGE_DEBUG=false \
  DECKFORGE_DATABASE_URL="postgres://..." \
  DECKFORGE_REDIS_URL="redis://..." \
  DECKFORGE_S3_ENDPOINT_URL="https://..." \
  DECKFORGE_S3_ACCESS_KEY="..." \
  DECKFORGE_S3_SECRET_KEY="..." \
  DECKFORGE_S3_BUCKET="deckforge" \
  DECKFORGE_STRIPE_SECRET_KEY="sk_live_..." \
  DECKFORGE_STRIPE_WEBHOOK_SECRET="whsec_..." \
  DECKFORGE_ANTHROPIC_API_KEY="sk-ant-..."

# 6. Deploy
fly deploy

# 7. Run database migrations
fly ssh console -C "alembic upgrade head"

# 8. Verify
curl https://<your-app>.fly.dev/v1/health

Fly.io の主な設定:

  • VM あたり共有 CPU 2 基、RAM 1 GB
  • コスト効率化のための自動停止/起動(最低 1 台を稼働)
  • 同時実行数の制限を設けた HTTPS の強制(ソフト上限 200 / ハード上限 250)
  • マルチプロセス:api(uvicorn)+ worker(ARQ)
Docker Compose(ローカル開発)
# Start all 6 services
docker compose up -d

# Services:
#   api             - FastAPI + uvicorn (port 8000)
#   content-worker  - ARQ worker for NL-to-IR generation
#   render-worker   - ARQ worker for IR-to-PPTX rendering
#   postgres        - PostgreSQL 16 (port 5432)
#   redis           - Redis 7 (port 6379)
#   minio           - MinIO S3-compatible storage (port 9000, console 9001)

# Check service health
docker compose ps

# View API logs
docker compose logs -f api

# Tear down (preserves data volumes)
docker compose down

# Full reset (removes data)
docker compose down -v
S3 ストレージの選択肢
環境プロバイダー設定
ローカル開発MinIO(Docker Compose 経由).env.example のデフォルト値
本番環境Cloudflare R2S3_ENDPOINT_URL、S3_ACCESS_KEY、S3_SECRET_KEY を設定
本番環境AWS S3S3_ENDPOINT_URL に AWS のエンドポイントを設定
Fly.ioFly Tigrisfly storage create を実行すると自動設定

料金

料金プランはまだありません。現在ご購入いただける有料プランはありません。 ホスティング版や商用版、上限の引き上げ、優先サポートをご希望ですか?アーリーアクセスに申し込む →

このリポジトリの課金コード(Stripe のサブスクリプション、クレジットシステム、x402 USDC ミドルウェア)は、セルフホスト環境向けのインフラであり、デフォルトでは無効になっています。

クレジット消費量(エンジンの仕組み)

API 呼び出しごとに、複雑さに応じてクレジットが消費されます。

  • シンプルなレンダリング(5 枚未満のスライド):1 クレジット
  • 標準的なレンダリング(5~20 枚のスライド):2~3 クレジット
  • 複雑なレンダリング(グラフ、財務スライド):3~5 クレジット
  • コンテンツ生成(NL-to-IR):+2 クレジット(LLM の使用)

デモデッキ

demos/ に、プロダクション品質のデモ IR が 5 つあります。

デモスライドテーマ用途
McKinsey Strategy12corporate-blue戦略コンサルティング用デッキ
PE Deal Memo10finance-proプライベートエクイティ投資委員会
Startup Pitch12modern-gradientシリーズ A の資金調達
Board Update8executive-dark四半期取締役会
Product Launch10tech-neon製品発売の告知

任意のデモをレンダリングします。

curl -X POST http://localhost:8000/v1/render \
  -H "Authorization: Bearer dk_test_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d @demos/mckinsey-strategy/ir.json \
  --output mckinsey-strategy.pptx

インテグレーション

MCP サーバー(AI エージェント)

DeckForge には、6 つのツールを備えた Model Context Protocol サーバーが含まれています。

{
  "mcpServers": {
    "deckforge": {
      "command": "python",
      "args": ["-m", "deckforge.mcp.server"]
    }
  }
}

ツール:render、generate、themes、slide_types、cost_estimate、pricing

エージェントフレームワークのサポート
  • LangChain -- render と generate のツールクラス
  • CrewAI -- action パラメーターを備えた統合ツール
  • AutoGen -- Annotated 型を使用するプレーン関数ツール

インテグレーションの例については、demos/ をご覧ください。

リンク

コントリビューション

  1. リポジトリをフォークします
  2. 機能ブランチを作成します(git checkout -b feature/my-feature)
  3. テストを実行します(Python は pytest、TypeScript は cd sdk && npm test)
  4. コミットしてプッシュします
  5. Pull Request を作成します

ライセンス

MIT


DeckForge -- API を 1 回呼び出すだけで、経営層向けのスライドが完成します。

コメント

MCP は初めてですか?

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

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