Roxy Blender MCP
Provides tools to drive Blender directly from an LLM: high-level modeling primitives (lathe, extrusion, sweep, loft, pipe, text), mesh editing, modifiers with quality defaults, real-scale placement, PBR/procedural material presets, AgX-calibrated lighting and camera setup, rendering, multi-view/orthographic inspection, quality analysis and cleanup, plus rigging, animation (keyframe easing, presets, auto-rig with UE5-compatible bones) and file import/export (glb, fbx, obj, stl, ply, usd, blend).
Integrates with Sketchfab's asset library to search for and import 3D models, including keyless search, with automatic post-processing of downloaded models (real-world scaling, grounding, cleanup, texture embedding and credit recording).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Roxy Blender MCPmodel a Scandinavian dining chair and render it like a product photo"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Roxy Blender MCP
LLM(Claude など)から Blender を操作して、公式 Blender MCP より高品質なモデルを作るための MCP サーバーです。 公式 MCP の機能(Python 実行・画像確認・アセットライブラリ)を含みます。AI による 3D 生成機能は意図的に入れていません。
公式 MCP は「LLM が生の bpy コードを書いて実行し、画像で確認する」設計なので、仕上がりは LLM の書き方次第です。 Roxy は品質のノウハウを ツール側に組み込んで あります。LLM が普通に呼ぶだけで、プロのモデラーの定石が適用されます。 具体的には、実寸モデリング、ベベル、法線処理、PBR マテリアル、照明の較正、品質チェック、取り込みモデルの正規化です。
公式 MCP との違い
公式 MCP for Blender | Roxy Blender MCP | |
モデリング | 生 Python( | 回転体・押し出し・スイープ・ロフト・管・プリミティブ・メッシュ編集の高レベルツール(Python も併用可)。穴付きパネルは制約付き三角形分割で生成し、縁の巻き込み・膨らみを形状として作る |
サイズ | LLM 任せ(スケールで伸ばしがち → ベベルが歪む) | すべて実寸のメッシュで生成、スケール 1 のまま |
エッジ | 何もしなければ鋭角のまま(CG っぽさの主因) |
|
曲面 | 自前で頂点計算 | 制御点数個からスプライン補間、60°以上の折れ点は自動で角に(底が膨らまない) |
配置 | 座標を手計算 |
|
モディファイア | 自前で設定 | 品質デフォルト付き+スタック自動整列(Boolean/Mirror → Bevel → Subdivision → Weighted Normal) |
マテリアル | 基本色のみになりがち・sRGB/リニア混同 | Poly Haven に実写スキャンがある素材はすべて実写を自動使用(木・合板・古材・コンクリート・石・レンガ・漆喰・粘土・布・ベルベット・革・樹皮・錆・縞鋼板など。色指定は写真のまま色味を調整、 |
照明 | 自前 | AgX 前提で露出較正済みの 8 プリセット、被写体サイズに自動スケール |
確認 | ビューポート / 多視点 / アニメーション | 同等以上: 正投影(実寸幅表示)+パースの多視点シート、ワイヤーフレーム・クレイ・X線・マテリアル表示、アニメーションのコマ送り、任意画像の表示 |
AAA 仕上げ | — | 使用感レイヤー(擦れ・汚れ・ほこり・錆・経年・苔・雪・濡れ・擦り傷。Blender上でスライダー調整可)、PBR値の自動補正、板張り |
品質チェック | メッシュ/ウェイトの健全性 | 浮き・めり込み・法線反転・内部面・重複頂点・ファセット・未ベベル・スケール未適用・ウェイト漏れなどを検出し、修正方法を提示 |
取り込み物の後処理 | サイズ指定程度 | 実寸化・接地・スケール 1・原点を底面中央に・余計なカメラ/ライト除去・重複頂点/スムーズ修正・ポリゴン予算・テクスチャ埋め込み・クレジット記録・自動プレビュー |
ブロックアウト連携 | — | Roxy で作った大まかな形を、取り込んだモデルで同じサイズ・位置に差し替え( |
アセット | Poly Haven / Sketchfab / Poly Pizza | 同じ 3 ライブラリ+Sketchfab はキーなしで検索可、Poly Haven テクスチャは実寸スケールで UV 不要の貼り付け、.blend の非表示の残骸を除外 |
アニメーション・リグ | — | キーごとのイージング(AE の Easy Ease・影響度%、CSS cubic-bezier、back/bounce/elastic)、予備動作・行き過ぎ付きの定番プリセット(開く・閉じる・引き出し・回転・揺れ)、小物の蝶番リグ(開く向き自動判定・可動範囲)、完成キャラへの自動リグ(UE5 Mannequin 互換の骨名・指・ねじれ骨・IK骨、服と髪も自動ウェイト、ポーズ検査)、UE5 用 SK_/A_ FBX 書き出し |
ゲームアセット化(UE5) | — |
|
ファイル入出力 | — | ローカルの glb/gltf/fbx/obj/stl/ply/usd/abc/blend 取り込み、glb/fbx/obj/stl/ply/usd(z) 書き出し(ゲームエンジン・AR・3D プリント) |
安全策 | — | チェックポイント保存/復元、GUI では 1 コマンド = 1 アンドゥ |
ノウハウ | — | 実寸表、ハードサーフェス、オーガニック、家具、プロダクト、マテリアル、照明、アセット活用のガイドと検証済みレシピ |
テレメトリ | あり(オプトアウト式) | なし |
Related MCP server: Blender MCP Server
構成
Claude ──(MCP stdio)──> roxy-blender-mcp (src/roxy_blender_mcp) ──(TCP 127.0.0.1:9877)──> Blender アドオン (addon/roxy_blender_bridge)
│
└── HTTPS: Poly Haven / Sketchfab / Poly Pizza(ダウンロードはキャッシュに保存)Blender アドオン: Blender 内でソケットサーバーを起動し、すべての処理をメインスレッド(タイマー)で実行します。 モデリング・取り込み後処理のロジックはここにあります。ネットワーク通信はしません。
MCP サーバー: ツール定義(LLM 向けの説明文)、アセットライブラリとの通信、ガイド配信を担当します。
公式 MCP(ポート 9876)と同時に使えます。
セットアップ
必要なもの: Blender 4.2 以降(5.1 で検証)、uv
アドオンのインストール(Blender を閉じた状態で)
python3 scripts/install_addon.py # シンボリックリンクで導入し有効化 python3 scripts/install_addon.py --uninstallBlender を起動すると自動でブリッジが立ち上がります(3D ビュー右サイドバーの「Roxy」タブで状態確認・開始/停止)。
Claude Code に登録
このフォルダで使う場合: 同梱の
.mcp.jsonが読み込まれます。どこからでも使う場合:
claude mcp add roxy-blender -s user -- uv run --directory "/path/to/Roxy-Blender-MCP" roxy-blender-mcp
(任意)アセットライブラリの API キー(Poly Haven はキー不要。Sketchfab のダウンロードと Poly Pizza のみ)
uv run roxy-blender-mcp configure # または環境変数 SKETCHFAB_API_TOKEN / POLYPIZZA_API_KEYGUI なしで使う場合(任意):
scripts/run_headless_blender.sh [--port 9877] [file.blend]
使い方
Claude に普通に頼むだけです。例:
「北欧風のダイニングチェアをモデリングして、プロダクト撮影風にレンダリングして」
「リビングを作って。ソファと観葉植物は Poly Haven から、ローテーブルはモデリングで」
「この椅子を GLB で書き出して」
MCP プロンプト model_object は、品質ワークフロー(計画 → 実寸ブロックアウト → 構造・接合部の詳細化 → 表面仕上げ →
品質チェック → 全体・寄りの画像確認 → レンダリング)を指示します。
標準の制作指示は、対象や用途を問わず、全モデル・全部品を接写に耐える精密さで作り込むよう促します。
キャラクター・自然物・衣服・機械・家具・建築・小物に共通して適用し、背景用という理由だけでは省略しません。
簡略化は、ラフ・低詳細・ポリゴン予算などをユーザーが明示した場合に限ります。
地域の指定がなければ、日本で一般的な形状・寸法・構造・部品・生活用品・植生を基準にし、看板やラベルも日本語を基本にします。
日本基準は厳格な制作要件です。輸入アセットや背景の部品にも適用し、海外仕様や汎用寸法での代用を禁止する指示を入れています。
get_guide('japan') に従い、地域依存の細部は日本の参考資料を確認してから作ります。
不明・不確かな点はまず AI クライアントの検索・ブラウザでメーカー資料や公式情報を調べ、調査でも解決できない場合や調査手段がない場合に限って質問します。
Roxy 自体には汎用 Web 検索ツールはなく、接続する AI 側の調査ツールを使う指示です。
未確認の箇所は未完成として報告し、納品前に日本仕様との一致を画像で確認します。自動の形状判定・強制機能ではありません。
現代の題材には現代日本の例を使い、伝統的な意匠は題材に合わせて選びます。明示された国・様式・固有の対象・参考画像を優先します。
get_guide('detailing') には、肉厚・継ぎ目・取り付け部の設計、形状とバンプの使い分け、部位ごとの確認手順をまとめています。
指示とガイドによる改善なので、完成度は実際のモデルと画像で確認します。
modeling_progress は部位ごとに「参照資料 → 形状 → 構造 → 細部 → 材質 → 最終確認」を記録するツールです。
最初に define_features で部位の特徴的な輪郭・開口・接続先を整理し、資料の出典、保存した参照画像、対象オブジェクト、確認ビューを登録します。実物の写真や図面を使い、ペーパークラフト・模型の簡略化を形状根拠にしません。
compare_features では接写で観察した形と資料との差異を記録します。不合格から合格にするには、record_revision に実際の修正または誤った観察を訂正する根拠を残し、新しい画像で再確認する必要があります。未修正の特徴、未解決の資料、前工程を飛ばした合格は完成判定を通しません。
inspect_connections は配管・連結棒などの指定した端点と接続先の評価済み形状との距離を測ります。穴を含む実際の表面を使い、端点が部品自身の表面にあるかも検査します。特徴に connection_checks を登録すると、合格の記録時にも自動で測定し、隙間が許容値を超えていれば合格を拒否します。ジョイント中心同士の検査も可能です。接続相手の正しさ、干渉、機構の動作は別途確認します。
登録した対象の形状・材質入力と画像を指紋で追跡し、確認後の変更や根拠画像の消失で完成判定を止めます。invalidate で後続工程と全体の最終確認を戻せます。記録は .blend に保存されるため、根拠画像も制作フォルダに保存してください。
画像の内容を自動理解する機能ではありません。未登録の部品、外部テクスチャや入れ子のシェーダーなど全依存関係の変更検出は保証しません。AI が実際の資料と接写を比較する必要があります。旧バージョンの進捗記録にも特徴の登録・確認が必要です。詳しい制作例は get_guide('reference_fidelity') にあります。
ツール一覧(58)
分類 | ツール |
確認 |
|
形状作成 |
|
編集 |
|
配置・整理 |
|
マテリアル |
|
演出 |
|
アセット・入出力 |
|
AAA 仕上げ |
|
ゲームアセット |
|
アニメーション・リグ |
|
品質 |
|
安全策・拡張 |
|
ガイド(get_guide / guide:// リソース): workflow, dimensions, hard_surface, organic, furniture, product,
detailing, reference_fidelity, japan, materials, lighting_render, assets, game_assets, animation_rigging, recipes, troubleshooting
テスト
B=/Applications/Blender.app/Contents/MacOS/Blender
$B --background --factory-startup --python tests/blender_progress_test.py # 部位別進捗・保存
$B --background --factory-startup --python tests/blender_fidelity_test.py # 修正・再確認・接続の検査
uv run python tests/e2e_fidelity_test.py # 新しい手順を MCP 経由で検証
$B --background --factory-startup --python tests/blender_commands_test.py -- /tmp/roxy_out # 全モデリングコマンド
$B --background --factory-startup --python tests/blender_recipes_test.py -- /tmp/roxy_out # レシピ 6 種を実行・レンダー
$B --background --factory-startup --python tests/blender_import_test.py -- /tmp/roxy_out # 取り込み後処理・書き出し
uv run python tests/e2e_mcp_test.py [--gui] # MCP クライアント → サーバー → Blender
uv run python tests/e2e_assets_test.py # アセットライブラリ(Sketchfab/Poly Pizza はモック、Poly Haven は本番 API)tests/mock_services.py は Sketchfab / Poly Pizza の API 仕様どおりに応答するモックです(キーなしで実装経路を検証)。
新規モデリング比較
比較の記録(画像・モデル・評価資料・参考写真)は、第三者の写真や比較先のコードを含むためこのリポジトリには含めていません。
bench/には再現用のスクリプトのみがあります。
強化後の再比較では、別題材の 1969 ホンダ CB750 FOUR K0 を、同じHonda実車資料・25分上限で設計から独立に新規制作しました。MCP名を伏せた固定8項目(各0〜4)のアシスタント評価は、比較先17/32、Roxy14/32です。Roxyの品質優位は出ていません。サイドカバーの面割れ・タンク下部の凹凸・マフラー形状に相違が残りました。比較先の自己レンダー中断・復旧時間も制作枠に含めています。Roxyの完成判定は未通過です。単一試行であり、前のC62とは題材が違うため改善率は計算しません。
共通撮影の再現: Blender --background --factory-startup --python bench/cb750_render.py -- official と同じコマンドの roxy、その後 python3 bench/prepare_cb750_review.py。匿名評価後に python3 bench/plot_cb750_comparison.py。原本・入力・MCPコードの保持確認は uv run python bench/audit_cb750_trial.py。
以下は強化前の比較です。
前回の比較では、C62形2号機を設計から独立に制作しています。同じ実車写真・博物館の寸法・制作時間枠を別文脈の制作担当へ渡し、共通の組立設計や前回のモデルを使用しません。Roxy側は比較実施時点の指示・プロンプト・ガイド・ツール、比較側はahujasid版の指示・ツールを使用します。完成物を共通撮影し、MCP名を伏せた別担当の写真照合で評価します。特徴比較・修正履歴・接続の測定ゲートを追加する前の結果であり、今回の強化後の品質を示す比較ではありません。
これは単一題材・各1試行のアシスタント評価で、統計的な優位やAAA品質の認定ではありません。部品数・三角形数を品質点に換算しません。以下は以前の共通設計による制作経路比較です。
さらに複雑な題材として、C62形2号機の実車写真と京都鉄道博物館の寸法資料を参考に、機関車・炭水車1,747部品と線路303部品を新規制作しました。動輪の実開口、連結棒・ピストンの連動、配管、葉ばね、運転室、炭水車を含みます。ペーパークラフトや模型は形状の参考にしません。
再現: uv run python bench/live_c62_compare.py、続けて matplotlib / Pillow のある環境で python3 bench/plot_c62_comparison.py。
より複雑な題材として、日本信号 GX-7 の国内資料を参考にした自動改札機2台を両MCPで新規制作しました。394部品で、曲面筐体、券口の実際の切り込み、IC読取部、表示器、保守扉、ネジと溝、センサ、換気スリット、開閉するフラップを含みます。材質はそれぞれの制作経路で作り、撮影条件と実測だけを共通にしました。部品数・三角形数は品質点ではありません。
再現: uv run python bench/live_gate_compare.py、必要に応じて Blender --background --python bench/audit_gate_views.py で単色ビューを再描画し、続けて matplotlib / Pillow のある環境で python3 bench/plot_gate_comparison.py。Blenderの起動時ダイアログがある場合は新規起動を選びます。これは同じ担当者による同仕様の制作経路比較で、AIの独立した自律制作能力やAAA品質の認定ではありません。比較先は ahujasid 版で、Blender Foundation公式MCPではありません。
2026-10-07 に、日本の一合枡を現在の Roxy と ahujasid 版 MCP for Blender の実際のサーバー経由で新規制作しました。 同じ設計・材質・撮影条件では、幾何チェックは双方 7/7、独自スコアは双方 80、三角形数は比較対象 6,316 / Roxy 7,212 でした。 この1課題から品質優位や AAA 品質達成は結論できません。AI の独立した自由制作比較ではなく、同じアシスタントが制作コードを作る比較です。
古い宝箱のグラフは異なる制作レシピを Roxy 経由で実行した保存結果で、今回の同仕様・実サーバー比較とは条件が異なります。
レンダー・プレビュー・チェックポイントは OS の一時フォルダの roxy_blender_mcp/ に保存されます(get_status の
work_dir)。ダウンロードは ~/Library/Caches/roxy-blender-mcp/ にキャッシュされます。
ライセンス
GPL-3.0-or-later(Blender アドオンの要件に合わせています)。取り込んだアセットのライセンスは各提供元に従います
(CC-BY はクレジット表記が必要。オブジェクトのカスタムプロパティ roxy_license / roxy_author に記録されます)。
Available Tools
58 toolsadd_damageA
Real chipped edges (wood, stone, concrete, painted props): flakes sliced off convex edges as geometry, rims softened by the bevel, wear shading follows the chips. Live Geometry Nodes modifier 'Roxy Damage' (editable sliders). make_game_asset bakes it into the normal map. Not for clean new products.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| size | No | Chip size in metres (default ~12 % of the part's thickness). | |
| depth | No | 0.2 shallow shaving .. 1 deep gouge. | |
| amount | No | 0-1 share of edge spots that get chipped (0.3 light use, 0.6 worn, 0.9 abused). | |
| objects | Yes | Object name or list of names. | |
| spacing | No | Distance between chip candidates along an edge (default 3.5x size). | |
| edge_angle | No | Only edges sharper than this (degrees). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral load and does well: it discloses that the effect is a live, editable Geometry Nodes modifier ('Roxy Damage') rather than a destructive bake, describes what geometry physically changes, and names make_game_asset as the step that bakes it into the normal map. It doesn't cover permissions, undo, or applicability preconditions (existing convex edges), which keeps it at 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the core purpose, then mechanism/workflow, then the exclusion. Efficient overall, though the first sentence is dense with descriptive clauses that could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and seven parameters, the description covers purpose, the modifier mechanism, the baking workflow, and exclusions adequately. It doesn't describe the returned state or how the added modifier interacts with manage_modifiers, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (86%), so the schema already documents seed, size, depth, amount, objects, spacing and edge_angle. The description adds no parameter-level syntax or format detail beyond restating the wear concept ('wear shading follows the chips'), so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it adds chipped edges as real geometry (flakes, beveled rims, wear shading) via a 'Roxy Damage' modifier. An agent can tell this apart from additive detail tools like add_surface_detail or add_masonry, and the explicit 'Not for clean new products' scope note seals the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when it applies ('wood, stone, concrete, painted props') and a scope exclusion ('Not for clean new products'), plus the downstream workflow with make_game_asset. It stops short of naming the specific alternative an agent should reach for when the exclusion applies, so it's just shy of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_masonryA
Real bricks, blocks, stone courses or tiles cut from a solid (walls, chimneys, floors, steps): joints are real gaps with a mortar bed behind, every unit varies in depth and tone. Live Geometry Nodes modifier 'Roxy Masonry' (sliders) + a '_Mortar' child. add_damage chips the arrises; make_game_asset bakes it.
| Name | Required | Description | Default |
|---|---|---|---|
| up | No | Direction the courses stack (walls: z; floor tiles: y). | z |
| seed | No | ||
| along | No | Direction of the brick/tile length. | x |
| joint | No | Mortar/grout joint (m): bricks 0.01, tiles 0.002-0.005. | |
| objects | Yes | Object name or list of names. | |
| stagger | No | Offset of every other course: 0.5 running bond, 0 stack bond/grid tiles, 0.33 third bond. | |
| unit_length | No | Brick/block/tile length (m). Brick 0.215, block 0.44, tile 0.3-0.6. | |
| depth_jitter | No | Random in/out offset per unit (m) - old walls 0.003+. | |
| mortar_depth | No | Mortar bed set back from the face (m); 0 = open joints. | |
| course_height | No | Brick height / tile width (m). Brick 0.065, block 0.215. | |
| mortar_material | No | Material preset name (list_material_presets), or {preset, color, roughness, weathering, ...} like apply_material, or the name of an existing material. Presets with a real-world scan use Poly Haven automatically; {'polyhaven': 'mossy rock'} picks any Poly Haven texture by description. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose key side effects beyond the schema: it creates a live 'Roxy Masonry' Geometry Nodes modifier plus a '<name>_Mortar' child object, and that every unit varies in depth and tone. This is genuinely useful behavioral context. It stops short of stating reversibility or how it treats pre-existing geometry, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then side effects, then workflow hooks in three dense sentences with little waste. The telegraphic style ('chips the arrises') is efficient but slightly jargon-heavy, keeping it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with no output schema and no annotations, the description covers purpose, generated side effects (modifier + child object), and downstream tool chaining adequately. It does not explain the return value or how it handles existing meshes, but the essentials for correct invocation are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 91%, so nearly every parameter (up, along, joint, stagger, course_height, etc.) is already well documented in the schema with real-world value guidance. The description adds only implicit meaning (e.g. 'joints are real gaps with a mortar bed behind' relates to joint/mortar_depth) but no syntax beyond the schema, so the baseline holds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (add) and resource (masonry), then precisely defines what that means: real bricks, blocks, stone courses or tiles with real mortar gaps. This clearly distinguishes it from siblings like add_planks (wood) or create_cushion, and names the concrete surfaces it targets (walls, chimneys, floors, steps).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives contextual cues about what surface types this produces (walls, chimneys, floors, steps) and names follow-up tools (add_damage chips the arrises; make_game_asset bakes it), which implies a workflow. However, it never explicitly states when to choose this over alternatives such as add_planks or add_surface_detail, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_modifierB
Add a modifier with quality defaults (exact booleans with the cutter hidden, even-thickness solidify, clipped mirror, angle-limited bevel with hardened normals). The stack is auto-ordered so booleans/mirror/ solidify run before bevel and subdivision.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | Yes | bevel, subdivision, mirror, array, solidify, boolean, weighted_normal, twist, bend, taper, stretch, displace, screw, remesh, smooth, corrective_smooth, shrinkwrap, lattice, curve, cast, weld, wireframe, decimate, triangulate (or any Blender modifier type). | |
| apply | No | Apply immediately (destructive). | |
| object | Yes | ||
| params | No | Modifier settings by Blender property name; angles in degrees, objects by name. Shortcuts: mirror {axis:['X']}, array {count, offset:[x,y,z]}, boolean {object:'Cutter', operation:'DIFFERENCE'|'UNION'|'INTERSECT'}, solidify {thickness}, bevel {width, segments, angle}, twist/bend {angle, deform_axis}, displace {strength, noise_scale}. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose non-obvious behavior: exact booleans hide the cutter, and the stack is auto-ordered (booleans/mirror/solidify before bevel/subdivision). That is genuine added value, but it omits failure modes, reversibility/undo behavior, and how conflicts with existing modifiers are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, and every clause earns its place by naming concrete default behaviors. The parenthetical is dense but compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param mutation tool with no annotations and no output schema, the description covers the key defaults and ordering behavior adequately. It is still missing sibling routing and error/reversibility context, leaving some gaps an agent would want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60% and the params field already documents shortcuts, angles, and accepted types. The description adds the default behaviors applied per modifier type but does not map meaning onto the object/name/apply parameters beyond what the schema states, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource (add a modifier) and adds the distinguishing feature of quality defaults with auto-ordering. However, it never differentiates from the sibling manage_modifiers, so an agent cannot tell from the text alone which tool to pick for the same task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no exclusions, and no mention of the alternative manage_modifiers. 'Quality defaults' implies a use case but leaves the agent to infer when to prefer this over manually managing modifiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_planksA
Turn a solid (box, lid, extrusion) into real boards/staves with gaps - crates, chests, floors, fences, barrels, doors. Live Geometry Nodes modifier 'Roxy Planks' (editable sliders); every board gets its own 'roxy_board' value so wood materials vary in tone per board. Bevel/chips/weathering apply per board. make_game_asset bakes the gaps into the normal map (the game mesh stays a clean solid).
| Name | Required | Description | Default |
|---|---|---|---|
| gap | No | Gap between boards (m). | |
| axis | No | Boards are stacked along this local axis (z = horizontal boards on a crate side). | z |
| seed | No | ||
| offset | No | Random shift per board (m) - boards never sit perfectly flush. | |
| objects | Yes | Object name or list of names. | |
| board_width | No | Target board width in metres (boards come out equal). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does a solid job: it discloses that a live, editable Geometry Nodes modifier ('Roxy Planks') is created, that per-board material values ('roxy_board') drive tone variation, that bevel/chips/weathering apply per board, and that make_game_asset later bakes gaps into the normal map. It does not state whether the input solid is replaced or preserved, nor any selection/permission prerequisites, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core transformation, then supporting behavior, with no filler sentences. The trailing list of target artifacts is slightly dense but each clause (modifier name, roxy_board, baking) carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no output schema, the description covers role, downstream interaction with make_game_asset, and per-board behavior. Remaining gaps are minor: what object state results after the call and any prerequisites for the solid input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already documents gap, axis, offset, board_width and objects. The description only implicitly references gaps ('with gaps') and adds no syntax, units, or defaults beyond the schema, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: turning a solid (box, lid, extrusion) into real boards/staves with gaps. The output artifacts (crates, chests, floors, fences, barrels, doors) make it clearly distinguishable from siblings like add_masonry or add_surface_detail without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The list of use cases (crates, chests, floors, fences, barrels, doors) gives clear context for when this is the right tool, and it notes the relationship to make_game_asset. However it never explicitly names a sibling alternative or states when NOT to use it versus e.g. add_masonry or create_primitive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_surface_detailA
Secondary detail is what makes hard-surface models read as manufactured: seams, fasteners, vents. Screws/rivets are snapped onto the actual surface and parented to the object; panel lines are real grooves (bevelled by the object's bevel modifier); vents are a live boolean.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | panel_lines: the axis the cutting planes cross (Z = horizontal seams). | |
| kind | Yes | screws: cross-head screws in the 4 corners of a side (or at positions). rivets: rows of domed rivets along a side. panel_lines: grooves cut into the surface at planes across an axis (seams between panels/lid and body). vents: rounded slots cut into a side (live boolean). | |
| rows | No | ||
| side | No | top, bottom, front (-Y), back, left (-X), right. | front |
| size | No | screw/rivet head diameter in metres (default from the face size). | |
| count | No | screws: how many corners (1-4); rivets: per row; vents: slots; panel_lines: lines. | |
| depth | No | groove depth / vent slot depth. | |
| width | No | panel line groove width / vent slot width. | |
| length | No | vent slot length. | |
| margin | No | distance from the face border for screws/rivets. | |
| object | Yes | ||
| offsets | No | panel_lines: world coordinates along axis where seams go. | |
| material | No | Material preset name (list_material_presets), or {preset, color, roughness, weathering, ...} like apply_material, or the name of an existing material. Presets with a real-world scan use Poly Haven automatically; {'polyhaven': 'mossy rock'} picks any Poly Haven texture by description. | |
| positions | No | explicit world points on/near the surface for screws/rivets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose non-obvious mechanics: screws/rivets are snapped onto the real surface and parented to the object, panel lines are real grooves affected by the object's bevel modifier, and vents are a live boolean. This is meaningful behavioral context an agent could not get from the schema. It still omits prerequisites, whether the operation is destructive/reversible, and failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences: the first frames the purpose, the second front-loads the three implementation behaviors. Every clause carries information, though the opening rationale is slightly motivational rather than operational.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter tool with no output schema and no annotations, the description covers the behavior of each detail kind and the schema covers the parameters well. The main gaps are prerequisites and any indication of return/error behavior, but these are minor against the rich schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 86%, so the schema already documents nearly every parameter (axis, side, count, depth, width, length, margin, offsets, positions, material). The description only reinforces the kind-to-mechanism mapping (seams/fasteners/vents), adding little beyond the schema's own enum documentation. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description makes clear that this adds manufactured surface detail (seams, fasteners, vents) and names the four mechanisms, which map to the kind enum. It never states the verb explicitly or distinguishes itself from nearby siblings like add_damage, add_planks, or add_modifier, so an agent must infer the 'add detail to an existing surface' framing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no prerequisites (e.g., object must be an existing mesh), and no mention of alternatives. Usage is only implied by the word 'secondary detail' in the opening clause.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_qualityB
Find what makes a model look wrong: floating or sunken parts, flipped normals, non-manifold/internal faces, duplicate verts, faceted shading, razor-sharp unbeveled edges, unapplied scale, missing materials, intersecting parts, missing camera/lights. Each issue comes with a fix hint.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | Object name or list of names. | |
| ground_z | No | ||
| check_intersections | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load. It usefully discloses output behavior ('Each issue comes with a fix hint') and its read-like nature ('Find'), but says nothing about side effects, permissions, or whether it mutates the scene. It adds some output context but leaves the safety/mutation profile implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose clause is front-loaded before the dense but scannable issue list, and every entry earns its place as a concrete detectable defect. It is slightly list-heavy but appropriately sized with no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analysis tool with no output schema and no annotations, the description adequately conveys what is detected and that fixes are suggested. It is incomplete on how it differs from sibling review/inspection tools and on the semantics of two of its three parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%: 'objects' is documented in the schema, but ground_z and check_intersections have no field descriptions. The description mentions 'intersecting parts' and 'floating or sunken parts', hinting at those parameters, but never explains their meaning, defaults, or the object-scoping syntax, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (find/analyze) and resource (model quality problems) and enumerates the concrete issues it detects, from flipped normals to missing lights. This is far more than a restatement of the name. It does not, however, distinguish itself from nearby QA siblings such as review_model, inspect_object, or check_contacts, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the list of things it checks; there is no explicit 'use this when' and no naming of alternatives like review_model or inspect_object. An agent can infer this is a diagnostic pass, but it gets no guidance on when this tool is the right choice versus the adjacent inspection tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
animateC
Keyframes with designer-grade easing per segment (After Effects Easy Ease, CSS cubic-bezier, back/bounce/ elastic). Returns a curve check (speed spikes, loop seams).
| Name | Required | Description | Default |
|---|---|---|---|
| bone | No | Pose bone to animate (object = the armature) - for UE5 skeletal props. | |
| keys | No | [{frame, value, ease}] - value is a number for one axis or [x,y,z]; `ease` shapes the motion arriving at that key, e.g. [{frame:1,value:0},{frame:24,value:95,ease:'easy_ease'},{frame:30,value:90,ease:'back'}]. | |
| loop | No | Repeat forever (cycle modifier). | |
| action | No | Clip name (one action = one UE5 animation). | |
| object | Yes | ||
| property | No | location | rotation | scale, optionally one axis ('rotation.z'); or any data path ('data.energy'). Rotations in degrees. | location |
| relative | No | Values are offsets from the current value. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose one behavioral trait — that it returns a curve check for speed spikes and loop seams — which is genuinely useful since there is no output schema. However, it never states that this is a mutating operation, what happens to pre-existing keyframes/actions, or any permission/scope constraints, which is a significant gap for a 7-parameter authoring tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded on capability, with the return-value note appended. No filler, though the parenthetical list of easing libraries is somewhat brag-like rather than operational.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there is no output schema, the description's one-line mention of the curve check is valuable and partially fills that gap. But for a 7-parameter, no-annotation mutation tool, the definition omits usage context, mutation semantics, and sibling differentiation, leaving it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 86%, so the schema already documents bone, keys, loop, action, property, and relative including an inline ease example. The description adds no parameter meaning beyond this, so the baseline 3 is appropriate; it does not compensate for or extend the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (keyframing) with a distinctive attribute (per-segment designer-grade easing via Easy Ease, cubic-bezier, back/bounce/elastic) and previews a return artifact (curve check). That is enough for an agent to understand the tool builds animated keyframes, but it never distinguishes itself from the nearby siblings animate_preset, check_animation, or rig_character, which overlap in theme.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no routing to alternatives. Given siblings like animate_preset (presumably canned animations) and check_animation, the description should say when to hand-author keyframes with this tool versus using a preset, but it offers nothing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
animate_presetB
Prop motions with the principles of animation built in - the quickest way to a lively lid, door, drawer, lever, fan or pickup. Each preset becomes its own action (clip).
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Default: the bone's hinge axis, or a sensible object axis. | |
| bone | No | Animate this rig_prop bone (object = 'Armature'). | |
| ease | No | Easing INTO this key: linear, ease, ease_in, ease_out, ease_in_out, easy_ease (After Effects F9), easy_ease_in, easy_ease_out, strong, smooth, anticipate, overshoot, back, bounce, elastic (+ _in variants), sine, quad, cubic, expo, circ, step; or [x1,y1,x2,y2] (CSS cubic-bezier); or {out_influence, in_influence} (After Effects velocity %). | |
| loop | No | ||
| start | No | ||
| action | No | ||
| amount | No | Degrees (rotations), metres (bob/slide) or scale factor (pulse). | |
| object | Yes | ||
| preset | No | open/close: hinge rotation with anticipation + overshoot and settle. spin: seamless loop. swing/bob: pendulum / float loop. shake: decaying wobble. pulse: scale pop. slide: drawer move with soft stop. | open |
| duration | No | Frames for the main move (24 = 1 s at 24 fps). | |
| overshoot | No | ||
| anticipation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose one meaningful behavior: each preset becomes its own action/clip (a state-creating side effect). However, it omits anything about overwriting existing actions, naming/return behavior, or prerequisites, which is thin for a 12-parameter tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core purpose and followed by the useful 'preset becomes its own action (clip)' detail. No filler, though the phrase 'based on the principles of animation' is somewhat marketing-flavored.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter mutation tool with no annotations and no output schema, the description is too sparse. It explains none of the parameter interplay (ease, amount, duration, overshoot), the rig_prop bone targeting, or what the generated clip looks like, leaving major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the description adds no parameter-level meaning at all — it never mentions axis, bone, ease, amount, overshoot, or anticipation. It leaves half the parameters potentially undocumented in both places, failing to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys a specific purpose: applying animation-principle-driven preset motions to props (lid, door, drawer, lever, fan, pickup), and notes the output is a clip. It implies a preset-based shortcut but never names the `animate` sibling or contrasts preset-driven work with manual animation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'the quickest way to a lively lid, door...' which suggests using this for fast, ready-made motions. There is no explicit when-to-use vs the `animate` sibling and no exclusions or prerequisites, leaving the agent to infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_materialB
Physically based materials with procedural detail (grain, veins, micro-roughness, bump) and optional weathering, no UVs needed. Identical specs are shared automatically. Prefer presets over plain colours; real objects mix materials (wooden top + metal legs, ceramic body + cork lid).
| Name | Required | Description | Default |
|---|---|---|---|
| wet | No | 0-1 rain-wet look: darker, glossy, more in low spots. | |
| bump | No | Surface relief multiplier (0 = none). | |
| dirt | No | 0-1 grime in cavities. | |
| dust | No | 0-1 dust on top surfaces. | |
| moss | No | 0-1 moss on damp, shaded, up-facing spots (stone, wood, roofs, ruins). | |
| name | No | Material name. Re-using a name updates that material everywhere. | |
| rust | No | 0-1 rust in crevices, blotches and run-off streaks (iron/steel/painted metal get it automatically from weathering). | |
| snow | No | 0-1 snow settled on up-facing surfaces. | |
| wear | No | Fine control 0-1 instead of weathering: edge wear. | |
| alpha | No | <1 for see-through (not glass - use the glass presets). | |
| color | No | sRGB colour: '#rrggbb', a CSS-like name, or [r,g,b] 0-1. Converted to linear for you. | |
| faces | No | Only these faces (adds a slot), e.g. {side:'top'} for a different tabletop surface. | |
| grain | No | Wood grain / metal brushing direction. auto = along each object's longest axis (right for boards and legs sharing one material). | |
| reuse | No | Assign an existing material by name instead of building one. | |
| color2 | No | Secondary colour (wood dark grain, marble veins, mortar). | |
| params | No | Raw Principled BSDF inputs, e.g. {'Coat Weight': 1, 'Sheen Weight': 0.5}. | |
| preset | No | Preset name - see list_material_presets (wood_oak, wood_walnut, marble, concrete, fabric, leather, brushed_metal, ceramic, glass, ...). Natural materials use Poly Haven scans by default (see source). | plastic |
| source | No | auto (default): scanned Poly Haven textures wherever a scan exists (wood, concrete, stone, brick, plaster, fabric, velvet, leather, clay, bark, rust, tread plate...) - downloaded once, real-world size, grain follows each part, color= tints the photo. Procedural only where Poly Haven has no scans (polished/coloured metals, glass, plastics, porcelain, paint) or offline. procedural: never download. | auto |
| objects | Yes | Object name or list of names. | |
| metallic | No | ||
| polyhaven | No | Any Poly Haven texture by id or by description, e.g. 'mossy rock', 'green rusty metal', 'red leather', 'herringbone wool' (tiled/jointed scans are skipped unless the words ask for tiles/planks/bricks). | |
| roughness | No | ||
| scratches | No | 0-1 fine scratches (glossy metal/plastic/paint get them from weathering). | |
| weathering | No | Age the surface: edge wear on convex edges (painted metal chips to bare metal), grime in crevices and contact areas, dust on up-facing surfaces. 'light'/'used' is right for most real-world objects. | |
| texture_maps | No | Image files {base_color, roughness, metallic, normal, alpha}: box-projected, no UVs needed. | |
| texture_scale | No | Pattern size multiplier (2 = features twice as big). | |
| emission_strength | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral load. It usefully discloses that identical specs are shared automatically, no UVs are needed, and reusing a name updates everywhere — real behavioral context. But it omits key mutation semantics: which objects are valid targets, whether it overwrites existing materials, permission/rate concerns, or what happens on name collision vs. reuse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with a coherent arc: capability → sharing behavior → usage preference. But the first sentence is a dense list of material features that reads more like marketing copy than an operational statement, and the description never front-loads what the tool actually does to an object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 27-parameter mutation tool with no annotations and no output schema, the description covers material semantics reasonably but leaves essential gaps: it doesn't state the core action (applying to objects), doesn't mention that this is a write/mutating operation, and gives no output/return expectations. It is minimum-viable but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 89%, so the schema carries most parameter meaning and a baseline of 3 applies. The description adds qualitative intent — 'prefer presets over plain colours', material mixing guidance — which is beyond-schema, but the two bare parameters (metallic, roughness, emission_strength) and the interplay of preset/name/reuse/source are not clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description describes material qualities (PBR, procedural detail, weathering) and gives application guidance, but never states the actual verb+resource of the tool — that it assigns/applies a material to object(s). The parameter 'objects' is the only hint of the action. An agent must infer the core purpose from context rather than reading it directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers actionable preferences: 'Prefer presets over plain colours' and 'real objects mix materials' with concrete examples (wooden top + metal legs). However, it never names alternative tools or states when NOT to use this one — notably it doesn't point to add_surface_detail, add_damage, or uv_unwrap, which are close siblings in the same space.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_partB
Close the gaps check_contacts measured, using the measured closest points (no guessed coordinates).
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | extend: which end (default: whichever reaches the target). | |
| gap | No | move: leave this gap; conform: height above the surface (default half the part's thickness). | |
| mode | No | move: translate the part/group rigidly until it touches the target. extend: stretch a cable/pipe/stay end along its own direction until it meets the target. conform: lay a seam/stripe/band/label onto the target surface along its whole length (keeps its cross-section). | move |
| target | No | Its real mount (do not just accept the nearest part). Required for conform. | |
| objects | Yes | The detached part, or the whole detached group (moved together). | |
| max_move | No | Refuse moves/extensions longer than this (m) - big gaps mean the part is misplaced. | |
| direction | No | move: slide only along this world direction until it meets the target (e.g. [0,0,1] to lift a fender onto its rails) - keeps symmetry instead of moving toward the nearest point. | |
| allow_overlap | No | Accept a move that pushes the part into other parts (refused by default). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose one meaningful behavioral trait: attachment uses measured closest points, never guessed coordinates, which is a trust-relevant guarantee. However it does not mention that the operation mutates the scene, that oversized moves are refused (max_move), that overlap is refused by default, or what happens on failure — all of which live only in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with zero filler, and the operative constraint (measured points, no guessing) is front-loaded alongside the sibling reference. It is appropriately sized for a one-line pointer, though it is arguably terse for a tool with three distinct modes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with three modes, no annotations, and no output schema, the description is minimal but not deficient: the schema fully documents parameters and the description supplies the workflow link and the no-guessing guarantee. It still omits what the tool returns/modifies and the refusal behaviors that an agent acting without annotations would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight parameters, including mode semantics, gap behavior per mode, direction, target, and safety limits. The description adds no parameter-level meaning beyond that, which is the expected baseline-3 case when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (attach a detached part to close the gap) and explicitly ties it to the sibling check_contacts, so the agent knows this consumes measured contact data. It stops short of naming the resource directly ('attach_part' infers it) and does not distinguish its three modes, which only the schema covers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies a workflow prerequisite ('the gaps check_contacts measured'), which tells the agent to run check_contacts first, and the target parameter warns 'do not just accept the nearest part.' But there is no explicit when-to-use-this-vs-alternatives statement, no mention of when to skip it, and no guidance on choose-move-vs-extend-vs-conform beyond the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batchA
Run many tool calls in one round-trip (e.g. all the parts of a chair). Results come back per step. Not for look/render_image (their images are dropped).
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes | [{command: 'create_primitive', params: {...}}, ...] - command names and params are the same as the tools. | |
| stop_on_error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that results come back per step and that image-producing tools lose their images, but says nothing about ordering/parallelism guarantees, how errors surface when stop_on_error is false, or the exact return shape per step. Adequate but with clear gaps for a meta-execution tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the core capability is front-loaded and the caveat follows immediately. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description does mention the per-step result granularity, which is the main thing an agent needs. Remaining gaps — error handling under stop_on_error=false and result ordering — are modest for a 2-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; the operations array format is documented in the schema itself ('command names and params are the same as the tools'). The description adds only a soft example ('all the parts of a chair') and never addresses stop_on_error semantics, so it does not compensate for the uncovered half beyond baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (run) and resource (many tool calls) with a clarifying example ('all the parts of a chair'), and the meta-tool nature makes it unmistakable among the concrete modeling siblings. An agent immediately knows this is the multi-call batching entry point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit exclusion — 'Not for look/render_image (their images are dropped)' — which is exactly the kind of when-not guidance that prevents wasted calls. It does not, however, state when batching is preferable to sequential calls or what the alternatives are, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_animationB
Find sudden speed changes and loop seams (hitches) in animation curves.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | Object name or list of names. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It says what it detects but not that it is read-only/non-destructive, what result it produces (a list of hitches? a pass/fail?), or how many objects it will scan. For a diagnostic tool with zero annotation coverage this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and the finding, with zero filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, optional-arg check tool with no output schema, the description is minimal but functional. It omits the default scope when 'objects' is null and gives no hint of the result shape, which a no-output-schema tool should ideally supply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'objects' parameter, so the baseline is 3. The description adds no additional meaning about what happens when 'objects' is omitted (presumably all objects) or how names are matched.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Find) and a specific target (sudden speed changes and loop seams / hitches in animation curves), even defining the jargon 'hitches'. An agent can tell this is a diagnostic inspection tool, though it never explicitly contrasts itself with the sibling 'animate' or 'animate_preset' with which it shares a domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to run this check, in what workflow stage (e.g., after animate/animate_preset, before export), or what alternatives exist. Usage is only weakly implied by the word 'animation curves', so the agent must infer the trigger condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_contactsA
Which parts really touch (evaluated surfaces, embedded parts count), every part or group detached from the main assembly with its gap and nearest assembly part, and elongated parts with loose ends. Bounding-box checks miss these in dense models. Touching is not proof of the right mount - check the real partner.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | Parts to check (default: every visible part in the scene). | |
| tolerance | No | Surfaces closer than this count as touching (m). | |
| check_ends | No | Also find cables/pipes/stays/rods whose ends stop in mid-air. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that surfaces closer than tolerance count as touching, that embedded parts are included, and that results include gap distances plus nearest assembly part. The caveat 'Touching is not proof of the right mount' adds genuine interpretive guidance. It never states the tool is read-only/non-destructive, which is the main remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the three reporting categories lead, and the two caveats about bounding boxes and false-mount confidence follow. Every sentence earns its place; only the run-on opening clause costs it a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an analysis tool with no output schema and no annotations, the description needs to convey what comes back and roughly does: contact pairs, detached groups with gaps and nearest part, and loose-ended parts. What is missing is the output shape and confirmation that nothing is modified, but the coverage is otherwise solid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so objects, tolerance, and check_ends are already fully documented (including the default of every visible part and the loose-end scope). The description adds no parameter-level detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific analysis: which parts truly touch, which parts/groups are detached from the main assembly with gap and nearest partner, and elongated parts with loose ends. An agent knows exactly what it returns. However, it does not differentiate itself from the close sibling inspect_connections, leaving the choice between the two to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies a use case with 'Bounding-box checks miss these in dense models' and 'Touching is not proof of the right mount', which signals when the deep check is worth running. But there is no explicit when-to-use, no exclusions, and no routing against the similar inspect_connections sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
checkpointB
Snapshot the scene before risky edits and roll back if they go wrong (restore replaces the current scene's objects with the snapshot; the user's .blend file is untouched).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| action | No | save |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does usefully disclose that restore replaces the current scene's objects with the snapshot and that the user's .blend file is untouched — an important non-destructive guarantee. But it is silent on the destroy/mutation semantics of delete, whether snapshots persist across sessions, and idempotency, leaving notable gaps for a 4-action tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a useful parenthetical clarification; no filler or redundancy. It is efficient, though the brevity is partly why the other actions go unexplained.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stateful mutation tool with no annotations, no output schema and 0% parameter coverage, the description covers the destructive/rollback concept and the .blend safety guarantee but leaves the list and delete actions, the name parameter, and persistence behavior unexplained. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implies the save and restore actions and mentions 'roll back' but never explains the 'name' parameter, nor what list and delete do or how they interact with name. Two of the four enum values are entirely undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource (snapshot the scene / roll back) and frames it around a clear scenario ('before risky edits'), which is distinguishable from siblings like clear_scene or get_scene_info. It stops short of explicitly naming alternative tools or how it relates to them, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-to-use for the save/restore workflow ('before risky edits... roll back if they go wrong'), which is helpful implied usage. However, the schema's four actions (save, restore, list, delete) are never differentiated in the description, so an agent gets no guidance on when to pick list or delete versus save/restore.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cleanup_meshB
Merge duplicate verts, remove loose geometry and degenerate faces, make normals consistent.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | Object name or list of names. | |
| shading | No | ||
| remove_loose | No | ||
| merge_distance | No | ||
| recalc_normals | No | ||
| dissolve_degenerate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the concrete mutations performed (merging, deleting loose/degenerate geometry, recalculating normals), which tells the agent this is a destructive write. However, it never states irreversibility, whether it acts on the whole scene or a selection when 'objects' is null, or that merges can collapse unintended geometry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the primary operation (merging verts) and lists the rest without filler. Efficient and scannable, though a comma-separated list rather than structured prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no output schema, the description covers the core intent but omits scope/default behavior (what happens when objects is null), the shading option, and any note on reversibility. Adequate but leaving the agent to guess on several call-affecting details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 17% (only 'objects' is documented), so the description must compensate, and it partially does: 'merge verts' maps to merge_distance, 'remove loose geometry' to remove_loose, 'degenerate faces' to dissolve_degenerate, and 'normals' to recalc_normals. It says nothing about the 'shading' enum or the meaning/threshold of merge_distance, leaving real gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation set on a specific resource: merging duplicate verts, removing loose geometry/degenerate faces, and unifying normals. An agent immediately understands this is a mesh-repair tool. It does not, however, distinguish itself from the close sibling edit_mesh, which likely also mutates mesh topology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to run this versus edit_mesh, review_model, or analyze_quality, nor any stated prerequisite (e.g. selection state or that objects must be pre-selected). Usage must be inferred purely from the operation names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_sceneB
Delete every object in the scene (start fresh). Ask the user first if the scene has their work.
| Name | Required | Description | Default |
|---|---|---|---|
| keep_camera | No | ||
| keep_lights | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the destructive scope ('delete every object') plus a safety practice (confirm with the user). It omits whether the action is reversible/undoable and does not reconcile 'every object' with the keep_camera/keep_lights options, so the behavioral picture is incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the core destructive action front-loaded and the cautionary note second. Efficient and readable, though the second sentence is instructional rather than informational.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-annotation tool with two undocumented parameters and no output schema, the description covers the most important risk (irreversible-looking bulk deletion + user confirmation) but leaves gaps around undo behavior and the keep_camera/keep_lights options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions keep_camera or keep_lights. With two undocumented parameters and no compensating text, an agent cannot learn from prose that it can preserve the camera or lights, so the description fails to fill the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: deleting all scene objects, with the clarifying parenthetical '(start fresh)'. It is clearly distinct from siblings like cleanup_mesh or organize_objects, though it doesn't explicitly name a counterpart the way a 5 would.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives one conditional instruction -- ask the user first if the scene contains their work -- which strongly implies the tool is a last-resort/recovery action. However, there is no explicit when-to-use-vs-alternatives guidance or statement of when this is appropriate versus a more selective cleanup tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_referenceA
Compare the model's silhouette with a reference photo/concept: proportions only (both normalised to their height). Returns IoU, overall aspect difference and per-height corrections ('at 70-80 % height the model is 18 % narrower', with world z), plus an overlay image (red = only in reference, blue = only in model). Fix the listed bands (edit_mesh scale/soft_move on that z range) and compare again. Use corresponding reference/model views and separable backgrounds. Normalized silhouette agreement cannot verify absolute dimensions, apertures, attachments, materials or AAA fidelity.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | Which view the reference shows. | front |
| bands | No | Height bands to compare (10 = every 10 %). | |
| image | Yes | Reference picture of the object (front/side/top view; PNG with transparency is best, plain backgrounds work). | |
| objects | No | Object name or list of names. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does well: it discloses the return payload (IoU, aspect difference, per-height corrections with a concrete example and world z) and the overlay image color semantics (red = only in reference, blue = only in model). It also bounds the method's validity (cannot verify absolute dimensions, apertures, attachments, materials, AAA fidelity). It does not explicitly state that the operation is non-mutating/read-only, which is the main remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core comparison and its normalization constraint, then returns, then the fix-and-recompare workflow, then caveats. Every sentence carries unique information (scope, outputs, next action, validity limits) with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must describe returns, and it does so concretely (IoU, aspect difference, per-height corrections, overlay image). Combined with 100% parameter schema coverage and explicit limitations, an agent has everything needed to call it and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds meaning by tying 'bands' to the returned per-height corrections ('at 70-80 % height...') and by telling the user to pair 'view' with the corresponding model view. That amplifies the schema beyond restatement, though it does not document each parameter exhaustively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (compare the model's silhouette with a reference) and immediately narrows scope to 'proportions only (both normalised to their height)'. This is clearly distinguishable from siblings like review_model or analyze_quality, which serve different evaluation roles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real workflow guidance: fix the listed bands via sibling edit_mesh (scale/soft_move on that z range) and compare again, plus prerequisites 'use corresponding reference/model views and separable backgrounds'. It also states what the tool cannot verify. It stops short of naming an explicit alternative tool for silhouette work, so it is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_backdropC
Seamless studio backdrop or floor sized to the subject, sitting at its lowest point.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | ||
| color | No | #d6d6d6 | |
| style | No | cyclorama = seamless curved studio sweep behind the subject; floor = large ground plane. | cyclorama |
| target | No | Object name or list of names. | |
| material | No | Material preset name (list_material_presets), or {preset, color, roughness, weathering, ...} like apply_material, or the name of an existing material. Presets with a real-world scan use Poly Haven automatically; {'polyhaven': 'mossy rock'} picks any Poly Haven texture by description. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does add one genuinely useful behavioral trait — the backdrop is auto-sized to the subject and placed at its lowest point — but says nothing about side effects, defaults, existing-scene impact, or what the call returns. For a creation tool with zero annotation coverage this is a large gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler — efficient and easy to scan. It is arguably too terse for a five-parameter tool, which keeps it short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given five parameters, no annotations, and no output schema, the definition should explain selection criteria and parameter behavior. It instead provides only a physical characterization of the resulting object, leaving usage and parameter semantics to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description contributes no parameter information at all; it does not mention size, color, style, target, or material. With schema coverage at only 60%, two parameters (size, color) are undocumented in both places, so the description fails to compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — a seamless studio backdrop or floor — and distinguishes it from primitive/geometry creators among the siblings. It lacks an explicit verb (reads as a noun phrase), so the action is implied rather than stated, but an agent can still tell what gets created.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to reach for this tool versus create_primitive, create_extrusion, or setup_lighting, and no prerequisites or exclusions are given. The only implicit cue is that it makes a backdrop/floor, which is not real usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cushionB
Upholstered soft goods built like the real thing (rounded-rectangle plan, bulging sides, crowned faces, seam piping, optional buttons). Origin at the bottom centre; returns top_z for stacking.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Cushion | |
| size | Yes | [x, y, z] metres (seat cushion ~[0.55,0.55,0.12]). | |
| bulge | No | ||
| crown | No | ||
| style | No | box: seat/back cushion with piping. pillow: throw pillow, strongly crowned. mattress: flat, crisp. pouf: round-ish ottoman. | box |
| corner | No | Plan corner shape: 2 round/oval .. 12 nearly square. | |
| parent | No | ||
| piping | No | ||
| tufted | No | Button tufting grid columns (0 = none, 3 = chesterfield-like). | |
| location | No | World position [x,y,z] (metres) of the object origin. | |
| material | No | Material preset name (list_material_presets), or {preset, color, roughness, weathering, ...} like apply_material, or the name of an existing material. Presets with a real-world scan use Poly Haven automatically; {'polyhaven': 'mossy rock'} picks any Poly Haven texture by description. | |
| rotation | No | Rotation [x,y,z] in degrees. | |
| piping_material | No | Material preset name (list_material_presets), or {preset, color, roughness, weathering, ...} like apply_material, or the name of an existing material. Presets with a real-world scan use Poly Haven automatically; {'polyhaven': 'mossy rock'} picks any Poly Haven texture by description. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It adds genuinely useful behavioral context beyond the schema: origin is at the bottom centre and it returns top_z for stacking. However, it omits side-effect behavior (whether it adds the object to the scene, material defaults, or scene prerequisites) that an agent would want for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense, front-loaded sentences that waste no words; the geometry concept leads and the origin/return note follows. Slightly terse for the tool's complexity, but every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter creation tool with no annotations, no output schema, and only 62% schema coverage, the description is thin. It covers purpose, geometry, and origin/return, but leaves usage selection and mutation/side-effect behavior unspecified, so an agent still has gaps to fill.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 62%, and the description compensates meaningfully by explaining the geometry concepts behind the loosely documented params: bulging sides (bulge), crowned faces (crown), rounded-rectangle plan (corner), seam piping (piping), and optional buttons (tufted). It adds visual semantics the bare param names lack, though it stops short of units or value ranges.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states what is produced (upholstered soft goods like a real cushion) and lists distinguishing geometric features (rounded-rectangle plan, bulging sides, crowned faces, seam piping, buttons). This lets an agent recognize it as a specialized cushion builder rather than a generic primitive, though it never explicitly contrasts itself with siblings like create_primitive or create_loft.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given: nothing tells the agent when to reach for create_cushion versus create_primitive, create_loft, or create_extrusion, nor any preconditions. Usage must be inferred entirely from the geometry description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_extrusionA
Extrude a 2D outline into a solid with clean quad sides - for anything defined by a silhouette: chair/shelf side panels, brackets, plates with holes, table aprons, logos, gears, cookie-cutter shapes. Draw in the plane you think in (front elevation = XZ). Holes, rolled rims and crowns are built as a well-formed surface (even triangles, real quarter-round rims): give the shape here instead of adding a big Bevel or pushing vertices afterwards. Holes must lie inside the outline (checked).
| Name | Required | Description | Default |
|---|---|---|---|
| back | No | parallel = back follows the crown (constant-thickness pressed shell). | flat |
| name | No | Extrusion | |
| bevel | No | Rounded edges via an angle-limited Bevel modifier with hardened normals: width in metres (e.g. 0.002 for a 10 cm part), or {width, segments, angle}. true = automatic width. | |
| crown | No | Pressed/domed face: how far the front face rises above its rim (m), smooth from the edge inwards - side covers, tank badges, fenders, lids. Built into the surface (no folds), not a later bulge. | |
| depth | No | Thickness, extruded symmetrically about the drawing plane. | |
| holes | No | Inner outlines to cut through, same format. | |
| plane | No | XY: outline seen from the top (u=x, v=y), thickness along Z. XZ: outline seen from the front (u=x, v=z), thickness along Y. YZ: outline seen from the side (u=y, v=z), thickness along X. | XY |
| origin | No | Where the origin sits on the part's bounding box: center, bottom, top, left, right, front, back, min, max, or keep (geometry coordinates exactly as given). origin='bottom' + location z=0 stands a part on the floor. | keep |
| parent | No | ||
| points | Yes | 2D outline [[u, v], ...] in metres (any winding). A third value sets that corner's fillet radius: [u, v, r]. | |
| shading | No | auto = smooth with sharp edges kept above smooth_angle (best default); smooth; flat. | auto |
| spacing | No | Surface point spacing for holed/rolled/crowned panels (m). | |
| location | No | World position [x,y,z] (metres) of the object origin. | |
| material | No | Material preset name (list_material_presets), or {preset, color, roughness, weathering, ...} like apply_material, or the name of an existing material. Presets with a real-world scan use Poly Haven automatically; {'polyhaven': 'mossy rock'} picks any Poly Haven texture by description. | |
| rotation | No | Rotation [x,y,z] in degrees. | |
| collection | No | ||
| edge_radius | No | Round the front/back rims (rolled pressed-panel edge) - radius in metres. | |
| hole_radius | No | Rounded lip on every hole (m); default from edge_radius and the hole size. | |
| subdivision | No | Subdivision Surface levels (1-3) for soft/organic shapes. | |
| corner_radius | No | Fillet radius for every corner (metres). | |
| crown_falloff | No | Distance from the edge where the crown reaches full height (default 35 % of the smaller extent). | |
| edge_segments | No | ||
| interpolation | No | smooth = treat points as a spline (organic outlines). | linear |
| corner_segments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses useful behavioral traits about output quality and validation: 'clean quad sides', 'well-formed surface (even triangles, real quarter-round rims)', and that holes are checked. However, it omits other important behavioral context such as whether it creates a new object, modifies the scene, or has permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then branches into examples, plane advice, and shape-handling notes. It is reasonably efficient, though the list of example parts and the mid-sentence parenthetical are slightly dense; every sentence still earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 24 parameters, no output schema, and no annotations, the description covers the essential concept, key behaviors, and the main constraint (holes inside outline). It does not explain the full set of advanced options or the tool's return value, but the schema handles most parameter details and the core usage is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 79%, so the schema already documents most parameters. The description adds only minor semantic value beyond the schema, such as reinforcing that 'front elevation = XZ' (already in the schema) and noting that holes are validated, but it does not clarify the many other parameters (bevel, crown, subdivision, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Extrude a 2D outline into a solid') and immediately differentiates from other modeling approaches by scoping it to silhouette-defined parts with concrete examples. The phrase 'give the shape here instead of adding a big Bevel or pushing vertices afterwards' further distinguishes it from alternative workflows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context ('for anything defined by a silhouette') and a list of example parts, and advises against a common alternative (post-hoc Bevel). However, it does not explicitly name when to choose this over sibling tools like create_sweep or create_loft, nor does it state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_latheB
Surface of revolution around the local Z axis - the best tool for anything round: bottles, vases, cups, bowls, lamp bases, knobs, wheels, columns, chess pieces, light bulbs. Example vase: profile=[[0,0],[0.06,0],[0.09,0.06],[0.1,0.13],[0.05,0.24],[0.04,0.28],[0.05,0.3]], cap=false, thickness=0.004.
| Name | Required | Description | Default |
|---|---|---|---|
| cap | No | Close open ends that are off the axis with flat caps. | |
| name | No | Lathe | |
| angle | No | Sweep angle in degrees (<360 for partial revolves). | |
| bevel | No | Rounded edges via an angle-limited Bevel modifier with hardened normals: width in metres (e.g. 0.002 for a 10 cm part), or {width, segments, angle}. true = automatic width. | |
| closed | No | Profile is a closed loop (e.g. a thick ring/torus-like section). | |
| origin | No | Where the origin sits on the part's bounding box: center, bottom, top, left, right, front, back, min, max, or keep (geometry coordinates exactly as given). origin='bottom' + location z=0 stands a part on the floor. | keep |
| parent | No | ||
| profile | Yes | Half-silhouette as [[radius, z], ...] from bottom to top (metres). radius 0 closes the end on the axis. Add a third value 1 to make a point a hard corner, e.g. [0.04, 0, 1]; turns sharper than 60 deg are corners automatically (flat bottoms stay flat). A handful of points is enough: they are smoothed with a centripetal spline. | |
| shading | No | auto = smooth with sharp edges kept above smooth_angle (best default); smooth; flat. | auto |
| location | No | World position [x,y,z] (metres) of the object origin. | |
| material | No | Material preset name (list_material_presets), or {preset, color, roughness, weathering, ...} like apply_material, or the name of an existing material. Presets with a real-world scan use Poly Haven automatically; {'polyhaven': 'mossy rock'} picks any Poly Haven texture by description. | |
| rotation | No | Rotation [x,y,z] in degrees. | |
| segments | No | Steps around the axis (64 = smooth). | |
| thickness | No | Wall thickness (Solidify, inward) - use for vessels with an open top (cap=false). | |
| collection | No | ||
| resolution | No | Spline samples between control points. | |
| subdivision | No | Subdivision Surface levels (1-3) for soft/organic shapes. | |
| smooth_angle | No | ||
| interpolation | No | smooth |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden but only describes the geometry produced. It never states that a new object is added to the scene, whether an existing object is replaced, permission/collection effects, or failure modes. The worked example helps but does not substitute for behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core definition is front-loaded in the first clause, followed by use cases and a compact worked example. It is appropriately sized for a creation tool with no wasted preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 19-parameter creation tool with no annotations and no output schema, the description conveys the core concept and a usable example but omits behavioral context (object creation semantics, interaction with location/origin). It is adequate but has clear gaps an agent would need to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 74%, so most parameters are already documented, and the description's example (profile, cap=false, thickness) mostly illustrates values the schema already explains. It adds marginal tie-together value by showing a coherent vessel configuration but introduces no new semantics for the 19 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific geometric verb+resource ('surface of revolution around the local Z axis') and enumerates concrete products (bottles, vases, columns), so an agent understands exactly what it builds. It does not explicitly distinguish itself from creation siblings like create_sweep, create_loft, or create_pipe, so it falls short of the 'differentiates from siblings' bar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'the best tool for anything round' plus a long list of example objects gives clear context for when to reach for this tool. It does not name a when-not condition or an alternative sibling for near-miss shapes (e.g. tubes/revolved pipes), so it misses the top tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_loftB
Skin a smooth surface through cross-sections - for forms whose section changes along their length: fuel tanks, seats, square-to-round bottles, hulls, fuselages, vehicle bodies, trunks, organic product shells.
| Name | Required | Description | Default |
|---|---|---|---|
| caps | No | true = flat end faces, 'round' = smooth domed ends (tanks, pods), false = open. | |
| name | No | Loft | |
| bevel | No | Rounded edges via an angle-limited Bevel modifier with hardened normals: width in metres (e.g. 0.002 for a 10 cm part), or {width, segments, angle}. true = automatic width. | |
| origin | No | Where the origin sits on the part's bounding box: center, bottom, top, left, right, front, back, min, max, or keep (geometry coordinates exactly as given). origin='bottom' + location z=0 stands a part on the floor. | keep |
| parent | No | ||
| smooth | No | Curved between sections (false = straight segments). | |
| samples | No | Points around each section. | |
| shading | No | auto = smooth with sharp edges kept above smooth_angle (best default); smooth; flat. | auto |
| location | No | World position [x,y,z] (metres) of the object origin. | |
| material | No | Material preset name (list_material_presets), or {preset, color, roughness, weathering, ...} like apply_material, or the name of an existing material. Presets with a real-world scan use Poly Haven automatically; {'polyhaven': 'mossy rock'} picks any Poly Haven texture by description. | |
| rotation | No | Rotation [x,y,z] in degrees. | |
| sections | Yes | Cross-sections stacked along Z, each {z, shape, ...}: shape 'circle' {radius} | 'ellipse' {size:[w,d]} | 'rect' / 'rounded_rect' {size:[w,d], corner_radius} | 'superellipse' {size:[w,d], exponent (2=ellipse, 4-6=soft box)} | 'custom' {points:[[x,y],...]}. Asymmetric sections (round shoulder, flat belly): 'top' / 'bottom' half-depths above/below the centre line and 'exponent_bottom' (e.g. 6 = flat floor). Optional per section: offset [x,y], rotation (deg), scale. radius 0 makes a pointed tip. Put the real shape into the sections - do not flatten or push vertices afterwards. | |
| cap_depth | No | Length of a 'round' end dome (default 60 % of the end section). | |
| collection | No | ||
| resolution | No | Rings generated between neighbouring sections. | |
| subdivision | No | Subdivision Surface levels (1-3) for soft/organic shapes. | |
| interpolation | No | monotone (default): passes every section without overshoot between them; spline: legacy Catmull-Rom. | |
| correspondence | No | angle (default): vertex j lies in the same direction on every section, so the surface never twists or zig-zags when the section shape changes; arc: legacy arc-length matching. | angle |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says nothing about whether a new object is created, how the result interacts with existing scene geometry, permissions, or any side effects; the behavioral detail lives entirely in the schema. For a construction tool with zero annotation coverage this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence leads with the core action and then lists applications; it is dense but earns its words. Slightly long tail of examples but no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 18 parameters, no output schema, and no annotations, the description covers purpose and example forms but omits usage routing against the many sibling geometry tools and any behavioral notes. The rich schema compensates for parameter detail, but the description leaves sibling disambiguation to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, above the 80% threshold, so the schema already documents nearly all 18 parameters (caps, bevel, smoothing, correspondence, etc.) in detail. The description adds no parameter-level meaning beyond what the schema supplies, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (skin a smooth surface) plus the method (through cross-sections) and enriches it with concrete form examples (fuel tanks, seats, hulls, fuselages). An agent can tell what it builds, though it never names the sibling modeling tools (create_sweep, create_extrusion, create_lathe) it must be distinguished from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'for forms whose section changes along their length' implies a usage condition and the object list gives contextual cues. However, there is no explicit when-to-use vs. when-not guidance and no routing to alternatives like create_sweep or create_extrusion, which overlap heavily with this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pipeB
One continuous tube whose radius changes along a curved path - exhaust header + reducer + muffler in one piece, horns, bottle necks, hoses with sleeves, branches. No separate cylinders butted together.
| Name | Required | Description | Default |
|---|---|---|---|
| caps | No | End closure when wall is not given. | flat |
| name | No | Pipe | |
| path | Yes | 3D points the tube's centre line passes (metres). | |
| wall | No | Wall thickness (m): ends are open with a visible lip and inner bore. | |
| parent | No | ||
| radius | No | One radius, or [[s, r], ...] along the path: s in metres from the start, or fractions 0-1 of its length if every s <= 1. Interpolated smoothly without overshoot: flares, megaphone tapers, reducers, bulges. | |
| location | No | World position [x,y,z] (metres) of the object origin. | |
| material | No | Material preset name (list_material_presets), or {preset, color, roughness, weathering, ...} like apply_material, or the name of an existing material. Presets with a real-world scan use Poly Haven automatically; {'polyhaven': 'mossy rock'} picks any Poly Haven texture by description. | |
| rotation | No | Rotation [x,y,z] in degrees. | |
| segments | No | Points around the tube. | |
| collection | No | ||
| bend_radius | No | Treat the path as straight runs joined by arcs of this centre-line radius (real tube bending); without it the path is a smooth spline through the points. | |
| section_scale | No | [sx, sy] oval section (e.g. [1, 0.8]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose a genuine behavioral fact beyond the schema: the result is one fused continuous body rather than butted cylinders. It says nothing about scene mutation, required context, or interaction with wall/caps, so the coverage is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences, front-loaded with the core concept and followed by concrete use cases; no filler. The prose style is evocative but each clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with no annotations and no output schema, the description explains the concept and use cases but not units, defaults semantics, or the distinction from the other surface-creation siblings. Adequate as a conceptual blurb, thin as an invocation aid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 77%, so the schema already documents most parameters (path, radius, wall, bend_radius, section_scale all have good descriptions). The description only echoes 'radius changes along a curved path', adding no syntax or format detail beyond what the schema provides — the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific geometry (a single continuous tube with varying radius along a curved path) and immediately distinguishes it from a union of primitives via 'No separate cylinders butted together'. However it never states the create action explicitly nor names the close siblings (create_sweep, create_loft, create_extrusion) it must be told apart from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The examples (exhaust header, reducer, muffler, horns, bottle necks, hoses with sleeves, branches) imply when the tool is appropriate, so usage is inferable. But there is no explicit when-to-use statement and no routing against the similar creation siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_primitiveA
Create a primitive built at its TRUE size (mesh data, scale stays 1, so bevels stay even). Returns its world bounding box so you can place the next part precisely.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| size | No | box: [x,y,z] metres (or one number for a cube). plane/grid: [x,y]. | |
| type | Yes | quad_sphere = all-quad sphere, best with subdivision. tube = hollow cylinder (radius + inner_radius). capsule = cylinder with hemispherical ends (depth = total length). | |
| bevel | No | Rounded edges via an angle-limited Bevel modifier with hardened normals: width in metres (e.g. 0.002 for a 10 cm part), or {width, segments, angle}. true = automatic width. | |
| depth | No | Height along Z for cylinder/cone/tube/capsule/pyramid. | |
| rings | No | sphere: rings; torus: minor segments; cylinder/cone: height segments (needed before bend/twist). | |
| origin | No | Where the origin sits on the part's bounding box: center, bottom, top, left, right, front, back, min, max, or keep (geometry coordinates exactly as given). origin='bottom' + location z=0 stands a part on the floor. | center |
| parent | No | Parent object name (world transform kept). | |
| radius | No | cylinder/cone/tube/sphere/capsule radius; torus major radius; pyramid corner radius. | |
| shading | No | auto = smooth with sharp edges kept above smooth_angle (best default); smooth; flat. | auto |
| location | No | World position [x,y,z] (metres) of the object origin. | |
| material | No | Material preset name (list_material_presets), or {preset, color, roughness, weathering, ...} like apply_material, or the name of an existing material. Presets with a real-world scan use Poly Haven automatically; {'polyhaven': 'mossy rock'} picks any Poly Haven texture by description. | |
| rotation | No | Rotation [x,y,z] in degrees. | |
| segments | No | Radial resolution (default 48; quad_sphere: per cube edge, default 8; grid: cuts). | |
| collection | No | Collection to put it in (created if missing). | |
| radius_top | No | cone/cylinder top radius (0 = point). | |
| subdivision | No | Subdivision Surface levels (1-3) for soft/organic shapes. | |
| inner_radius | No | tube inner radius. | |
| minor_radius | No | torus tube radius. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses a non-obvious trait (mesh data with scale held at 1 so bevels stay even) and the return value (world bounding box), but does not cover selection state, creation side effects, or permissions, leaving meaningful behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero filler, with the key trait (TRUE size / scale 1) and the return value front-loaded before any elaboration. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 19-param, no-annotation, no-output-schema tool, the description covers the return value (compensating for the missing output schema) and the scale behavior, but omits routing to the other creation tools and any side-effect/permission context. Complete enough to call, incomplete as guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 95%, so the schema already documents all 19 parameters in detail. The description adds essentially no parameter syntax beyond the passing mention of bevels, so the baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("Create a primitive") and adds a distinguishing trait (built at TRUE size, scale stays 1). It does not differentiate from the numerous sibling creation tools (create_lathe, create_extrusion, create_sweep, create_loft, create_pipe), so an agent cannot tell from the text alone when a primitive beats a lathe or extrusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: "so you can place the next part precisely" hints at an iterative placement workflow, but there is no explicit when-to-use, when-not-to-use, or named alternative among the many create_* siblings. Adequate but gapped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sweepB
Sweep a profile along a 3D path: mug/bag/door handles, pipes, cables, hoses, bent tubular chair frames, picture frames (closed + rect), rails, springs, horns (taper).
| Name | Required | Description | Default |
|---|---|---|---|
| caps | No | ||
| name | No | Sweep | |
| path | Yes | 3D path points [[x,y,z], ...] in object space (metres). | |
| bevel | No | Rounded edges via an angle-limited Bevel modifier with hardened normals: width in metres (e.g. 0.002 for a 10 cm part), or {width, segments, angle}. true = automatic width. | |
| taper | No | [start_scale, end_scale] or one scale per path point. | |
| closed | No | Loop the path (rings, frames, rims). | |
| origin | No | Where the origin sits on the part's bounding box: center, bottom, top, left, right, front, back, min, max, or keep (geometry coordinates exactly as given). origin='bottom' + location z=0 stands a part on the floor. | keep |
| parent | No | ||
| smooth | No | Smooth curve through the points (false = straight segments with sharp corners). | |
| profile | No | Cross-section: a radius number, {type:'circle', radius}, {type:'rect', size:[w,h], corner_radius}, or {type:'custom', points:[[x,y],...], interpolation:'smooth'}. | |
| shading | No | auto = smooth with sharp edges kept above smooth_angle (best default); smooth; flat. | auto |
| location | No | World position [x,y,z] (metres) of the object origin. | |
| material | No | Material preset name (list_material_presets), or {preset, color, roughness, weathering, ...} like apply_material, or the name of an existing material. Presets with a real-world scan use Poly Haven automatically; {'polyhaven': 'mossy rock'} picks any Poly Haven texture by description. | |
| rotation | No | Rotation [x,y,z] in degrees. | |
| collection | No | ||
| resolution | No | ||
| subdivision | No | Subdivision Surface levels (1-3) for soft/organic shapes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: it does not say whether a new object is created, whether default caps produce watertight geometry, or that bevel/subdivision modifiers may be attached. The examples hint at capability, not behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence that leads with the core action and then supplies examples; nothing is padded with filler. The example list is long but earns most of its space by illustrating the tool's range.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter creation tool with no annotations and no output schema, the description is too thin: it never clarifies defaults (caps=true, smooth=true, resolution=12) or how the many parameters relate. An agent must fall back entirely on the schema to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71%, so the schema itself documents most parameters and the baseline is 3. The description adds only incidental hints ("picture frames (closed + rect)" points at closed/profile, "horns (taper)" points at taper) and explains nothing about the other parameters or how they interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ("sweep") and resource ("a profile along a 3D path") and reinforces it with concrete object examples. However, it never distinguishes this tool from close siblings like create_pipe, create_loft, or create_extrusion, so an agent cannot tell from the description alone which of these mutually similar path/profile tools to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the example list (handles, pipes, cables, springs, horns), which signals appropriate scenarios, but there is no explicit when-to-use, no when-not, and no named alternative. The agent is left to infer that create_pipe/create_loft are the competing choices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_textC
3D text (converted to a mesh) with beveled edges.
| Name | Required | Description | Default |
|---|---|---|---|
| font | No | Path to a .ttf/.otf font file. | |
| name | No | ||
| size | No | Cap height-ish font size in metres. | |
| text | Yes | ||
| align | No | CENTER | |
| depth | No | Extrusion thickness. | |
| plane | No | XY lies flat, XZ stands up facing the front (-Y). | XY |
| parent | No | ||
| location | No | World position [x,y,z] (metres) of the object origin. | |
| material | No | Material preset name (list_material_presets), or {preset, color, roughness, weathering, ...} like apply_material, or the name of an existing material. Presets with a real-world scan use Poly Haven automatically; {'polyhaven': 'mossy rock'} picks any Poly Haven texture by description. | |
| rotation | No | Rotation [x,y,z] in degrees. | |
| collection | No | ||
| bevel_depth | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden, yet it only states the output type. It does not disclose whether this operation is destructive, whether it requires an active scene/collection, what the returned object handle is, or how many objects it adds for multi-line text. 'Beveled edges' hints at geometry but no default or range is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded and free of filler. It is efficient but perhaps too terse for a 13-parameter constructor, trading completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with 54% schema coverage, no annotations, and no output schema, the description is far too thin. It omits critical setup context (font availability, units, parent/collection semantics, material handling) that an agent needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 54%, leaving 6 of 13 parameters (name, text, align, parent, collection, bevel_depth) with no semantic note in either the schema or the description. The description adds nothing beyond what the schema already documents for the other fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb/resource pair ('3D text') and discloses the key transformation ('converted to a mesh') and a visual trait ('beveled edges'), which distinguishes it from the other create_* tools that build geometry procedurally. It stops short of naming an alternative but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (e.g. needing a font file path, material presets, or an active scene), and no routing to alternative tools such as create_primitive or import_model_file. An agent cannot infer from the description when this is the right choice versus creating the text elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
declare_freeA
Record intentional separation so check_contacts and the delivery gate do not flag it.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | Why this part (or its ends) is intentionally free - concrete, from the reference. | |
| objects | Yes | Object name or list of names. | |
| ends_only | No | Only its ends are open by design (exhaust outlet, a cable whose plug is hidden). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses the cross-tool side effect (suppressing flags in check_contacts and the delivery gate), which is real behavioral context. However, it doesn't say whether declarations persist across sessions, whether they are reversible, or what the tool returns, leaving meaningful gaps for a write-style tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the action and its downstream consequence with no filler. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with fully documented schema and no output schema, the description covers purpose and effect adequately. It falls short only on persistence/reversibility and expected return behavior, which an agent might reasonably want before calling it repeatedly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a nuanced explanation of ends_only ('exhaust outlet, a cable whose plug is hidden'), so the schema does the heavy lifting. The description adds no parameter detail, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (record) and resource (intentional separation), and immediately names its downstream consumers (check_contacts, the delivery gate), which distinguishes it from those siblings. The phrase 'the delivery gate' is undefined jargon, but the core intent — marking objects as deliberately disconnected — is inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear trigger: use this when a separation is intentional so that check_contacts and the delivery gate don't flag it. It implicitly excludes unintentional separations but never states that explicitly, nor does it mention when re-declaring or clearing a declaration is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_patternC
Repeat an object in a pattern; the original becomes the first item. Legs, spokes, chairs around a table, shelves, bolts, tiles, fence posts.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Z | |
| join | No | Join all copies into one object. | |
| rows | No | ||
| angle | No | ||
| count | No | ||
| center | No | ||
| linked | No | Share mesh data between copies (edit one, all change). | |
| object | Yes | ||
| offset | No | ||
| radius | No | ||
| columns | No | ||
| pattern | Yes | linear: count copies stepping by offset. grid: columns x rows centred on center, spacing [dx,dy,dz]. radial: count copies on a circle (radius, center, angle, face_center). mirror: copies at positions mirrored across center on mirror_axes (4 table legs: mirror_axes=['x','y']). points: copies at positions. | |
| spacing | No | ||
| positions | No | ||
| face_center | No | radial: rotate copies to keep facing the centre. | |
| mirror_axes | No | ||
| name_prefix | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses one behavioral trait (the original becomes the first item) but says nothing about scene mutation, reversibility, whether existing objects are affected, or the return value. For a 17-parameter generation tool this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action before the examples, with essentially no filler. The trailing example list is a little loose but earns its place as disambiguation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 17-parameter tool with no annotations and no output schema, the description is far too thin. It fails to connect the five pattern modes to their governing parameters or describe what calling it changes in the scene, leaving most of the tool's behavior undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 24% across 17 parameters, so the description must compensate, yet it explains no parameter at all. The examples loosely hint at radial and grid modes but give no mapping to axis, count, offset, spacing, positions, radius, center, mirror_axes, or name_prefix.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Repeat an object in a pattern') and adds a concrete behavioral fact ('the original becomes the first item'). The real-world examples (legs, spokes, chairs, shelves, bolts, tiles, fence posts) make the intent immediately graspable. It does not explicitly distinguish itself from the sibling 'scatter', which also places many copies, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the illustrative examples, which suggest radial (spokes, chairs), grid (tiles, shelves), and linear cases. There is no explicit statement of when to choose this over siblings like scatter or the create_* tools, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_meshC
Edit mesh geometry with world-space selections (no edit-mode needed). Typical: extrude the top of a box into a neck, inset+extrude a panel recess, bevel just the rim of a face, soft_move to sculpt organic forms, loop_cuts before deforming, bisect+clear_outer to keep one half for a mirror modifier.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Z | |
| cuts | No | ||
| name | No | Name for the new object (separate). | |
| angle | No | ||
| depth | No | ||
| edges | No | Which edges of the selected faces bevel/crease/mark_sharp affect. Default: 'sharp' when everything is selected, else 'boundary' (the rim of the selected region). | |
| pivot | No | World-space pivot (scale/rotate) or centre (soft_move). | |
| scale | No | Scale factor(s) (scale op / extrude cap). | |
| value | No | ||
| width | No | ||
| factor | No | ||
| object | Yes | ||
| offset | No | soft_move displacement [dx,dy,dz] (world). | |
| radius | No | ||
| vector | No | World-space direction*length for extrude/translate. | |
| falloff | No | smooth | |
| profile | No | ||
| distance | No | ||
| segments | No | ||
| operation | Yes | extrude (distance along normal or vector, optional scale of the new cap, individual), inset (thickness, depth), bevel (edges of the selection: width, segments, profile), subdivide (cuts), loop_cuts (cuts evenly along axis - add before bend/twist or for support loops), delete, translate (vector), scale (scale, pivot), rotate (angle, axis, pivot), soft_move (proportional edit: pivot, offset, radius, falloff smooth|linear|sharp|sphere - sculpt-like shaping), flatten (press everything beyond plane_point/plane_normal onto the plane with a smooth blend band `distance` m; optional pivot+radius limit - flat floors/bellies without creases or waves), bisect (plane_point, plane_normal; clear_inner/clear_outer to cut away a side), crease / bevel_weight (value 0-1 on edges for subdivision/bevel), mark_sharp, separate (selection to a new object). | |
| selection | No | World-space face selection; keys combine with AND: side ('top','bottom','front'(-Y),'back','left'(-X),'right'), normal [x,y,z] + angle (deg, default 30), box {min:[..],max:[..]}, sphere {center,radius}, indices [...], material (slot index or name), invert true. Omit or {all:true} for everything. Add element:'verts' to pick vertices (translate/scale/rotate/smooth). | |
| thickness | No | ||
| individual | No | ||
| iterations | No | ||
| clear_inner | No | ||
| clear_outer | No | ||
| plane_point | No | ||
| sharp_angle | No | ||
| plane_normal | No | ||
| merge_distance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses only 'world-space selections' and 'no edit-mode needed'; it says nothing about whether operations mutate/destroy existing geometry, permission needs, or reversibility. For a 26-operation mesh mutation tool this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the capability statement before the examples. The examples are dense but each maps to a real operation, so little is wasted; it is appropriately sized for what it does say.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 30-parameter, 26-operation tool with no annotations and no output schema, the description is far too thin. It leaves most parameters and the destructive/reversibility profile unexplained, relying on the operation enum in the schema to carry the load.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 27% across 30 parameters, so the description is expected to compensate heavily. It names a handful of operation values (extrude, inset, bevel, soft_move, loop_cuts, bisect, clear_outer) but never explains the many undocumented knobs (depth, width, thickness, value, cut counts, profile, falloff, plane_point/normal, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Edit mesh geometry') and adds the world-space/no-edit-mode qualifier, which is a distinguishing property. The example list clarifies the kind of operations available. However, it never names or contrasts with close siblings like cleanup_mesh or transform_object, so the agent gets little help disambiguating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Typical:' examples imply when certain operations apply (extrude for necks, bevel for rims, loop_cuts before deforming), which is useful implied usage. But there is no explicit when-to-use guidance, no exclusions, and no routing to alternative tools for object-level transforms or mesh cleanup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_pythonA
Escape hatch for anything the dedicated tools don't cover (geometry nodes, drivers, particles, custom bmesh work, animation). Prefer the dedicated tools - they carry the quality defaults.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Python run inside Blender. Available: bpy, bmesh, math, mathutils, Vector, Matrix, np, C (context), D (data), roxy (roxy.call('tool_name', **params) runs any Roxy tool). print() output is returned; set a variable named result to return a value. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the key tradeoff (dedicated tools 'carry the quality defaults', implying this one does not) but says nothing about the code running with full scene access, mutability, irreversibility, or error behavior. Useful but incomplete for an arbitrary-code-execution tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences: purpose and scope first, then the preference rule. Zero filler, front-loaded, and the parenthetical examples earn their space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema and a schema that already describes the execution environment and return mechanics, the description covers purpose and selection adequately. The remaining gap is execution risk/side-effect disclosure, which is minor but real for an arbitrary-code tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents the environment and output mechanics (bpy, bmesh, roxy, print/result). The description adds no parameter-level detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description frames the tool as an 'escape hatch' for 'anything the dedicated tools don't cover' and names concrete use cases (geometry nodes, drivers, particles, bmesh, animation). It clearly distinguishes this from the many dedicated siblings, though the literal verb+resource (run Python) is carried by the name and schema rather than the description text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use ('anything the dedicated tools don't cover') and an explicit when-not ('Prefer the dedicated tools'), naming the reason (quality defaults). This is exactly the routing guidance an agent needs and leaves no ambiguity about choosing this over a dedicated tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_modelC
Export models for other software, game engines, the web, AR or 3D printing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Output file path; the extension picks the format if format is omitted. | |
| format | No | glb for web/game engines, fbx for DCC/game engines, stl for 3D printing, usdz for AR. | |
| objects | No | Only these objects (with their children). Default: everything. | |
| apply_modifiers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it says nothing about whether an existing file is overwritten, whether export mutates or reads the scene, whether permissions are needed, or what a successful export returns. For a file-writing operation this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence, front-loaded with the action and scope, with no filler. It is well-structured, though it could have used one more sentence for the missing behavioral and parameter context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter file-export tool with no annotations and no output schema, the description omits overwrite semantics, export scope (whole scene vs. selected objects), and any note on apply_modifiers. An agent can call it, but cannot predict its side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description adds zero parameter-level meaning beyond it — the format-target mapping and extension-picks-format behavior are already in the schema. Critically, apply_modifiers has no schema description at all and the description does not compensate for it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Export) and resource (models) and lists target destinations (game engines, web, AR, 3D printing), which is clearer than a bare tautology. However it does not distinguish itself from the sibling export_skeletal, which an agent must choose between, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names output use cases but gives no when-to-use/when-not guidance and never mentions the alternative export_skeletal or import_model_file. An agent gets no routing logic for picking between the export tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_skeletalA
UE5 export of a rigged prop: SK_.fbx (skeletal mesh) + A__.fbx per clip, centimetre scale, no leaf bones, root bone 'root'; easing is baked per frame so timing matches exactly.
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | ||
| name | No | ||
| actions | No | Actions to export (default: all with users). | |
| armature | No | Armature | |
| export_dir | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose substantial behavior: output filename conventions, centimetre scale, leaf-bone stripping, root bone naming, and per-frame easing baking. It does not state side effects such as whether files are overwritten or whether a disk path must exist, so it falls short of full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence uses a colon and semicolons to pack purpose, output artifacts, and export conventions with no filler. Every clause adds information an agent can act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter tool with no annotations and no output schema, the description covers the export result well but omits the semantics of fps, armature, and export_dir and says nothing about failure modes or return values. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (just 'actions'), so the description must compensate across five parameters. It clarifies name and actions via the output naming pattern and mentions per-frame timing tied loosely to fps, but fps, armature, and export_dir carry no meaning in either the schema or the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a specific verb (UE5 export) and a specific resource (a rigged prop), and enumerates the exact artifacts produced (SK_<name>.fbx skeletal mesh plus per-clip A_<name>_<action>.fbx). The 'skeletal/rigged' framing implicitly separates it from the sibling export_model, so an agent can route without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope (UE5, rigged prop) implies when the tool applies, but there is no explicit when-to-use/when-not statement and no named alternative. The agent must infer that export_model is the non-rigged counterpart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_guideB
Modeling know-how on demand: workflow, dimensions (real-world sizes), hard_surface, organic, furniture, product, detailing (construction, joints, close-up checks), reference_fidelity (feature contracts, repair loops and measured connections), japan (strict Japanese regional policy), materials, lighting_render, assets (libraries and imports), game_assets (UE5 export), animation_rigging (easing, prop rigs, character rigs), recipes (worked examples), troubleshooting.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Guide name; call with 'index' to list them. | index |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the scope of the knowledge base (what topics return content), but does not state that the operation is a read-only lookup, nor describe output shape or size. For a low-risk documentation fetch this partial disclosure is acceptable but not strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact, front-loaded with the core purpose ('Modeling know-how on demand'), followed by a single dense list where each item corresponds to available content. No filler sentences, though the comma-separated wall lacks grouping or hierarchy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-annotation, no-output-schema tool the description covers what content is available, which is the main need. It omits when to invoke it and the index-discovery affordance documented in the schema, leaving a modest gap in operational completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3, but the description goes beyond the terse schema entry by effectively enumerating the valid topic names (workflow, dimensions, japan, game_assets, recipes, etc.), which meaningfully constrains and guides the single parameter. It stops short of mapping each topic to its exact enum string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description frames the tool as on-demand modeling know-how and enumerates the domains it covers (hard_surface, organic, detailing, materials, troubleshooting, etc.), so an agent can tell it retrieves reference guidance rather than performing a modeling action. It is distinguishable from action siblings like edit_mesh or create_primitive, though it never states the verb 'get/retrieve a guide' explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance: nothing says to consult this before authoring geometry, nor when it should be skipped in favor of execute_python or the reference-comparison siblings. The topic list implies what content exists but not the conditions that should trigger a call. The schema's 'call with index to list them' hint is not echoed in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scene_infoA
Scene overview: every object's location, world size, bbox, modifiers, materials, plus camera/lights and the overall model bounding box. Use before editing an existing scene.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Only objects whose name contains this text. | |
| collection | No | Only objects in this collection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the read-only nature implicitly (an 'overview' query) and lists what fields are returned, which is useful. However, it does not state pagination behavior despite a 'limit' parameter, nor whether results are truncated, nor whether it is safe/non-mutating explicitly. The disclosure of returned fields is genuinely helpful but incomplete for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clauses, front-loaded with the return payload then the usage condition. No wasted words and the most important information (what you get) comes first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and 67% param coverage, so the description must do more. It handles the return-shape burden well by enumerating fields, but it omits pagination/limit semantics and any mention of read-only safety, which for a no-annotation tool are meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%: 'query' and 'collection' are documented in the schema, while 'limit' (default 60) has no description in either place. The description adds no parameter-level detail beyond what the schema already provides. Baseline 3 is appropriate given partially-complete schema coverage and no compensating description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource: returns a 'scene overview' enumerating objects, locations, sizes, bboxes, modifiers, materials, camera/lights, and overall bounding box. It tells the agent exactly what data comes back, distinguishing it from inspection siblings like inspect_object. It does not explicitly differentiate itself from get_status or inspect_object by naming alternatives, but the enumeration is specific enough to be useful.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use before editing an existing scene.' clearly gives the when-to-use condition and implicitly contrasts with tools that create scenes from scratch (create_primitive, import_model). It does not name a concrete alternative (e.g., inspect_object for a single object), but the temporal guidance is actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusA
Blender connection (versions, file, engine, scratch folder) plus which asset libraries are configured. Call it once at the start.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It usefully discloses the exact contents of the response, and the read-only nature is implied by "connection status", but there is no statement about side effects, permissions, or failure modes if Blender is not connected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the payload contents front-loaded and the usage instruction second. No filler, no repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must describe the return payload, and it does so by enumerating the fields returned. It is complete enough to decide to call it, though it does not describe the format or failure behavior when no Blender connection exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate. No parameter explanation is needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Blender connection status) and enumerates the returned facets: versions, file, engine, scratch folder, and configured asset libraries. This distinguishes it fairly well from the scene-level sibling get_scene_info, though the differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Call it once at the start" gives explicit timing and invocation count, which is genuinely useful guidance for a setup/orientation tool. It stops short of naming alternatives (e.g. get_scene_info) or stating when not to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_assetA
Download an asset found with search_assets and bring it in scene-ready. Models: cleaned, real size, grounded, credited. Textures: a PBR material box-projected at the texture's real-world size (no UVs needed). HDRIs: world lighting.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Asset id from search_assets. | |
| name | No | ||
| faces | No | textures: only these faces of apply_to. | |
| fit_to | No | Fit to and stand in for this object (e.g. a blockout). | |
| source | Yes | ||
| preview | No | ||
| replace | No | ||
| apply_to | No | textures: objects to receive the material. | |
| location | No | World position [x,y,z] (metres) of the object origin. | |
| place_on | No | ||
| rotation | No | ||
| strength | No | hdris: world strength. | |
| max_faces | No | ||
| asset_type | No | polyhaven: required. | |
| background | No | hdris: colour the camera sees instead of the HDRI. | |
| dimensions | No | ||
| resolution | No | polyhaven: 1k, 2k, 4k, 8k (1-2k for background, 4k close-ups). | 1k |
| file_format | No | ||
| target_size | No | Largest dimension in metres (needed for sketchfab/polypizza - their scale is arbitrary). Poly Haven models are already real size. | |
| hdri_rotation | No | hdris: rotate the environment (degrees). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden, and it discloses real post-processing behavior per mode: models are cleaned, real-sized, grounded and credited; textures become box-projected PBR materials; HDRIs drive world lighting. It stops short of safety/mutation details - it never says what 'replace' or 'preview' do to existing scene objects, nor any download/network constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the core action and then a terse per-type breakdown. No filler; every clause conveys distinct behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter mutation tool with no annotations and no output schema, the mode coverage is good but the parameter interplay and the effect on the existing scene are not explained. It is adequate as a conceptual overview but incomplete as invocation guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 20 parameters and only 55% schema coverage, the description adds conceptual context that helps interpret the type-specific clusters (strength/background/hdri_rotation for HDRIs, apply_to/faces for textures). It still names no parameters directly and leaves many of the 20 (name, preview, replace, place_on, rotation, max_faces, etc.) undocumented in both schema and prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Download an asset ... and bring it in scene-ready') and names the sibling it follows from ('found with search_assets'). It also breaks the outcome down by asset type (models/textures/HDRIs), so an agent knows exactly what this tool produces without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The prerequisite workflow is embedded explicitly: find with search_assets, then import here. However, no exclusions or alternatives are given for the nearby sibling import_model_file, so the agent must infer the boundary between importing an online asset and a local model file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_model_fileC
Import a model file from disk with the same clean-up as library assets.
| Name | Required | Description | Default |
|---|---|---|---|
| join | No | Merge all parts into one mesh. | |
| name | No | ||
| path | Yes | Local .glb/.gltf/.fbx/.obj/.stl/.ply/.usd(z)/.abc/.blend file. | |
| fit_to | No | ||
| preview | No | ||
| replace | No | ||
| location | No | World position [x,y,z] (metres) of the object origin. | |
| place_on | No | ||
| rotation | No | ||
| max_faces | No | ||
| dimensions | No | ||
| target_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden for a mutating import. It gestures at 'the same clean-up as library assets' but never says what that clean-up does, whether an existing object is overwritten, or how 'replace'/'preview' alter scene state — a significant gap for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is structurally fine, but its brevity reflects under-specification rather than economy — one clause is expected to carry a 12-parameter mutating tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters, no annotations, no output schema, and 25% schema coverage, the description is far too thin. An agent cannot confidently invoke this without knowing how the many optional placement/cleanup arguments interact with existing geometry.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% across 12 parameters, so the description must compensate and does not. It adds no meaning beyond the path argument (which the schema already documents) and leaves join, fit_to, place_on, rotation, replace, preview, and target_size unexplained in either place.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('import a model file from disk') and implicitly contrasts with the sibling import_asset by scoping to disk files rather than library assets. It is not a tautology, but it never names the alternative tool to make the distinction explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no named alternative. With both import_asset and import_model_file among siblings, the agent must guess which one applies to a given source, and the description offers no routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_connectionsA
Measure explicit attachment points against evaluated world-space geometry, including holes and modifiers. Reports gaps or misplaced endpoints that bounding-box checks miss. Tolerances must be justified from the design/scale. This does not discover correct partners, certify photo fidelity, compute signed penetration, sweep collisions or simulate mechanisms. Inspect close-ups too.
| Name | Required | Description | Default |
|---|---|---|---|
| connections | Yes | [{name, source, source_point:[local x,y,z], target, mode:surface|anchors, target_point:[local x,y,z] for anchors, tolerance:explicit metres, expected_gap:metres default0, source_tolerance:metres optional}]. Surface mode checks the source point lies on its actual surface and measures to the target's evaluated surface. Anchors mode compares declared joint centres. Check both ends of a pipe/rod; name its real partners from the reference. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so reasonably: it discloses that tolerances must be justified, that gaps/misplaced endpoints are reported, and enumerates five capabilities it lacks to prevent misuse. It omits whether the operation is read-only or touches scene state, but 'inspect/measure' strongly implies non-mutating.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Mostly dense but front-loaded, with the negative list earning its space by scoping expectations. The trailing 'Inspect close-ups too.' is abrupt and vague, slightly weakening structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-array-parameter inspection tool with no output schema, the description supplies the needed scope, tolerance guidance, and explicit exclusions. It is complete enough to call correctly, though return/report format is only implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the connections array in depth, setting a baseline of 3. The description adds real value on top by stating that tolerances must be justified from the design/scale, which is semantic guidance not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (measure/inspect) and resource (explicit attachment points against evaluated world-space geometry), and sharply distinguishes itself from a weaker technique (bounding-box checks) and from siblings like check_contacts by naming what it does not cover.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers clear context on when this applies (attachment points vs evaluated geometry) and a strong negative list (does not discover partners, certify fidelity, compute penetration, sweep collisions, or simulate). It does not, however, explicitly name an alternative tool like check_contacts to route the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_objectB
Everything about one object: transform, world bbox, topology (tris/quads/ngons), shading, modifier settings, material slots, UVs, children.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It helpfully enumerates the returned facets (compensating for the missing output schema), implying a read-only introspection call, but it never states that it is non-mutating, what happens if the name is not found, or any permission/error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence followed by a dense parenthetical list of returned fields; nothing is padded. Slightly list-heavy but every item earns its place by defining scope of the inspection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the enumeration of returned content is the key value and it is present. However, it omits usage guidance versus siblings and parameter format, leaving the definition only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter ('name') exists with 0% schema description coverage, so the description must compensate. It only vaguely implies the parameter refers to the target object, without clarifying expected format (exact name, path, uniqueness, or matching semantics).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb ('inspect') and resource ('one object'), and it enumerates exactly what facets are reported (transform, bbox, topology, shading, modifiers, materials, UVs, children). This implicitly scopes it to a single object versus a scene-wide tool like get_scene_info, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only implies it is for inspecting; it states no when-to-use condition, no prerequisites (e.g., object must exist), and names no alternative such as get_scene_info for scene-level queries. An agent must infer when to pick this over its many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_material_presetsB
All material presets with a one-line description.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, but it is a zero-parameter read-only enumeration with low behavioral risk. It does disclose the useful trait that each preset comes with a one-line description, which compensates in part for the absent output schema, yet it says nothing about ordering, pagination, or whether the returned names are usable by apply_material.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the key entity (material presets) is front-loaded. Nothing could be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial zero-param list tool this is nearly sufficient, and the description does hint at the returned content. However, with no annotations and no output schema, it leaves the agent guessing about return volume and how the listed preset names feed into downstream tools like apply_material.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies. There is nothing for the description to clarify beyond what the empty schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb+resource pair ('list ... material presets') and even previews the return shape ('one-line description'). It is distinguishable from siblings like apply_material or search_assets, but it does not explicitly contrast itself with any of them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus alternatives such as search_assets or apply_material, and no prerequisites or exclusions are given. The word 'All' weakly implies an unfiltered enumeration, but nothing routes the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookA
See the model: renders several angles into ONE contact-sheet image (orthographic views report their frame width in metres). Call it after every few modeling steps - it is how you catch wrong proportions, gaps and intersections. With frames=[...] it shows an animation over time.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Pixels per view (256-768). Smaller is cheaper. | |
| image | No | Instead of rendering, show this image: a file path, or 'Render Result' for the last render. | |
| views | No | Up to 6 of: front, back, left, right, top, bottom (true orthographic - use them to judge proportions), three_quarter, three_quarter_left, three_quarter_back, hero, high (perspective), camera (scene camera), or an [x,y,z] direction from target to eye. Default: front, right, top, three_quarter. | |
| frames | No | Animation strip: render the first view (default the scene camera) at these frame numbers (max 12). | |
| target | No | Objects to frame (children included). Default: all visible geometry. | |
| isolate | No | Hide everything except the target. | |
| shading | No | solid: viewport colours + cavity (fast, shape check). clay: uniform grey (pure form). wireframe: cage topology over clay. xray: see-through (hidden parts, interiors). material: PBR preview under a neutral HDRI. rendered: EEVEE with the scene's own lights/world. | solid |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful behavior: output is a single contact-sheet image, orthographic views encode their frame width in metres (a scale cue), and frames=[...] switches to a time-series strip. It does not say whether the operation is purely read-only or mention side effects, but for a view/render tool this is near-complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with what the tool does, then the recommended cadence, then the frames variant. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description explains the returned artifact (a contact-sheet image) and the animation variant, and all parameters are schema-documented. For a seven-parameter rendering tool this is sufficient, leaving only minor gaps around side effects and sibling selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters, establishing a baseline of 3. The description adds some value by explaining the frames parameter's time-strip behavior and the metre framing of orthographic views, but does not elaborate on size, target, isolate, or shading beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name 'look' is vague on its own, but the description states a concrete verb+resource: it renders several angles into one contact-sheet image, and notes the animation-strip mode. It is clear what the tool produces, though it never names the siblings it differs from (viewport_screenshot, render_image, review_model), so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit call cadence ('call it after every few modeling steps') and the reason ('catch wrong proportions, gaps and intersections'), which is strong when-to-use guidance. However, it offers no when-not guidance or alternative tools for the same visual-feedback need.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_game_assetA
Turn a finished Roxy model into a UE5-ready game asset: game mesh (low/mid-poly, triangulated, smoothing groups, pivot at bottom centre), UVs at the target texel density, a Cycles bake of EVERY Blender-only effect (Poly Haven projections, procedural recipes, weathering, bevels, small parts) into BaseColor / Normal (DirectX) / ORM (R=AO G=Roughness B=Metallic) PNGs, transparent parts on a separate glass slot, UCX_ collision, and an FBX. Takes 1-4 minutes. Run review_model(objects=['SM_...'], purpose='game') afterwards.
| Name | Required | Description | Default |
|---|---|---|---|
| lods | No | Extra LOD ratios e.g. [0.5, 0.25] (UE5 Nanite usually makes these unnecessary). | |
| mode | No | lowpoly: bevel/subdivision detail and parts smaller than small_part_ratio (screws, rivets) are baked into the normal map. midpoly: keeps bevel geometry (rounder silhouettes, more tris, Nanite-friendly). | lowpoly |
| name | No | Asset name; exported as SM_<name> with T_<name>_BC/_N/_ORM textures. | |
| objects | No | The (high-poly) parts of ONE asset. Default: selection / all geometry. | |
| collision | No | UCX_ collision: convex hull per large part (default), one hull, or none. | convex_parts |
| export_dir | No | Output folder (default ~/Documents/RoxyGameAssets/SM_<name>). | |
| max_texture | No | ||
| target_tris | No | Decimate the game mesh down to about this many triangles. | |
| texture_size | No | Force the texture size (512-4096) instead of deriving it. | |
| texel_density | No | Pixels per metre (UE5 PC standard 1024 = 10.24 px/cm). | |
| small_part_ratio | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses runtime ('1-4 minutes'), the exact baking scope (all Blender-only effects into BaseColor/Normal(DirectX)/ORM with channel ordering), transparent-part handling, and collision generation. It omits whether the operation is destructive to the source mesh, how it behaves when an export directory already exists, and whether it modifies the current scene, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The outcome is front-loaded in a single dense sentence, followed by two short operational notes (runtime, review_model follow-up). Every clause carries real information, though the first sentence is long enough that an agent has to parse it carefully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, zero-required tool with no output schema, the description covers the produced artifacts, texture naming, and runtime well, so an agent knows what to expect. Remaining gaps are minor: no guidance on default naming when 'name' is null and no statement about overwriting behavior in export_dir.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (82%), so the schema already documents most parameters including lods, mode, collision, texel_density, and name conventions. The description adds texture-channel and naming context but no syntax or defaulting guidance for the undocumented parameters (max_texture, small_part_ratio, export_dir fallback), so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource pair ('Turn a finished Roxy model into a UE5-ready game asset') and then enumerates exactly what the output contains: game mesh, UVs, baked maps with channel layout, collision, and FBX. It is clearly distinguishable from siblings like export_model, uv_unwrap, or review_model because it is the end-to-end packaging step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the precondition ('a finished Roxy model') and the follow-up action ('Run review_model(objects=[...], purpose="game") afterwards'), and even advises when LODs are unnecessary ('UE5 Nanite usually makes these unnecessary'). It does not explicitly rule out alternatives (e.g. when to use export_model instead), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_modifiersB
List / tweak / remove / apply modifiers. Applying a boolean deletes its (hidden) cutter if unused.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Modifier name (from list). | |
| index | No | Target stack position for action=move. | |
| action | No | list | |
| object | Yes | ||
| params | No | Settings to change for action=update. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose one genuinely non-obvious trait — that applying a boolean deletes its hidden cutter if unused — which is valuable, but it says nothing about the destructive nature of remove, permissions, reversibility, or what update changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste: the capability is front-loaded and the non-obvious boolean side effect is called out immediately after. Well sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must cover behavior and results, and it only partially does. For a five-parameter, six-action tool with no annotations, the omission of move/apply_all semantics and update behavior leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, with name, index, and params documented in the schema itself. The description maps some verbs to the action enum (list/update/remove/apply) but adds no syntax or format detail beyond the schema and omits the move/apply_all actions and the meaning of index.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verbs (list/tweak/remove/apply) operating on the resource 'modifiers', so the agent knows it is a multi-action management tool rather than a creation tool like the sibling add_modifier. The description omits two enum actions (apply_all, move), so it does not fully enumerate what the tool does, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as add_modifier, nor any indication of prerequisites or when each action is appropriate. The listed actions imply usage, but nothing tells the agent which one to pick or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling_progressA
Scene-persistent per-part completion checklist. Start a plan, inspect each stage and record evidence. Passing requires all earlier stages passed and no unresolved findings. Rechecks invalidate later stages and scene delivery checks (recording delivery itself preserves other delivery checks). After geometry/material/reference changes, invalidate the earliest affected stage before rechecking. report lists blockers; ready_for_delivery means recorded checks passed, NOT certified AAA quality. Define reference shape/attachment features before recording stages. Passing stages requires their comparisons; failed comparisons require recorded repairs and fresh model images before passing. Fingerprints detect changes to declared target geometry, material inputs and saved evidence. No image-content analysis, evidence-truth verification or complete dependency tracking. reset explicitly discards only the checklist, not the model. Stored in the Blender scene and saved with the .blend file. Use one active plan per scene.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| part | No | ||
| parts | No | All planned part/assembly names for start/add_parts. | |
| stage | No | ||
| action | No | report | |
| change | No | Specific performed repair, or reason for a corrected inspection. | |
| images | No | New saved image/view evidence for an inspection revision. | |
| passed | No | ||
| region | No | Japan by default; override only on explicit user instruction. | Japan |
| feature | No | Feature id for record_revision. | |
| evidence | No | Actual source URLs/measurements, inspected image paths with observations, or tool results; required for record. | |
| features | No | define_features: [{id, kind: shape|connection|material, basis: reference|brief|inferred|unresolved, source, expected, targets:[object/group names], views:[specific views], reference_image:saved crop path, uncertainty:required for inferred/unresolved, connection_checks:optional inspect_connections list}]. Registered connection_checks are remeasured on passing comparisons and cannot pass with gaps. Reference basis requires an actual saved image. Enumerate distinctive shapes and real attachment relationships; no generic 'detailed enough' criterion. | |
| findings | No | Unresolved defects. Non-empty for failed checks; empty for passing checks. | |
| on_error | No | report: a refused update returns {'rejected': reason} with the checklist unchanged instead of an error - use inside execute_python repair scripts so a bookkeeping refusal never stops the geometry repair. | raise |
| comparisons | No | compare_features: [{id, passed, observed, difference, repair, view, model_images:[saved PNG/JPEG/WebP paths]}]. Failure requires a concrete difference and repair. Pass needs earlier stages, no difference and actual target geometry. | |
| revision_kind | No | geometry | |
| connection_reason | No | Required explanation when defining an assembly with no connections to verify. | |
| connection_required | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: reset discards only the checklist (not the model), state is stored in the Blender scene and saved with the .blend, delivery checks are preserved across recording, and explicit limits are stated ('No image-content analysis, evidence-truth verification or complete dependency tracking'). The clipped phrasing leaves a few invariants ambiguous, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, but the body is a dense run of fragments and multi-clause sentences ('Passing stages requires their comparisons; failed comparisons require recorded repairs and fresh model images before passing') that demand re-reading and intermix rules with limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex stateful tool with 18 optional params and no output schema, the description covers workflow order, invariants, invalidation rules, and explicit non-goals, which is nearly what an agent needs. It stops short of describing what each action returns (beyond 'report lists blockers'), leaving some call-outcome ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 61%, so the schema already documents most of the 18 parameters (features, findings, comparisons, on_error, evidence, etc.). The description only adds meaning for a few behaviors (reset scope, report/ready_for_delivery semantics) and gives no per-parameter syntax beyond what the enum and schema titles convey, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line names a specific artifact and scope: a 'Scene-persistent per-part completion checklist' with stage inspection and evidence recording. It is clearly a bookkeeping/state-machine tool, distinguishable in kind from siblings like review_model or analyze_quality, but it never explicitly names those alternatives to route the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers substantial when/how guidance: passing requires all earlier stages and no unresolved findings, rechecks invalidate later stages, changes to geometry/material/reference require invalidating the earliest affected stage first, and only one active plan per scene. It lacks explicit exclusions ('do not use this instead of X'), but the procedural context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organize_objectsC
Housekeeping: rename, delete, duplicate, join meshes, parent, group under an empty (moves as one unit), move to collection, hide/show, select (highlights for the user), shade smooth/flat/auto, set_origin, apply_transform, convert curves/text to mesh.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name (rename, join result, group empty, duplicate). | |
| angle | No | ||
| action | Yes | ||
| target | No | parent: parent name. set_origin: anchor or world point. | |
| objects | No | Object name or list of names. | |
| shading | No | For action=shade. | |
| collection | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose two useful traits ('group under an empty (moves as one unit)', 'select (highlights for the user)'), but omits any warning that delete is destructive, whether operations are undoable, or the fact that many params (angle, shading, collection, target) only apply to specific actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact run-on list; every entry earns its place and the actions are front-loaded. The 'Housekeeping:' prefix adds little, and the run-on form makes the action-to-behavior mapping harder to scan than a structured list, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, 15-action umbrella tool with no annotations and no output schema, the description is a bare action inventory. It never maps params to actions, never flags destructive actions, and gives no return-value or side-effect context, leaving significant gaps for an agent to guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 57%: name, target, objects, and shading have schema descriptions, while action, angle, and collection have none. The action list in the description maps onto the enum and adds semantic context for group/select/shade, but it does not explain the action-to-parameter coupling an agent needs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates 15 specific operations (rename, join, parent, shade, apply_transform, convert_to_mesh), so an agent knows exactly what the tool does. However it offers no differentiation from overlapping siblings such as transform_object, edit_mesh, or duplicate_pattern, and the 'Housekeeping' label is a mushy category rather than a scope statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives, despite clear overlap with transform_object (apply_transform), edit_mesh (join), and duplicate_pattern (duplicate). Nothing tells the agent which of the enumerated actions belong here versus a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_objectA
Snap an object against another using exact world bounding boxes - no floating cups or sunken legs. e.g. place_object('Lamp', 'on_top', 'Desk', align='keep') keeps its XY and sets its base on the desk.
| Name | Required | Description | Default |
|---|---|---|---|
| gap | No | Distance between the touching faces (negative = sink in). | |
| align | No | Alignment on the other two axes: centre on target, align min/max edges, or keep current position. | center |
| object | Yes | ||
| offset | No | Extra world offset after snapping. | |
| target | No | Object name or list of names. | |
| relation | No | Where to put it relative to target's bounding box. | on_top |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the placement mechanism (world bounding boxes) and the intended outcome (no floating cups or sunken legs), but is silent on failure behavior (missing target, unrenderable geometry), reversibility, or any side effects beyond the object itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences: the capability statement is front-loaded and the example immediately follows. Zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no output schema, the description covers the core concept and one example, but leaves the agent guessing about error cases, which parameters combine meaningfully, and what is returned. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already documents gap, align, offset, and relation. The example adds a light gloss on align='keep' and relation='on_top' but no syntax or semantics beyond what the schema fields already carry, so baseline 3 holds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb ('snap') and resource ('object against another') with the mechanism ('exact world bounding boxes'). It is distinguishable from generic siblings like transform_object, but never names a sibling to sharpen the boundary further.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The worked example place_object('Lamp', 'on_top', 'Desk', align='keep') implies how to invoke it, but there is no explicit when-to-use-this-vs-alternative guidance (e.g. place_object vs transform_object vs check_contacts). Usage is demonstrated rather than explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_imageB
Final render through the scene camera (auto-created if missing) with AgX colour management; returns a preview image and the saved file path. Use cycles for glass/liquids/interiors when quality matters.
| Name | Required | Description | Default |
|---|---|---|---|
| look | No | AgX look: 'Medium High Contrast' (default), 'Punchy', 'Base Contrast', 'High Contrast'... | Medium High Contrast |
| engine | No | eevee | |
| samples | No | eevee default 64, cycles default 128 (denoised). | |
| exposure | No | ||
| max_size | No | Longest side of the preview returned to you. | |
| percentage | No | ||
| resolution | No | ||
| output_path | No | PNG path to save (default: a temp renders folder). | |
| transparent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose useful traits: the camera is auto-created if missing, output is both a preview and a saved file path, and AgX colour management is applied. It omits key behavior — that rendering is expensive/long-running, whether output_path is overwritten, and resolution/percentage side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core behavior front-loaded and the engine hint trailing. No filler, though the engine guidance is somewhat orphaned from the rest of the parameter discussion.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description does state the return shape (preview image + saved file path), which helps. Still, for a 9-parameter render tool with 44% coverage and no annotations, the description is too thin to fully arm an agent — missing cost, default resolution behavior, and file-overwrite semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 44% across 9 parameters, so the description should compensate more. It adds meaning for `engine` (cycles for glass/liquids/interiors) and levers off the AgX `look`, but leaves exposure, resolution, percentage, transparent, and max_size semantics untouched beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource ('Final render through the scene camera') with distinctive scope markers (AgX colour management, auto-created camera, returns preview + saved path). It implicitly distinguishes from viewport_screenshot via 'Final', but never names or contrasts with a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one conditional: 'Use cycles for glass/liquids/interiors when quality matters,' which is genuine when-to-use guidance for the engine choice. However, it says nothing about when to prefer this over look / viewport_screenshot / review_model, nor about cost, latency, or prerequisites before calling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_modelA
AAA-standard critique: scores edges, silhouette smoothness, secondary detail, material variety and surface breakup, weathering, integrity (floating/normals) and presentation, and returns prioritised concrete fixes. Run it before declaring a model finished and work down the list.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | Object name or list of names. | |
| purpose | No | hero: close-up showcase (strictest). prop: mid-distance. background: far away. game: checks an exported game mesh (UVs, baked materials, tri budget, pivot, transforms, SM_ naming, UCX collision). | hero |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden itself: it discloses that the tool returns 'prioritised concrete fixes' and enumerates the scoring dimensions, which tells the agent what to expect. It does not explicitly state that it is non-mutating, but 'critique' strongly implies a read-only analysis, and the output nature is well described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action followed by the trigger condition. The dimension list is dense but each item is a distinct scoring criterion, so it earns its length; nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only review tool with a fully documented two-parameter schema and no output schema, the description adequately covers purpose, output ('prioritised concrete fixes'), and usage timing. Only the precise return format/prioritisation logic is left unstated, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the 'purpose' enum fully documented in the schema (hero/prop/background/game). The description adds no further semantics about 'objects' or 'purpose' beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('critique'/'scores') and resource (a model), and enumerates the dimensions assessed (edges, silhouette, weathering, integrity, presentation). It is clear what the tool does, but it never distinguishes itself from near-siblings like analyze_quality or compare_reference, which could plausibly cover overlapping ground.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Run it before declaring a model finished and work down the list' gives an explicit when-to-use condition and workflow. It does not name alternatives or when-not to use it (e.g., versus analyze_quality), so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_characterA
Automatic humanoid rig for a finished character in T- or A-pose (facing -Y, Z up): joints found from the mesh itself, a UE5 Mannequin-compatible skeleton (pelvis, spine_01-05, neck_01/02, head, clavicle, upperarm, lowerarm, hand, fingers, thigh, calf, foot, ball, twist and ik_ bones), weights from a watertight proxy transferred to every mesh (garments smoothed, hair/hats rigid to the head, max 4 influences). Then export_skeletal for UE5 and retarget Mannequin animations with the IK Retargeter.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Character | |
| fingers | No | Finger bones (thumb + 4 fingers with metacarpals). | |
| objects | No | Every mesh of the finished character: body, clothes, hair, accessories. | |
| test_poses | No | Bend arms/elbows/legs/spine and report the worst stretch (>1.75 = check it). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses that joints are found from the mesh, weights come from a watertight proxy, garments are smoothed, hair/hats are rigid to the head, max 4 influences, and test_poses reports worst stretch. It omits whether an existing rig/weights are overwritten or what happens on failure, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and preconditions, then the skeleton/weight details, then the export workflow. Dense and largely waste-free, though the skeleton bone enumeration is long and the trailing export advice could arguably be separate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param tool with no output schema and no annotations, the description covers preconditions, internal processing traits, and the downstream workflow an agent needs. The main gap is the absence of failure/overwrite behavior, but overall it is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% and the description mostly repeats what the schema already documents (fingers = thumb + 4 fingers, objects = body/clothes/hair/accessories). It adds no format or syntax detail beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Automatic humanoid rig for a finished character') and immediately scopes it with the required input pose (T/A-pose, -Y facing, Z up). This clearly separates it from the sibling rig_prop even without naming it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition (finished character in T- or A-pose) and points to the follow-on workflow (export_skeletal then retarget Mannequin animations with the IK Retargeter). It does not explicitly say when NOT to use it or name rig_prop as the alternative for non-humanoid assets, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_propB
Mechanical rig for props: root bone + one bone per moving part at its hinge, limits, rigid skinning - a UE5-ready skeletal mesh. Children (rivets, handles) follow their parent part.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | The static main body (chest body, cabinet, car body). | |
| name | No | ||
| parts | Yes | Moving parts: [{object, kind: hinge|slide|wheel, pivot: back_bottom|front_bottom|bottom|top|left|right|center|... or [x,y,z], axis: x|y|z (hinge/wheel axis or slide direction), min, max (deg or m)}]. Chest lid: {object:'Lid', kind:'hinge', pivot:'back_bottom', axis:'x', min:0, max:110}. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose real behavior: root bone plus one bone per moving part at its hinge, limits, rigid skinning, and parent-following children. However, it omits prerequisites (an existing multi-part mesh), what it mutates or destroys, and any dependency on prior modeling steps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences that front-load the tool's purpose and output. No filler, though the second sentence's parenthetical could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a genuinely complex rigging operation with no output schema and no annotations, the description covers the output structure but not usage context, prerequisites, or failure modes. It is serviceable but leaves meaningful gaps for an agent deciding whether and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the schema itself documents 'base' and 'parts' with concrete examples (the chest lid hinge). The description reinforces the hinge-per-part model and the parent-follow behavior but adds no format detail (pivot enums, axis semantics) beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Mechanical rig for props') and describes the resulting artifact ('a UE5-ready skeletal mesh'), so an agent knows exactly what the tool produces. Sibling differentiation from rig_character is only implicit via the word 'props' rather than explicit, which keeps this short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or prerequisite guidance. The nearest sibling, rig_character, is never mentioned, and the agent gets no signal about which rigging tool applies to its target.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scatterB
Natural scatter (Poisson spacing, random spin/size, aligned to the surface). Live 'Roxy Scatter' modifier; the source items are hidden and kept in a collection for editing.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| sink | No | Push items into the surface (m) so they sit, not float. | |
| align | No | 1 = follow the surface, 0 = stay upright (grass, posts). | |
| items | Yes | Objects to scatter (variants are picked at random): pebbles, leaves, debris, bolts, grass clumps. | |
| scale | No | [min, max] random scale. | |
| target | Yes | Surface to scatter on (ground, table top, rock, roof). | |
| density | No | Max items per square metre. | |
| up_only | No | Only faces whose normal Z exceeds this (0.6 = gentle slopes, -1 = everywhere). | |
| min_distance | No | Minimum spacing (m); default ~ item size. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It usefully discloses that this is a live modifier, that source items are hidden, and where they are kept for editing – valuable non-obvious behavior. However, it does not mention whether the scatter is non-destructive, how to reverse it, or any performance implications, leaving meaningful behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core operation and then the live modifier behavior. Every clause earns its place with no padding or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no annotations and no output schema, the description covers the essential concept and key side effect (hidden source collection) but omits usage context and behavioral details like reversibility or interaction with existing geometry. It is minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 89%, so the schema already documents most parameters thoroughly. The description does not add parameter-level meaning beyond the schema, but it does reinforce the core scattering behavior. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: it scatters items on a surface with Poisson spacing, random spin/size, and surface alignment. It also names the mechanism ('Roxy Scatter' modifier) and notes that source items are hidden into a collection. It doesn't explicitly differentiate from siblings like add_surface_detail or duplicate_pattern, but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given, and no alternatives are named. An agent must infer the use case from the description alone, which is a notable gap given the many sibling creation/detail tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_assetsA
Search ready-made assets. Results carry an id for import_asset, plus licence/author, real-world size (Poly Haven) and face counts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| source | Yes | polyhaven: free CC0 HDRIs, PBR textures and realistic models (no key). sketchfab: huge catalogue, licences vary (search free; download needs a token). polypizza: stylised low-poly (free key). | |
| licence | No | polypizza: 'CC0' or 'CC-BY'. | |
| animated | No | ||
| category | No | polyhaven category ('furniture', 'wood'...), sketchfab category slug, or polypizza category ('Furniture & Decor', 'Nature', 'Animals'). | |
| previews | No | Attach thumbnails of the first N results (max 6) - cheaper than importing the wrong asset. | |
| max_faces | No | sketchfab: only models up to this many faces. | |
| asset_type | No | polyhaven only. | all |
| min_size_m | No | polyhaven: minimum real-world size (use 2+ for floors/walls so textures don't visibly repeat). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses what search results carry (id, licence/author, real-world size, face counts), which is real behavioral context. However it omits safety profile, rate limits, token/auth requirements for sketchfab, and pagination, leaving meaningful gaps for a 10-param, 3-source tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core purpose. Nothing is wasted, though the parenthetical '(Poly Haven)' is slightly cryptic without the schema context. Efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, multi-source tool with no output schema and no annotations, the description is thin. It partially compensates for the missing output schema by naming returned fields, but says nothing about pagination semantics, source-specific prerequisites, or how differing source behaviours affect results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 70%, so the schema already documents most parameters (source, licence, category, previews, max_faces, etc.). The description adds minor mapping via 'real-world size (Poly Haven)' and 'face counts', but does not clarify limit/pagination or source-specific parameter interactions beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (ready-made assets), and immediately routes the output to the sibling import_asset by noting results carry an id for it. An agent can distinguish this discovery tool from import/creation siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the mention of 'an id for import_asset' hints at a search-then-import workflow, but there is no explicit when-to-use, when-not, or comparison against alternatives. No guidance on when to prefer this over directly calling import_model_file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_cameraC
Create/aim the scene camera so the subject fills the frame (exact fit to its geometry).
| Name | Required | Description | Default |
|---|---|---|---|
| dof | No | Depth of field focused on the subject. | |
| view | No | three_quarter (default hero angle), three_quarter_left, three_quarter_back, front, back, left, right, top, hero (low, heroic), high, or an [x,y,z] direction from subject to camera. | three_quarter |
| fstop | No | ||
| margin | No | Framing looseness (1.0 = tight). | |
| target | No | Object name or list of names. | |
| resolution | No | Render size [w,h], e.g. [1920,1080] or [1080,1350]. | |
| focal_length | No | mm: 35 wide/interiors, 50 natural, 85-100 product (less distortion). | |
| orthographic | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies mutation of the scene camera but never says whether an existing camera is replaced or repurposed, whether framing is reversible, whether it requires a selected/visible subject, or what happens if target is omitted — all important for a state-changing setup tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence, front-loaded with the action and ending on the key behavioral constraint (exact fit to subject geometry). No filler, though the phrase 'scene camera' could be sharper about what object it acts on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Eight parameters, zero required, no annotations, and no output schema — the description should be doing much more work. It omits what the tool operates on by default, how the camera is selected/replaced, and what the agent should expect afterwards, leaving real ambiguity for a scene-mutating setup call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%: view, margin, target, resolution, focal_length, and dof are well documented in the schema, while fstop and orthographic have none. The description itself adds no parameter meaning beyond the framing intent, so it neither compensates for the two bare parameters nor improves on the rest — baseline 3 for a largely schema-documented tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (create/aim) and resource (scene camera) plus the intended outcome — the subject fills the frame with an exact fit to its geometry. That is clear enough to distinguish it from render_image or viewport_screenshot, though it does not explicitly contrast with the sibling 'look' tool, which plausibly also reorients the view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus alternatives such as 'look', viewport_screenshot, or manual transform_object on a camera. It never states prerequisites (e.g. whether a subject/target must exist first) or exclusions, so the agent must infer the usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_lightingA
Replace the lighting with a calibrated rig scaled to the subject (AgX-friendly energies, colour temperatures, HDRI reflections). Run it again any time; previous Roxy lights are removed.
| Name | Required | Description | Default |
|---|---|---|---|
| hdri | No | Environment: .hdr/.exr path or built-in studio, city, courtyard, forest, interior, night, sunrise, sunset. | |
| preset | No | studio: 3-point softboxes, dark bg. product: big top softbox + strip lights, light bg. outdoor: sun + sky. sunset: low warm sun. overcast: soft sky. interior: window light. night: moon + warm practical. dramatic: hard spot + rim. hdri: environment only (hdri=). | studio |
| target | No | What to light (sizes/positions the rig). Default: all geometry. | |
| rotation | No | Rotate the whole rig/environment around Z (degrees). | |
| strength | No | Overall light multiplier (calibrated so 1.0 is well exposed). | |
| background | No | Colour the camera sees instead of the environment (lighting/reflections unchanged). | |
| hdri_strength | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose the key trait an agent needs: re-running removes previous Roxy lights, i.e. it replaces rather than accumulates. It stops short of stating permission/auth requirements or a response/return format, which keeps it at 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core action and followed by the one behavioral fact that matters (replacement behavior). No filler and nothing redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter lighting tool with 86% schema coverage and no output schema, the description supplies the essential scope and mutation behavior. It omits how preset and hdri interact and leaves hdri_strength undocumented, so it is strong but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 86%, so the schema documents nearly all parameters and the baseline is 3. The description's mention of colour temperatures and HDRI reflections loosely maps to the hdri/preset semantics, but it adds no format or interaction detail—notably hdri_strength has no schema description and is not covered here either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Replace the lighting with a calibrated rig") and adds qualifiers that reveal intent: subject-scaled, AgX-friendly energies, colour temperatures, HDRI reflections. There is no lighting-named sibling to differentiate against, so the missing sibling contrast costs little, keeping it just short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Run it again any time" implies the tool is safe to re-invoke and therefore idempotent, which is useful usage context. However, it gives no explicit when-to-use guidance relative to siblings like setup_camera, render_image, or apply_material, and no when-not condition, leaving usage only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_objectC
Move/rotate/resize objects. dimensions= is the safe way to resize (keeps bevels even).
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Object scale (prefer dimensions). | |
| origin | No | Move the origin without moving geometry: center, bottom, top, ..., cursor, or a world point. | |
| move_by | No | Relative move [dx,dy,dz]. | |
| objects | Yes | Object name or list of names. | |
| location | No | World position [x,y,z] (metres) of the object origin. | |
| rotation | No | Rotation [x,y,z] in degrees. | |
| rotate_by | No | Relative rotation in degrees. | |
| dimensions | No | Resize to exact world size [x,y,z] (null keeps an axis); scale is baked into the mesh. | |
| apply_scale | No | ||
| apply_rotation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It mentions that dimensions preserves bevels, which is useful, but omits whether transforms are destructive, reversible, permission-gated, or how relative vs absolute modes interact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences and front-loads the main operations. It is tight and wastes little space, though the 'dimensions=' notation is slightly cryptic and the second sentence is a narrow tip rather than broad structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with no annotations and no output schema, the description is far too sparse. It does not explain how apply_scale or apply_rotation behave, how objects are selected, or what side effects occur.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the schema already documents most parameters. The description adds a small semantic note about dimensions being safer for preserving bevels, but does not explain the other 9 parameters or disambiguate scale versus dimensions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific set of operations on objects: move, rotate, and resize. This is clear and distinct from creation or inspection tools, but it does not explicitly distinguish the tool from related siblings such as place_object or edit_mesh.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is a parameter preference: 'dimensions= is the safe way to resize.' There is no statement about when to use transform_object versus alternatives, no prerequisites, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uv_reportB
Measure UV quality: islands, packing efficiency (share of the texture used), area stretch, angle error, texel-density spread between islands, seam length and overlaps. Good game UVs: stretch < 3 %, efficiency > 55 %.
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No | ||
| objects | No | Object name or list of names. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral-disclosure burden. It says it measures and reports but does not state whether it modifies UVs, whether it requires an active layer or selected objects, whether it fails on un-unwrapped meshes, or how results are returned. It mentions numeric thresholds for interpretation, which is helpful context, but the core behavioral profile of a measurement tool on a 3D scene is undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first enumerates the measured metrics, the second gives interpretive thresholds. Front-loaded with the core purpose and no wasted words. Well-sized for the amount of information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must convey what a caller gets back; it lists metrics but not the return format (e.g., per-object report, numeric fields). With no annotations and partially documented parameters, a measurement tool should say more about applicability (which meshes, required state). It is adequate but leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: 'objects' has a description ('Object name or list of names.') while 'layer' has none. The tool description does not explain what 'layer' means or how objects and layer interact (e.g., whether layer scopes the measurement). The description adds no parameter guidance, so it neither compensates for nor extends the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific measurement task: 'Measure UV quality'. It then enumerates the metrics it returns (islands, packing efficiency, stretch, angle error, texel density spread, seam length, overlaps), making the purpose concrete. It is distinguishable from the nearest sibling uv_unwrap (which modifies UVs) since this clearly reports on them, though it does not name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a use case: evaluating whether existing UVs are good for games, and it provides numeric thresholds (stretch < 3 %, efficiency > 55 %). However, it does not state when to use this versus uv_unwrap or other quality tools, nor what prerequisites (e.g., UVs must already exist) are required. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uv_unwrapA
UV-unwrap meshes for export/painting (presets and texture_maps work without UVs; make_game_asset unwraps by itself). Returns per-object islands, packing efficiency, stretch and texel-density spread.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | No | ||
| method | No | auto (default) = production unwrap: seams on hard edges and hidden cuts (undersides, backs, creases), straight strips, one texel density, tight packing. The others are Blender's plain projections. | auto |
| objects | No | Object name or list of names. | |
| lightmap | No | auto: also build a non-overlapping 'Lightmap' UV channel (UE static lighting). | |
| texture_size | No | auto: texture the layout is for (sets the pixel gutter). | |
| island_margin | No | Gutter as a fraction of the texture (auto: 8 px at 2K). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It helpfully discloses the return summary (islands, packing efficiency, stretch, texel-density spread), but says nothing about side effects such as creating/overwriting UV channels, destructiveness to existing UVs, or which objects are affected when 'objects' is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and scope, followed by the useful return summary. Every clause earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully states what is returned, and it clarifies usage relative to siblings. It is slightly incomplete for a zero-annotation mutation tool in that it omits any warning about overwriting existing UV data or default object selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, above the 80% threshold, so the schema already documents angle, objects, lightmap, texture_size and island_margin. The description adds no parameter-level meaning beyond that baseline, so 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('UV-unwrap') plus resource ('meshes') with a stated scope ('for export/painting'). It also distinguishes itself from sibling tools by noting presets/texture_maps need no UVs and make_game_asset unwraps internally, so an agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear when-not-to-use guidance ('presets and texture_maps work without UVs; make_game_asset unwraps by itself') and a usage context (export/painting). It stops short of naming a preferred alternative path for pure inspection (e.g. uv_report), so it is clear but not fully exclusionary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
viewport_screenshotA
Screenshot of the user's 3D viewport exactly as they see it (GUI Blender only). For judging the model itself prefer look(), which is independent of the user's view.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | Zoom the user's viewport to fit everything first (changes their view). | |
| max_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the GUI-Blender-only constraint (unavailable in headless), which is real behavioral context, but says nothing about capture latency, resolution limits, or the return format. The view-changing side effect of 'frame' is covered only in the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler, front-loading the primary purpose before routing to the alternative. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a screenshot tool with no output schema and no annotations, the description covers purpose, environment, and alternative adequately. Minor gaps remain around the undocumented max_size parameter and what the capture returns, but the core informational needs are met.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: 'frame' is well documented in the schema, but 'max_size' is undocumented in both schema and description. The description adds no parameter meaning at all, so it neither compensates nor enhances beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Screenshot of the user's 3D viewport exactly as they see it') with precise scope ('exactly as they see it'), and explicitly distinguishes itself from the sibling look(), which also captures model imagery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative (look()) and the exact condition selecting it ('For judging the model itself prefer look(), which is independent of the user's view'), plus the environment restriction '(GUI Blender only)'. When-to-use, when-to-use-alternative, and an availability constraint are all present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
58 tool updates
v0.2.0- First observed
add_damage - First observed
add_masonry - First observed
add_modifier - First observed
add_planks - First observed
add_surface_detail - First observed
analyze_quality - First observed
animate - First observed
animate_preset - First observed
apply_material - First observed
attach_part - First observed
batch - First observed
check_animation - First observed
check_contacts - First observed
checkpoint - First observed
cleanup_mesh - First observed
clear_scene - First observed
compare_reference - First observed
create_backdrop - First observed
create_cushion - First observed
create_extrusion - First observed
create_lathe - First observed
create_loft - First observed
create_pipe - First observed
create_primitive - First observed
create_sweep - First observed
create_text - First observed
declare_free - First observed
duplicate_pattern - First observed
edit_mesh - First observed
execute_python - First observed
export_model - First observed
export_skeletal - First observed
get_guide - First observed
get_scene_info - First observed
get_status - First observed
import_asset - First observed
import_model_file - First observed
inspect_connections - First observed
inspect_object - First observed
list_material_presets - First observed
look - First observed
make_game_asset - First observed
manage_modifiers - First observed
modeling_progress - First observed
organize_objects - First observed
place_object - First observed
render_image - First observed
review_model - First observed
rig_character - First observed
rig_prop - First observed
scatter - First observed
search_assets - First observed
setup_camera - First observed
setup_lighting - First observed
transform_object - First observed
uv_report - First observed
uv_unwrap - First observed
viewport_screenshot
TDQS
Scored across 58 tools
With 58 tools, several clusters overlap—quality checks (review_model vs analyze_quality, check_contacts vs inspect_connections), import/export variants (import_asset vs import_model_file, export_model vs export_skeletal vs make_game_asset), and capture tools (look vs viewport_screenshot). The verbose descriptions explicitly distinguish them, but the sheer number and proximity of related operations will still force careful reading to avoid misselection.
Tool names are overwhelmingly snake_case with verb_noun or noun_verb patterns, and prefixes like create_*, add_*, setup_*, uv_*, rig_*, export_*, import_* are used consistently. A handful of single-word verbs (look, scatter, animate, batch) and noun-first names (viewport_screenshot, modeling_progress) are minor deviations.
58 tools far exceeds the typical 3–15 well-scoped range and even the 25+ 'too many' threshold, placing it in extreme mismatch territory for a single MCP server. Although each tool has a specialized role, the cognitive load and selection risk are very high.
The surface covers the full 3D lifecycle: scene inspection, primitive and advanced mesh creation, editing, modifiers, materials, UV, lighting, camera, rendering, procedural detail, animation, prop/character rigging, game-asset baking/export, asset libraries, and quality analysis. execute_python also acts as an escape hatch, so there are no obvious dead ends.
Maintenance
Related MCP Connectors
Blender-as-a-service for agents: search 3D assets, run Blender Python, or brief the studio agent.
3D avatar/asset foundry: text/image -> rigged, validated, engine-ready GLB via x402.
Cloud Blender for AI agents: build, inspect, render and animate 3D scenes over remote MCP. Keep editable .blend projects and export GLB or STL. Make your first 3D asset free—30 compute minutes per UTC month, no credit card. First 100 eligible Free account owners to use all 30 minutes in one UTC month by December 31, 2026 UTC receive one calendar month of beta free: 4 compute hours per UTC month, 2 concurrent workers per deployment, 2 deployments, 2048×2048 renders at up to 256 samples, and 10 GiB storage. Existing usage counts toward the 4-hour allowance. Limited to 100 rewards; expires January 1, 2027 00:00 UTC. Free resumes afterward without an automatic charge. Examples, eligibility and terms: https://sceneplane.online/launch?utm_source=glama&utm_medium=directory&utm_campaign=first100
Turn text or an image into an animation-ready 3D model (GLB): generate, rig, animate, retexture.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables Claude AI to directly control Blender for automated 3D modeling, scene creation, and object manipulation. It provides tools for material management, scene inspection, and integration with third-party asset libraries like Poly Haven and Sketchfab.102MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered 3D content creation in Blender through natural language, including text-to-3D, image-to-3D, animation, rigging, rendering, and export.3MIT
- AlicenseAqualityCmaintenanceEnables AI-driven 3D modeling in Blender by providing tools to create primitives, apply modifiers and materials, set up lighting and cameras, capture viewport snapshots, export assets, inspect scenes, and execute Python commands via natural language.10MIT
- AlicenseCqualityAmaintenanceEnables AI agents to control Blender through 150+ tools across 24 modules, including modeling, materials, lighting, animation, rendering, mesh quality analysis, and visual feedback, plus expert prompts and goal-first workflow management.209MIT