PolyDrobeの使い方。

ワークスペースを設定し、アセットとバリアントを設計し、チームを招待して、よく起きるエラーを解消できます。

4ステップで稼働開始

プロジェクト、タクソノミー、アセット、チーム。この順番で進めます。

1

プロジェクトを作成

最初のプロジェクトを作成し、分かりやすいプロジェクトslugを設定します。

2

タクソノミーを設定

カテゴリ、レアリティ、タグ、通貨、ステータス、リリースを設定します。

3

アセットとバリアントを追加

アセットを追加し、画像・価格・任意メタデータ付きのバリアントを作成します。

4

チームを招待

チームメンバーを招待し、所有者 / 編集者 / 閲覧者のロールを割り当てます。

できることすべて

ワークフローを開くと詳細が表示されます。

プロジェクトセットアップまず構造を作り、その後にコンテンツを追加します。
  • プロジェクト詳細とアイコンを設定します。
  • プロジェクト設定で再利用可能な分類を定義します。
アセットとバリアント管理アセットは基本アイテム、バリアントはそのバージョンです。
  • アセットのメタデータを入力し、カテゴリ/レアリティを設定します。
  • バリアントにテクスチャ、画像、価格情報を追加します。
レビューと検索カタログを見やすく保守しやすい状態に保ちます。
  • フィルター、ステータス、タグを使って、目の前の作業を見つけられます。
  • アクティビティログで変更内容を確認します。
インポートとエクスポートパイプラインと安全にデータ連携します。
  • プロジェクトデータを JSON または Excel でエクスポートします。「メディアファイルを含める」にチェックすると、画像・テクスチャ・メッシュを収めた ZIP パッケージを取得できます。
  • JSON、Excel、ZIP パッケージをインポートします。すべてのインポートは最初にプレビューを実行するため、確定される前に行単位の変更内容とエラーを確認できます。
Google Sheets インポートネイティブの Google スプレッドシートから、アセット、バリアント、プロジェクト設定をインポートします。
  • エンティティ種別ごとに 1 つのワークシート(Currencies、Rarities、Releases、Tags、Categories、Assets、Variants)を持つネイティブの Google スプレッドシートを作成します(アップロードした .xlsx は使えません)。
  • 各ワークシートの 1 行目に、正確な列見出しを入力します(大文字小文字を区別します)。たとえば Variants シートには slug、name、asset_slug、rarity、release、currency、price、description、tags が必要です。
  • エンティティは依存関係の順にインポートされます。Currencies、Rarities、Releases、Tags、Categories、Assets、最後に Variants です。行が参照する対象は、すでにプロジェクトに存在しているか、同じ実行内でより前に現れる必要があります。
  • プロジェクトで「データ交換」ページ(プロジェクトメニューの「インポート / エクスポート」)を開き、インポート元として「Google シート」を選び、Google アカウントを接続します。PolyDrobe が要求するのは Google の drive.file スコープなので、渡したファイルしか読み取れません。
  • 「プロファイルを作成」でプロファイル名を入力し、「参照」をクリックして Google ピッカーからスプレッドシートを選びます。タブ名が異なる場合はワークシート名を調整し、「プロファイルを保存」をクリックします。
  • 保存したプロファイルで、まず「プレビュー」を実行します。これは何も書き込まずに検証エラーを報告するドライランです。「インポート」を実行すると、同じ処理が実際に適用されます。
  • アセットやバリアントのタグには、セミコロン区切りの値を使います:starter;seasonal=winter;limited-edition
  • 価格は小数点の区切りとしてピリオドとカンマの両方を受け付けます(9.99 または 9,99)。レアリティは名前、通貨はコード、リリースはバージョン文字列で照合されます。

開発者向けガイド

ツール、エージェント、パイプラインを PolyDrobe に接続する。

REST API のセットアップ標準の REST API を使って PolyDrobe と連携します。Proプランで利用できます。

1. アクセストークンを発行する

「ワークスペース設定」>「API トークン」を開き、新しい個人用アクセストークンを作成します。用途がわかる名前(「CI Pipeline」「Local Script」など)を付け、読み取りと書き込みのスコープを選択し、有効期限を選びます。トークンは表示されたときにコピーしてください。一度しか表示されません。

# Your token will look like this:
pdtk_a8f3b2c1d4e5f6a7b8c9d0e1f2a3b4c5...

# Keep it safe. You cannot retrieve it later.
# If lost, revoke it and create a new one.

2. リクエストを認証する

すべてのリクエストで、Authorization ヘッダーに Bearer トークンとしてトークンを含めます。

curl -H "Authorization: Bearer pdtk_abc123..." \
     https://polydrobe.app/api/v1/projects/

3. プロジェクトを一覧する

自分がメンバーになっているすべてのプロジェクトを返します。レスポンスは data キーと meta キーを持つ標準のエンベロープ形式です。

GET /api/v1/projects/

# Response:
{
  "data": [
    {
      "id": "...",
      "name": "Cyber Skins",
      "slug": "cyber-skins",
      "asset_count": 42,
      "my_role": "owner"
    }
  ],
  "meta": { "total": 1, "page": 1, "page_size": 25 }
}

4. アセットを作成する

プロジェクト内にアセットを作成します。編集者または所有者のロールが必要です。slug は名前から自動生成されます。

curl -X POST \
  -H "Authorization: Bearer pdtk_abc123..." \
  -H "Content-Type: application/json" \
  -d '{"name": "Plasma Rifle", "description": "Sci-fi weapon", "category_slug": "weapons"}' \
  https://polydrobe.app/api/v1/projects/cyber-skins/assets/

5. バリアントを作成する

価格、レアリティ、ステータスを指定して、アセットにバリアントを追加します。外部キーの参照にはすべて slug を使います。

curl -X POST \
  -H "Authorization: Bearer pdtk_abc123..." \
  -H "Content-Type: application/json" \
  -d '{"name": "Gold Edition", "rarity_slug": "legendary", "price": "29.99", "currency_code": "USD"}' \
  https://polydrobe.app/api/v1/projects/cyber-skins/assets/plasma-rifle/variants/

6. アセットを検索する

PostgreSQL の検索機能を使って、アセットとバリアントを全文検索します。フレーズ、OR、否定に対応しています。

GET /api/v1/projects/cyber-skins/search/?q=gold+legendary&type=variant&limit=10

7. 一括操作

複数のバリアントを一度に更新または削除します。Proプランの一括操作機能が必要です。

curl -X POST \
  -H "Authorization: Bearer pdtk_abc123..." \
  -H "Content-Type: application/json" \
  -d '{"slugs": ["v1", "v2", "v3"], "updates": {"status_slug": "released"}}' \
  https://polydrobe.app/api/v1/projects/cyber-skins/bulk/variants/update/

利用できるエンドポイント

REST API は、カタログ本体からメディア、一括編集、アクティビティログ、Webhook まで、PolyDrobe が保持するすべてのプロジェクトリソースにアクセスできます。以下のグループがその全体像です。各リソースは slug ベースの URL を使います。

Projects:       GET|POST /v1/projects/
                GET|PATCH|DELETE /v1/projects/{slug}/

Assets:         GET|POST /v1/projects/{slug}/assets/
                GET|PATCH|DELETE /v1/projects/{slug}/assets/{slug}/

Variants:       GET|POST /v1/projects/{slug}/assets/{slug}/variants/
                GET|PATCH|DELETE .../assets/{slug}/variants/{slug}/
                GET /v1/projects/{slug}/variants/  (flat list)

Media:          GET .../variants/{slug}/images/
                PATCH|DELETE .../variants/{slug}/images/{uuid}/
                GET .../variants/{slug}/textures/
                DELETE .../variants/{slug}/textures/{uuid}/

Bundles:        GET|POST /v1/projects/{slug}/bundles/
                GET|PUT|PATCH|DELETE /v1/projects/{slug}/bundles/{slug}/
                GET|POST /v1/projects/{slug}/bundles/{slug}/items/
                DELETE .../bundles/{slug}/items/{variant_slug}/

Collections:    GET|POST /v1/projects/{slug}/collections/
                GET|PUT|PATCH|DELETE .../collections/{slug}/
                GET .../collections/{slug}/items/
                POST .../collections/{slug}/members/
                DELETE .../collections/{slug}/members/{variant_slug}/
                POST .../collections/{slug}/duplicate/

Classification: GET|POST /v1/projects/{slug}/{categories|tags|rarities|releases|currencies|statuses}/
                PATCH|DELETE /v1/projects/{slug}/{entity}/{slug}/

Favorites:      GET /v1/projects/{slug}/favorites/
                POST|PUT|DELETE /v1/projects/{slug}/favorites/{kind}/{uuid}/

Team:           GET|POST /v1/projects/{slug}/members/
                PATCH|DELETE /v1/projects/{slug}/members/{user_id}/

Bulk:           POST /v1/projects/{slug}/bulk/variants/update/
                POST /v1/projects/{slug}/bulk/variants/delete/

Search:         GET /v1/projects/{slug}/search/?q=term&type=all
Activity:       GET /v1/projects/{slug}/activity/
Export:         GET /v1/projects/{slug}/export/?format=json
Webhooks:       GET|POST /v1/projects/{slug}/webhooks/
                PATCH|DELETE /v1/projects/{slug}/webhooks/{uuid}/
MCP サーバーのセットアップModel Context Protocol を使って、AI アシスタント(Claude、ChatGPT)を PolyDrobe に接続します。Proプランで利用できます。

1. 個人用アクセストークンを発行する

「ワークスペース設定」>「API トークン」を開き、新しいトークンを作成します。名前は AI クライアントに合わせて付けます(「Claude Desktop」「Claude Code」など)。読み取りと書き込みのスコープを選択し、有効期限は長め(1 年または無期限)にします。トークンは表示されたときにコピーしてください。一度しか表示されません。

# Your token will look like this:
pdtk_a8f3b2c1d4e5f6a7b8c9d0e1f2a3b4c5...

# Use this token in the configuration steps below.
# The same token works for both REST API and MCP server.

2. Claude Desktop を接続する

Claude Desktop の設定に PolyDrobe の MCP サーバーを追加します。claude_desktop_config.json を開き、次のエントリを追加してください。

{
  "mcpServers": {
    "polydrobe": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://polydrobe.app/mcp"],
      "env": {
        "MCP_HEADERS": "Authorization: Bearer pdtk_abc123..."
      }
    }
  }
}

3. Claude Code を接続する

Claude Code CLI を使って、ターミナルから MCP サーバーを追加します。

claude mcp add polydrobe \
  --transport http \
  --url https://polydrobe.app/mcp \
  --header "Authorization: Bearer pdtk_abc123..."

4. ローカル開発(stdio モード)

ローカル開発では、HTTP を使わずに stdio 経由で MCP サーバーを直接実行します。指定したユーザーとして事前に認証されます。

python manage.py mcp_stdio --user=your-username

# Claude Desktop config for local stdio:
{
  "mcpServers": {
    "polydrobe-local": {
      "command": "python",
      "args": ["manage.py", "mcp_stdio", "--user=your-username"],
      "cwd": "/path/to/polydrobe"
    }
  }
}

5. 試してみる

接続したら、AI アシスタントに自然言語でプロジェクトデータについて質問できます。

# Example prompts for your AI assistant:

"List all my projects"
"Show me the assets in project 'cyber-skins'"
"Create a new asset called 'Neon Jacket' in the 'outerwear' category"
"Search for legendary variants with price above 20"
"Set up categories: Headwear, Outerwear, Footwear, Accessories"
"Tag all sword assets with 'melee' and 'weapon'"
"Export the project data as JSON"
"Give me a project overview with sample thumbnails"

利用できる MCP ツール

PolyDrobe の読み取り、書き込み、検索、エクスポートの各操作は、すべてツールとして公開されています。AI アシスタントは接続時にカテゴリ別に分類された一式を検出するため、設定は必要ありません。

Projects:       list_projects, get_project, create_project,
                update_project, delete_project

Assets:         list_assets, get_asset, create_asset,
                update_asset, delete_asset

Variants:       list_variants, create_variant,
                update_variant, delete_variant

Bundles:        list_bundles, get_bundle, create_bundle,
                update_bundle, delete_bundle, list_bundle_items,
                add_bundle_item, remove_bundle_item,
                find_bundles_containing_variant

Collections:    collections_list, collections_get,
                collections_create, collections_update,
                collections_delete, collections_add_member,
                collections_remove_member, collections_duplicate

Classification: list_categories, create_category, update_category,
                delete_category, list_tags, create_tag, delete_tag,
                list_rarities, create_rarity, list_releases,
                create_release, list_currencies, create_currency,
                list_statuses, create_status

Tags:           add_asset_tags, remove_asset_tags,
                add_variant_tags, remove_variant_tags

Favorites:      list_favorites, add_favorite,
                remove_favorite, toggle_favorite

Team:           list_members, update_member_role, remove_member

Search:         search (full-text across assets & variants)
Activity:       get_activity_log

Images:         fetch_variant_thumbnail, fetch_variant_image,
                fetch_variant_texture, set_variant_thumbnail

Bulk:           bulk_create_variants, bulk_update_variants,
                bulk_delete_variants

Data:           export_project, import_project_data

本番環境向けの OAuth 2.1(上級者向け)

CI/CD パイプラインやサーバー間連携では、個人用トークンの代わりに OAuth 2.1 のクライアントクレデンシャルフローを使えます。OAuth アプリケーションの設定については、サポートまでお問い合わせください。

# Exchange client credentials for an access token:
curl -X POST https://polydrobe.app/o/token/ \
  -d "grant_type=client_credentials" \
  -d "client_id=your-client-id" \
  -d "client_secret=your-client-secret" \
  -d "scope=read write"

# For most use cases, personal access tokens from
# Workspace Settings > API Tokens are simpler and sufficient.

誰が何をできるか

それぞれが何を変更する必要があるかで線を引いた 3 つのロール。閲覧者は無料のままです。

所有者

プロジェクト設定、プラン制限、チームアクセスを管理します。

  • プロジェクト設定
  • 請求
  • チーム管理
  • アセットを作成または編集
  • インポートとエクスポート
  • 読み取り専用ブラウジング
有料シート

編集者

アセット、バリアント、運用データを作成・更新します。

  • プロジェクト設定
  • 請求
  • チーム管理
  • アセットを作成または編集
  • インポートとエクスポート
  • 読み取り専用ブラウジング
有料シート

閲覧者

レビュー、QA、共有目的でプロジェクトデータを参照します。

  • プロジェクト設定
  • 請求
  • チーム管理
  • アセットを作成または編集
  • インポートとエクスポート
  • 読み取り専用ブラウジング
無料シート

よくある質問

PolyDrobe とは何ですか?
PolyDrobe は、ゲームの装備アセット(スキン、コスメティック、アクセサリー)をプロジェクト全体で記録し、バージョン管理し、共同で編集するためのアセット管理プラットフォームです。多くのチームが最初に使う表計算シートに代わる、構造化された検索可能なデータベースを提供します。
PolyDrobe はどのような種類のアセットを管理できますか?
PolyDrobe は、キャラクタースキン、衣装、アクセサリー、武器など、複数の見た目のバリアントを持つゲームの装備・コスメティックアイテム向けに設計されています。各アセットは、カラーバリエーション、品質ティア、シーズン版などを表す複数のバリアントを持てます。
PolyDrobe は 3D モデルのプレビューに対応していますか?
はい。PolyDrobe には、.glb ファイルと .gltf ファイルをブラウザ上で直接表示する 3D モデルビューアーが組み込まれています。メッシュファイルをアセットに、テクスチャファイルをバリアントに添付して、アプリを離れずにプレビューできます。
ゲームアセットの管理において、PolyDrobe は Google Sheets とどう違いますか?
Google Sheets には、構造化されたデータ型、バージョン管理、ロール制御、メディア管理がありません。PolyDrobe はレアリティ、ステータス、価格、リリースバージョン、タグの専用フィールドを備え、サムネイルと 3D モデルをレコードに保存し、ロールベースのアクセス制御を適用します。
PolyDrobe は Notion や Airtable と何が違いますか?
Notion と Airtable は汎用のデータベースツールで、ゲームアセットのスキーマは自分で組み立てることになります。PolyDrobe はそのスキーマを最初から備えています。アセットとバリアントの階層、3D モデルビューアー、テクスチャ管理、パイプラインステータス、レアリティのレベル、リリースのバージョン管理です。
PolyDrobe はどのゲームエンジンに対応していますか?
PolyDrobe はエンジンに依存しません。ゲームを動かすのはエンジンで、PolyDrobe はカタログの記録と調整を担うため、Unity、Unreal Engine、Godot、独自エンジンのいずれのチームも同じように使えます。JSON と Excel のエクスポート、そして MCP サーバーが、データをパイプラインへ届けます。
AI エージェントから PolyDrobe を操作できますか?
はい。PolyDrobe は https://polydrobe.app/mcp で Model Context Protocol(MCP)サーバーを提供しています。読み取り、書き込み、検索、エクスポートの各操作は、すべてツールとして公開されています。Claude や ChatGPT などの AI アシスタントは Bearer トークンで接続し、プロジェクトの一覧表示、アセット、バリアント、バンドル、コレクションの管理、分類の設定、タグの割り当て、エントリの一括更新、自然言語でのデータベース検索ができます。設定手順は「開発者ガイド」セクションを参照してください。
REST API と MCP サーバーの違いは何ですか?
どちらも同じサービス層を通じて同じデータにアクセスします。REST API は標準の HTTP メソッド(GET、POST、PATCH、DELETE)と JSON エンベロープを使うため、スクリプト、CI/CD パイプライン、独自の連携に適しています。MCP サーバーは Model Context Protocol を話すため、Claude や ChatGPT などの AI アシスタントが日常の言葉でデータを扱えます。どちらも Proプランと OAuth2 認証が必要です。
API のアクセストークンはどうやって取得しますか?
「ワークスペース設定」>「API トークン」を開き、「トークンを作成」をクリックします。名前を付け、スコープ(読み取り、書き込み)を選択し、有効期限を選びます。トークンは表示されたときにコピーしてください。一度しか表示されません。同じトークンを REST API と MCP サーバーの両方で使え、どちらも Proプランが必要です。
PolyDrobe はチームでの共同作業に対応していますか?
はい。プロジェクトでは 3 つのロールで複数のチームメンバーを管理できます。所有者(設定と請求を含むすべてを管理)、編集者(アセットとバリアントの作成・更新が可能)、閲覧者(QA や関係者レビュー向けの閲覧専用)です。チームメンバーはプロジェクト設定からメールアドレスで招待できます。
各スキンはアセットとバリアントのどちらで管理すべきですか?
基本アイテムは 1 つのアセットとし、各スキン/バージョンをバリアントで管理します。
命名規則を統一するには?
明確な命名ルールを作成し、slug ベース URL を使って参照を安定させます。
プロジェクトデータを外部共有できますか?
はい。データ交換が含まれるプランで利用できます。「データ交換」ページから、プロジェクト全体を JSON か Excel で、あるいはメディアファイルも収めた ZIP パッケージとしてエクスポートし、下流ツール、パブリッシャー、外部の協力会社と共有できます。
Freeプランには何が含まれますか?
Freeプランには、所有プロジェクト1件、最大3名、ワークスペース全体で1GBのストレージ、無制限のアセット、プロジェクトごとに100件のバリアント、30日分のアクティビティログが含まれます。
閲覧者の席は課金対象に含まれますか?
いいえ。課金対象の席として数えられるのは所有者と編集者のみで、閲覧者は無料のままです。
PolyDrobe は SaaS 製品ですか?
はい。PolyDrobe は polydrobe.app でホストされている Web ベースの SaaS アプリケーションです。インストールするソフトウェアはありません。サインアップしてプロジェクトを作成すれば、すぐにアセットを追加できます。
既存のアセットデータを PolyDrobe にインポートできますか?
はい。PolyDrobe は JSON、Excel(.xlsx)、データファイルとメディアをまとめた ZIP パッケージ、そして Google Sheets のインポートに対応しています。既存の表計算シートを所定の形式でエクスポートし、「データ交換」ページからインポートしてください。すべてのインポートは最初にプレビューされ、変更を確定する前に行ごとの作成件数、更新件数、エラー件数を確認できます。
Google Sheets インポート用のテンプレートには、どの列が必要ですか?
ワークシートごとに必要な列が決まっています。Categories には slug、name、description、parent_slug。Tags には slug、name、value。Rarities には name、color(#RRGGBB 形式)、priority。Currencies には code、name、symbol。Releases には version、name、description、release_date(YYYY-MM-DD)。Assets には slug、name、description、category_slug、tags。Variants には slug、name、asset_slug、rarity、release、currency、price、description、tags が必要です。列見出しは大文字小文字を区別し、1 行目に置いてください。Google Sheets の同期が対象とするのは、この 7 つのエンティティ種別です。バンドルとコレクションは、Excel または JSON のアップロードでインポートします。
Google Sheets のインポートで「Spreadsheet metadata could not be loaded」と表示されるのはなぜですか?
そのファイルは、ネイティブの Google スプレッドシートではなく、Google Sheets で開いたアップロード済みの .xlsx である可能性が高いです。URL に「rtpof=true」が含まれていれば、アップロードされたファイルです。解決するには、Google Sheets でファイルを開いて File > Save as Google Sheets を選択し、同期プロファイルで「参照」をクリックして、変換後のファイルを選び直してください。あわせて、接続中の Google アカウントがそのスプレッドシートを開けるかも確認してください。
プロジェクトごとに Google を接続する必要がありますか?
はい。マルチテナントの分離のため、プロジェクトごとに専用の Google 接続が必要です。プロジェクトによって所有者やアクセス制御が異なる場合があるためです。同じ Google アカウントをすべてのプロジェクトで使えます。

よくある問題

最も頻繁な問題への迅速な解決策。

権限不足

操作できない場合はロールを確認し、所有者にアクセス更新を依頼してください。

インポート時の検証エラー

再実行前に必須項目、category slug、enum 値を確認してください。

メディアアップロードの問題

ファイル形式、サイズ、ストレージ使用量がプラン制限内か確認してください。

Google Sheets:「Spreadsheet metadata could not be loaded」と表示される

そのファイルは、ネイティブの Google スプレッドシートではなくアップロードした .xlsx である可能性が高いです。ファイルを開いて File > Save as Google Sheets を選択し、同期プロファイルで「参照」をクリックして、変換後のファイルを選び直してください。あわせて、接続中の Google アカウントがそのスプレッドシートを開けるかも確認してください。

Google Sheets: アセットやバリアントが「Tag not found」「Category not found」で失敗する

参照先のエンティティは、何かがそれを指すより先に存在している必要があります。インポートはワークシートを順番に処理するため(Currencies > Rarities > Releases > Tags > Categories > Assets > Variants)、インポートに失敗したカテゴリはその配下のアセットも巻き込みます。ドライランのプレビューを上から読み、最も前段のエンティティ種別から修正してください。

Google Sheets: バリアントの価格が「invalid price」になる

インポートは小数点の区切りとしてピリオド(9.99)とカンマ(9,99)の両方を受け付けます。エラーが続く場合は、価格セルに余分な文字、通貨記号、空白がないか確認してください。

私たちに直接お尋ねください。

メールをいただければ、人間がお答えします。