mcpField
C
canva-bulk-create

canva-bulk-create

github.com/canva-sdksデザイン・UI138282 回インストール5 日前に更新
リポジトリ

canva-bulk-create について

canva-bulk-createは、表形式のデータとブランドテンプレートを使い、各行からCanvaデザインを1件ずつ作成します。編集可能なブランドデザインをまとめて作るユーザー向けに、項目の対応付けから結果報告までの手順を備えています。

主な機能

  1. 01ファイル、テキスト、URLから表データを解析
  2. 02ブランドテンプレートの検索と項目確認
  3. 03列とテンプレート項目の対応付け
  4. 04行ごとのデザイン作成と結果記録
  5. 05画像アセットの処理と失敗理由の報告

活用シーン

  1. 01商品表からブランドデザインを生成
  2. 02画像URLをCanvaアセットとしてテンプレートに入力
  3. 03一括作成前に項目の対応付けを確認
  4. 04作成後に成功行と失敗行を確認

MCP 対応

Canvaのツールを使ってテンプレートを検索し、項目を調べ、アセットをアップロードしてデザインに自動入力します。各行を順番に処理し、結果を報告します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/canva-sdks/canva-skills --skill canva-bulk-create

インストール後、Claude Code で/canva-bulk-createを入力して読み込まれたか確認します。

詳細

Canva 一括デザイン作成

データタグを使ってブランドテンプレートにデータを自動入力し、データの各行につき Canva デザインを1つ作成します。

ワークフロー

ステップ 1:データを取得する

ユーザーが提供した形式を問わずデータを受け取り、名前付きの列を持つ行のリストを抽出します。

  • アップロードされたファイル:ファイルを読み込み、ヘッダーと行を抽出します
  • 貼り付けられたデータ:チャットから Markdown テーブル、タブ区切り値、JSON 配列を直接解析します
  • URL:リソースを取得し、応答を表形式のデータとして解析します

データが提供されていない場合は、都合のよい形式で共有するようユーザーに依頼します。

解析後、ユーザーに次の内容を表示します。

  • 見つかった列ヘッダー
  • 行数(=作成されるデザイン数)
  • 最初の数行のプレビュー
ステップ 2:ブランドテンプレートを選択する

ユーザーがテンプレートを指定していない場合は、自動入力に対応したテンプレートを検索します。

Canva:search-brand-templates  dataset=non_empty

検索結果を表示し、どれを使うかユーザーに選んでもらいます。すでにテンプレート名を指定しているか、説明している場合は、そのクエリで検索します。

ステップ 3:テンプレートのスキーマを確認する
Canva:get-brand-template-dataset  template_id=<selected_id>

テンプレートが想定するフィールド名と型(テキスト、画像、グラフ)が返されます。

ステップ 4:CSV 列をテンプレートフィールドに対応付ける

対応付けテーブルをユーザーに提示します。

テンプレートフィールド型対応する CSV 列備考
product_nameテキストProduct Name自動で対応付け済み
priceテキストPrice自動で対応付け済み
hero_image画像(なし)対応なし — 画像フィールドにはアセット ID が必要です

対応付けのルール:

  • CSV ヘッダーとテンプレートフィールド名を、大文字と小文字を区別せず、あいまい一致で照合します
  • テキストフィールドには、CSV の文字列値を直接入力できます
  • 画像フィールドには Canva アセット ID が必要です。以下の画像フィールドの処理を参照してください
  • グラフフィールドには構造化データが必要です。高度な項目として扱い、ユーザーに詳細を確認します

特に対応付けできないフィールドや曖昧な一致がある場合は、続行する前にユーザーに対応付けを確認します。

画像フィールドの処理

CSV から画像型テンプレートフィールドに画像を渡す方法は2つあります。

パターン A — CSV に Canva アセット ID 列がある場合(例:image_asset_id): autofill-design 呼び出しでアセット ID の値を直接使用します。

{ "image": { "type": "image", "asset_id": "<value from CSV column>" } }

パターン B — CSV に画像 URL 列がある場合(例:image_url): URL を autofill-design に直接渡すことはできません。まず Canva:upload-asset-from-url を使って各 URL を Canva にアップロードし、返されたアセット ID を取得してから、自動入力の呼び出しで使用します。失敗の影響範囲を限定できるよう、その行のデザインを作成する直前にアップロードします。

パターン C — CSV に画像列がない場合: 画像フィールドをスキップする(テンプレートのデフォルト画像をそのまま使う)か、中止するかをユーザーに確認します。スキップしても安全です。data ペイロードから画像キーを完全に省略するだけです。

ステップ 5:一括作成 — 行ごとにデザインを1つ作成する

すべての CSV 行を順番に処理し、それぞれについて Canva:autofill-design を呼び出します。一度にまとめてではなく、順次呼び出してください。API にレート制限がある場合があり、順次呼び出すほうがデバッグも容易です。

各行について:

  1. 行に画像 URL 列がある場合(パターン B)、まず Canva:upload-asset-from-url を呼び出して Canva アセット ID を取得します。
  2. 確認済みのフィールド対応付けから data ペイロードを作成します。
{
  "text_field_name": { "type": "text", "text": "<value from CSV>" },
  "image_field_name": { "type": "image", "asset_id": "<asset ID>" }
}
  1. テンプレート ID、data ペイロード、および行番号や意味のある列の値を使った説明的なタイトル(例:"Bulk Design - Row 3 - <identifier>")を指定して、Canva:autofill-design を呼び出します。

処理しながら結果を記録します。

Row 1 / 50: Created — <design_url>
Row 2 / 50: Created — <design_url>
Row 3 / 50: Failed — <error>
ステップ 6:結果を報告する

すべての行の処理後、次の内容を要約します。

  • 試行した行の合計数
  • 成功件数(リンク付き)
  • 失敗件数(行番号と理由を記載)

列が row、status、design_url、error の要約 CSV を保存するか、ユーザーに確認します。

注意事項

  • 自動入力には Canva Enterprise プランが必要です。
  • 大きな CSV(50 行以上)の場合は、最初に N 回の API 呼び出しが発生し、時間がかかる可能性があることをユーザーに伝えてください。全件処理に進む前に、最初の 3 行でテスト実行することを提案してください。
  • 一部の行で失敗しても、全体を中止せず、残りの行の処理を続けてください。
  • マッピングされたすべてのフィールドが空の行はスキップし、そのことをユーザーに伝えてください。
  • 必須のテンプレートフィールドに一致する CSV の列がない場合は、どの列を使用するか、またはそのフィールドをスキップするかをユーザーに確認してください。
  • テンプレートフィールド名は API で大文字と小文字が区別されるため、get-brand-template-dataset の正確なキーを使用してください。
  • 一括作成を取り消す機能はありません。大規模な処理を開始する前に、ユーザーに伝えてください。
  • この方法で作成されたデザインは、ユーザーがアカウントでさらに編集できる通常の Canva デザインです。

コメント