Frugal Blender MCP について
Frugal Blender MCP は、Blender のシーンを構築・確認する AI エージェント向けの MCP サーバーです。4つの簡潔なツール、操作の一括実行、権限制御を通じて Blender の機能を利用できます。
主な機能
- 01discover、execute、inspect、captureの4ツール
- 021回の呼び出しで最大100操作を一括実行
- 03ページングと名前指定によるシーン確認
- 04プレビューのキャプチャとレンダリング
- 05任意で完全なbpy APIにアクセス
- 06リスクのある操作の権限制御
活用シーン
- 01AIエージェントでBlenderシーンを構築・調整
- 02シーン編集を一括実行しキャプチャで確認
- 03シーンのレンダリングや保存
- 04CLIスクリプトからBlender操作を実行
MCP 対応
MCPクライアントにdiscover、execute、inspect、captureの4つのツールを提供します。操作の検出、一括実行、シーンの絞り込み確認、画像キャプチャに利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | |
| names | array | いいえ | |
| offset | integer | いいえ |
詳細
Frugal Blender MCP
AI エージェントに Blender のシーンを構築させましょう。Blender のすべてを、4 つのツールと 338 トークンで。
クイックスタート · トークンを節約する仕組み · ベンチマーク · 安全性 · 使用例
Claude が作成した 5 回の execute 呼び出し(109 操作)を、Blender 5.1 の Cycles でレンダリングしました。
同じ呼び出しを再生できます。実行は 1 秒未満です。
4MCP ツール | 338固定コンテキストのトークン数 | 1001 回の呼び出しあたりの操作数 | 14–22x他の Blender サーバーより少ないコンテキスト量 |
重要な理由
すべての MCP クライアントは、何かを入力する前に、各サーバーのツール定義をリクエストのたびにモデルへ送信します。ほとんどの Blender サーバーは 26~31 個のツールを公開しているため、その分だけ数千トークンを消費します。これは、シーンやコード、エージェント自身の推論に使えなくなるコンテキストです。
Frugal Blender MCP が公開するツールは、discover、execute、inspect、capture の 4 つだけですが、Blender API 全体を利用できます。
クイックスタート
1. Blender アドオンをインストールする
uvx frugal-blender-mcp install-addon
Blender で 編集 → プリファレンス → アドオン を開き、Frugal Blender MCP を有効にします。次に、3D ビューポートで N を押し、Frugal MCP タブを開いて Start bridge をクリックします。
2. エージェントを接続する
| Claude Code |
|
| Codex CLI |
|
| Claude Desktop, Cursor, Windsurf |
|
デスクトップアプリが uvx を見つけられない場合は、絶対パスを指定してください(which uvx または where uvx)。
3. やりたいことを指示する
ゴールデンアワーに、小さな灯台の島を作ってください。赤と白の灯台、管理人の家、数本の松、岩、帆船を配置します。編集をまとめて実行し、プレビューをキャプチャしてください。
4 つのツールで Blender のすべてにアクセス
多くのサーバーでは、操作ごとに 1 つのツールを用意し、すべての定義をリクエストのたびに送信します。 このサーバーではメニューを短く保ち、エージェントが求めたときだけ詳細を渡します。
sequenceDiagram
autonumber
participant A as AI agent
participant M as Frugal Blender MCP
participant B as Blender
Note over A,M: Each request carries only 4 tool definitions, 338 tokens
A->>M: discover()
M-->>A: 16 operation summaries, 189 tokens, once
A->>M: discover("array")
M-->>A: argument contract for one operation
A->>M: execute(43 steps)
M->>B: validated batch, run on Blender's main thread
M-->>A: ok, completed 43, 28 tokens
A->>M: capture()
M-->>A: preview image at the scene's aspect ratio
| 手法 | 内容 | 効果 |
|---|---|---|
| 遅延スキーマ | 操作の引数は discover の先にあります。エージェントは使う場合に限り、それぞれ一度だけ取得します。 | 固定コストは 338 トークンのままです。すべてのスキーマを取得しても合計は 1,256 トークンです。 |
| バッチ処理 | 1 回の execute で最大 100 個の操作を実行できます。array では 1 ステップで最大 200 個のコピーを作成でき、keyframes では最大 1,000 個のキーを設定できます。 | 灯台の作成には 109 回ではなく、5 回の呼び出しで済みました。 |
| コンパクトな結果 | execute はカウントとエラーを返し、シーンの内容をそのまま返すことはありません。 | 109 個の操作で返されたのは、合計 202 トークンでした。 |
| ダンプせずに確認 | capture は画像を返します。inspect はページ分割され、名前で絞り込めます。 | エージェントは巨大なシーンのダンプを読み込まずに作業を確認できます。 |
| 無駄のない定義 | ツールを一覧表示する前に、生成されたスキーマのタイトル、null のユニオン、ドックストリングの空白を取り除きます。 | 定義は 406 トークンから 289 トークンに縮小しました。300 トークンを超えるとテストが失敗します。 |
| エスケープハッチは 1 つ | python は同じ execute 呼び出しを通じて任意の bpy コードを実行するため、追加のツールは必要ありません。 | Geometry Nodes、リギング、シミュレーション、インポート/エクスポートも固定コストはゼロです。 |
上のアニメーションを作成した 5 回の呼び出しと、それぞれで追加された内容:
ベンチマーク
| サーバー | ツール | リクエストごとの固定コンテキスト |
|---|---|---|
| Frugal Blender MCP | 4 | 338 トークン |
| Blender Lab official | 26 | 4,722 トークン(14.0 倍) |
| ahujasid mcp-for-blender | 31 | 7,464 トークン(22.1 倍) |
各サーバーの実際の initialize および
tools/list の応答に含まれるツール定義とサーバーの指示を、tiktoken o200k_base でトークン化しています。
手法、生データ、検出コスト、注意事項。
エージェントにできること
| 必要な操作 | 操作 | |
|---|---|---|
| 🧱 | 構築 | primitive、array、transform、material、assign_material、light、camera、delete |
| 🎨 | 調整 | modifier(Blender の任意のモディファイアー)、properties(オブジェクト、データ、シーン、レンダーの任意の RNA プロパティ)、rna(プロパティ名と列挙値の検索) |
| 🎬 | アニメーション | keyframes、frame |
| 📸 | 出力 | capture(プレビューをエージェントに返します。EEVEE、またはリクエストに応じて Cycles)、render(静止画またはアニメーション)、save(.blend のコピー) |
| 🐍 | その他すべて | python:完全な bpy API。デフォルトでは無効です。 |
安全性
Blender の制御権はユーザーにあります。ブリッジの起動時にアドオンパネルで権限を選択でき、エージェントはそれを変更できません。
- 書き込みとレンダーはデフォルトで有効です。削除、保存、pythonは無効です。
- **Python は制限のないローカルコード実行です。**信頼できるエージェントに対してのみ有効にしてください。
- ブリッジはループバックのみで待ち受け、起動のたびに新しいランダムトークンが必要です。
- 削除には
confirm: trueが必要です。保存とレンダーで既存のファイルが上書きされることはありません。 - インタラクティブセッションでは、バッチごとに元に戻すためのチェックポイントが作成されます。
- テレメトリはありません。
詳細:SECURITY.md。
比較
コンテキストサイズだけでなく、必要な機能で選んでください。
- Blender Lab の公式サーバーは、Blender のマニュアルと API ドキュメントも検索するため、エージェントが正しい
bpyを記述するのに役立ちます。 - ahujasid のサーバーは、アセットプロバイダー(Poly Haven、Sketchfab、Hyper3D など)をまとめて提供します。
- このサーバーは、固定コンテキストを小さく保ち、編集をバッチ処理し、リスクの高い操作には権限を必要とし、許可されている場合は
pythonを通じて API 全体を利用できます。
詳細
CLI:同じコードパスでスクリプトから Blender を操作する
uvx --from frugal-blender-mcp frugal-blender discover
uvx --from frugal-blender-mcp frugal-blender inspect
uvx --from frugal-blender-mcp frugal-blender execute --params '{"steps":[{"op":"primitive","kind":"cube","name":"Demo"}]}'
uvx --from frugal-blender-mcp frugal-blender capture --params '{"filename":"preview.png","size":768}'
PowerShell では、JSON を引用符で囲む代わりに、ファイルをパイプで渡せます。
Get-Content -Raw examples/lighthouse/01-sky-and-sea.json | uvx --from frugal-blender-mcp frugal-blender execute --params -
キャプチャ、レンダリング、保存の出力先はブリッジの exports/ フォルダーで、CLI はファイル名を表示します。
複数の Blender インスタンス
実行中の各ブリッジは接続記述子を書き込みます。複数存在する場合は、
BLENDER_COMPACT_CONNECTION に使用するものを設定してください。
- Windows:
%LOCALAPPDATA%/blender-compact-mcp/connection-<pid>.json - Linux/macOS:
${XDG_STATE_HOME:-~/.local/state}/blender-compact-mcp/connection-<pid>.json
接続先が曖昧な場合、シーンをランダムに選ぶのではなく、検出に失敗します。別のファイルを開くとブリッジが停止します。 クラッシュ後は、古い接続記述子だけを削除してください。
uvx を使わずにインストール
- アドオン: Releases から
frugal-blender-mcp-addon-<version>.zipをダウンロードし、Blender のアドオン設定で Install from Disk を選ぶか、uvx frugal-blender-mcp install-addon --zip addon.zipを実行します。 - ソースからサーバーをインストール: リポジトリをクローンし、
uv sync --frozenを実行して、クライアントからuv run --directory /absolute/path/to/frugal-blender-mcp frugal-blender-mcpを指定します。
旧式の blender-astra-mcp または blender-compact-mcp コマンドを使う設定も引き続き動作します。
アーキテクチャ
AI client -- MCP stdio --> Python bridge -- authenticated loopback JSON --> Blender add-on
CLI ----------------------------^ bpy.app.timers
Blender のタイマーは、サイズが制限されたソケット入力を受け付け、Blender のメインスレッドで操作を実行します。バックグラウンドスレッドが Blender のデータに触れることはありません。discover は読みやすい引数の仕様を返し、アドオンは実行前にすべてのバッチを再度検証します。途中で失敗したバッチは、失敗したステップと、それまでに実行された内容を報告します。設計を参照してください。
開発
uv sync --frozen
uv run ruff check --config pyproject.toml .
uv run ruff format --check --config pyproject.toml .
uv run pytest -q
Blender が必要なテストは、BLENDER_EXE が Blender の実行ファイルを指していない場合はスキップされます。インタラクティブタイマーと取り消しもテストするには、BLENDER_TEST_UI=1 を設定してください。テストでは別々の factory-startup Blender プロセスが起動し、シーンや設定には一切触れません。結果:検証。
scripts/demo_host.py は、空のシーンでヘッドレスブリッジを実行し、examples/ を再生します。
scripts/bench_tool_context.py と scripts/context_chart.py は、ベンチマークとグラフを再現します。
これによってエージェントのトークンを節約できたら、⭐を付けて他の人にも見つけてもらいましょう。
MIT ライセンス。Blender Foundation またはモデルプロバイダーとは提携していない独立プロジェクトです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。