IsaacSim-MCP
Provides tools to control NVIDIA Isaac Sim, including USD scene creation and manipulation, robot articulation and motion planning, camera and LiDAR sensors, PhysX simulation, Action Graph management, Replicator SDG, and simulation control.
Provides integration with ROS 2, including management of ROS 2 publishers and related capabilities within Isaac Sim.
Click on "Install 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., "@IsaacSim-MCPCreate a factory scene with 10 workstations, 3 AGVs, robot arms, and conveyor belts"
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.
IsaacSim-MCP
IsaacSim-MCP 讓支援 MCP 的 AI client 透過具名、可驗證的 tools 控制 NVIDIA Isaac Sim。涵蓋 USD 場景、機器人、感測器、物理、Action Graph、ROS 2、Replicator SDG、動畫人物、NVIDIA 資產與模擬控制。
主要驗證環境是 Windows 與 Isaac Sim 6.0.1。本專案延伸自 whats2000/isaacsim-mcp-server,沿用 MIT License。
Table of Contents
Related MCP server: Unreal Engine MCP Server
核心功能
建立、查詢、變形、組合、儲存與驗證 USD Stage。
控制 articulation、joint drive、motion planning、gripper 與 mobile base。
在 Stage/robot replacement 後重建失效的 physics tensor 與 articulation binding,並保持 joint name/value 對應一致。
擷取 Camera RGB 與 typed RTX outputs;RGB 可選擇 MCP-native
ImageContent,供支援影像內容的遠端 client 顯示或交給 vision model。建立 PhysX scene、body、collider、joint、PBR material 與 physics material。
管理 Action Graph、ScriptNode、ROS 2 publisher、Replicator SDG job 與 human behavior lifecycle。
透過 managed artifact 傳輸大型輸出,支援 hash、bounded chunk、TTL 與 cleanup。
提供 command ID、idempotency、policy limit、job、cancel、read-back、rollback 與 redacted diagnostics。
MCP Tool Inventory 由 source decorators 自動產生;Tool profiles 說明 129-tool 相容模式與 98-tool 合併模式。目前 runtime 支援狀態以 get_capabilities 為準。
架構
LLM → Skill → MCP Server → TCP → Isaac Extension → Handler → Adapter → Isaac Simflowchart LR
A[LLM / MCP Client] --> B[Project Skill]
B --> C[Python MCP Server]
C -->|127.0.0.1:8766| D[Isaac Sim Extension]
D --> E[Handler]
E --> F[V5 / V6 Adapter]
F --> G[Isaac Sim / USD / PhysX]各層責任、request lifecycle、runtime routes 與權威來源見 ARCHITECTURE.md。
Installation
安裝 MCP Server:
git clone https://github.com/Tim0320/IsaacSim-MCP.git
cd IsaacSim-MCP
py -3.10 -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -e .Windows 的完整環境需求與安裝方式見 Windows 安裝指南。
Configuration
stdio 是預設 transport。Codex/Claude Desktop 可以沿用現有設定,不需要新增 HTTP 環境變數:
{
"mcpServers": {
"isaac-sim-live": {
"command": "F:\\IsaacSim-MCP\\.venv\\Scripts\\python.exe",
"args": ["-m", "isaac_mcp.server"],
"env": {
"ISAAC_MCP_HOST": "127.0.0.1",
"ISAAC_MCP_PORT": "8766"
}
}
}
}Streamable HTTP 使用另一組設定:
Variable | Default | Purpose |
|
| 設為 |
|
| MCP HTTP listener address。 |
|
| MCP HTTP listener port。 |
|
|
|
| 未設定 | 額外允許送到 HTTP endpoint 的 exact Host header,以逗號分隔;loopback hosts 永遠保留。 |
|
| Supervisor 與 MCP Server 共用的 bounded crash/restart 狀態檔。 |
|
|
|
ISAAC_MCP_HOST=127.0.0.1 與 ISAAC_MCP_PORT=8766 仍屬於 Python MCP Server 和 Isaac Sim Extension 間的 runtime TCP socket。不要把它們改成 HTTP endpoint 設定。
Tool profiles
預設 legacy 不改任何既有 tool name 或 schema。ChatGPT 等需要較小 action space 的 client,可在啟動 MCP Server 前設定:
$env:ISAAC_MCP_TOOL_PROFILE = "consolidated"consolidated 用 action 或 publisher_type 合併同一資源的讀寫/控制操作,公開 98 tools。它只調整 MCP tool surface,仍呼叫原本的 Isaac Extension commands。修改 profile 後必須重新啟動 MCP Server,讓 client 重新取得 tool list。完整對照見 Tool profiles。
.env.example 只列出可用設定,server 不會自動載入它。請在啟動 python -m isaac_mcp.server 的同一個 process environment 設定 profile。啟動後可用 MCP tools/list 與 get_capabilities.data.mcp_server 核對實際公開 surface;consolidated 應回報 98 tools。
Running IsaacSim-MCP
建議用 supervisor 啟動 Isaac Sim 與 Extension:
$env:ISAACSIM_ROOT = "C:\isaacsim"
.\scripts\run_isaac_sim_supervised.ps1Supervisor 會沿用既有 launcher 的 Isaac Sim 6.0.1、Extension、port 與 Physics GPU guard。非零 exit code 視為異常退出,預設最多在 300 秒內重啟 3 次並使用 exponential backoff;exit code 0 視為正常關閉,不會自動重開。啟動前若 protocol health probe 已找到健康 runtime,或 8766 已被無回應程序占用,supervisor 都會拒絕再啟動一份 Isaac Sim。需要 one-shot 行為時仍可使用 .\scripts\run_isaac_sim.ps1。
Supervisor 與 MCP Server 是兩個獨立程序。Codex/Claude 仍由 client 用 stdio 啟動 isaac_mcp.server;Streamable HTTP 仍用下方命令啟動。Supervisor 狀態預設寫入 %LOCALAPPDATA%\IsaacSim-MCP\runtime-state.json,不包含 environment、command source 或 log 內容。
當 Isaac Sim crash、正在重啟或超過 restart budget 時,MCP tools 會回傳 ISAAC_RUNTIME_RECOVERING、ISAAC_RUNTIME_CRASHED 或 ISAAC_RUNTIME_UNAVAILABLE。呼叫 get_runtime_status 可在 8766 關閉時讀到 exit code、時間、attempt、restart count、health 狀態與建議動作。Connection loss 後不會自動 replay write;runtime 恢復後必須先 read-back,再決定是否用原 idempotency key 重送。
完整 process ownership、state schema、restart budget 與 Agent recovery contract 見 Runtime supervision 與 crash recovery。
本機 Codex/Claude Desktop 會依上一節設定,以 stdio 自動啟動 MCP Server。需要 Streamable HTTP 時,在另一個 PowerShell session 啟動:
$env:ISAAC_MCP_TRANSPORT = "streamable-http"
$env:ISAAC_MCP_HTTP_HOST = "127.0.0.1"
$env:ISAAC_MCP_HTTP_PORT = "8000"
$env:ISAAC_MCP_TOOL_PROFILE = "consolidated"
$env:MCP_ALLOWED_HOSTS = "localhost,127.0.0.1"
.\.venv\Scripts\python.exe -m isaac_mcp.serverMCP HTTP endpoint 是 http://127.0.0.1:8000/mcp。先呼叫 get_capabilities,再呼叫 get_scene_info,確認 runtime 與 Stage 後才執行 write。
Remote MCP Access
IsaacSim-MCP 預設只在本機使用。ChatGPT 等雲端 MCP client 無法直接連到 localhost、127.0.0.1 或 192.168.x.x 私有位址。它們需要能從 public internet 存取的 HTTPS endpoint,例如 Tailscale Funnel:
ChatGPT
↓ HTTPS
Public MCP Endpoint
↓
IsaacSim-MCP
↓ TCP 127.0.0.1:8766
Isaac SimMethod | Tailnet only | Public Internet | ChatGPT can access |
localhost | No | No | No |
Tailscale Serve | Yes | No | No |
Tailscale Funnel | Yes | Yes | Yes |
Tailscale Serve 只把服務提供給同一個 tailnet;Tailscale Funnel 會建立 public internet 可達的 HTTPS endpoint。ChatGPT MCP Connector 需要 Funnel 或其他 public HTTPS deployment。
Tailscale Funnel
從 Tailscale Download 安裝適合目前作業系統的版本,登入後啟用本機 Tailscale:
tailscale up啟動 Isaac Sim Extension,接著在 repository 根目錄啟動 Streamable HTTP server。將範例 hostname 換成
tailscale funnel顯示的完整 hostname:$env:ISAAC_MCP_TRANSPORT = "streamable-http" $env:ISAAC_MCP_HTTP_HOST = "127.0.0.1" $env:ISAAC_MCP_HTTP_PORT = "8000" $env:MCP_ALLOWED_HOSTS = "localhost,127.0.0.1,your-device.your-tailnet.ts.net" .\.venv\Scripts\python.exe -m isaac_mcp.serverMCP_ALLOWED_HOSTS使用 FastMCP 的 exact Host matching。專案會替每個完整 hostname 接受有 port 與無 port 形式,但不接受.ts.netsuffix 或*.ts.netwildcard。loopback hosts 永遠保留,所以加入外部 hostname 不會破壞本機 HTTP 存取。在另一個 terminal 建立背景 Funnel。
8000是 repository 的預設 HTTP MCP port:tailscale funnel --bg 8000預期輸出類似:
Available on the internet: https://your-device.your-tailnet.ts.net |-- / proxy http://127.0.0.1:8000公開 MCP URL 是
https://your-device.your-tailnet.ts.net/mcp。查看狀態或停止同一個 Funnel:
tailscale funnel status tailscale funnel --bg 8000 offtailscale funnel reset會清除本機全部 Funnel configuration。完整參數以 Tailscale Funnel CLI 為準。從外部網路驗證:
curl -i https://your-device.your-tailnet.ts.net/mcpStreamable HTTP 對一般 GET 的回應會依 request header 和 transport 狀態而異,
200、405或406都可能表示請求已到達 endpoint。結果不應再是421 Misdirected Request/Invalid Host header,也不應出現502 Bad Gateway或 timeout。
ChatGPT MCP Connector
Funnel 驗證成功後,依 OpenAI Developer mode 與 MCP apps 官方說明 在 ChatGPT Developer Mode 新增 MCP Connector:
Name:
IsaacSim
MCP Server URL:
https://your-device.your-tailnet.ts.net/mcp
Authentication:
No authentication需要讓 MCP client 直接取得 RGB 圖片時,呼叫:
capture_camera_output(
prim_path="/World/Camera",
output_type="rgb",
return_mode="image"
)return_mode="image" 會回傳 schema 1.0 文字 metadata 與 MCP-native ImageContent。Server 會驗證 PNG base64、byte size 與 SHA-256,且不會把大型 base64 重複放進文字 metadata。artifact 仍是預設模式,因此既有 Codex/Claude stdio 與下載流程不變。Client 是否在 UI 顯示圖片、把圖片交給 vision model,取決於該 client 對 MCP image content 的支援;要宣稱 ChatGPT 可見,必須完成實際 Connector acceptance,不能只依 server unit test 推論。
capture_image 與 capture_camera_output 的 MCP input schema 會把 return_mode 公開為 metadata | artifact | inline | image enum,Agent 不需要從說明文字猜測。Camera 新建或解析度變更後若第一個 RTX read 回 CAMERA_FRAME_NOT_READY,MCP Server 會等待一次 render tick 並自動重試一次;一次 tool call 即可完成 Render → Capture → ImageContent。若第二次仍未取得 frame,錯誤會原樣回傳,不會無限重試。
IsaacSim-MCP 目前沒有 HTTP authentication。MCP_ALLOWED_HOSTS 只防止不受信任的 Host header,不是身分驗證。公開 Funnel 會讓任何能連到該 URL 的人嘗試呼叫 MCP tools,可能控制本機 Isaac Sim。只在你接受這個風險時啟用,使用完立即停止 Funnel;正式共享環境應在 MCP server 前加入 authentication、authorization 與存取稽核。
支援版本
Component | 狀態 |
Isaac Sim 6.0.1 on Windows | 主要驗證 runtime |
PhysX | 透過 V6 adapter 與 guarded live verifier 支援 |
Newton | 只有 active backend matrix 回報 supported 且 verified 的功能才能使用,其餘 fail closed |
Isaac Sim 5.1.x | Legacy adapter;不在目前 6.0.1 release gate 範圍 |
Isaac Lab MCP | 明確延後,與目前 Isaac Sim MCP 分開處理 |
Package、extension、response、capability 與 backend-matrix version 各有獨立相容規則,見 Protocol versions 與 migration。
文件入口
從 docs/README.md 開始:
getting-started/:安裝與第一次連線。concepts/:protocol、transport、governance 與 job 共用模型。reference/:目前 API 與 capability 契約。development/:測試、scratch-stage 與 release 流程。research/:有日期的 1.x~6.x tasks 與 verification snapshots。
Agent 工作流程在 .agents/skills/omniverse-windows-workspace/SKILL.md。Tool、version 與 capability 的權威來源見 Authority and Generated Metadata。 Agent 的 retry、reconnect、read-back 與 fail-closed 行為見 Error Codes and Agent Recovery。 Robot articulation、physics tensor、joint mapping、DriveAPI 與 IK lifecycle 見 Robot Runtime Lifecycle。
Safety 與 verification
isaac-sim-live透過 TCP8766控制 Stage;documentation MCP 無法證明 live Stage 已改變。Write 必須通過 timeline、backend、extension、ownership 與 path prerequisites。Destructive verification 只允許 exact scratch Stage 與 MCP-owned namespace。
Registry presence 只證明 tool 可發現。Live pass 必須有 operation-specific read-back 與 cleanup evidence。
execute_script/reload_script只接受可信任程式碼,且受 policy 限制;優先使用 named tools。API keys 只供外部資產 provider 選用,不可寫入 source、MCP JSON、report 或 commit。
Release 前建立 verified backup 並執行 strict release gate。Commit 與 push 仍需使用者明確授權。
Troubleshooting
421 Misdirected Request / Invalid Host header
Tailscale Funnel 已成功轉發,但 Funnel hostname 尚未被 MCP Server 信任。把完整 hostname 加入 MCP_ALLOWED_HOSTS,例如:
$env:MCP_ALLOWED_HOSTS = "localhost,127.0.0.1,your-device.your-tailnet.ts.net"不要使用 .ts.net 或 *.ts.net;FastMCP 只接受設定中的 exact hostname。專案會自動接受該 hostname 有 port 與無 port 的形式。
502 Bad Gateway
Funnel 可用,但本機 MCP Server 沒有在 Funnel 指向的 port listening。確認 ISAAC_MCP_HTTP_PORT 與 tailscale funnel --bg 8000 的 port 相同,並保持 MCP Server process 執行中。
Connection timeout
執行 tailscale funnel status,確認 Funnel 仍啟用,再檢查 firewall 與 Tailscale connection 狀態。
Works locally but ChatGPT cannot connect
確認公開 URL 使用 HTTPS 且以 /mcp 結尾,並確認使用 Tailscale Funnel。Tailscale Serve 只有 tailnet 內部可達,ChatGPT 無法透過它連線。
Camera 成功但 ChatGPT 沒有顯示圖片
確認呼叫的是 RGB capture_camera_output(..., return_mode="image") 或 capture_image(..., return_mode="image")。artifact 只回 managed handle,inline 只把 base64 放進 JSON;兩者都不是 MCP-native image content。若 response 已含 ImageContent,但 UI 仍無圖片,代表目前 client 沒有渲染或轉交該 content block;保留 artifact handle 作為下載路徑,並把結果標記為 client-side partial support。
若 response 是 CAMERA_FRAME_NOT_READY,代表 Server 已完成一次 bounded warm-up retry,但第二次 RTX read 仍未準備。確認 Camera prim、timeline 與 render runtime 正常,再建立新的 capture attempt;不要在單次 request 內無限重播。
ChatGPT 顯示 legacy tools,但呼叫回 Unknown tool
這代表 connector 保存的 tool schema 與目前 server profile 不一致。先對實際 HTTP endpoint 執行 MCP tools/list,再呼叫 get_capabilities:
legacy應公開 129 tools,包含play_simulation、open_gripper、list_available_robots。consolidated應公開 98 tools,改用control_timeline、control_gripper、robot_library。
確認 server process 啟動前已設定 ISAAC_MCP_TOOL_PROFILE,重新啟動 server,接著讓 ChatGPT Connector 重新連線並重新取得 tool schema。若 connector migration 期間仍保存舊名稱,可暫時使用 full 同時公開新舊名稱;完成 schema 更新後切回 consolidated。不要永久使用 full,它會把 action space 增加到 151 tools。
COMMAND_FAILED / Not connected to Isaac
MCP Server 仍在執行,但 Isaac Sim Extension 沒有回應。改用 .\scripts\run_isaac_sim_supervised.ps1 啟動 runtime,並呼叫 get_runtime_status。Agent 應依 availability_code 處理:ISAAC_RUNTIME_RECOVERING 等待 bounded recovery;ISAAC_RUNTIME_CRASHED 檢查 last_crash 並修正 root cause;ISAAC_RUNTIME_UNAVAILABLE 啟動 supervisor。任何 write 在連線中斷後都必須先 read-back,不能盲目重送。
IK_FAILED / physics tensor entity is not valid
目前版本會在 Stage 或 robot identity 改變後丟棄舊 articulation wrapper,並重建 invalid Physics SimulationView。若仍看到此訊息,先確認 MCP Server 與 Isaac Extension 都來自同一個最新 checkout,再重新啟動 Isaac Sim 載入新 Extension。不要用重複 Play/Pause 當成修復,也不要重送未確認結果的 write。
PhysicsDriveAPI, a non-empty instance name must be provided
目前 USD fallback 會依 joint type 使用 angular 或 linear DriveAPI instance。若舊 runtime 仍回此錯誤,重新啟動 Isaac Sim 以載入更新後的 Extension,接著先用 get_joint_config 做 read-only 驗證。
Development
uv sync --dev
uv run pytest -q -m "not live and not windows_launcher and not unix_launcher" -k "not test_detect_version_returns_zero_on_failure"
uv run ruff check .
.\.venv\Scripts\python.exe .\scripts\generate_tool_inventory.py --checkLive tests 是 opt-in,並受 scratch-stage harness 保護。禁止對使用者 Stage 執行 legacy destructive integration suite。
License
本專案使用 MIT License。散布修改版時需保留授權、copyright notices 與 upstream attribution。
Available Tools
129 toolsapply_materialA
Bind a material to an object.
Args: material_path: Prim path of the material. target_prim_path: Prim path of the object to apply the material to. material_purpose: auto, physics, or visual. Auto selects from the material schema.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| material_path | Yes | ||
| idempotency_key | No | ||
| material_purpose | No | auto | |
| target_prim_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 disclosure burden. It communicates that this is a binding/mutation operation but does not explain whether existing bindings are replaced, whether changes persist, what side effects occur, or whether any permissions are needed.
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 concise and well structured: a clear one-sentence purpose followed by a compact args list. There is no filler and all information is relevant.
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?
The core parameters are covered and an output schema exists, so return value details are not needed. However, with no annotations, the lack of side-effect disclosure and relationship to related material tools leaves the context incomplete for an agent making routing or safety decisions.
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 compensates well for the three core parameters by explaining material_path, target_prim_path, and material_purpose values. It omits the auxiliary command_id and idempotency_key parameters, but these are generic and less critical for correct invocation.
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 an unambiguous action: 'Bind a material to an object.' It clearly identifies both the resource being applied and the target, and it is easily distinguished from sibling tools like create_material and get_material_binding.
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 tool's usage is implied: it is used when a material and a target object prim already exist. However, it does not explicitly state when to prefer this over alternatives like get_material_binding, nor does it give exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_stage_batchA
Preview or atomically apply up to 100 layer/arc/variant/semantic/attribute edits. Any failed operation restores the stage snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| command_id | No | ||
| operations | Yes | ||
| idempotency_key | No | ||
| readback_root_path | No | / |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does a good job: it discloses atomicity, failure rollback ('any failed operation restores the stage snapshot'), and the preview/apply dual mode. It does not mention permission requirements or side effects beyond the stated atomic transaction, but the key failure semantics are clearly provided.
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 sentences with no filler. The primary capability is front-loaded, the batch limit is stated, and the most important behavioral guarantee (atomic rollback) is included. Every sentence 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 complex batch mutation tool with no annotations and 0% schema coverage, this is not complete enough. The description conveys the broad contract but leaves the agent unable to correctly construct 'operations' objects or understand the auxiliary parameters. While an output schema exists, the input semantics are too underspecified for reliable autonomous invocation.
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 for the opaque schema. It broadly characterizes the operations as layer/arc/variant/semantic/attribute edits, but it does not explain the structure of each operation object, the meaning of preview, command_id, idempotency_key, or readback_root_path. The additionalProperties: true schema leaves these critically under-specified.
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 ('apply' or 'preview'), a clear resource ('stage batch'), a capacity (up to 100 edits), and the kinds of edits covered ('layer/arc/variant/semantic/attribute'). This clearly distinguishes it from the many single-edit siblings like edit_sublayer and set_variant_selection.
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 batch usage by mentioning 'up to 100' edits and atomic apply, but it never explicitly says when to choose this tool over calling individual edit tools. It also hints at a preview-then-apply workflow without spelling it out as a recommended sequence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_jobC
Request cancellation and return a predictable terminal lifecycle state.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description at least discloses that this is a cancellation request and that it returns an unspecified but predictable terminal lifecycle state. It still leaves side effects, async behavior, idempotency, and failure semantics undisclosed, so the coverage is thin.
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 one terse sentence with no filler and front-loads the main action. It is concise, though it sacrifices helpful detail needed elsewhere.
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 no-annotation tool with three unevaluated parameters, the description covers only the core outcome. The presence of an output schema reduces the need to explain returns, but the agent still lacks enough about optional parameters and sibling disambiguation to call the tool 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 0% and the description adds no meaning for job_id, command_id, or idempotency_key. job_id is inferable from the tool name and required status, but the optional command_id and idempotency_key roles are unexplained.
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 uses the specific action 'request cancellation' and indicates a job lifecycle outcome, so an agent can see this is a job-cancellation operation. It does not explicitly name the job resource or differentiate from siblings like cancel_sdg_job and cancel_motion, keeping it from 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 gives no guidance on when to choose cancel_job over alternatives such as cancel_sdg_job, cancel_motion, stop_simulation, or whether this complements get_job_status. Without exclusions or context, the agent must infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_motionB
Cancel a running motion job and hold its last commanded position.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral disclosure burden. It does explain the main effect—canceling and holding the last commanded position—which is useful. However, it does not disclose reversibility, error behavior, or consequences for already-completed jobs, 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?
The description is a single sentence that states the core purpose and key behavior without filler. It is front-loaded with the action and resource, making it easy to scan.
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 cancel operation with no annotations and three undocumented parameters, this description is incomplete. It names the core behavior but lacks guidance on optional parameters, edge cases, and how it differs from related cancel tools. An agent could invoke it with only job_id, but would have limited understanding of command_id, idempotency_key, or failure modes.
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 schema provides no descriptions for any parameters, and schema description coverage is 0%. The description does not explain command_id or idempotency_key at all, and only indirectly identifies job_id as the motion job identifier. It adds essentially no parameter-level meaning beyond the schema's field names.
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 the specific action: cancel a running motion job. It also adds a meaningful behavioral detail—holding the last commanded position—which distinguishes it from the generic cancel_job and cancel_sdg_job siblings.
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 the tool is for motion jobs in a running state, but it provides no explicit guidance on when to prefer cancel_motion over the sibling cancel_job, nor what to do if the job is not running. There are no alternatives or exclusion conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_sdg_jobB
Preview or request cancellation; resources detach at the next safe point.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| preview | No | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 usefully discloses that resources detach at the next safe point, indicating asynchronous/delayed cancellation behavior. However, it does not clarify the default preview=true behavior, what side effects a real cancellation has, or whether execution is reversible.
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 extremely concise and front-loaded, with no filler. The key distinction (preview vs. request) appears first, followed by the important async 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 cancellation tool with no annotations and 0% parameter coverage, this description is under-specified. It omits the meaning of the preview flag, the role of command_id and idempotency_key, and does not explain what the output or actual cancellation entails.
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 provides no information about job_id, preview, command_id, or idempotency_key. An agent must guess which parameters control the preview-versus-execute behavior and how idempotency works.
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 clear action ('Preview or request cancellation') on an identifiable resource (SDG job, via the tool name). It conveys the core purpose and the unusual preview capability. However, it does not explicitly distinguish itself from the sibling cancel_job tool beyond the name itself.
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 'Preview or request cancellation' implies a preview-then-execute workflow, which offers some usage guidance. It does not explain when to prefer this tool over cancel_job or delete_sdg_job, and no when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_camera_outputB
Capture a typed RTX camera annotator output.
Args: prim_path: Prim path of the camera. output_type: depth, distance_to_image_plane, semantic_segmentation, instance_segmentation, instance_id_segmentation, normals, or motion_vectors. output_path: Optional explicit .npy path for artifact mode. return_mode: metadata, artifact, or inline. Defaults to artifact. inline_max_bytes: Maximum raw bytes allowed in inline mode. Maximum is 4 MiB.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | No | /World/Camera | |
| command_id | No | ||
| output_path | No | ||
| output_type | No | depth | |
| return_mode | No | artifact | |
| idempotency_key | No | ||
| inline_max_bytes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does reveal meaningful non-obvious behavior: output_path is for artifact mode, inline_max_bytes caps inline mode at 4 MiB, and return_mode defaults to artifact. However, it does not explain side effects of artifact mode, what metadata mode returns, or any failure conditions, so 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?
The description is compact and front-loaded with the core purpose, then presents parameters as a tight list. Each listed parameter earns its place with a concrete detail, with no filler or redundancy. It loses a point mainly for not being structured into behavioral 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?
The description is reasonably complete for the main capture workflow given that an output schema exists, so return values are covered elsewhere. But two schema parameters are undocumented, and there is no context on output modes or artifact side effects, which matters more because no annotations 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 0%, so the description must compensate. It adds value for 5 of 7 parameters: prim_path, output_type with allowed values, output_path purpose, return_mode options/default, and inline_max_bytes cap. It omits command_id and idempotency_key entirely, leaving those two params unexplained.
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 uses a specific verb and resource ('Capture a typed RTX camera annotator output') and enumerates the distinct output types (depth, segmentation, normals, motion_vectors), which makes its scope clear. It does not explicitly differentiate from sibling tools like capture_image, but the term 'typed annotator output' plus the listed modes is enough to set it apart.
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 guidance is given about when to use this tool versus alternatives such as capture_image, read_artifact, or get_artifact_info. The description covers parameter mechanics but says nothing about selection criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_imageB
Capture an RGB image from a camera sensor.
Args: prim_path: Prim path of the camera. output_path: Optional explicit .png path for artifact mode. If omitted, uses the managed artifact root. return_mode: metadata, artifact, or inline. Defaults to artifact. inline_max_bytes: Maximum PNG bytes allowed in inline mode. Maximum configurable value is 4 MiB.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | No | /World/Camera | |
| command_id | No | ||
| output_path | No | ||
| return_mode | No | artifact | |
| idempotency_key | No | ||
| inline_max_bytes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially carries the behavioral disclosure burden. It explains return_mode behavior, the managed artifact root for output_path, and the 4 MiB inline limit. However, it does not clarify potential side effects, storage implications, error conditions, or whether camera setup is required.
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 compact and well-structured: a one-sentence purpose followed by a concise Args list. Every line provides useful information, and the most important behavioral details are front-loaded. There is no filler or 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?
The description covers core operational details like output modes and path handling, and an output schema exists to describe return values. However, it lacks usage context relative to its sibling capture_camera_output and does not state prerequisites, making the overall guidance incomplete for a camera-related 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 0%, so the description must compensate. It adds meaningful semantics for prim_path, output_path, return_mode, and inline_max_bytes, including defaults and constraints. However, command_id and idempotency_key are left entirely unexplained, leaving two parameters under-documented.
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 the tool's primary function: 'Capture an RGB image from a camera sensor.' This is a specific verb-resource pairing that distinguishes it from generic simulation or listing tools. However, it does not explicitly distinguish itself from the similarly named sibling 'capture_camera_output', so sibling differentiation is lacking.
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 about when to use this tool versus alternatives, no prerequisites, and no mention of sibling tools such as capture_camera_output or create_camera. An agent has to infer usage solely from the function name and parameter defaults.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cleanup_artifactsC
Delete expired managed artifacts and report reclaimed capacity.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action (delete) and a summary output (reclaimed capacity), but does not disclose whether deletion is permanent, how 'managed' is defined, what happens to active artifacts, or how the optional parameters affect 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?
The description is a single, compact sentence that front-loads the main action and then the reported outcome. Every word contributes meaning, with no redundant or filler content.
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?
Despite having an output schema, the description is incomplete for a tool with two optional parameters and no annotations. It leaves ambiguity about the meaning and purpose of 'command_id' and 'idempotency_key', and does not clarify the operational context or side effects of the cleanup action.
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 for the two schema parameters, but it does not. Neither 'command_id' nor 'idempotency_key' is mentioned, leaving the agent with no semantic understanding of these optional 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 uses a specific verb ('Delete') and resource ('expired managed artifacts'), and adds an outcome ('report reclaimed capacity'). It is clear what the tool does, but it does not explicitly distinguish itself from sibling tools like delete_artifact, so it stops short of full differentiation.
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 word 'expired' implies the tool is for cleaning up artifacts that have passed their expiration, which gives some contextual guidance. However, there is no explicit when-to-use or when-not-to-use guidance, no mention of alternatives, and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_sceneA
Remove all prims from the scene.
Also empties any environment loaded by load_environment, so a later create_physics_scene(floor=True) does not stack a second ground under the first. The stage's defaultLight is always kept — a stage with no light renders black, which looks like a broken camera.
Args: keep_physics: If True, keep physics scene prims. keep_environment: If True, keep the loaded environment. Reloading one costs seconds, so pass this when clearing objects between attempts.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| keep_physics | No | ||
| idempotency_key | No | ||
| keep_environment | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does substantial work: it discloses environment removal, defaultLight preservation with a rendering rationale, and the effect of both keep flags. It does not address reversibility, unsaved changes, or interaction with simulation state, but the main destructive behavior is clearly exposed.
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 compact and front-loaded: a direct lead sentence, a focused paragraph explaining edge-case behavior, and a short Args block. Every sentence adds operational value, including the defaultLight rationale.
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, the description gives enough scenario context—environment reload cost, ground stacking, defaultLight behavior—and parameter guidance to call it correctly. It could mention unsaved-stage or simulation-state effects, but output schema and the clear core description reduce that 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 0%, and the description compensates for the two meaningful parameters by explaining keep_physics and keep_environment, including why keep_environment is worth passing. Generic command_id and idempotency_key are not documented, but their purpose is broadly inferable and they are not tool-specific.
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 and resource: 'Remove all prims from the scene,' with clear qualifications about environment, defaultLight, and keep flags. It is distinct from per-prim deletion tools, but it does not explicitly distinguish itself from sibling tools like new_stage or delete_object.
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?
Provides concrete usage context: clearing prevents create_physics_scene(floor=True) from stacking a second ground, and recommends keep_environment=True 'when clearing objects between attempts.' It lacks explicit when-not-to-use guidance and named alternatives, but gives clear situational direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clone_objectA
Duplicate an existing object to a new prim path.
Args: source_path: Prim path of the object to clone. target_path: Prim path for the cloned object. position: [x, y, z] position for the clone. Keeps original position if not set.
| Name | Required | Description | Default |
|---|---|---|---|
| position | No | ||
| command_id | No | ||
| source_path | Yes | ||
| target_path | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full transparency burden. It states the core behavior (duplication) and one behavioral nuance (position is retained if not set), but does not disclose other relevant traits such as whether target_path must be unused, whether the clone is deep or shallow, or what happens on conflict.
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 compact and well-structured: a one-sentence summary followed by a scannable argument list. Every line adds value, and the key behavior is front-loaded.
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 clone operation with only two required parameters, the description is largely complete: it defines the source and target paths and the optional position behavior. The unexplained command_id and idempotency_key are a minor gap, but an output schema exists and these are likely standard platform 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?
The schema has 0% description coverage, so manual documentation is essential. The description meaningfully explains three parameters (source_path, target_path, position), including the default behavior for position. However, command_id and idempotency_key are left unexplained, leaving part of the schema undocumented.
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 and resource: 'Duplicate an existing object to a new prim path.' This clearly identifies the operation and distinguishes it from siblings like create_object, delete_object, and transform_object, even without naming 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?
Usage context is implied rather than explicit. The summary makes it clear that this tool is for duplicating an existing prim, but it does not state when to prefer it over alternatives like create_object, nor does it give exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_gripperA
Close a gripper to the profile's declared closed width with immediate target read-back.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | Yes | ||
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It mentions 'immediate target read-back,' hinting at a non-waiting return behavior, but does not explain blocking, error behavior, prerequisites, or other side effects of closing the gripper.
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 one-sentence description is tightly written and front-loads the action with no filler. Every phrase adds meaning: the action, the target width source, and the immediate read-back 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?
This is a state-changing robot command with four input parameters and no annotations, so the description must cover prim_path and command/idempotency semantics. It does not, leaving an agent unable to fully determine how to target the gripper or how the command lifecycle works. The existence of an output schema helps with return values but not with input 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?
With schema description coverage at 0%, the description needed to explain the parameters but only relates 'profile' to the declared closed width. prim_path, command_id, and idempotency_key receive no explanation beyond their schema titles, leaving key operational details unclear.
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 verb 'close' plus 'gripper' names the action and object, and 'profile's declared closed width' adds a specific mechanism. This clearly distinguishes it from open_gripper and set_gripper_width siblings.
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 a clear closing context but does not explicitly state when to prefer this over open_gripper or set_gripper_width, nor does it mention exclusions. An agent can infer the usage from the word 'close', but the guidance is not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_ikA
Solve bounded Lula inverse kinematics without moving the robot.
Quaternion order is scalar-first [w, x, y, z]. The explicit warm-start and random seed make repeated requests reproducible. The result reports achieved end-effector errors and whether collision checking was done.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | Yes | ||
| command_id | No | ||
| timeout_ms | No | ||
| random_seed | No | ||
| robot_model | No | Franka | |
| max_iterations | No | ||
| idempotency_key | No | ||
| target_position | Yes | ||
| end_effector_frame | No | right_gripper | |
| position_tolerance | No | ||
| target_orientation | No | ||
| seed_joint_positions | No | ||
| orientation_tolerance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 states no robot movement, specifies scalar-first quaternion order, explains reproducibility via warm-start and random seed, and discloses what the result reports. This is strong 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?
Three concise, front-loaded sentences with no filler. The main purpose comes first, followed by high-value behavioral details.
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?
Despite an output schema being present, the tool has 13 parameters, no annotations, and zero schema description coverage. The description provides useful behavioral context but is not enough for an agent to correctly configure all parameters or understand required inputs.
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 compensates for only a few parameters: target_orientation quaternion order, seed_joint_positions, and random_seed. Most of the 13 parameters, including required prim_path and target_position as well as tolerances and idempotency_key, receive no explanatory 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?
The first sentence names a precise operation: solve bounded Lula inverse kinematics. The qualifier 'without moving the robot' clearly separates it from motion-execution siblings such as execute_trajectory or set_joint_positions.
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 usage for computing IK without commanding motion and notes reproducibility for repeated requests, but it does not explicitly name alternative tools or give when-to-use versus when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_physics_bodyB
Atomically configure rigid/static body, collider approximation and mass.
body_type is dynamic, kinematic, or static. approximation is one of none, convex_hull, convex_decomposition, mesh_simplification, bounding_cube, or bounding_sphere. Mass uses kg and density uses kg/m^3. The timeline must be stopped.
| Name | Required | Description | Default |
|---|---|---|---|
| mass_kg | No | ||
| body_type | No | dynamic | |
| prim_path | Yes | ||
| command_id | No | ||
| approximation | No | ||
| density_kg_m3 | No | ||
| idempotency_key | No | ||
| collider_enabled | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries most of the behavioral burden. It adds useful context like atomicity, units, collider approximation options, and the timeline precondition. It does not disclose side effects, persistence behavior, error cases, or the role of command_id/idempotency_key.
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 compact and front-loaded. The purpose is stated in the first sentence, followed by efficient enumeration of values, units, and the precondition. No sentence is wasted.
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?
Despite having an output schema, the tool has no annotations and no parameter descriptions in the schema. The description covers the core physics concepts but omits important context for command_id, idempotency_key, and collider_enabled, and does not clarify what 'atomically configure' means for partial failures or prerequisites beyond the timeline being stopped.
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 explains body_type, approximation, mass_kg, and density_kg_m3, but leaves prim_path, command_id, idempotency_key, and collider_enabled semantically unexplained. This is a significant gap for an 8-parameter 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?
The description opens with a clear verb and object: 'Atomically configure rigid/static body, collider approximation and mass.' This distinguishes it from read-only tools like get_physics_body, though it does not explicitly compare itself to sibling tools like set_physics_params.
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 provides a clear precondition ('The timeline must be stopped') and enumerates valid values, which gives an agent useful context. However, it never explains when to choose this tool over alternatives such as set_physics_params or get_physics_body, and it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_script_nodeB
Preview or configure one exact ScriptNode in explicit inline/file mode.
mode='inline' requires inline_script and forbids script_file.
mode='file' requires script_file and forbids inline_script.
The extension validates the mode before mutating the graph.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | inline | |
| preview | No | ||
| node_path | No | ScriptNode | |
| command_id | No | ||
| graph_path | Yes | ||
| script_file | No | ||
| inline_script | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does disclose that the extension validates the mode before mutating the graph and that the tool can preview, which is useful. However, it does not explain what 'configure' changes, whether the mutation is reversible, or what side effects occur beyond the graph mutation.
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 compact and well-structured: the first sentence states purpose and scope, and the next sentences capture essential mode invariants. Every sentence earns its place 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?
An output schema exists, so return values do not need explanation, but this is a mutating tool with 8 parameters, no annotations, and no description of the required graph_path or node_path semantics. The mode constraints are essential, but the description is not complete enough for a fresh agent to safely select and invoke the tool without additional context.
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 adds valuable cross-parameter semantics: inline mode requires inline_script and forbids script_file, while file mode requires script_file and forbids inline_script. Since schema description coverage is 0%, this is important, but the description leaves graph_path, node_path, preview, command_id, and idempotency_key unexplained, so it only partially compensates for 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?
The description names a specific action ('Preview or configure') and resource ('one exact ScriptNode'), and states the scope ('inline/file mode'). It is clear enough to identify what the tool operates on, but it does not explicitly differentiate from the sibling reload_script_node or other script/graph tools.
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 mode-level constraints but no guidance on when to use this tool versus alternatives such as execute_script, reload_script_node, or action graph tools. Usage is only implied by the resource name and the preview/configure verbs, not by clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_action_graphC
Preview or connect one source output to one target input in an Action Graph.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| command_id | No | ||
| graph_path | Yes | ||
| source_attr | Yes | ||
| target_attr | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavioral details. It hints at two modes, preview and connect, but does not explain what preview does, whether the connection replaces an existing one, whether the operation is reversible, or how command_id and idempotency_key affect 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?
The description is a single, front-loaded sentence with no filler. Every word contributes to identifying the tool's core action and mode.
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?
Despite an output schema being present, the description is too sparse for a tool with a preview/execute duality and optional command-related parameters. It does not clarify what 'preview' returns, when a command_id is needed, or how the tool interacts with an existing Action Graph, making it incomplete for correct invocation.
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 there are 6 parameters. The description adds some meaning by mapping 'source output' to source_attr and 'target input' to target_attr, but it leaves preview, command_id, graph_path, and idempotency_key semantically unexplained. The agent would have to infer the roles of several 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 action, connecting a source output to a target input within an Action Graph, and mentions the alternate preview mode. This clearly distinguishes it from sibling tools like disconnect_action_graph and delete_action_graph. However, it does not explicitly contrast with edit_action_graph or list when connecting is preferred over editing.
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 guidance is provided for when to use this tool versus alternatives such as edit_action_graph, disconnect_action_graph, or evaluate_action_graph. The description also does not explain the conditions under which preview should be used instead of performing the actual connection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_action_graphA
Create and wire an OmniGraph Action Graph.
Builds a complete Action Graph with nodes, connections and attribute values using og.Controller.edit(). This is the programmatic equivalent of creating an Action Graph in the visual editor.
Args: graph_path: USD prim path for the graph (default "/World/ActionGraph"). nodes: List of node definitions. Each dict has: - "path": Node path relative to graph (e.g. "OnPlaybackTick") - "type": OmniGraph node type (e.g. "omni.graph.action.OnPlaybackTick") connections: List of [source_attr, target_attr] pairs for wiring nodes. Each attr is "NodePath.outputs:attrName" or "NodePath.inputs:attrName". values: List of attribute value overrides. Each dict has: - "attr": Full attribute path (e.g. "ScriptNode.inputs:script") - "value": The value to set evaluator: Graph evaluator type (default "execution", what Action Graphs use). "push" evaluates every application update regardless of the timeline, so an OnPlaybackTick-driven ScriptNode would keep running even while the simulation is stopped. script_file: Convenience shortcut — path to a local Python script file. When provided, automatically creates OnPlaybackTick → ScriptNode nodes, wires them, and attaches the script file (sets usePath + scriptPath). The nodes and connections parameters are ignored when script_file is set. RECOMMENDED for anything you will iterate on — edit the file and reload_script "just works", with the better reload story. inline_script: Convenience shortcut — inline Python (must define setup(db)/compute(db)). Auto-creates OnPlaybackTick → ScriptNode, wires them, and sets the script inline (usePath=False). For small, static graphs. For anything you will iterate on, prefer script_file — it has the better reload story (edit the file + reload_script "just works"; inline edits need edit_action_graph).
Example (inline script — one-step): create_action_graph( inline_script="def setup(db): pass\ndef compute(db): return True" )
Example (script file — one-step, recommended for iteration): create_action_graph( script_file="/path/to/controller.py" )
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | No | ||
| values | No | ||
| evaluator | No | execution | |
| command_id | No | ||
| graph_path | No | /World/ActionGraph | |
| connections | No | ||
| script_file | No | ||
| inline_script | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden, and it does so well: it reveals that the tool uses og.Controller.edit(), auto-creates and wires OnPlaybackTick → ScriptNode for shortcuts, sets usePath/scriptPath vs inline, and that nodes/connections are ignored when script_file is set. The evaluator explanation is especially valuable, describing how 'push' keeps an OnPlaybackTick-driven ScriptNode running even when simulation is stopped. It does not mention side effects like idempotency or failure modes, but the disclosed behavior is substantial.
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 long but structured with clear sections, parameter explanations, and examples, which suits the tool's complexity. It is front-loaded with the core purpose and then elaborates on parameters. There is minor redundancy around the 'better reload story' phrasing repeated for both script_file and inline_script, but it does not significantly harm readability.
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 the tool's complexity and the absence of annotations, the description is largely complete: it covers creation mechanics, all meaningful parameter semantics, evaluator behavior, and provides usable examples. The main gaps are the undocumented command_id/idempotency_key parameters and the lack of explicit guidance about when to choose this tool over edit_action_graph or connect_action_graph.
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 does for most parameters: graph_path, nodes, connections, values, evaluator, script_file, and inline_script are all explained with concrete shapes and examples. However, command_id and idempotency_key are not described at all, leaving two of nine parameters without semantic explanation.
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 the verb and resource: 'Create and wire an OmniGraph Action Graph' and explains it builds a complete graph with nodes, connections, and attribute values. It is distinguishable from siblings like delete_action_graph, get_action_graph, and edit_action_graph by framing itself as the programmatic equivalent of creating a graph in the visual editor.
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 explicit usage guidance for choosing between script_file and inline_script: script_file is recommended for iteration, inline_script for small static graphs. It also explains when nodes/connections are ignored (when script_file is set). However, it does not explicitly contrast create_action_graph with edit_action_graph or connect_action_graph, so the broader alternative-selection guidance is partially implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cameraB
Add a camera sensor to the scene.
Args: prim_path: Prim path for the camera. position: [x, y, z] world position. rotation: [rx, ry, rz] rotation in degrees. resolution: [width, height] image resolution. Default 1280x720.
| Name | Required | Description | Default |
|---|---|---|---|
| position | No | ||
| rotation | No | ||
| prim_path | No | /World/Camera | |
| command_id | No | ||
| resolution | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 of behavioral disclosure. It only tells the agent that a camera is added and describes some parameter meanings, but it does not disclose whether an existing camera at prim_path is overwritten, whether the operation is idempotent despite the idempotency_key parameter, or what side effects occur in the scene.
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 compact and front-loaded with the main purpose, followed by a tight bullet list of arguments with no filler. Each sentence adds 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 creation tool with 6 parameters, no annotations, and zero schema-level descriptions, the definition is incomplete. It fails to explain the two infrastructure parameters and omits key behavioral details like overwrite semantics and scene mutation impact, leaving an agent to guess important call context.
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 does add meaningful semantics for prim_path, position, rotation, and resolution, including units and a default, but command_id and idempotency_key are left completely unexplained.
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: 'Add a camera sensor to the scene.' This clearly distinguishes the tool from camera-related siblings like create_ros2_camera_publisher or capture_camera_output, which serve different purposes.
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 guidance about when to use this tool versus alternatives such as create_lidar, delete_sensor, or capture_camera_output. The intended usage is only implied by the tool name and one-line purpose, with no exclusions or contextual routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_collision_groupC
Create a USD collision group and return relationship read-back.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| group_path | Yes | ||
| collider_paths | Yes | ||
| idempotency_key | No | ||
| merge_group_name | No | ||
| filtered_group_paths | No | ||
| invert_filtered_groups | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It reveals that the tool creates a group and returns a read-back, but it does not explain side effects, idempotency behavior, merge semantics, filtering behavior, or any prerequisites. For a mutation tool, this is a significant transparency 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?
The description is highly concise and front-loaded, with no filler words. However, it is so terse that it sacrifices parameter and behavior context; conciseness is good, but it borders on under-specification.
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 seven parameters, no annotations, and no parameter coverage, the description is far from complete. The output schema may cover the return value, but the description does not explain the inputs, the nature of the relationship read-back, or how merge/filter options affect behavior.
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 adds no meaning for any of the seven parameters. Required fields like group_path and collider_paths, and optional ones like merge_group_name and filtered_group_paths, are left entirely unexplained, so the agent has no help understanding what values to provide.
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 ('Create') and resource ('USD collision group'), and notes that it returns a relationship read-back. This makes the core action clear, though it does not explicitly contrast with the sibling get_collision_group.
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 intended use is implied by the verb 'Create' — an agent can infer this is the tool to call when a collision group must be created. However, there is no explicit guidance about when not to use it or how it relates to alternatives like get_collision_group.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_lidarB
Add a lidar sensor to the scene.
Args: prim_path: Prim path for the lidar. position: [x, y, z] world position. rotation: [rx, ry, rz] rotation in degrees. config: Isaac Sim 6 supported preset name, such as Example_Rotary or OS1. variant: Optional preset variant string or variant-set mapping. horizontal_fov_deg: Generic sensor horizontal field of view in degrees. vertical_fov_deg: Generic sensor vertical field of view in degrees. horizontal_resolution_deg: Generic sensor horizontal angular resolution. vertical_resolution_deg: Generic sensor vertical angular resolution. rotation_rate_hz: Integer generic rotary scan rate from 1 to 100 Hz. min_range_m: Generic sensor minimum range in meters. max_range_m: Generic sensor maximum range in meters.
| Name | Required | Description | Default |
|---|---|---|---|
| config | No | ||
| variant | No | ||
| position | No | ||
| rotation | No | ||
| prim_path | No | /World/Lidar | |
| command_id | No | ||
| max_range_m | No | ||
| min_range_m | No | ||
| idempotency_key | No | ||
| rotation_rate_hz | No | ||
| vertical_fov_deg | No | ||
| horizontal_fov_deg | No | ||
| vertical_resolution_deg | No | ||
| horizontal_resolution_deg | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states the action. It does not disclose what happens if a sensor already exists at prim_path, whether an active stage is required, or how config interacts with the generic parameters (precedence, mutual exclusion, or override behavior) — critical unknowns for a 14-parameter mutation 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?
The one-line purpose is front-loaded and each parameter is documented on a single readable line. Some phrasing repeats ("in degrees", "Generic sensor"), but given zero schema coverage those repetitions are functional, not wasted.
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?
An output schema exists, so return values need not be explained, but for a complex 14-parameter creation tool with no annotations and no schema descriptions, the definition still has gaps: the config-versus-generic relationship is unresolved, prerequisites (e.g., an open stage) are unstated, and two parameters are undocumented. It covers the parameter vocabulary well but not the operational context.
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, and it does: it adds units (degrees, meters, Hz), formats ([x,y,z], [rx,ry,rz]), a range constraint (1-100 Hz), and concrete preset examples (Example_Rotary, OS1) for 12 of the 14 parameters. It misses command_id and idempotency_key, and could clarify which parameters apply in preset mode versus generic mode.
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?
"Add a lidar sensor to the scene" is a specific verb+resource+location and clearly distinct from siblings like create_camera, get_lidar_config, or delete_sensor. However, the description never explicitly names or contrasts siblings, so differentiation is inherent in the resource 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?
There is no guidance on when to use this tool versus alternatives such as create_camera, get_lidar_config, or get_lidar_point_cloud, and no exclusions are given. The only implied usage signal is the internal preset-vs-generic parameter split, which hints at two configuration modes but does not state when to choose one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_lightB
Create a light in the scene.
Args: light_type: Type of light — DistantLight, DomeLight, SphereLight, RectLight, DiskLight, or CylinderLight. position: [x, y, z] world position. intensity: Light intensity. color: [r, g, b] light color (0-1). rotation: [rx, ry, rz] rotation in degrees. prim_path: Custom prim path. Auto-generated if not provided.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | ||
| position | No | ||
| rotation | No | ||
| intensity | No | ||
| prim_path | No | ||
| command_id | No | ||
| light_type | No | DistantLight | |
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It states the creation action and notes that prim_path is auto-generated if not provided, but it does not reveal side effects such as what happens if the path already exists, whether a stage must be open, or how idempotency is handled. This is a significant gap for a mutation 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?
The description is short, front-loaded with the primary purpose, and every line in the Args block adds useful information. There is no redundant restating of schema defaults or filler text.
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?
The description is adequate for basic use of the tool, especially since an output schema exists and return values do not need to be described. However, it lacks usage context, side-effect caveats, and explanation of command_id/idempotency_key, leaving meaningful gaps for an agent making reliable calls.
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 compensates well by explaining 6 of the 8 parameters: light_type with allowed values, position/rotation array formats, color range 0-1, rotation in degrees, and prim_path fallback behavior. It omits command_id and idempotency_key, and does not give intensity units, but the covered parameters are meaningfully 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 opens with a clear verb and resource: 'Create a light in the scene.' It also lists the supported light types, which makes the tool's scope specific. However, it does not explicitly distinguish itself from the sibling tool 'modify_light' or other creation tools, so it stops short of full differentiation.
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 guidance is given about when to use this tool versus alternatives such as modify_light, or about prerequisites like an open stage or scene. Usage is only implied by the word 'Create' and the tool name, with no explicit when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_materialA
Create a PBR or physics material.
Args: material_type: "pbr" for visual material or "physics" for physics material. prim_path: Prim path for the material. Auto-generated if not set. color: [r, g, b] diffuse color (0-1). PBR only. roughness: Surface roughness (0-1). PBR only. metallic: Metallic value (0-1). PBR only. static_friction: Static friction coefficient (>=0). Physics only. dynamic_friction: Dynamic friction coefficient (>=0 and <= static). Physics only. restitution: Bounciness from 0 to 1. Physics only.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | ||
| metallic | No | ||
| prim_path | No | ||
| roughness | No | ||
| command_id | No | ||
| restitution | No | ||
| material_type | No | pbr | |
| idempotency_key | No | ||
| static_friction | No | ||
| dynamic_friction | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It mentions that prim_path is auto-generated if not set and that certain parameters are PBR- or physics-only, but it does not disclose side effects such as whether an existing material at the path is replaced, whether the material is persistent in the stage, or what the return value represents.
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 a compact, front-loaded summary followed by a clean bullet-style argument list. Each parameter line adds value with ranges or applicability notes, and there is no filler 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?
The material-specific parameter semantics are well covered, and an output schema exists to define returns. However, the description lacks broader context around creation behavior, overwrite semantics, and the two generic execution parameters (command_id and idempotency_key), leaving some gaps for a 10-parameter mutation tool with no annotations.
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 explains 8 of 10 parameters with ranges, constraints, and type-specific applicability, including static/dynamic friction relationships. It omits command_id and idempotency_key, but the core material parameters are well documented.
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 and resource: 'Create a PBR or physics material.' It clearly distinguishes between the two material subtypes and separates this tool from sibling getters/appliers like get_material and apply_material.
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 within-tool guidance by mapping material_type to 'pbr' or 'physics' and marking which parameters apply to each. However, it does not explicitly state when to use this tool instead of alternatives such as apply_material or get_material, so usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_objectA
Create a primitive object (Cube, Sphere, Cylinder, Cone, Capsule, Plane).
Prefer size for absolute sizing: size is the target in METERS
(default 1.0), so size=0.3 gives a 0.3 m object regardless of type.
scale is a RAW MULTIPLIER of the primitive's NATIVE size, not meters.
Native sizes: Cube/Sphere/Cylinder/Cone/Capsule = 2 m, Plane = 1 m.
So scale=0.5 on a Cube -> 1 m, and scale=[0.4,0.4,0.3] -> a
0.8 x 0.8 x 0.6 m box (0.4 * 2 m), which surprises callers who expect
0.4 m. Use scale only for deliberate non-uniform shaping; otherwise
use size. If both are given, scale wins and size is ignored.
Returns prim_path, actual_size [x, y, z] in meters, and bounding_box (min/max corners in world coordinates) so you can accurately place other objects relative to this one.
Args:
object_type: Type of primitive — Cube, Sphere, Cylinder, Cone, Capsule, or Plane
(case-insensitive; "cube" is normalized to "Cube").
position: [x, y, z] world position.
rotation: [rx, ry, rz] rotation in degrees.
scale: [sx, sy, sz] RAW multiplier of the native size (2 m for most
prims, 1 m for Plane). NOT meters. Overrides size.
size: Target size in METERS (default 1.0). Absolute; independent of
the primitive's native size. Ignored if scale is provided.
color: [r, g, b] color values (0-1).
physics_enabled: Enable physics on this object.
prim_path: Custom prim path. Auto-generated if not provided.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | ||
| color | No | ||
| scale | No | ||
| position | No | ||
| rotation | No | ||
| prim_path | No | ||
| command_id | No | ||
| object_type | No | Cube | |
| idempotency_key | No | ||
| physics_enabled | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so excellently. It explains surprising behavior such as `scale` being a raw multiplier of native size rather than meters, the precedence of `scale` over `size`, and native sizes per primitive. It also discloses return values (prim_path, actual_size, bounding_box) to help the agent place objects accurately.
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 long but every section earns its place: the size/scale distinction is a critical pitfall, the return-value note is actionable, and the Args list is tidy and consistent. It is front-loaded with the primary purpose and the most surprising behavioral warning.
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 10 optional parameters, no schema descriptions, and an output schema, the description is remarkably complete. It covers supported types, units, defaults, precedence rules, and return semantics. It also gives enough coordinate and color context to invoke the tool correctly without requiring external knowledge.
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 is the only source of parameter meaning. It fully compensates by documenting object_type, position, rotation, scale, size, color, physics_enabled, and prim_path with units and behavioral notes. The only undocumented parameters are command_id and idempotency_key, which are generic execution-flow parameters and not central to object creation 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?
The description opens with a specific verb plus resource: "Create a primitive object (Cube, Sphere, Cylinder, Cone, Capsule, Plane)." This makes the tool's scope unambiguous and clearly distinguishes it from sibling creation tools like create_light, create_robot, or create_material.
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 clearly establishes when the tool is appropriate: whenever a primitive object is needed. It also provides strong internal guidance on choosing `size` over `scale`, explaining when scale is appropriate for non-uniform shaping. It does not explicitly name alternative tools to use instead, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_physics_jointA
Create fixed, revolute, or prismatic joint with explicit local frames.
Positions and prismatic limits are meters; revolute limits are degrees. Quaternion rotations use [w, x, y, z]. Axis is X, Y, or Z.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | ||
| body0 | No | ||
| body1 | Yes | ||
| command_id | No | ||
| joint_path | Yes | ||
| joint_type | Yes | ||
| lower_limit | No | ||
| upper_limit | No | ||
| idempotency_key | No | ||
| local_position0 | No | ||
| local_position1 | No | ||
| local_rotation0 | No | ||
| local_rotation1 | No | ||
| collision_enabled | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full disclosure burden. It does add valuable calling conventions — meters for positions/prismatic limits, degrees for revolute limits, [w,x,y,z] quaternion order, and allowed axis values — which prevent mis-parameterization. However, it omits side-effect behaviors such as what happens if joint_path already exists, whether body0=null means the world frame, and whether a physics scene must already be active.
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 short sentences, front-loaded with the purpose statement followed by precise format conventions. Every sentence carries information the schema lacks; there is no boilerplate, no repetition of parameter titles, and 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 14-parameter tool with zero schema descriptions and no annotations, the description covers the highest-risk conventions (units, quaternion order, axis choices, joint types) but misses semantics needed for a correct call: body0/body1 reference meaning, whether an omitted body0 denotes the world, path formatting, and how limits apply per joint type. The output schema covers return values, but the remaining parameter gaps keep this from being 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 0%, so the description must compensate. It usefully clarifies units for positions and limits, quaternion order for the local_rotation parameters, and allowed values for axis and joint_type. But it leaves other parameters unexplained: the format of joint_path, whether body0/body1 are scene paths and body0=null means world, and the semantics of collision_enabled, command_id, and idempotency_key.
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 sentence names a specific verb ('Create'), a specific resource ('physics joint'), and enumerates the supported joint types (fixed, revolute, prismatic) plus the key feature (explicit local frames). This naturally distinguishes it from the read-oriented sibling get_physics_joint and from body-level tools like configure_physics_body.
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 offers no guidance on when to use this tool versus alternatives such as configure_physics_body or create_collision_group, and it states no prerequisites (e.g., an existing physics scene, valid body paths). An agent selecting among roughly 130 siblings must infer the use case entirely from the tool name and first sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_physics_sceneB
Create a physics scene with ground plane. Call get_scene_info first to verify connection.
Args: gravity: Gravity vector [x, y, z]. Default is standard gravity. scene_name: Name for the physics scene prim.
| Name | Required | Description | Default |
|---|---|---|---|
| gravity | No | ||
| command_id | No | ||
| scene_name | No | PhysicsScene | |
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It mentions the created ground plane and a prerequisite call, but does not disclose whether an existing scene is replaced, whether the operation is destructive, or what side effects occur. This is a significant gap for a create-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?
The description is short, front-loaded with the core purpose, and contains no filler. The prerequisite call is stated early, and the parameter notes are concise without duplicating every schema field.
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?
The description is sufficient to make a default call and understand the main parameters, and an output schema exists so return-value documentation is not needed. However, it does not explain the side effects, the difference between this and stage/scene creation siblings, or the optional command_id/idempotency_key parameters, leaving some gaps for an agent evaluating the full context.
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 Args section adds meaningful meaning for gravity ('Default is standard gravity') and scene_name ('Name for the physics scene prim'), which goes beyond the bare schema titles and defaults. However, command_id and idempotency_key are undocumented in the description, and schema description coverage is 0%, so the description only partially compensates for the missing schema-level parameter documentation.
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 the verb/resource: 'Create a physics scene with ground plane.' This is specific enough to identify the tool's function and distinguish it from many siblings. However, it does not explicitly differentiate it from related scene-creation tools like new_stage or create_object.
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 instruction to 'Call get_scene_info first to verify connection' gives a clear prerequisite and implies the tool should be used after confirming the stage connection. It does not state when to prefer this tool over alternatives or when not to use it, so the guidance is useful but incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_robotA
Create a robot in the scene from the Isaac Sim asset library.
Supports fuzzy matching — e.g. "franka", "spot", "g1", "go1". Call list_available_robots first to see all available robots. Call create_physics_scene before creating robots.
Returns prim_path, robot_key, joint_names, and num_dof so you can immediately use set_joint_positions without a follow-up get_robot_info call.
Args: robot_type: Robot name or search term. Fuzzy matched against available robots. position: [x, y, z] world position. name: Custom name for the robot prim. prim_path: Exact USD prim path (e.g. "/World/Franka"). Overrides name-based path.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| position | No | ||
| prim_path | No | ||
| command_id | No | ||
| robot_type | No | franka | |
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. It reveals fuzzy matching behavior, required preceding calls, and the exact returned fields with the chaining benefit to set_joint_positions. It does not disclose what happens on name/prim_path collision or mention side effects, which prevents 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?
Well-structured and appropriately sized. The purpose and key fuzzy-matching behavior come first, prerequisites are one line each, and the return-value explanation is concise. Every sentence carries useful information; 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?
Given no annotations and moderate parameter complexity, the description covers the essential workflow: pre-conditions, fuzzy matching, parameter meanings, and return fields for immediate chaining. The output schema exists, so detailed return-value documentation is not required. The main gap is undocumented command_id and idempotency_key parameters and no explicit alternative-tool routing.
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 for the schema. It adds real meaning for robot_type (fuzzy matched), position (xyz), name (custom prim name), and prim_path (exact path, overrides name-based path). However, command_id and idempotency_key are left unexplained in both the schema and description, leaving two parameters undocumented.
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?
Clearly identifies the verb, resource, and source library: creates a robot from the Isaac Sim asset library. Mentions fuzzy matching, which adds operational clarity. It does not explicitly compare against siblings like import_urdf or create_object, but the 'robot' and 'asset library' framing is enough to distinguish 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?
Provides explicit usage prerequisites: call list_available_robots first to see options, and call create_physics_scene before creating robots. This is strong contextual guidance. It does not explicitly state when not to use this tool or mention alternatives, so it stops short of a top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ros2_camera_publisherA
Preview or create a ROS2CameraHelper publisher for an MCP camera runtime.
The camera prim must first be created with create_camera. Its owned render product is resolved automatically; render_product_path is an explicit override for externally-created render products.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| frame_id | No | sim_camera | |
| domain_id | No | ||
| command_id | No | ||
| graph_path | Yes | ||
| topic_name | No | /camera/image_raw | |
| camera_type | No | rgb | |
| qos_profile | No | sensor_data | |
| node_namespace | No | ||
| idempotency_key | No | ||
| use_system_time | No | ||
| camera_prim_path | Yes | ||
| render_product_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 discloses automatic resolution of the owned render product and the override path, which is useful. However, it does not explain side effects of creating the publisher, any idempotency/retry behavior, or what 'preview' actually does at runtime.
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 three compact sentences with no filler. The primary purpose is front-loaded, and the prerequisite/override guidance is tightly packed into the remaining 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 13-parameter creation tool with no annotations, this description is too sparse. The existing output schema does not cover parameter semantics, and major aspects like preview/run distinction, default publishing behavior, and parameter effects are left unexplained.
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 for fully undocumented parameters. It only adds meaningful context for camera_prim_path and render_product_path, leaving 11 of 13 parameters (including preview, topic_name, qos_profile, camera_type, and use_system_time) without any behavioral explanation.
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 ('Preview or create'), a specific resource ('ROS2CameraHelper publisher'), and the runtime context ('MCP camera runtime'). This clearly distinguishes it from sibling ROS2 publisher tools like create_ros2_tf_publisher or create_ros2_lidar_publisher.
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 explicitly states that the camera prim must be created first with create_camera, providing a clear prerequisite and workflow context. It also explains when to use render_product_path as an override, though it does not contrast when to use preview vs create or when to prefer it over alternative publisher tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ros2_clock_publisherB
Preview or create a playback-driven ROS 2 Clock publisher graph.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| domain_id | No | ||
| command_id | No | ||
| graph_path | No | /World/ROS2Clock | |
| topic_name | No | /clock | |
| qos_profile | No | default | |
| reset_on_stop | No | ||
| node_namespace | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden of behavioral disclosure. It mentions a preview/create dichotomy, implying one mode is non-mutating and the other is mutating, but it does not state side effects, default preview behavior, idempotency semantics, reset_on_stop effects, or what 'playback-driven' actually changes in the graph.
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 a single front-loaded sentence with no filler. The action ('Preview or create') comes first, and the qualifier ('playback-driven') adds distinguishing context without waste.
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 a 9-parameter tool with no annotations and zero schema description coverage, this description is far too sparse. It does not explain what a 'ROS 2 Clock publisher graph' is, how preview differs from creation, or why 'playback-driven' matters. The presence of an output schema reduces the need to describe return values, but does not compensate for missing behavioral and selection context.
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 for undocumented parameters. It does not explain any of the 9 parameters; 'Preview or create' only indirectly maps to the preview boolean. The meaning of domain_id, graph_path, qos_profile, reset_on_stop, idempotency_key, and node_namespace is left entirely to 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 verb pair ('Preview or create') and a specific resource ('playback-driven ROS 2 Clock publisher graph'). It clearly distinguishes this tool from sibling publisher tools like create_ros2_tf_publisher and create_ros2_camera_publisher by specifying 'Clock'.
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 conveys a usage context: this is for playback-driven clock publishing, and there is a preview mode versus a create mode. However, it never states when to prefer this tool over siblings, when not to use it, or what conditions warrant preview versus create.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ros2_joint_state_publisherC
Preview or create an IsaacReadJointState ROS 2 JointState publisher graph.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| domain_id | No | ||
| command_id | No | ||
| graph_path | Yes | ||
| topic_name | No | /joint_states | |
| qos_profile | No | default | |
| target_prim | Yes | ||
| node_namespace | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 of behavioral disclosure. The 'Preview or create' phrasing does hint at a dual-mode behavior, which adds some value, but it fails to explain what preview actually does, whether graphs are replaced or appended, the role of idempotency_key/command_id, or networking implications like domain_id. For a creation tool with 9 parameters and zero annotation coverage, 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?
A single 13-word sentence with the action verb front-loaded before the resource. It is compact and efficient with no filler. It loses a point because the dual-mode behavior is jammed into one phrase without any structural hint about the default (preview defaults to true), and the jargon term 'IsaacReadJointState' is 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 tool with 9 parameters, 2 required inputs, no annotations, 0% schema description coverage, and a crowded sibling family of ROS 2 publisher tools, this one sentence is deeply inadequate. The output schema covers return values, but the description gives the agent almost nothing needed to call the tool correctly or judge its side effects. Required inputs, default behavior, and the preview/create distinction are all left unresolved.
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 bears the full burden of explaining parameters. It explains none of the 9 parameters: preview, domain_id, command_id, graph_path, topic_name, qos_profile, target_prim, node_namespace, and idempotency_key are all undocumented in both the schema and the description. The required parameters graph_path and target_prim are never clarified, leaving the agent to guess what prim and path are expected.
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 ('Preview or create') and a specific resource (an 'IsaacReadJointState ROS 2 JointState publisher graph'), which clearly identifies what the tool does. The graph type named distinguishes it from sibling publisher tools like create_ros2_clock_publisher or create_ros2_lidar_publisher, though not explicitly. It loses a point because the core resource largely restates the tool name.
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 guidance is given on when to use this tool versus alternatives. The sibling set contains several ROS 2 publisher creation tools (clock, tf, camera, lidar) and delete_ros2_workflow, but the description never states selection criteria, prerequisites (e.g., simulation running, stage loaded), or when preview should be used instead of create. There is no exclusionary or comparative guidance at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ros2_lidar_publisherB
Preview or create a ROS2RtxLidarHelper publisher for an MCP RTX LiDAR runtime.
The LiDAR prim must first be created with create_lidar. Its owned render product is resolved automatically; render_product_path is an explicit override for externally-created render products.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| frame_id | No | sim_lidar | |
| domain_id | No | ||
| command_id | No | ||
| graph_path | Yes | ||
| lidar_type | No | point_cloud | |
| topic_name | No | /lidar/points | |
| qos_profile | No | sensor_data | |
| node_namespace | No | ||
| idempotency_key | No | ||
| lidar_prim_path | Yes | ||
| use_system_time | No | ||
| render_product_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does add useful context: the tool has preview/create dual behavior, depends on a previously created LiDAR prim, automatically resolves the owned render product, and supports an explicit override. However, it does not disclose side effects of creation, whether preview is non-mutating, or what happens to existing publishers, topics, or runtime state.
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 compact and front-loaded with the main action. The first sentence states what the tool does, and the second sentence provides a key dependency and override behavior without filler. Some terminology could be clearer, but the length is appropriate and every sentence contributes useful 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 creation tool with no annotations and 0% schema parameter coverage, the description is incomplete. It covers a prerequisite and one override but omits the meaning of most parameters and does not explain what preview versus create actually does in practical terms. The presence of an output schema mitigates missing return-value details, but not the large parameter and behavior 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% and there are 13 parameters, so the description must compensate. It adds meaning for only two parameters: lidar_prim_path (must exist, created by create_lidar) and render_product_path (explicit override for external render products). The remaining parameters such as preview, domain_id, topic_name, qos_profile, node_namespace, frame_id, and lidar_type receive no semantic explanation.
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 ('preview or create') and a specific resource ('ROS2RtxLidarHelper publisher' for an MCP RTX LiDAR runtime). It is distinguishable from sibling ROS2 publishers (clock, TF, camera, joint state) because it is explicitly LiDAR-focused. The mention of create_lidar and render_product_path makes the tool's domain concrete, though the runtime naming is somewhat jargon-heavy.
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 provides a clear prerequisite: the LiDAR prim must first be created with create_lidar. It also explains when render_product_path is relevant as an override for externally-created render products. However, it does not state when to choose this tool over sibling ROS2 publisher tools or when preview should be used instead of create, leaving some routing decisions implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ros2_tf_publisherC
Preview or create a 6.0-style ComputeTransformTree to ROS 2 TF publisher.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| domain_id | No | ||
| command_id | No | ||
| graph_path | Yes | ||
| topic_name | No | /tf | |
| parent_prim | No | ||
| qos_profile | No | default | |
| target_prims | Yes | ||
| node_namespace | No | ||
| idempotency_key | No | ||
| static_publisher | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing side effects, but it only states that the tool can preview or create. It does not explain whether creation replaces an existing publisher, registers a persistent workflow, or requires an idempotency key, nor what preview returns; the meaning of '6.0-style' is also left opaque.
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 a single concise sentence with no filler, which is efficient. However, it is under-specified rather than appropriately concise, relying on unexplained jargon and omitting essential clarifiers that would justify its 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 tool with 11 parameters, no annotations, and zero schema coverage, this description is critically incomplete. It does not explain required inputs, optional behavior, return values, or how this integrates with ROS2 workflows, so an agent cannot reliably invoke 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 0%, so the description was expected to compensate for the schema's silence, but it provides no explanation for any of the 11 parameters. graph_path, target_prims, topic_name, qos_profile, static_publisher, and the other arguments remain completely undocumented.
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 ('Preview or create') and a specific resource ('6.0-style ComputeTransformTree to ROS 2 TF publisher'), which distinguishes it from sibling ROS2 publisher tools like create_ros2_clock_publisher or create_ros2_joint_state_publisher. It loses a point because '6.0-style' is unexplained and the relationship between ComputeTransformTree and the publisher is left vague.
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 about when to use this tool over the many sibling ROS2 workflow tools, nor about when to choose preview versus create mode. No alternatives, conditions, or exclusions are mentioned, leaving the agent without selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sdg_jobB
Preview or create a bounded manual-trigger BasicWriter SDG job.
Randomizers are typed records. transform accepts prim_paths and
optional position/rotation/scale min/max vectors. light accepts
prim_paths and optional intensity/color min/max values.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| preview | No | ||
| command_id | No | ||
| delta_time | No | ||
| resolution | No | ||
| annotations | Yes | ||
| frame_count | Yes | ||
| randomizers | No | ||
| rt_subframes | No | ||
| idempotency_key | No | ||
| camera_prim_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It adds useful context by distinguishing 'Preview or create' and by noting the job is 'bounded' and 'manual-trigger,' which implies it will not run automatically. However, it does not clarify side effects of preview vs. create, persistence, or what happens after creation.
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 compact and front-loaded, with the main purpose in the first sentence. The randomizer details are presented in a clear, scannable way without redundant or filler wording.
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?
The tool has 11 parameters, no annotations, and a highly technical randomizer schema; the description only covers part of that complexity. Required parameters like camera_prim_path, frame_count, and annotations are not explained, and the relationship to later start/status/delete SDG job tools is missing.
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 schema has 0% property descriptions, so the description must compensate. It meaningfully explains the opaque 'randomizers' parameter by specifying typed records and the accepted 'transform' and 'light' fields. However, other parameters such as 'command_id', 'idempotency_key', 'rt_subframes', and especially 'annotations' remain under-specified.
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 ('Preview or create') on a concrete resource ('bounded manual-trigger BasicWriter SDG job'), which is clear and informative. It does not explicitly contrast with sibling tools like start_sdg_job, so differentiation is left partly to naming and context.
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 or when-not-to-use guidance is provided, and no alternative tools are referenced. The phrase 'manual-trigger' implies the job does not auto-start, but the agent must infer the intended lifecycle relative to start_sdg_job, get_sdg_job_status, and related SDG tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_action_graphB
Preview or delete one exact Action Graph, with deletion read-back.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| command_id | No | ||
| graph_path | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavior itself. It does disclose the preview-first option and the read-back after deletion, which are meaningful safety and verification traits. However, it does not state that deletion is permanent or irreversible, nor does it describe side effects on connected graphs, so it only partially carries the behavioral burden.
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; every phrase ('preview', 'one exact', 'deletion read-back') contributes information. It is appropriately 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?
For a destructive tool with no annotations and four undocumented parameters, this is too thin. It omits usage conditions, irreversible-destruction warning, and what happens to dependent graphs; the output schema can cover return shape but not these behavioral prerequisites.
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 gives no parameter-level semantics beyond implying graph_path identifies the exact graph and that a preview mode exists. It does not explain command_id or idempotency_key, so the description fails to compensate for the schema's 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?
States a specific verb ('delete'), a specific resource ('one exact Action Graph'), and adds two distinct behaviors ('preview' and 'deletion read-back'). The 'one exact' qualifier also separates it from any bulk-delete or pattern-delete operation among siblings.
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 guidance on when to use this versus get_action_graph, list_action_graphs, or edit_action_graph; no explanation of when preview=true vs preview=false is appropriate. The only usage signal is the name and the phrase 'preview or delete'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_artifactA
Delete one managed artifact after validating its opaque handle.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full safety burden. It usefully discloses that the handle is validated before deletion, which is a meaningful behavioral constraint. However, it does not say whether deletion is permanent/recoverable, what happens on validation failure, or whether the operation is idempotent despite the presence of an idempotency_key parameter.
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 a single focused sentence with no filler. The operation, resource scope, and validation requirement are all front-loaded, and every word adds meaning.
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?
The description is minimally viable for a single-delete tool, especially since an output schema exists to document return values. Still, the optional parameters remain unexplained, and the lack of behavioral detail around idempotency and failure modes leaves meaningful gaps for an agent deciding whether and how to invoke the 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 0%, so the description must compensate. It clarifies that handle is an 'opaque handle' that gets validated, but it says nothing about command_id or idempotency_key, leaving those optional parameters semantically unexplained.
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 uses a clear verb ('Delete'), a specific resource ('one managed artifact'), and adds a distinctive behavior ('after validating its opaque handle'). This separates it from sibling tools like cleanup_artifacts (bulk deletion) and read_artifact/get_artifact_info (read operations).
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 'one managed artifact' implies this is for single-artifact deletion rather than bulk cleanup, but no alternatives are named and no explicit when-to-use or when-not-to-use guidance is given. The usage context 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.
delete_humanC
Delete one MCP-owned human. Preview is enabled by default.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| command_id | No | ||
| human_path | Yes | ||
| idempotency_key | No | ||
| delete_empty_group | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 of disclosing behavior. It states the destructive action and that preview is enabled by default, but it does not explain what preview actually does, whether deletion is permanent or reversible, or what happens to empty groups and related resources. For a destructive tool, these are significant omissions.
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 compact and well-structured: the purpose is front-loaded in the first sentence, and the second sentence adds a relevant behavioral default. There is no fluff or redundancy; every word contributes to the core message.
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?
Despite an output schema being present, this tool has five parameters, no annotations, and zero schema description coverage. The description fails to address the non-obvious parameters delete_empty_group, idempotency_key, and command_id, and does not clarify preview semantics or prerequisites. For a destructive operation, the definition is incomplete.
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%, yet the description adds no real parameter meaning beyond what the schema already exposes. 'Preview is enabled by default' merely restates the schema default, while important parameters like delete_empty_group, idempotency_key, and command_id are never explained. The agent cannot determine the format of human_path or the side effects of the other parameters from this 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?
The description uses a specific verb 'Delete' and an explicit resource, 'one MCP-owned human', which clearly distinguishes this from sibling tools like delete_artifact, delete_object, and delete_sdg_job. Scoping to 'one' entity makes the operation's breadth unambiguous. This is a clear, differentiated purpose 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?
The description provides no guidance on when to use delete_human versus alternatives like list_humans, get_human, or delete_artifact, and gives no preconditions such as needing a valid human_path. The preview-default note implies a safety posture but does not state when disabling preview is appropriate or how to verify the correct target before deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_objectB
Delete an object; Camera/LiDAR use verified lifecycle teardown.
Args: prim_path: The prim path of the object to delete. post_delete_updates: Camera/LiDAR verification updates, from 1 to 240. Ignored for ordinary prims.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No | ||
| post_delete_updates | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It adds meaningful detail about Camera/LiDAR-specific verified lifecycle teardown and the ignored post_delete_updates behavior for ordinary prims. However, it does not clarify permanence, cascading effects on child prims, or what 'verified teardown' actually entails, leaving some important behavioral aspects vague.
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 compact and front-loaded with the core action, followed by concise argument notes. There is minor redundancy between the opening 'Camera/LiDAR use verified lifecycle teardown' and the post_delete_updates explanation, but overall it is appropriately sized and skimmable.
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 delete-by-prim-path tool, the description covers the required parameter and the one behaviorally important optional parameter. Yet it omits any context around command_id and idempotency_key, does not explicitly route the agent away from sibling delete tools, and could clarify destructive scope. Since an output schema exists, return-value documentation is not required, but the remaining gaps keep this from being 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 0%, so the description must compensate. It does document prim_path and post_delete_updates with meaningful semantics, including the 1-240 range and the ordinary-prim caveat. However, command_id and idempotency_key are left entirely unexplained in both the schema and description, which is a clear gap for two of the four 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 action ('Delete an object') and identifies the target via 'prim_path', making it clear this operates on scene prims. It is not a tautology, but it does not explicitly distinguish itself from sibling delete tools such as delete_artifact or delete_human; the reader must infer the intended domain from 'prim_path'.
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 some usage context by explaining that Camera/LiDAR objects use verified lifecycle teardown and that post_delete_updates is ignored for ordinary prims. However, it does not explicitly state when to use this tool instead of alternatives like delete_artifact, delete_human, or clear_scene, so the selection guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_ros2_workflowB
Preview or delete one MCP-owned ROS 2 workflow; foreign graphs are refused.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| command_id | No | ||
| graph_path | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 does disclose two important behaviors: preview/delete duality and refusal of foreign graphs. However, for a destructive tool it does not mention irreversibility, what happens when preview is false, how ownership is determined, or any 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?
The description is a single compact sentence with the core action front-loaded and a key constraint in the second clause. It is economical and scannable, though its brevity comes at the cost of useful parameter and usage detail.
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?
The description covers enough for a basic call: identify an MCP-owned ROS 2 workflow by graph_path and rely on the preview default. But with no annotations, the meaning of command_id and idempotency_key, the actual deletion behavior, and the definition of MCP-owned remain unexplained. The output schema helps with return values, not with these operational 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%, and the description barely compensates. It loosely maps to 'preview' via 'Preview or delete' and to 'graph_path' via 'workflow', but 'command_id' and 'idempotency_key' get no explanation at all. An agent must guess their meaning from names and defaults.
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 the action ('Preview or delete') and the resource ('one MCP-owned ROS 2 workflow'), and adds the scope constraint that foreign graphs are refused. This distinguishes it from the many action-graph and artifact deletion siblings. However, 'MCP-owned' is not defined, which leaves some ambiguity.
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 usage: preview before deleting and only for MCP-owned ROS 2 workflows, with foreign graphs refused. It does not explicitly name sibling tools for discovery (e.g., list_ros2_workflows) or state when not to use it. Guidance is present but only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sdg_jobC
Preview or delete one terminal job record and optionally its artifacts.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| preview | No | ||
| command_id | No | ||
| idempotency_key | No | ||
| delete_artifacts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 of behavioral disclosure. It reveals that the operation can preview deletion and optionally delete artifacts, but it does not state irreversibility, prerequisites for terminal jobs, or side effects on dependent data. For a destructive tool, this is minimal 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 description is a single, front-loaded sentence with no filler or redundant wording. It compresses the core action compactly, though combining 'Preview or delete' into one phrase is slightly dense.
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-parameter destructive tool with no annotations and 0% schema coverage, this description is too thin. It omits the preview default behavior, the terminal-job prerequisite, artifact deletion semantics, and idempotency key purpose. The output schema helps with return shape but does not compensate for these 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%, and the description does not explain any of the five parameters. 'Optionally its artifacts' loosely hints at delete_artifacts, but preview, command_id, idempotency_key, and their relationships are completely unexplained. An agent cannot infer parameter meanings from this 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?
The description states a specific action ('Preview or delete') and a specific resource ('one terminal job record'), making the core purpose clear. It does not explicitly differentiate from siblings like cancel_sdg_job or cleanup_artifacts, but 'terminal job record' narrows the scope meaningfully.
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 'terminal job record' implies the job should be in a completed/terminal state, but the description gives no explicit when-to-use guidance or alternatives. It does not mention that cancel_sdg_job is for active jobs or that delete_artifact/cleanup_artifacts handle artifacts separately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sensorA
Release and delete one Camera or LiDAR, then verify it stays absent.
Args: prim_path: Managed Camera or LiDAR prim path. post_delete_updates: Kit updates used to detect delayed prim or render-product reappearance. Range 1 to 240.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No | ||
| post_delete_updates | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 discloses that deletion is destructive, includes a verification step, and explains the purpose of post_delete_updates for detecting delayed reappearance of prims or render products. It does not discuss permissions or irreversibility, but those are largely implied by 'delete'.
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 only a few sentences with zero filler. The primary action is front-loaded, followed by compact parameter explanations. Every sentence contributes useful 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 destructive delete tool with an output schema, the description covers the action, verification behavior, target resource type, and the key tuning parameter. The main gaps are undocumented generic parameters and explicit routing to alternatives, but the core call is well specified.
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 meaningfully explains prim_path and post_delete_updates, including the range 1–240 and why updates are needed. However, command_id and idempotency_key are left undocumented, and with zero schema descriptions an agent gets no help on those 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 concrete action ('Release and delete'), a specific resource ('one Camera or LiDAR'), and a verification step ('then verify it stays absent'). This clearly distinguishes it from generic deleters like delete_object or delete_artifact without needing to open 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 phrase 'Managed Camera or LiDAR prim path' implies the tool is intended for managed sensors, but it never explicitly says when to prefer this over delete_object or how to handle non-managed prims. Usage context is implied, not stated as a rule or alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_action_graphC
Preview or remove one exact connection from an Action Graph.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| command_id | No | ||
| graph_path | Yes | ||
| source_attr | Yes | ||
| target_attr | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 the tool can 'preview or remove,' which signals a potentially destructive operation, but it does not explain whether preview is a dry run, that preview defaults to true, whether removal is reversible, or what consequences removal has on the Action Graph.
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 a single, front-loaded sentence with no wasted words. It communicates the core purpose efficiently, though it is too sparse to fully support safe invocation; conciseness itself is good.
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 potentially destructive tool with no annotations and 0% parameter description coverage, the description is incomplete. It does not explain the preview/removal behavior, required parameters, or how it relates to connect_action_graph, leaving an agent with significant gaps for correct and safe invocation.
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 schema has 0% description coverage, so the description must compensate but does not. It does not explain graph_path, source_attr, target_attr, preview, command_id, or idempotency_key. The only added semantic hint is 'one exact connection,' which implies source_attr and target_attr identify a specific edge, but this is far from sufficient.
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—'Preview or remove one exact connection'—on a clear resource, an Action Graph. The phrase 'one exact connection' differentiates it from siblings like connect_action_graph (which adds a connection) and delete_action_graph (which removes an entire graph), so an agent can select it confidently.
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 no explicit guidance on when to use this tool versus alternatives such as connect_action_graph or delete_action_graph. Usage is only implied by the verb 'remove,' and there are no exclusions, prerequisites, or alternative routings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_action_graphA
Edit an existing OmniGraph Action Graph: set attribute values or add connections.
Use this to update ScriptNode scripts (inline or file path), change attribute values, or add new connections on an already-created graph.
For ScriptNode with a local file script, set both usePath and scriptPath: values=[ {"attr": "ScriptNode.inputs:usePath", "value": true}, {"attr": "ScriptNode.inputs:scriptPath", "value": "/path/to/script.py"} ]
For ScriptNode with inline script: values=[ {"attr": "ScriptNode.inputs:usePath", "value": false}, {"attr": "ScriptNode.inputs:script", "value": "def compute(db): ..."} ]
Args: graph_path: USD prim path of the existing graph (default "/World/ActionGraph"). values: List of attribute value overrides. Each dict has: - "attr": Attribute path relative to graph (e.g. "ScriptNode.inputs:script") - "value": The value to set connections: List of [source_attr, target_attr] pairs to add.
| Name | Required | Description | Default |
|---|---|---|---|
| values | No | ||
| command_id | No | ||
| graph_path | No | /World/ActionGraph | |
| connections | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavioral traits. It clearly indicates this mutates an existing graph by setting attribute values and adding connections. It also gives useful detail about value override structure. However, it does not disclose side effects such as whether existing connections are preserved, whether attribute overrides are permanent, or whether any validation or failure modes exist beyond the graph being existing.
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 well-structured and front-loaded: a one-sentence summary, a short usage intent, focused examples for the two main ScriptNode cases, and a compact Args breakdown. Every section contributes practical value, and the examples are directly actionable without excessive verbosity.
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 moderately complex editing tool, the description covers the three graph-specific parameters with structure and examples, includes a default value for graph_path, and provides enough context to edit ScriptNodes. Gaps remain around command_id and idempotency_key semantics, and there is no guidance about when to use connect_action_graph versus this tool. Output schema exists, so return-value documentation is not required.
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 does an excellent job for graph_path, values, and connections by providing structured Args documentation, field descriptions, and concrete ScriptNode examples. However, command_id and idempotency_key are not mentioned at all, leaving those two parameters dependent on their self-explanatory names. This is strong but not complete compensation.
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: 'Edit an existing OmniGraph Action Graph: set attribute values or add connections.' It clearly distinguishes itself from creation tools like create_action_graph by emphasizing 'already-created graph.' However, it doesn't explicitly disambiguate from the sibling connect_action_graph, which also adds connections, so it falls just 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 provides clear usage context: 'Use this to update ScriptNode scripts, change attribute values, or add new connections on an already-created graph.' It implies this is for existing graphs, not new ones, but it does not explicitly name when to prefer an alternative like connect_action_graph or create_action_graph. No exclusions or alternative routing is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_composition_arcB
Preview or edit a reference/payload arc. Payloads also support load/unload; every mutation is read back and rolled back on failure.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| preview | No | ||
| arc_type | Yes | ||
| prim_path | Yes | ||
| asset_path | No | ||
| command_id | No | ||
| idempotency_key | No | ||
| target_prim_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full weight of behavioral disclosure. It reveals that operations can be both read-only preview and mutating edit, that payloads additionally support load/unload, and that 'every mutation is read back and rolled back on failure.' This is non-obvious and valuable context for an agent deciding whether to invoke the 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?
The description is two sentences and each sentence earns its place. The first sentence front-loads the primary function, and the second adds critical behavioral details about load/unload and rollback. There is no fluff or 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?
Although an output schema exists, the tool has 8 parameters (3 required) with no schema descriptions and no meaningful parameter guidance in the description. The description omits crucial information about what values the action parameter accepts, how arc_type is defined, and prerequisites or side effects, making it insufficient for an agent to call the tool correctly without additional exploration.
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 for missing parameter explanations, but it does not. The only parameter-related hint is 'Payloads also support load/unload,' which loosely informs arc_type and action, but it leaves 8 parameters including prim_path, asset_path, command_id, and idempotency_key entirely unaddressed.
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 uses a specific verb and resource: 'Preview or edit a reference/payload arc,' clearly identifying the tool's subject matter. It also adds functional detail about payload load/unload support. It does not explicitly contrast with sibling tools like edit_sublayer or set_variant_selection, but the resource type is distinct enough to disambiguate.
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 when to use the tool: whenever a reference/payload arc needs to be previewed or edited, and explicitly mentions that payloads support load/unload. However, it does not name alternative tools or specify exclusions, leaving the agent to infer the exact selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_sublayerC
Preview or add/remove a root-layer subLayer path with stopped-timeline and exact read-back checks.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | ||
| action | Yes | ||
| preview | No | ||
| command_id | No | ||
| layer_path | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the behavioral disclosure burden. It adds useful constraints: the operation requires a stopped timeline and uses exact read-back checks, and a preview mode exists. However, side effects, idempotency semantics, and failure behavior are not disclosed, so transparency 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?
One dense sentence that front-loads the operation and includes the key constraints without filler. It is concise, though some terminology is packed tightly and could be expanded without becoming bloated.
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 six parameters and a mutation operation with idempotency fields, this description leaves too much unspecified: action vocabulary, parameter semantics, prerequisites, and preview workflow. The output schema helps decode return values, not build correct inputs, so the tool is not fully invokable by description alone.
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 loosely maps action to preview/add/remove and layer_path to the root-layer subLayer path, but it does not define allowed action values, the index parameter, preview behavior, command_id, or idempotency_key. A caller cannot reliably construct valid arguments from the text alone.
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 ('Preview or add/remove') and a specific resource ('root-layer subLayer path'), plus distinguishing checks ('stopped-timeline and exact read-back checks'). It is clear about what the tool touches, though it does not explicitly differentiate it from sibling composition tools like edit_composition_arc.
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 guidance on when to use this tool versus alternatives, no stated preconditions beyond the implied stopped-timeline requirement, and no advice on when to preview versus apply. Usage context must be inferred from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluate_action_graphC
Explicitly evaluate one exact Action Graph and return post-evaluation status.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| graph_path | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 of behavioral disclosure. It does not state whether evaluation executes the graph, has side effects, requires the graph to be connected or enabled, or whether it is a read-only operation. 'Return post-evaluation status' describes the output, not the behavior or 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?
The description is a single, front-loaded sentence with no substantial waste. The words 'Explicitly' and 'exact' are somewhat redundant, but the structure is clear and 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?
Despite having an output schema, the description lacks essential context for an agent: what evaluation does, when to use it in the action-graph lifecycle, prerequisites, side effects, and how the three parameters relate to the operation. The sibling tools around it do not compensate for this missing 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 0%, and the description adds no meaning for graph_path, command_id, or idempotency_key. Since the schema itself provides no descriptions, the tool description needed to compensate but did not mention any parameters at all.
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 ('evaluate'), a clear resource ('Action Graph'), and the expected result ('post-evaluation status'). This distinguishes it from related siblings like create_action_graph, get_action_graph, and get_action_graph_status, though the meaning of 'evaluate' itself is left somewhat vague.
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 guidance is provided about when to use this tool versus alternatives such as get_action_graph_status, connect_action_graph, or set_action_graph_enabled. There are no exclusions, prerequisites, or context cues beyond the bare statement that it evaluates one graph.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_scriptA
Escape hatch: execute arbitrary Python code in Isaac Sim.
PREFER named tools over this for: reading/setting joints (set_joint_positions, get_joint_positions), inspecting state (get_prim_info, get_physics_state, get_joint_config), stepping simulation (step_simulation), and checking logs (get_isaac_logs).
USE this only for a trusted operation that no named tool covers. Execution is policy-gated, cooperatively timed, output-bounded, cwd-restricted, and audited by code hash. Background scheduling is denied unless both the request and administrator policy explicitly opt in.
CAUTION: touching an articulation controlled by a running ScriptNode / Action Graph can silently break its control path (no error is raised). While a graph is running, read-only diagnostics (get_prim_info, get_physics_state, get_joint_positions, get_isaac_logs) are safe, but stop_simulation before using execute_script or named write tools on the same articulation.
For persistent controllers (>20 lines), write a .py file and load it with reload_script instead of pasting code here.
Args: code: Python code to execute in the Isaac Sim context. cwd: Optional working directory to add to sys.path before execution. timeout_s: Cooperative Python deadline; capped by extension policy. max_output_bytes: Combined per-stream capture limit; capped by policy. allow_background: Request background scheduling. Default false and rejected unless the extension policy also enables it.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | ||
| code | Yes | ||
| timeout_s | No | ||
| command_id | No | ||
| idempotency_key | No | ||
| allow_background | No | ||
| max_output_bytes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 does so thoroughly: policy-gated execution, cooperative timing, output bounding, cwd restriction, code-hash auditing, and background scheduling denial. It also warns about the silent control-path breakage risk for ScriptNode/Action Graph articulations and identifies which diagnostics remain safe.
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 escape-hatch purpose and preferred alternatives, then moves to constraints, hazard warnings, and persistent-controller guidance. The Args section is telegraphic and directly maps to the schema. Every sentence earns its place despite the length.
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 powerful, risky arbitrary-code tool with no annotations, this is remarkably complete: it covers policy restrictions, runtime limits, safety hazards, alternatives, and the background scheduling edge case. An output schema exists, so not explaining return values is acceptable. The only minor omission is command_id/idempotency_key semantics, which is small relative to overall 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 description coverage is 0%, so the description must compensate, and it does for most parameters: code, cwd with sys.path behavior, timeout_s as a cooperative capped deadline, max_output_bytes as a per-stream capture limit, and allow_background with default/policy behavior. However, command_id and idempotency_key are not described; their names imply purpose but leave semantics to inference.
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?
Description states a specific action and resource: 'execute arbitrary Python code in Isaac Sim' and labels itself an 'Escape hatch.' It explicitly lists what it is not for by naming preferred sibling tools (set_joint_positions, get_prim_info, step_simulation, get_isaac_logs), making its purpose and scope unmistakable.
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 explicit when-to-use and when-not-to-use guidance: prefer named tools for joints, state inspection, stepping, and logs; use only when no named tool covers the operation. It also tells agents to use reload_script for persistent controllers and to stop_simulation before touching articulations with running graphs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_trajectoryC
Start a trajectory job and return immediately without blocking the MCP worker.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| timeout_ms | No | ||
| trajectory_id | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, yet it only reveals that the call returns immediately and is non-blocking. It does not disclose side effects (e.g., robot motion, scene changes), whether the job can be cancelled, or any rate/authorization considerations, which are all material for an 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?
A single, front-loaded sentence with no filler; every word contributes the start action and the non-blocking behavior. It is concise, though the brevity comes at the cost of missing usage details (already penalized elsewhere).
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 execution tool with four undocumented parameters, no annotations, and a large sibling list, the description is too sparse. The agent cannot tell whether a planned trajectory is required, what kind of job is created, or how to correlate the response with get_job_status/get_motion_status.
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 needed to clarify trajectory_id, command_id, timeout_ms, and idempotency_key. The phrase 'trajectory job' hints at trajectory_id but says nothing about the remaining three parameters, leaving the agent to guess at their meaning.
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?
Description states a clear action ('Start') and resource ('a trajectory job'), and includes a distinguishing behavior ('return immediately without blocking'). It does not name sibling tools such as plan_joint_trajectory or start_job, but the focused wording is enough to separate it from generic job tools.
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 execute_trajectory versus alternatives like start_job, plan_joint_trajectory, or cancel_motion. The non-blocking phrasing implies an async workflow, but the description never states prerequisites (e.g., a planned trajectory) or how status is checked afterward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_3dB
Generate a 3D model from text or image using Beaver3D, then load it into the scene.
Args: text_prompt: Text description for 3D generation. image_url: URL of an image for 3D generation. position: [x, y, z] world position for the generated model. scale: [sx, sy, sz] scale factors.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| position | No | ||
| image_url | No | ||
| command_id | No | ||
| text_prompt | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden of behavioral disclosure. It does state the key side effect of loading the generated model into the scene, but it omits important behavioral context such as whether generation is synchronous, whether it can overwrite existing scene content, failure behavior, or how the idempotency key affects execution.
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 compact and front-loaded, leading with the core purpose before listing arguments. The Args section is neat and easy to scan, though it could be improved by noting optionality and the two undocumented parameters.
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 that the tool has six parameters, no required fields, no annotations, and no schema-level parameter descriptions, the description is not complete enough. It fails to explain command_id and idempotency_key, does not state which input parameter(s) are actually needed, and provides no guidance on input precedence or behavior when both text_prompt and image_url are supplied.
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 explains text_prompt, image_url, position, and scale with meaningful formatting details, which is valuable because schema description coverage is 0%. However, it completely omits command_id and idempotency_key, and it does not clarify that text_prompt and image_url may be alternative mutually exclusive inputs.
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 with a clear resource: generate a 3D model from text or image using Beaver3D, then load it into the scene. It clearly distinguishes this from sibling tools like create_object or spawn_nvidia_asset by naming the source and generation method.
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 first sentence implies when to use this tool: when a 3D model needs to be generated from a text prompt or image and placed into the scene. However, it does not explicitly state exclusions or compare against alternative tools, leaving the usage context largely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_action_graphA
Read one Action Graph's nodes, edges, state, and optional values or script source.
Script source is omitted by default because inline source and local file contents may be large or sensitive.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| graph_path | Yes | ||
| include_values | No | ||
| idempotency_key | No | ||
| include_script_source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, and it does well by explicitly saying 'Read' and by disclosing that script source is omitted by default due to potential size or sensitivity. This is a meaningful behavioral detail beyond a simple read statement, though it does not cover auth, rate limits, or side effects—which are less critical for a read 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?
Two sentences with no filler. The main purpose is front-loaded, and the second sentence earns its place by explaining an important default behavior and its rationale.
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?
The output schema covers the return shape, and the description covers the core purpose and the script-source default. However, with no annotations and no explanation of optional command_id/idempotency_key semantics or routing among sibling graph tools, some of the contract is left for the agent 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 description coverage is 0%, so the description needs to compensate for the five parameters. It mentions 'optional values or script source', which maps to include_values and include_script_source, but it leaves command_id and idempotency_key semantically unexplained, and their schema titles are minimal.
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 first sentence has a specific verb ('Read'), a specific resource ('one Action Graph'), and explicit contents ('nodes, edges, state, and optional values or script source'). This clearly differentiates it from sibling tools like list_action_graphs or get_action_graph_status without needing extra 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?
The description makes the tool's scope clear: full graph retrieval rather than listing or status-only queries. It does not explicitly name alternatives or exclusion conditions, but the context is strong enough for an agent to infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_action_graph_statusA
Read one Action Graph's enabled, evaluation, and error status.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| graph_path | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 explicitly says 'Read', signaling a non-mutating operation, and it discloses the specific status facets covered. It does not discuss permissions or side effects, but these are less material for a read 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. Every word adds information, and the core status fields are listed immediately after the resource.
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?
The output schema handles return values, so the description does not need to restate them. However, the optional parameters are formally unexplained, and the description does not clarify how this tool relates to neighboring action-graph tools, leaving the definition 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?
With 0% schema description coverage, the description must compensate for parameter meaning. The required graph_path is inferable from 'one Action Graph', but command_id and idempotency_key are completely unexplained, leaving optional invocation behavior ambiguous.
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 uses a specific verb ('Read'), names the resource ('one Action Graph'), and lists the exact status dimensions returned (enabled, evaluation, error). This clearly distinguishes it from siblings like get_action_graph and list_action_graphs.
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 the tool is for reading a single graph's status, but it does not explicitly name alternatives, exclusion criteria, or when to prefer this over get_action_graph or list_action_graphs. Usage context is present only by inference from the wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_artifact_infoB
Get size, type, hash, expiry, and producer metadata for a managed artifact.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 conveys that the tool reads and returns metadata, which implies a non-destructive operation, but it does not disclose preconditions, error behavior, or whether artifact content is ever accessed. This is acceptable but not fully transparent.
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 a single, front-loaded sentence that directly states what the tool returns. There is no filler, repetition, or schema duplication; every word adds value.
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 metadata getter with an output schema and one obvious required parameter, the description is largely sufficient for an agent to call the tool correctly. The main shortfall is the lack of guidance on optional parameters and alternative tools, but the core invocation path 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 0%, and the description does not explain the parameters. The required 'handle' is reasonably inferable as an artifact identifier from context, but 'command_id' and 'idempotency_key' remain entirely unexplained. The description adds no value over the raw schema for parameter meaning.
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 ('Get') and resource ('a managed artifact'), and enumerates the exact metadata fields returned: size, type, hash, expiry, and producer metadata. This is clear, though it does not explicitly differentiate itself from the sibling read_artifact tool by stating that it only returns metadata rather than content.
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 about when to use this tool versus alternatives such as read_artifact, delete_artifact, or cleanup_artifacts. The name implies info retrieval, but the description does not state exclusions or direct agents to a sibling when they need artifact content or mutation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_camera_calibrationC
Read camera intrinsics, extrinsics, projection, resolution, and units.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | No | /World/Camera | |
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the burden of behavioral disclosure. It does state that the operation is a read, indicating non-destructive intent, and lists the categories of data returned. However, it does not mention error behavior, path dependency, coordinate frames, or any side effects, leaving some behavioral uncertainty.
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 a single front-loaded sentence with no filler words. 'Read' immediately conveys the operation, and the list of returned data is efficient and well-structured.
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 read operation with an output schema present, the description covers the main purpose and returned data categories. Still, the lack of parameter explanation and usage context means the description is only minimally complete for selecting and invoking the tool confidently.
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 does not compensate for that gap. It explains what is returned but not the meaning or usage of prim_path, command_id, or idempotency_key, so an agent must rely on property names and defaults alone.
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 uses the specific verb 'Read' and clearly identifies the resource as camera calibration, enumerating the data returned (intrinsics, extrinsics, projection, resolution, units). It is clear and unambiguous, though it does not explicitly differentiate itself from sibling read tools like get_prim_info or get_typed_attribute.
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 guidance is provided about when to prefer this tool over alternatives, nor are prerequisites or exclusions mentioned. The usage context is only implied by the word 'Read' and the tool's name; the description does not help an agent choose between this and related inspection tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_capabilitiesA
Discover the live Isaac Sim MCP runtime and its explicit limitations.
Returns the Isaac Sim version, selected adapter, active physics backend, adapter-owned PhysX/Newton matrix, extension states, sensor warm-up policy, feature flags, and unsupported arguments. This query is read-only and works while the USD stage is still starting.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it explicitly discloses that the query is read-only and safe to call during stage startup. It also enumerates the major behavioral outputs, including active backend, feature flags, and unsupported arguments, which is meaningful context beyond 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?
The description is front-loaded with a clear purpose sentence and a follow-up sentence of concrete return categories. Every sentence earns its place, and there is no redundancy 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?
An output schema exists, so return-value details do not need to be fully documented in the description. The description supplies the key semantic context: what kind of runtime facts are returned, that the call is read-only, and that it is available during stage startup. It is slightly light on when one might need this versus runtime status, but otherwise complete for a simple query 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 0%, and the description does not mention command_id or idempotency_key at all. Although these parameters are optional and generic, the description provides no guidance on their purpose, usage, or interaction with the tool's behavior.
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 uses a specific verb ('Discover') and resource ('the live Isaac Sim MCP runtime') and clarifies it returns explicit limitations, making the tool's purpose clear. It does not explicitly distinguish itself from sibling introspection tools such as get_runtime_status, but the emphasis on capabilities and limitations provides adequate differentiation.
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 'works while the USD stage is still starting' gives a concrete timing context for when this tool is useful. However, the description does not state when to prefer this over alternatives like get_runtime_status or get_simulation_state, nor does it provide any when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_collision_groupB
Read collision group members, filters, inversion and merge name.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| group_path | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. The verb 'Read' clearly signals a non-mutating operation, which is the key behavior. However, it does not mention error behavior, what happens if the group does not exist, or any side effects, though for a read operation this is less critical.
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 a single sentence with no filler. It front-loads the verb and resource, and each listed data item adds useful precision. 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 simple read tool with an output schema, the core operation is adequately described and the required parameter appears in the schema. However, there is no usage context, no parameter semantic explanation, and only minimal behavioral detail, so the description is not fully complete despite being functional.
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 for parameter semantics, but it does not. It only alludes to the collision group without naming group_path, and it provides no explanation of command_id or idempotency_key beyond their generic schema titles.
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 uses the specific verb 'Read' and identifies the resource as 'collision group', then enumerates the exact information returned: members, filters, inversion, and merge name. This clearly distinguishes it from create_collision_group and other getters in the sibling list.
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, no mention of prerequisites, and no exclusions. The agent must infer from the name and sibling context that this is the read counterpart to create_collision_group.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_humanC
Return USD and live Behavior Agent state for one IRA human.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| human_path | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of behavioral disclosure. 'Return' suggests a read-only operation and 'live' hints at dynamic state, but the description does not disclose side effects, permissions, or whether the state is real-time vs cached. There is no mention of failure behavior or what 'live Behavior Agent state' entails.
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 concise and front-loaded, with a single sentence and no obvious filler. However, it is under-specified: for a tool with three parameters and no annotation coverage, this brevity comes at the cost of necessary detail.
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?
An output schema exists, so return structure may be covered elsewhere, but the description still lacks parameter semantics, usage context, and any guidance on when it is appropriate to call this tool. The unexplained 'IRA' term and missing human_path explanation are significant gaps for agent selection and invocation.
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 does not explain any of the three parameters. The sole required parameter, human_path, is mentioned only indirectly as 'one IRA human', and command_id and idempotency_key receive no semantic meaning at all.
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 ('Return') and a clear resource ('one IRA human'), and specifically calls out USD and live Behavior Agent state. It differentiates from list_humans by being singular and from mutation tools like spawn_human and set_human_behavior. However, the acronyym 'IRA' is unexplained, which leaves some ambiguity.
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 singular use ('for one IRA human') but gives no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives such as list_humans for retrieving multiple humans, nor does it state any preconditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_isaac_logsA
Diagnostic tool: recent WARN/ERROR logs plus captured print() output.
Captures carb.log_*/omni.log WARN+ERROR and stdout from execute_script / reload_script (tagged [PRINT]). Plain print() outside those captured contexts may not appear.
Defaults are agent-friendly: non-destructive (clear=False) and scoped to the current run (since_last_play=True) so you see logs from what you just did, not stale entries from previous runs.
Args: clear: If True, empty the buffer after reading. Default False. count: Maximum number of log entries to return. since_last_play: If True (default), return only entries since the last timeline Play. Set False for the full buffer. filter_command_id: Return only structured records for this command. severity: Optional structured-record severity filter. source: Optional structured-record source filter (for example kit or dispatcher).
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | ||
| count | No | ||
| source | No | ||
| severity | No | ||
| command_id | No | ||
| idempotency_key | No | ||
| since_last_play | No | ||
| filter_command_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and handles it well. It discloses that the tool is non-destructive by default, scoped to since_last_play, that plain print() outside certain contexts may not appear, and that output includes structured records with severity/source filters. This is candid, specific behavioral context beyond a generic read.
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 well-organized: purpose, capture scope, defaults rationale, then arg descriptions. It is slightly longer than necessary and repeats defaults already present in the schema, but the repetition is acceptable since it reinforces agent-friendly 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?
Given 8 parameters, no annotations, and 0% schema coverage, the description covers the core call flow well and an output schema exists for return values. Still, two parameters remain unexplained and alternative routing is absent, leaving clear but non-blocking 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 explains the meaning of six params (clear, count, since_last_play, filter_command_id, severity, source) in plain language, which is very useful. However, it leaves command_id and idempotency_key entirely unexplained, and the relationship between command_id and filter_command_id is ambiguous.
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 diagnostic purpose: 'recent WARN/ERROR logs plus captured print() output.' It clearly names the resource (carb/omni logs and stdout from script execution) and distinguishes itself from broader tools like get_runtime_status or get_script_audit_log.
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 context is implied strongly: the tool captures logs from execute_script/reload_script and defaults to the current run, so an agent can infer it is for post-script debugging. However, it never explicitly names alternatives or states when to prefer get_script_audit_log or get_runtime_status, and the only exclusion mentioned is plain print() outside captured contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_statusB
Read a managed, motion, or SDG job without executing it again.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. 'Read' and 'without executing it again' clearly signal a non-mutating status operation, but the description does not mention permissions, error behavior, or state-transition 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?
The description is a single front-loaded sentence that states the verb, resource, and a meaningful qualifier without any filler. Every word 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?
An output schema exists, so return values do not need to be described, and the non-execution qualifier adds useful safety context. However, the description omits parameter semantics and fails to disambiguate this tool from get_sdg_job_status or get_motion_status, leaving significant gaps for correct selection and invocation.
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 provides no explanation of job_id, command_id, or idempotency_key. The agent receives no semantic guidance beyond the parameter names 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?
The description uses a specific verb ('Read') and names its resource ('managed, motion, or SDG job') while explicitly noting it does not re-execute the job. This makes the core purpose clear, though it does not explain how it differs from the specialized sibling tools get_sdg_job_status and get_motion_status.
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 'without executing it again' implies this is for inspecting an existing job rather than launching one, which provides some usage context. However, there are no explicit when-to-use instructions, exclusions, or references to alternative tools, so an agent must infer the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_joint_configA
Diagnostic tool: get joint drive configuration for a robot articulation.
Returns stiffness, damping, limits, target vs actual positions, and position error for each joint. Call this when:
Joint drives are not tracking targets (check position_error)
Joints are oscillating or unstable (check stiffness/damping ratio)
Joints hit limits unexpectedly (check lower_limit/upper_limit)
Args: prim_path: USD path to the robot articulation root.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It clearly labels the tool as a 'Diagnostic tool' and describes its return behavior, implying a read-only operation. It doesn't explicitly guarantee no mutation or describe failure modes, but for a simple getter this is adequate.
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?
Well-structured and front-loaded: a one-line purpose, a concise return list, three diagnostic trigger bullets, and the key argument. Every sentence earns its place with no fluff 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?
Given the tool's simplicity, an output schema is present, and sibling tools exist, the description covers purpose, return data, diagnostic use cases, and the required argument. Nothing an agent needs to select and call this tool correctly is missing.
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 provides meaningful semantics for the required prim_path parameter ('USD path to the robot articulation root'), which is the critical input. The optional command_id and idempotency_key are undocumented, but their names and defaults make them self-explanatory in context.
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?
Description opens with 'Diagnostic tool: get joint drive configuration for a robot articulation' and enumerates the exact returned fields: stiffness, damping, limits, target vs actual positions, and position error. This clearly distinguishes it from sibling tools like set_joint_drive_config or get_joint_positions.
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?
Provides three concrete, symptom-driven trigger conditions ('Call this when: joint drives not tracking, oscillating, hitting limits'), which is strong practical guidance. It doesn't explicitly name alternative tools or say when not to use it, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_joint_positionsA
Read current joint positions from a robot.
Units: radians for revolute joints, meters for prismatic joints. Joint order matches the joint_names from get_robot_info. For a combined step-and-read, prefer step_simulation with observe_joints.
Args: prim_path: The prim path of the robot.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 establishes that this is a read operation, specifies units (radians/meters), and clarifies joint ordering via get_robot_info. These details meaningfully describe behavior beyond a mere 'read positions' statement, though it does not discuss failure modes or command_id/idempotency 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?
The description is compact and front-loaded: the core action appears first, followed by short high-value clarifications (units, ordering, and the step-and-read alternative). Every sentence contributes essential information with no filler or 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?
For a simple read tool with an output schema, the description covers the essential aspects: what it reads, units, ordering, and the preferred alternative for combined step-and-read. The optional parameters are left unexplained, but they appear to be generic API concerns rather than tool-specific semantics, so the description is still largely sufficient.
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 only restates prim_path as 'The prim path of the robot,' which adds little beyond the property name/title, and it does not explain command_id or idempotency_key at all. The description fails to provide meaningful semantic guidance for the 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 clearly states the action ('Read current joint positions') and the resource ('a robot'), making the core purpose immediately understandable. It stops short of explicitly differentiating itself from the closely related sibling get_joint_state, but the focus on 'positions' is specific enough to avoid confusion with setter tools.
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 an explicit usage alternative: 'For a combined step-and-read, prefer step_simulation with observe_joints.' This tells the agent when not to use this tool. It does not enumerate all sibling comparisons, but it provides clear context for the most relevant alternative decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_joint_stateA
Read measured joint state and active command targets.
Returns position, velocity, measured effort, position/velocity/effort targets, joint name/index mapping, joint type, and explicit units. Use either joint_names or joint_indices for a subset; the selectors are mutually exclusive. Revolute units are radians, radians_per_second, and newton_meters. Prismatic units are meters, meters_per_second, and newtons.
Args: prim_path: USD path of the articulation root. joint_names: Optional exact, case-sensitive joint names in requested order. joint_indices: Optional DOF indices in requested order.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | Yes | ||
| command_id | No | ||
| joint_names | No | ||
| joint_indices | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It clearly marks the operation as a read, details the returned fields, explains selector mutuality, and provides explicit units for revolute and prismatic joints. It omits edge-case behavior such as errors from invalid selectors, but the core behavior is well disclosed.
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 well organized and front-loaded with the core purpose, followed by return contents, selector constraints, units, and an Args block. Every sentence carries meaningful information without 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?
Given that an output schema exists, the description need not re-explain return structure. It covers the main inputs, subset selection, and units. Minor gaps remain around undocumented generic parameters and error behavior, but the tool is substantially complete for correct invocation.
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 supply parameter meaning. It does so for prim_path, joint_names, and joint_indices, adding specifics like case-sensitivity, order, DOF indices, and unit conventions. It leaves command_id and idempotency_key undocumented, but these are generic execution parameters whose purpose is largely inferable from their names.
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 first sentence names a specific verb and resource: 'Read measured joint state and active command targets.' The return list further clarifies what is included, making it easy to distinguish from siblings like get_joint_positions or get_joint_config.
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 clear guidance on selecting a subset via joint_names or joint_indices and notes that the selectors are mutually exclusive. However, it does not explicitly state when to prefer this tool over related siblings such as get_joint_positions or get_joint_config.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lidar_configB
Read effective LiDAR FOV, angular resolution, rate, range, and USD schema values.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | No | /World/Lidar | |
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. 'Read' signals a non-mutating operation and 'effective' vs USD schema values adds some output nuance, but there is no mention of failure behavior, path requirements, or side-effect profile beyond the implied read-only nature.
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 a single concise sentence with a front-loaded verb and no filler. Every listed item adds specific, useful information about what the tool reads.
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 all-optional-parameter getter with an output schema, the description covers the core purpose and output scope. However, it leaves parameter mapping and usage-vs-alternatives to inference, so the agent is not fully equipped to decide when and how to call it without additional reasoning.
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 does not explain prim_path, command_id, or idempotency_key. It only implies the target is a LiDAR prim, so it fails to compensate for the schema's lack of parameter documentation.
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 uses the verb 'Read' with a specific resource — effective LiDAR configuration values — and enumerates the exact fields returned (FOV, angular resolution, rate, range, USD schema values). This clearly distinguishes it from data-producing siblings like get_lidar_point_cloud.
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 about when to use this tool versus alternatives such as get_lidar_point_cloud, create_lidar, or get_camera_calibration. The description implies a read-only config lookup but does not state exclusions, prerequisites, or alternative selection conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lidar_point_cloudB
Get typed point cloud fields from a lidar sensor.
Args: prim_path: Prim path of the lidar sensor. output_path: Optional explicit .npz path for artifact mode. return_mode: metadata, artifact, or inline. Defaults to artifact. inline_max_bytes: Maximum encoded NPZ bytes allowed in inline mode.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | No | /World/Lidar | |
| command_id | No | ||
| output_path | No | ||
| return_mode | No | artifact | |
| idempotency_key | No | ||
| inline_max_bytes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It does add useful behavioral context: return_mode defaults to artifact, output_path is an explicit .npz path for artifact mode, and inline_max_bytes caps encoded NPZ size. However, it does not explain side effects (e.g., whether an artifact is created), what 'typed point cloud fields' means concretely, or behavior on invalid prim paths.
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 concise and front-loaded: one clear purpose sentence followed by a compact argument list. Every line provides useful semantic information, and there is no redundant verbiage or repetition of schema defaults.
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?
The description is reasonably complete for a read-like retrieval tool with an output schema present, since it documents the key mode-related parameters. Still, the schema has six parameters with zero description coverage, and two parameters are left undocumented. With no annotations, the description should also clarify whether artifact mode creates persistent artifacts and whether command_id/idempotency_key are required for specific workflows.
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 is the only source of parameter meaning. It explains four of six parameters reasonably well: prim_path, output_path, return_mode, and inline_max_bytes. However, it completely omits command_id and idempotency_key, even though these are present in the schema and an agent may need to know whether they affect invocation.
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 action — 'Get typed point cloud fields from a lidar sensor' — and identifies the resource (lidar sensor) and the kind of data (point cloud fields). It does not explicitly distinguish itself from related sibling tools like get_lidar_config or capture_image, but the resource and data type are specific enough for an agent to infer the primary purpose.
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 provides no guidance on when to use this tool versus alternatives such as get_lidar_config, create_lidar, or capture_camera_output. It does not state whether this is the preferred way to retrieve lidar data, nor does it mention any prerequisites or exclusions. The usage context is only weakly implied by the tool name and resource mention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_materialB
Read PBR or physics material parameters and explicit units.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| material_path | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden. The verb 'Read' conveys non-mutating behavior and 'explicit units' hints at return content, but the description does not disclose error behavior, path expectations, or any other side effects. This is adequate but minimal for a read-only 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?
The description is a single focused sentence with no filler. It front-loads the action and resource while adding a useful qualifier about explicit units. Every word contributes meaning.
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?
The output schema covers return values, and the description states the core purpose, but the overall entry is thin for a tool with three parameters and zero parameter documentation. It lacks guidance on material_path format or how this tool relates to nearby material-reading siblings, leaving some invocation decisions 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 0%, and the description does not explain any of the three parameters, including the required material_path. Although the name is somewhat self-explanatory, the description adds no meaning beyond the raw input schema and does not compensate for the missing schema descriptions.
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 uses a specific verb ('Read'), a clear resource ('PBR or physics material parameters'), and a distinctive qualifier ('explicit units'). This clearly distinguishes the tool from creation, binding, and binding-related siblings like create_material, apply_material, and get_material_binding.
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 read/retrieval use case and identifies the material parameter scope, but it does not explicitly state when to choose this tool over related alternatives such as get_material_binding or get_prim_info. There is no when-not-to-use guidance or prerequisite context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_material_bindingA
Read the resolved physics or visual material binding on a prim.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No | ||
| material_purpose | No | physics | |
| target_prim_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It does disclose that the operation is a read and that the binding is 'resolved', which adds meaningful nuance, but it does not explain what 'resolved' means in terms of traversal or fallbacks, nor what happens when no binding exists.
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 concise sentence with the verb and object front-loaded, no filler or repetition. It could have added a bit more usage context without becoming bloated, but as written it is efficient and scannable.
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 read tool with an output schema, the description covers the core action and target resource, but it does not fully explain how to request visual vs physics bindings via material_purpose or what 'resolved' entails. Given the presence of an output schema, return-value documentation is unnecessary, but parameter-level context is still thin.
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 for undocumented parameters. It adds meaning to target_prim_path ('on a prim') and partially to material_purpose ('physics or visual'), but it leaves command_id and idempotency_key entirely unexplained and does not explicitly map the 'physics or visual' wording to the parameter values.
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 ('Read') and resource ('resolved physics or visual material binding on a prim'), making the operation clear. The phrase 'on a prim' also distinguishes it from sibling get_material, which is likely about the material itself rather than the binding.
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 clearly implies this is the tool to use when you need a prim's material binding, but it gives no explicit guidance about when to choose it over closely related siblings such as get_material or apply_material. It names no alternatives, exclusion conditions, or precedence rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_motion_statusC
Read motion job state, progress, timing, and terminal error details.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden. 'Read' clearly signals a non-mutating operation, and listing progress, timing, and terminal error details gives a useful preview of behavior. However, it does not disclose whether the optional command_id or idempotency_key affect what is returned or whether results are scoped, leaving some behavioral ambiguity.
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 a single sentence with no filler. It opens with the action, names the resource, and enumerates the key data categories in a compact list. Every word contributes.
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?
The description does not explain parameter semantics or usage boundaries with sibling tools. Although an output schema exists and may document return values, the input parameters and selection criteria are under-described for a tool with three parameters and zero schema description coverage.
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 does not compensate by explaining any of the three parameters. job_id is implied by the word 'job,' but command_id and idempotency_key are entirely opaque—an agent cannot tell what they control or wither they are required for specific use cases.
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 begins with the specific verb 'Read' and identifies the resource as 'motion job state,' listing the kinds of information exposed: progress, timing, and terminal error details. This is clear enough to distinguish it from generic status tools like get_job_status and get_runtime_status, though it does not explicitly name sibling alternatives.
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 guidance is given about when to use this tool versus related siblings such as get_job_status, get_runtime_status, or cancel_motion. An agent must infer that 'motion job' implies a narrower scope than general job or runtime status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_physics_bodyA
Read authored rigid body, collider, approximation, mass and density.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. 'Read' communicates non-mutating behavior, and 'authored' clarifies it returns set values rather than computed physics state. But it does not disclose potential errors, permission requirements, or side effects, though for a simple getter this is a minor 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 that lists exactly what is read with no filler. Every word adds meaning, making it easy to parse and remember.
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?
The tool is a straightforward getter, the output schema exists, and the description names all returned property groups. It lacks mention of optional parameter roles and usage context, but these are either self-evident or covered by schema structure. Overall it is adequate for an agent to invoke 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 0%, so the description must compensate for parameter meaning, but it does not mention prim_path, command_id, or idempotency_key at all. The only hint is the self-descriptive prim_path name; no additional semantics are provided for the required or optional 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 uses the specific verb 'Read' and names the exact resource: 'authored rigid body, collider, approximation, mass and density.' This clearly distinguishes it from sibling write tools like configure_physics_body and from state-level readers like get_physics_state.
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 verb 'Read' implies this tool is for inspecting authored physics-body properties, and the listed fields make the domain clear. However, it does not explicitly state when to use it over alternatives such as get_physics_state or get_collision_group, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_physics_jointC
Read joint type, body targets, frames, axis, limits and units.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| joint_path | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 of behavioral disclosure, and it only states the read verb plus the field list. It does not disclose prerequisites (loaded scene or articulation), failure behavior for invalid joint_path values, or whether this reads simulation state versus authored definition, though the property list subtly hints at definition-level data. This is minimal coverage for a tool with zero annotation support.
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 zero filler: the verb leads, and every listed field contributes information. It is appropriately sized for the amount of content it conveys and contains nothing that wastes an agent's attention.
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 zero annotations, 0% parameter documentation, and a large sibling set with several near-overlapping getters, a one-line description is insufficient for an agent to invoke this tool reliably. The output schema covers return values, which helps, but the missing param semantics, prerequisite context, and sibling differentiation leave 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 0%, so the description must compensate, but it never mentions joint_path, command_id, or idempotency_key. It provides no meaning for the required joint_path (path format, scene-relative vs absolute) and leaves the two optional parameters entirely unexplained. The field list describes the output, not the parameters, so essentially no additional semantic value is added over the bare schema types.
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 uses a specific verb ('Read') with a specific resource ('physics joint') and enumerates the exact properties returned (type, body targets, frames, axis, limits, units), which clearly distinguishes it from write operations like create_physics_joint and from state-oriented getters like get_joint_state or get_joint_positions. It stops short of explicitly naming sibling alternatives, so an agent still faces some ambiguity against get_joint_config and get_physics_body, 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?
The description provides no guidance on when to choose this tool over the many overlapping sibling getters (get_joint_state, get_joint_config, get_joint_positions, get_physics_state, get_prim_info). No context, prerequisites, or exclusions are given, so an agent navigating ~100 siblings must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_physics_stateA
Diagnostic tool: get physics state for a prim.
Returns rigid body status, mass, velocities, kinematic flag, and collision info. Velocity units: linear_velocity in m/s, angular_velocity in rad/s. Velocities are only non-zero once the simulation has advanced — step the simulation (or play) before reading them. Call this when:
Objects fall through the ground (check collision enabled)
Objects don't move when expected (check is_kinematic, mass)
Grasping fails (check collision on gripper fingers and target object)
Args: prim_path: USD path to the prim to inspect.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses velocity units, warns that velocities are zero until the simulation advances, and explains the diagnostic intent. It does not explicitly state that it has no side effects, though 'Diagnostic tool' strongly implies a read-only 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?
The description is well organized: purpose, returned data, units, timing caveat, usage scenarios, and argument summary. Every section adds usable information, and the layout makes it easy for an agent to scan.
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?
The description covers the tool's purpose, return contents, units, timing behavior, and primary parameter, which is complete enough for a simple diagnostic getter. It does not mention limitations or alternatives, but the output schema fills in return-structure 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 description coverage is 0%, but the description documents the only required parameter, prim_path, as a USD path to inspect. It does not explain command_id or idempotency_key, but these are optional standard parameters and less critical for correct invocation.
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 identifies the tool as a diagnostic getter for physics state and enumerates the exact returned fields (rigid body status, mass, velocities, kinematic flag, collision info). It is specific about the resource and action, but it does not explicitly contrast itself with similar siblings like get_physics_body or get_prim_info.
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 'Call this when' section gives concrete diagnostic scenarios (falling through ground, unexpected non-movement, grasping failures), which is strong usage guidance. However, it does not mention when to prefer an alternative tool 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.
get_prim_infoA
Get detailed information about a specific prim.
Returns type, children, and a transform block holding position, rotation [rx, ry, rz] in degrees (XYZ order, the same convention transform_object accepts), and scale. For geometric prims (Cube, Sphere, Cylinder, Cone, Capsule), also returns actual_size [x, y, z] in meters accounting for scale and default primitive dimensions.
Args: prim_path: The USD prim path to inspect.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 exact rotation convention (XYZ degrees, same as transform_object), the transform block structure, and that actual_size accounts for scale and default primitive dimensions. It omits error behavior and whether children are recursive, but the primary observable behavior is clear.
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 front-loads the core action, then provides a compact, information-dense summary of return semantics and an Args section. Every sentence earns its place; there is no filler or repetition of schema fields.
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 that an output schema exists and this is a read-style getter, the description covers the essential return values, rotation/scale semantics, and the required parameter. Minor gaps like error handling and whether children are recursive are acceptable and partly delegated to the output 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 0%, so the Args section must compensate. It identifies prim_path as a USD prim path, adding domain meaning beyond the schema's plain string type and title, and covers the key required parameter. command_id and idempotency_key are left generic, but they are optional infrastructure 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?
States a clear verb+resource ('Get detailed information about a specific prim') and enumerates the returned data: type, children, transform block, and actual_size for geometric prims. This distinguishes it from sibling list tools like list_prims by focusing on a single specific prim.
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 when to use it (when you need details about one prim) but never names alternatives like list_prims, get_scene_info, or get_typed_attribute, nor gives exclusion conditions. There are no explicit when-to-use or when-not-to-use instructions, leaving selection partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_replicator_statusC
Read Replicator extension, orchestrator, job, writer, and trigger state.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden of behavioral disclosure. The verb 'Read' suggests a non-destructive operation, but the description adds no detail about filtering behavior, scope, or side effects. It is a minimal behavioral signal, not a transparent 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 description is a single sentence and gets to the point quickly. It is concise and readable, though the list of state components is somewhat dense and could benefit from a clearer sentence 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 tool with two optional parameters and no annotation coverage, the description is too thin. It does not explain how parameters affect the returned state, when to call this tool, or how it relates to sibling status getters. The presence of an output schema mitigates return-format ambiguity, but the overall guidance remains incomplete.
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 does not mention command_id or idempotency_key at all. These optional parameters likely control which status is retrieved, but an agent receives no semantic help beyond their names and types.
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 uses a specific verb ('Read') and identifies a clear resource: Replicator extension, orchestrator, job, writer, and trigger state. It conveys the tool's purpose, though it does not explicitly distinguish it from sibling status tools like get_sdg_job_status or get_job_status.
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 guidance is given about when to use this tool versus alternatives such as get_sdg_job_status, get_job_status, or get_runtime_status. The description implies a read operation on Replicator state, but offers no exclusions, prerequisites, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_robot_infoA
Get robot joint information including names, DOF count, joint types, and limits.
Call this after create_robot to understand the robot's kinematic structure. Returns joint names ordered by DOF index, joint types (revolute/prismatic), and joint limits (degrees for revolute, meters for prismatic).
Args: prim_path: The prim path of the robot.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 does well by disclosing return ordering (by DOF index), joint type categories, and units (degrees/meters). It doesn't cover error behavior or invalid prim_path cases, but it provides meaningful detail beyond a simple IT-getters statement.
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 compact, front-loads the tool's purpose, provides the usage sequencing, and gives concrete return details. The Args block is clean, and every sentence contributes value with no fluff.
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 getter, the description is mostly complete: output schema covers return structure, and the description supplies ordering, units, and call context. It could be improved by explicitly differentiating from get_joint_config and mentioning the optional parameters, but it's sufficient for basic correct invocation.
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 explains the required prim_path parameter, but only as 'The prim path of the robot,' adding little beyond the schema title. With 0% schema description coverage, the optional command_id and idempotency_key remain undocumented, so the description only partially compensates for the schema's lack of parameter descriptions.
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 that the tool retrieves robot joint information (names, DOF count, joint types, limits) with a specific verband resource. It does not explicitly differentiate from the sibling tool get_oint_config, so it misses the top score but remains clear.
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 explicitly says to call it after create_robot and to use it to understand the robot's kinematic structure, giving a clear context for use. It doesn't mention exclusions or recommend an alternative tool for similar queries, so it's not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ros2_statusB
Read ROS 2 bridge/core/nodes state, domain source, distro, and workflow count.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. The verb 'Read' clearly signals a non-mutating operation, and the listed items (bridge/core/nodes, domain source, distro, workflow count) clarify the scope. It does not mention any side effects, but none are implied.
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 a single, tight sentence with no filler. It front-loads the action and resource, then enumerates the specific status fields in a compact list.
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?
The description is reasonably complete for a read-only status tool and an output schema exists for return values. However, the undocumented parameters and the lack of guidance relative to several sibling status tools leave the agent to guess about invocation details and selection criteria.
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 schema documents two optional parameters, command_id and idempotency_key, but the description mentions neither. With 0% schema description coverage and no compensation in the description, an agent has no clues about the meaning or purpose of these 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 clearly states an action ('Read') and a specific resource: ROS 2 bridge/core/nodes state, including domain source, distro, and workflow count. This distinguishes it from generic status siblings like get_runtime_status, though it does not explicitly name alternatives.
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 the tool is for inspecting ROS 2 state and workflow counts, but it provides no explicit guidance on when to prefer it over get_runtime_status or the numerous other status/workflow tools. 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.
get_runtime_statusA
Read supervisor, crash, restart, and protocol-health state without requiring Isaac Sim.
This local diagnostic remains available when the extension socket is closed. It never starts, stops, or mutates Isaac Sim and never replays a failed command.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly guarantees that the tool never starts, stops, mutates Isaac Sim, or replays a failed command. This is exactly the kind of safety-relevant behavior an agent needs to know before invoking a diagnostic 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 short, front-loaded sentences deliver the core behavior and the key operational context with no filler. Every sentence adds value: the first defines the operation, the second adds availability and safety guarantees.
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?
The description covers purpose, availability, and safety, and an output schema is present to describe return values. However, the undocumented optional parameters create a real gap: without any explanation of command_id or idempotency_key, the agent lacks enough information to use the tool fully 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 0%, and the two optional parameters, command_id and idempotency_key, are entirely unexplained in the description. The agent cannot infer what these parameters mean or how they affect the returned status, so the description fails to compensate for the missing schema documentation.
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 first sentence clearly identifies a specific read operation ('Read supervisor, crash, restart, and protocol-health state') and a distinguishing condition ('without requiring Isaac Sim'). This separates it from simulation-state siblings like get_simulation_state, and the name/title is not merely restated.
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 states a clear when-to-use condition: it works without Isaac Sim and remains available when the extension socket is closed. It does not explicitly name alternative tools or state when not to use it, but the context strongly implies it is the diagnostic choice when the simulation socket is unavailable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scene_infoC
Ping the Isaac Sim extension server and return scene information including stage path, assets root, and prim count.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden of behavioral disclosure. The word 'ping' transparently signals a connectivity check and the phrasing implies a non-mutating read operation, but it does not disclose failure modes, whether the server must already be running, or any other operational traits.
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 a single tight sentence that front-loads the operation and enumerates the specific return fields without any filler. Every word earns its place, and there is no redundant 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?
The tool is relatively simple and the output schema exists to cover return values, but the description omits parameter semantics and does not differentiate sibling tools. It is adequate for a basic understanding, but not fully self-sufficient for an agent that needs to invoke it confidently without further 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 0%, and the description does not mention command_id or idempotency_key at all. The parameter names hint at request tracking and idempotency, but no actual semantics are provided, leaving the agent without any explanation of how or whether these optional parameters should be used.
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 ('ping' and 'return') and a specific resource ('scene information' including stage path, assets root, and prim count). It is clearly distinct from prim-level tools like get_prim_info or list_prims, though it does not explicitly name those alternatives.
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 guidance is provided about when to choose this tool over related siblings such as get_prim_info, list_prims, or get_runtime_status. The description implies it is for scene-level information, but it does not state when to use it or when not to, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_script_audit_logC
Return bounded script audit metadata. Source code is represented only by SHA-256.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It adds a useful behavioral constraint by stating that source code is represented only by SHA-256, preventing an agent from expecting source content. However, it does not disclose ordering, pagination, side effects, or the meaning of 'bounded' beyond a vague sense of limitation.
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 consists of two focused sentences with no filler. The primary action and resource are front-loaded, and the second sentence adds important behavioral context without redundancy. Every part 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?
Although an output schema is present, the description is incomplete for a tool with three undocumented parameters and no annotations. It does not explain the filtering semantics of command_id, the role of idempotency_key, or how count controls the result, leaving an agent without enough context to call the tool correctly in varied scenarios.
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 provides no information about the three parameters: count, command_id, and idempotency_key. The mention of 'bounded' hints at count's effect but does not explain defaults, filters, or how idempotency_key is used. The description fails to compensate for the complete lack of parameter documentation.
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 the tool returns script audit metadata, using a specific verb ('Return') and a defined resource ('script audit metadata'). It also adds a meaningful differentiator by noting that source code is represented only by SHA-256, which distinguishes it from tools that might expose actual script content. However, 'bounded' is somewhat vague and does not fully clarify the scope of the result set.
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 guidance is provided about when to use this tool versus alternatives like get_script_policy or get_isaac_logs. The description does not mention any exclusions, prerequisites, or selection criteria. An agent must infer appropriate usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_script_policyB
Return the current execute/reload policy without exposing script source or credentials.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. 'Return' suggests a read-only operation, and the explicit 'without exposing script source or credentials' is a useful security guarantee. However, it does not mention authorization requirements, failure modes, or whether the call has any side effects, leaving some behavioral transparency 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?
The description is a single front-loaded sentence: the verb and resource come first, and the security exclusion is a concise, valuable addition. There is no redundant wording, and every part 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?
The tool has no annotations, 0% schema description coverage, and an output schema, but the description still leaves important gaps: what command_id selects, whether omiting it returns a default policy, and how idempotency_key should be used. The overall shape is understandable, but not complete enough for an agent to call it with confidence.
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 does not mention either paramter. An agent cannot tell from the description what command_id refers to or how idempotency_key affects the call, so the description adds no meaning beyond the bare paramter names 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?
The description states a specific action, 'Return', and a precise resource, 'current execute/reload policy', so the tool's purpose is immediately clear. The qualifier 'without exposing script source or credentials' also distinguishes it from script execution and audit-log siblings like execute_script and get_script_audit_log.
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 'execute/reload policy' implies the tool is relevant before executing or reloading scripts, but the description never explicitly states when to use it or names alternatives. There is no clear when-to-use or when-not-to-use guidance beyond the implied connection to execute_script and reload_script.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sdg_job_statusC
Read bounded SDG job progress, lifecycle state, and cleanup read-back.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. 'Read' clearly signals a non-mutating operation, and 'progress, lifecycle state, cleanup read-back' adds context about what is returned. However, it does not clarify what 'bounded' means, error behavior, or whether authorization or job ownership is required.
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 a single sentence with an active verb and no filler. It is compact and front-loaded, though 'bounded' and 'cleanup read-back' are somewhat jargon-heavy.
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?
The output schema exists, so return values are covered elsewhere. But the tool has three parameters with zero schema documentation, no annotation coverage, and no usage guidance against sibling tools. The description is too thin to fully support correct invocation.
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 job_id refers to an SDG job, but command_id and idempotency_key are not explained at all. The description adds almost no meaning beyond the parameter names.
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 uses the specific verb 'Read' and names the resource: SDG job progress, lifecycle state, and cleanup read-back. This clearly distinguishes it from general job status tools and other SDG-manipulation tools, though the word 'bounded' is slightly ambiguous.
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 guidance is given about when to use this tool versus alternatives such as get_job_status, get_sdg_manifest, or after create/start/cancel operations. There are no conditions, exclusions, or mentions of prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sdg_manifestC
Return a terminal job manifest and managed artifact handles.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure, but it only says 'Return'. It does not clarify whether this is safe/read-only, how it behaves for non-terminal jobs, whether it can be called multiple times, or what 'managed artifact handles' imply for lifecycle/cleanup.
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 sentence with no filler, and the core action/object is front-loaded. It is concise, though perhaps too sparse to be fully useful.
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 tool with no annotations, low parameter coverage, and a large SDG lifecycle context, the description omits preconditions, parameter semantics, and relationship to siblings. The output schema exists, but the description alone does not give an agent enough to invoke the tool 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 0%, and the description does not explain job_id, command_id, or idempotency_key. It only loosely matches the concept of job to job_id; the optional parameters are completely unexplained.
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 operation ('Return') and a specific resource ('terminal job manifest and managed artifact handles'), so an agent can tell it fetches a SDG job's final results. It does not explicitly contrast with get_sdg_job_status, but the name and 'manifest' wording give baseline differentiation.
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 guidance on when to call this versus get_sdg_job_status, read_artifact, or the SDG job lifecycle siblings. It says nothing about preconditions such as the job being terminal, nor when an alternative should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_semantic_labelsA
Read Isaac Sim 6.0.1 LabelsAPI taxonomies and labels, plus any legacy semantic labels.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, 'Read' clearly signals a non-mutating, read-only operation. The description adds useful behavioral context by naming the exact API version (6.0.1) and expanding scope to include legacy semantic labels, which is beyond what the resource name alone conveys.
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 a single, tight sentence with no fluff. It front-loads the verb and resource, then adds the legacy-label qualifier. Every word carries meaning.
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?
The tool is simple and has an output schema, but the required prim_path paramater is undocumented and no usage guidance or exclusions are provided. An agent could invoke the tool with an incorrect prim_path because the description does not specify what path is expected or how labels are scoped.
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 does not explain the role of the required prim_path parameter or the optional command_id/idempotency_key parameters. The tool name and description imply that prim_path identifies a prim, but that is left to inference rather than stated.
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 uses a specific verb 'Read' with a specific resource: 'Isaac Sim 6.0.1 LabelsAPI taxonomies and labels'. This clearly distinguishes it from the sibling set_semantic_labels, and the mention of 'legacy semantic labels' further scopes its behavior.
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 states what the tool does but offers no guidance on when to use it as opposed to siblings like get_typed_attribute, get_prim_info, or set_semantic_labels. There are no explicit when/when-not conditions or alternative tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_simulation_stateA
Get the current simulation state: timeline status (playing/stopped/paused), simulation time, and physics dt. step_simulation does NOT require a running timeline — do not play just to step.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It clearly indicates this is a read operation ('Get') and lists the returned state fields. It also exposes an important behavioral gotcha about step_simulation. However, it does not explicitly confirm no side effects or mention any access or timing constraints for get_simulation_state 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 sentences with no filler. The primary purpose and return contents are front-loaded, and the caveat is placed secondary. Every word 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?
The output schema exists, so return-value details do not need to be repeated. The description covers what state is returned and a key usage caveat. It would be more complete if it also clarified when to use this versus get_runtime_status or get_physics_state, but the current level is 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?
Schema description coverage is 0%, so the description must compensate for the two parameters, but it does not mention command_id or idempotency_key at all. The schema only provides names and defaults, leaving the agent without meaningful semantic guidance for these 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 verb ('Get') and resource ('current simulation state') and enumerates the exact contents: timeline status, simulation time, and physics dt. It also distinguishes itself from the sibling step_simulation by clarifying that stepping does not require a running timeline.
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 provides clear context about what the tool returns and adds a practical exclusion: 'step_simulation does NOT require a running timeline — do not play just to step.' It does not explicitly compare with get_runtime_status or get_physics_state, but the guidance is enough for most selection decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stage_compositionB
Read the root layer, full layer stack, prim count, references/payloads, variant selections, semantics, and stage metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| root_path | No | / | |
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the behavioral disclosure burden. The verb 'Read' clearly signals a non-mutating inspection, and the listed content indicates the scope of that read. It does not discuss side effects, permissions, or failure modes, but for a read-only composition query this is a reasonably transparent 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?
The description is a single, tightly packed sentence with no filler or repetition. The verb is front-loaded, and the remaining content is a compact list of the data items returned, making it easy to scan.
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?
The description is complete enough for a caller who simply wants to know what the tool returns, especially with an output schema available. However, the unexplained command_id and idempotency_key create a meaningful gap, and the absence of any sibling routing guidance leaves the agent to infer when this composite read is preferable to more targeted tools.
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 for the three underdocumented parameters. It does not mention root_path, command_id, or idempotency_key at all, nor does it explain how 'root layer' maps to root_path or why a read operation has idempotency_key. The agent receives no help understanding parameter meaning beyond the schema's default values and titles.
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 clear verb ('Read') and a specific resource ('stage composition'), and enumerates the exact pieces of data returned (root layer, full layer stack, prim count, references/payloads, variant selections, semantics, stage metadata). It does not explicitly distinguish itself from related read tools like get_scene_info or get_prim_info, 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 implies when to use the tool: whenever a caller needs a comprehensive read of stage composition data. However, it gives no explicit guidance about alternatives, nor does it state when not to use it or what to prefer for narrower reads such as get_scene_info or get_semantic_labels.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_typed_attributeA
Read a USD attribute value, declared type, and authored-value state in JSON-safe form.
| Name | Required | Description | Default |
|---|---|---|---|
| attribute | Yes | ||
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It clearly communicates a non-mutating read operation and adds useful context by mentioning declared type, authored-value state, and JSON-safe serialization. It does not discuss errors or permissions, but for a read tool the key behavioral traits are disclosed.
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 sentence with the action verb front-loaded and no filler. Every phrase earns its place, and 'in JSON-safe form' adds meaningful serialization context without bloating the description.
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?
The presence of an output schema covers return-value details, so that gap is mitigated. However, the description lacks parameter semantics for the optional infrastructure parameters, provides no usage exclusions, and has no annotations to fall back on. It is adequate for a straightforward getter but not fully complete for an agent.
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, but it does not define any of the four parameters. The required parameter names prim_path and attribute are self-explanatory, yet optional parameters command_id and idempotency_key remain unexplained, and the description adds no syntax or value-format details beyond the schema titles.
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 uses a specific verb ('Read') and names the exact resource ('USD attribute value') plus the returned aspects: declared type, authored-value state, and JSON-safe form. This clearly separates it from the sibling write tool set_typed_attribute and from general prim getters.
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 usage by saying 'Read', but it does not explicitly state when to use this tool versus alternatives such as get_prim_info or set_typed_attribute. No exclusions or alternative routing guidance are provided, so an agent must infer the intended context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_urdfB
Import a robot from a URDF file into the scene.
Args: urdf_path: Path to the URDF file. prim_path: Prim path for the imported robot. position: [x, y, z] world position.
| Name | Required | Description | Default |
|---|---|---|---|
| position | No | ||
| prim_path | No | /World/robot | |
| urdf_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description alone must disclose side effects. It only says the robot is imported into the scene; it does not mention scene mutation, overwrite behavior for prim_path, coordinate frame/units for position, or whether the import is reversible. This is minimal behavioral disclosure for a scene-changing 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?
The description is compact, front-loaded with the main purpose, and uses a short Args section. Every sentence adds information and nothing is 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 tool that mutates the scene and has no annotations, important context is missing: units and coordinate frame for position, behavior if prim_path already exists, and any preconditions on the URDF file. Even if an output schema exists, these input and environment semantics are not covered, so the description is 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 0% and command_id/idempotency_key are absent from the description, but the description does give plain-language meanings for urdf_path, prim_path, and position, adding value beyond the bare JSON schema. However, it omits semantics for the two remaining parameters and doesn't clarify the expected format of position beyond '[x, y, z]'.
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 sentence names a specific verb ('Import'), the resource type ('URDF file'), and the destination ('into the scene'), which distinguishes it from generic creation tools like create_object or create_robot. Even without explicit sibling comparison, an agent can tell this is for loading URDF-based robots.
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 about when to choose this tool over siblings such as load_usd, create_robot, or open_stage. No prerequisite conditions or exclusions are provided, so an agent must infer the appropriate context from the name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_action_graphsA
List Action Graphs below a USD root, including disabled graphs by default.
Args: root_path: USD subtree to inspect. include_disabled: Include graphs whose evaluation is disabled.
| Name | Required | Description | Default |
|---|---|---|---|
| root_path | No | /World | |
| command_id | No | ||
| idempotency_key | No | ||
| include_disabled | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the only source of behavioral information. It discloses the read-only listing behavior and the default inclusion of disabled graphs, but it does not explain the role of command_id/idempotency_key or mention any side-effect profile beyond the word 'List'.
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 purpose is front-loaded in one sentence, and the Args section adds parameter meaning with no filler. Every sentence contributes useful 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 simple listing tool, the description covers the essential invocation details: target path and the disabled-graph default. An output schema exists, so return-value documentation is not required here; the main gap is the absence of alternative-tool routing and the unexplained optional command/idempotency fields.
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 carry parameter semantics. It provides clear meanings for root_path and include_disabled, but command_id and idempotency_key are completely undocumented in both the schema and the description, leaving half the parameters unexplained.
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 action and resource: 'List Action Graphs below a USD root'. It also states a non-obvious scope, including disabled graphs by default, which clearly differentiates it from singular get_action_graph and other action-graph manipulation tools.
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 when to use the tool: when you need an inventory of Action Graphs under a USD subtree. It does not explicitly name alternatives or state when not to use it, so there is no strong sibling routing guidance beyond what 'list' implies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_robotsA
List all available robots discovered from the Isaac Sim asset server. Returns robot keys, descriptions, manufacturers, and asset paths. The list is auto-discovered at startup and reflects the actual assets available in your Isaac Sim version.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It adds valuable context by stating that the list is auto-discovered at startup and reflects actual assets in the current Isaac Sim version, signaling that this is a read-only, environment-dependent query rather than a live network request.
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 short sentences, each earning its place: what the tool lists, what it returns, and a key behavioral caveat. The most important scoping information is front-loaded, and there is no redundancy or 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?
The description is sufficient for a simple list/read tool and is aided by an output schema. It clearly conveys source, scope, and the startup discovery behavior. It could be slightly stronger by pointing to refresh_robot_library for updating the list, but this is a minor omission rather than a critical 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?
The schema has 0% description coverage for two parameters, and the description does not explain command_id or idempotency_key at all. Since the description must compensate for the lack of parameter documentation and does not, an agent gains no semantic understanding of these optional fields from the tool definition.
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 ('List'), a clear resource ('all available robots'), and the source ('Isaac Sim asset server'). It also names the returned fields, making the tool's purpose unambiguous and distinguishable from robot-specific or refresh tools.
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 that this tool should be used to inspect which robot assets are actually available before selecting or creating one, especially by noting auto-discovery at startup. However, it does not explicitly mention when to prefer it over siblings like refresh_robot_library or list_nvidia_assets, nor does it provide any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_controller_profilesA
List the exact gripper and mobile-base profiles accepted by high-level controller tools.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. 'List' and 'accepted by high-level controller tools' reasonably convey a read-only catalog lookup, and the description does not suggest any destructive behavior. However, it does not clarify whether it reads live controller state or returns a static schema-defined set of values.
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 a single, front-loaded sentence with no filler. Every word contributes to the tool's purpose and scope.
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, no-required-parameter list tool with an output schema, the description is largely complete: it states the subject, the scope, and the intended relationship to high-level controller tools. It could add an explicit note about side effects or the absence of robot-state interaction, but the current text is 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?
Schema description coverage is 0%, and the description does not mention command_id or idempotency_key at all. The parameter names are partially self-explanatory and both are optional, but the description does not compensate for the lack of schema-level documentation.
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 the exact resource ('gripper and mobile-base profiles') and the action ('List'), and scopes them to 'accepted by high-level controller tools.' This clearly distinguishes it from sibling list tools like list_available_robots or list_environments.
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 when to use this tool: before calling high-level controller tools such as set_gripper_width or set_mobile_base_velocity, to know which profiles are valid. It does not explicitly state exclusions or name alternatives, but the context is clear enough for an agent to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_environmentsA
List all available environments discovered from the Isaac Sim asset server. Includes warehouses, offices, outdoor scenes, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden. It states the data source (Isaac Sim asset server) and scope (warehouses, offices, outdoor scenes), and 'List' implies a non-mutating query. However, it does not explicitly state read-only behavior, network/server prerequisites, or 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 sentences with no waste: the first states the core function, the second gives helpful examples of environment categories. The most important information is front-loaded.
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?
The output schema exists, so return values are documented separately. For a simple listing tool with no required parameters, the description is largely sufficient; it could have added a note about optional params or a read-only guarantee, but those are 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 0%, so the description was expected to compensate for the two undocumented parameters. It provides no information about command_id or idempotency_key, leaving their purpose to be inferred from their self-explanatory names. The parameters are optional and generic, limiting the harm, but the description adds no semantic value.
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 uses a specific verb ('List') and resource ('all available environments discovered from the Isaac Sim asset server'), with concrete examples of environment types. This clearly separates it from sibling tools like load_environment or list_available_robots.
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 clearly implies the purpose—use this when you need to see available environments from the asset server—but it does not name alternatives or exclusions. No guidance is given on when not to use it or when to prefer load_environment or other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_humansA
List IRA human characters without changing the stage.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| root_prim_path | No | /World/Characters | |
| idempotency_key | No | ||
| include_external | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure, and 'without changing the stage' directly addresses the most important safety concern: this is non-mutating. It does not describe output details or external-character behavior, but those are secondary for a read-only list 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 sentence that front-loads the operation and clearly states the read-only guarantee. There is no redundant wording or unnecessary detail.
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?
The description is sufficient for a minimal zero-argument call, and the output schema presumably documents return values. However, with four optional parameters undocumented and no annotations, an agent cannot reason about filtering by root path, including external characters, or idempotency behavior.
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 mentions no parameters at all. command_id, idempotency_key, root_prim_path, and include_external remain unexplained, so an agent cannot infer their purpose or valid values from 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?
The description uses a specific verb ('List') and a specific resource ('IRA human characters'), and explicitly signals read-only behavior ('without changing the stage'). This clearly distinguishes it from sibling mutation tools like spawn_human, delete_human, and set_human_target.
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 read-only phrasing makes it clear this should be used when an agent needs to inspect existing human characters rather than modify or create them. It does not explicitly name alternatives or exclusions, but the contrast with the many mutation-oriented human tools is evident from the wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsC
List the bounded retained managed-job registry.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| command_id | No | ||
| idempotency_key | No | ||
| include_terminal | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it reveals almost nothing about behavior beyond listing a registry. The terms 'bounded' and 'retained' hint at retention limits, but the description never explains what jobs appear, whether terminal jobs are included, or how the registry is maintained. This is insufficient for a tool with four optional filtering parameters.
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 extremely short and has no filler, but it is under-specified rather than appropriately concise. A single cryptic phrase does not earn its place because it leaves core semantics unexplained. This is closer to under-specification than to efficient, high-value 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?
Although an output schema exists, the description is incomplete for a list tool with four filtering parameters and many sibling tools. It does not clarify what a 'managed job' is, what 'bounded retained' means, how filtering parameters interact, or when listing jobs is the right operation compared to get_job_status and cancel_job. An agent would struggle to invoke this tool correctly with only this description.
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 by explaining what count, command_id, idempotency_key, and include_terminal mean. It provides no parameter information at all. The parameter names are somewhat self-explanatory, but the description adds no semantics, defaults, or filtering context.
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 clear action ('List') and a resource ('managed-job registry'), which identifies the tool's basic function. However, the phrase 'bounded retained' is opaque jargon that does not clarify what kinds of jobs are included, and it fails to differentiate from sibling tools like get_job_status, start_job, or cancel_job beyond the obvious 'list' verb.
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 guidance is given about when to use this tool instead of related job tools such as get_job_status, start_job, or cancel_job. The description does not mention filtering, retention semantics, or what distinguishes 'managed jobs' from other job-related queries, so an agent must infer usage entirely from the parameter names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_nvidia_assetsB
List NVIDIA assets that can be spawned through MCP.
Combines a verified Isaac/SimReady/Vegetation prop catalog with the robot library discovered from the running Isaac Sim 6.0 asset root.
Args:
category: Optional category: robot_arm, quadruped, agv,
robot_other, conveyor, warehouse, factory, or
vegetation, lifting, or instrumentation.
query: Optional case-insensitive text filter across key,
description, manufacturer, and asset path.
max_results: Maximum returned entries, from 1 to 250.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| category | No | ||
| command_id | No | ||
| max_results | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It usefully discloses that the result combines a verified catalog with a robot library discovered from the running Isaac Sim 6.0 asset root, indicating a dependency on the live simulation state. It does not mention staleness or the relationship to refresh_robot_library, so transparency 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?
The purpose is front-loaded in one sentence, followed by a compact source explanation and an Args breakdown. The category list is slightly awkward but not padded or 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?
The description covers the main listing behavior, data sources, and the three user-facing parameters, and an output schema exists to describe return values. It is incomplete around the two infrastructure parameters and lacks usage guidance relative to siblings, leaving some decisions 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 schema has 0% description coverage, so the description compensates by documenting the category values, query's case-insensitive search fields, and max_results' valid range. This is meaningful additional semantics, but command_id and idempotency_key remain unexplained.
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 and resource: 'List NVIDIA assets that can be spawned through MCP.' It further clarifies scope by describing the combined Isaac/SimReady/Vegetation catalog and the live robot library. However, it does not explicitly distinguish this from overlapping siblings such as list_available_robots.
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 guidance is given about when to choose this tool over alternatives like list_available_robots or when to call refresh_robot_library first. The description implies the tool is for listing spawnable assets but provides no exclusions, preconditions, or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_primsA
List all prims in the scene, optionally filtered by type.
Args: root_path: Root path to start listing from. prim_type: Filter by prim type (e.g. "Mesh", "Xform").
| Name | Required | Description | Default |
|---|---|---|---|
| prim_type | No | ||
| root_path | No | / | |
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral transparency burden. 'List all prims' and the filter option describe the core behavior, but traversal semantics are ambiguous: 'root_path' could mean direct children, all descendants, or scene-wide listing with a filter. It also does not explicitly state that the operation is read-only.
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 compact, front-loaded with the main action, and uses a small structured Args block. Every line adds useful information without 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?
The output schema likely covers return shape, so that gap is acceptable. However, with no annotations, no mention of traversal semantics, and two undocumented parameters, the description is not fully complete. It is adequate for a simple listing tool but 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 0%, so the description must add the semantics itself. It explains root_path and prim_type well, including an example type, but completely omits command_id and idempotency_key, leaving those parameters unexplained in both the schema and 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?
The description states a clear verb and resource: 'List all prims in the scene, optionally filtered by type.' It is not a tautology and clearly conveys what the tool does. However, it does not distinguish itself from neighboring tools like get_scene_info or get_prim_info.
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 usage through its parameter hints, especially 'root_path' and 'prim_type', but it never states when to use this tool versus related prim/scene inspection tools. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ros2_workflowsB
List MCP-owned ROS 2 publisher graphs below a USD root.
| Name | Required | Description | Default |
|---|---|---|---|
| root_path | No | /World | |
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. 'List' clearly indicates a non-mutating read operation, and 'MCP-owned' and 'below a USD root' add scoping context. However, it does not explain traversal depth, filtering semantics, what counts as 'MCP-owned', or whether the call has any side effects beyond returning data.
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 a single, front-loaded sentence with no filler. Every phrase ('List', 'MCP-owned', 'below a USD root') contributes meaning and the structure is easy to parse quickly.
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?
Although an output schema exists, the description leaves significant gaps for correct invocation: the roles of command_id and idempotency_key are unclear, and the meaning of 'MCP-owned' and the traversal scope are under-specified. An agent can call the tool with defaults, but cannot confidently customize the call based on this description alone.
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, but it only hints at root_path through 'below a USD root'. command_id and idempotency_key are not mentioned at all, leaving their purpose and format unexplained despite being optional parameters with defaults.
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 uses a specific verb ('List') with a clear resource ('MCP-owned ROS 2 publisher graphs') and a scoping qualifier ('below a USD root'). This makes the tool's purpose immediately distinguishable from sibling create/delete workflow tools without needing to inspect 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?
No guidance is given about when to use this tool versus alternatives such as delete_ros2_workflow or the various create_ros2_* publishers. The read-only listing intent is implied by the verb, but there are no explicit usage conditions, exclusions, or references to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_environmentA
Load a pre-built environment into the scene. Supports fuzzy matching. Call list_environments first to see available options.
Many shipped environments are authored Y-up and/or in centimeters; those are rotated and rescaled to match the stage, and the response reports what was applied under "corrections". It also returns "bounds" with the environment's extent and floor_height, so objects can be placed on the ground without a second query. Read prim_path from the response rather than assuming it — it defaults to a named child of /Environment.
Args: environment: Environment name or search term (e.g. "warehouse", "hospital", "office"). prim_path: Prim path for the loaded environment. Defaults to /Environment/, which keeps it separate from the stage's default lighting and lets clear_scene remove it.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | No | ||
| command_id | No | ||
| environment | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so well. It discloses that Y-up/centimeter environments are rotated and rescaled, that corrections are reported in the response, that bounds and floor_height are returned for object placement, and that prim_path has specific default behavior. It even warns not to assume prim_path and explains how clear_scene can remove the loaded environment.
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 dense but every sentence adds value: prerequisite, fuzzy matching, correction behavior, response fields, prim_path guidance, and parameter semantics. The critical behavioral facts are front-loaded before the Args section, and 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 tool with an output schema and a single required parameter, the description is complete for invocation. It tells the agent what to do first, what corrections may be applied, what the response contains, and how the default prim_path behaves. No critical invocation detail appears missing.
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, and it does for the two main parameters. It defines 'environment' as a name or search term with examples, and explains prim_path's default, rationale, and relationship to clear_scene. The remaining parameters, command_id and idempotency_key, are left undocumented, though their titles and optional defaults make them broadly self-explanatory.
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: 'Load a pre-built environment into the scene.' It also calls out 'fuzzy matching' and tells the agent to call list_environments first, making it clearly distinct from sibling tools like load_usd or import_urdf. Without opening schemas, the agent knows exactly what this tool does.
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 prerequisite: 'Call list_environments first to see available options.' It conveys the context of loading pre-built environments, but it does not explicitly say when to prefer this over alternatives like load_usd or import_urdf. The context is clear, but exclusions are only implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_usdA
Load a USD asset from a URL or file path into the scene.
Args: usd_url: URL or local path to the USD file. prim_path: Prim path for the loaded asset. position: [x, y, z] world position. scale: [sx, sy, sz] scale factors.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| usd_url | Yes | ||
| position | No | ||
| prim_path | No | /World/my_usd | |
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full behavioral burden. It does state that the asset is loaded 'into the scene' and names prim_path/transforms, implying a scene mutation. However, it does not disclose whether an existing prim at prim_path is replaced, whether the operation is idempotent, or what happens on invalid URLs/paths – significant gaps for a load 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?
The description is compact: one sentence of purpose followed by four terse, informative parameter explanations. Nothing is redundant, and the actionable purpose is front-loaded.
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?
Core invocation details are present: URL source, target prim path, and transforms. Yet the description omits command_id/idempotency_key semantics, gives no usage or alternative guidance, and does not mention preconditions or side effects. The output schema covers return values, but these gaps make the definition only partially 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?
The Args block adds meaningful semantics beyond schema titles: usd_url is 'URL or local path', position is '[x, y, z] world position', scale is '[sx, sy, sz] scale factors', and prim_path is the target prim. This compensates for the 0% schema description coverate. However, command_id and idempotency_key are completely omitted, leaving their purpose unexplained.
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 'Load a USD asset from a URL or file path into the scene' – a specific verb (Load), resource (USD asset), and source. It clearly distinguishes this tool from siblings like load_environment or generate_3d, which do not target URL/path USD assets.
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 provided. The description never names alternative tools or states conditions for choosing this one over siblings such as load_environment or search_usd. An agent receives no information about when this tool is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_lightC
Modify properties of an existing light.
Args: prim_path: The prim path of the light to modify. intensity: New intensity value. color: [r, g, b] new light color (0-1).
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | ||
| intensity | No | ||
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only says 'Modify properties', giving no context on side effects, failure behavior, whether the light must already exist, or how the modification affects the current stage. This is a significant gap for a mutating 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?
The description is compact and front-loaded with the core purpose, followed by a clean parameter list. No wasted words, though the docstring format is minimal and could benefit from brief usage guidance.
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?
The description only covers the obvious parameters and purpose. It omits behavioral details, error handling, and clarity on the two metadata parameters. Given an output schema exists, return values need not be explained, but the lack of any operational context for a scene-mutating tool makes this incomplete.
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 adds useful semantics for prim_path (which light), color (RGB array with 0-1 range), and intensity (new value). However, command_id and idempotency_key are left entirely undocumented, and intensity lacks units or range context.
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 ('Modify') and resource ('existing light'), and lists the exact properties (intensity, color) that can be changed. This distinguishes it from sibling create_light by emphasizing 'existing'.
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 guidance or alternatives are mentioned. The phrase 'existing light' hints at when it applies, but there is no direction about choosing this over create_light, set_typed_attribute, or other mutation tools, 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.
new_stageA
Preview or create a new empty stage. Requires scratch_stage=true, a scratch_root, stopped timeline, and defaults to preview-only.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| command_id | No | ||
| scratch_root | No | ||
| scratch_stage | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining side effects. It does disclose the preview-only default and necessary preconditions, which is useful, but it does not state whether actually creating the stage replaces or destroys the current stage, or whether the operation is reversible.
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 with no filler. It front-loads the action and immediately follows with the critical preconditions and default 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?
The output schema exists, so return-value details are not required, and the main prerequisites are stated. However, for a tool that can create a stage, the description omits the impact on the current stage and the purpose of two parameters, so an agent still has meaningful uncertainty.
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 adds meaning for preview, scratch_stage, and scratch_root, but it leaves command_id and idempotency_key unexplained, making the compensation incomplete.
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 the action precisely with 'Preview or create' and identifies the resource as 'a new empty stage', which clearly differentiates it from sibling stage tools like open_stage or save_stage_as. The verb and target are 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 provides clear usage conditions: scratch_stage=true, scratch_root, and a stopped timeline are needed, and the tool defaults to preview-only. It does not explicitly mention alternative tools or when to prefer them, so it stops 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.
open_gripperB
Open a gripper to the profile's declared open width with immediate target read-back.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | Yes | ||
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full transparency burden. It does reveal a meaningful behavior ('immediate target read-back') and clearly states the action, but it omits side effects, preconditions, blocking behavior, and error semantics. This is partial but not full 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?
A single, front-loaded sentence with no filler. The action, the width source, and the read-back behavior are all conveyed compactly.
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?
Even though an output schema exists, the required parameter semantics are thin, there is no usage guidance, and annotations provide no safety or execution context. For a mutating tool in a large sibling family, this description is only minimally sufficient.
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 needed to explain the required parameters. It only hints at 'profile' through 'declared open width' and leaves prim_path, command_id, and idempotency_key unaddressed. prim_path is inferable from the tool name but not documented.
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 operation ('Open a gripper'), identifies the width source ('the profile's declared open width'), and adds a distinguishing behavioral detail ('immediate target read-back'). This clearly differentiates it from close_gripper and set_gripper_width.
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. Sibling tools such as set_gripper_width and close_gripper are not mentioned, so the agent must infer when profile-based opening is preferred over explicit-width setting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_stageB
Preview or open a local USD stage inside scratch_root. Destructive stage replacement requires explicit scratch_stage=true.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| preview | No | ||
| command_id | No | ||
| scratch_root | No | ||
| scratch_stage | No | ||
| idempotency_key | No | ||
| readback_root_path | No | / |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the safety burden and does disclose the key destructive behavior: scratch_stage=true gates a destructive stage replacement. It also offers a preview option. Still, it leaves other behavioral aspects unstated, such as what happens to the current stage after a non-destructive open, idempotency, or 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?
The description is two sentences with no filler. It front-loads the core operation and immediately follows with the destructive-condition warning. 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?
The description covers the minimum viable call and the critical safety flag, and an output schema exists. However, with 7 parameters, 0% schema description coverage, and no annotations, the description leaves too much unspecified for non-basic invocations and for choosing among the many stage-related sibling tools.
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 for parameter meaning. It explains scratch_root, preview, and scratch_stage, but command_id, idempotency_key, and readback_root_path are not explained at all. The compensation is partial and insufficient for a 7-parameter 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?
The description clearly states the action ('Preview or open'), the resource ('a local USD stage'), and the scope ('inside scratch_root'). It distinguishes the tool from generic USD loading, but it does not explicitly differentiate it from sibling tools like load_usd or new_stage.
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 useful usage context: operate on local stages inside scratch_root, and destructive stage replacement requires scratch_stage=true. However, it does not explicitly say when to use this tool versus alternatives like load_usd or new_stage, leaving the route selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_simulationC
Pause the physics simulation.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 of behavioral disclosure. It states only that the simulation is paused, but gives no information about side effects, whether the simulation state is preserved, whether pause is immediate or deferred, or how it relates to play/stop.
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 brief and front-loaded, but it essentially restates the tool name. It is not bloated, yet it is so sparse that it misses opportunities to clarify behavior or distinguish from sibling tools.
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 tool with no annotations, two undocumented optional parameters, and a large set of closely related simulation-control siblings, this description is under-specified. It does not explain the pause/resume lifecycle, the meaning of the optional parameters, or how this operation differs from stopping or stepping the simulation.
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 schema has 0% description coverage for its two parameters, command_id and idempotency_key. The description adds no parameter-level meaning, so an agent has no help understanding what these optional fields do or when to supply them.
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 clear verb and resource: 'pause' the 'physics simulation'. It is understandable on its own, but it does not explicitly distinguish itself from sibling tools like stop_simulation or step_simulation, which also act on the simulation lifecycle.
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 stop_simulation, play_simulation, or step_simulation. It also does not mention whether pause is resumable or what state transition it triggers, so an agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_joint_trajectoryA
Plan a bounded joint trajectory and return an opaque trajectory_id.
planner="rrt" uses NVIDIA Lula RRT and reports collision_checked=true; planner="cspace" creates a deterministic spline and explicitly reports collision_checked=false. start_joint_positions defaults to measured state; pass it explicitly for reproducible offline planning. This call never executes.
| Name | Required | Description | Default |
|---|---|---|---|
| planner | No | rrt | |
| prim_path | Yes | ||
| command_id | No | ||
| timeout_ms | No | ||
| random_seed | No | ||
| robot_model | No | Franka | |
| max_iterations | No | ||
| idempotency_key | No | ||
| goal_joint_positions | Yes | ||
| start_joint_positions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure—and it excels. It states the call never executes, returns an opaque id, distinguishes collision_checked reporting between planners, and explains start_joint_positions default behavior. It also notes reproducibility concerns, which is valuable behavioral context absent from 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?
The description is three tight sentences with no filler. It front-loads the core purpose, then packs high-value behavioral and parameter details into a compact structure. Every sentence 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?
The description covers the most critical behavioral aspects, and the output schema presumably documents the returned trajectory_id. However, given the tool's 10-parameter complexity and 0% schema coverage, several non-obvious parameters (prim_path, timeout_ms, random_seed, idempotency_key) remain unexplained. It is adequate but has clear gaps around prerequisites and parameter 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 description coverage is 0%, so the description must compensate. It does explain planner values and start_joint_positions, but 8 of 10 parameters (prim_path, goal_joint_positions, timeout_ms, random_seed, robot_model, max_iterations, command_id, idempotency_key) receive no semantic explanation. The description adds meaning for only a minority of the 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 action ('plan a bounded joint trajectory'), the resource (joint trajectory), and the return type (opaque trajectory_id). The phrase 'This call never executes' clearly distinguishes it from execute_trajectory, which is a sibling tool. This is a precise, non-tautological purpose 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?
The description gives explicit guidance on planner selection (rrt vs cspace) and on when to pass start_joint_positions explicitly for reproducible offline planning. 'This call never executes' implies the caller should use execute_trajectory for execution, though it does not name that sibling explicitly. No alternative tool is directly referenced, so it falls just short of the strongest possible guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
play_simulationC
Start the physics simulation.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Start the physics simulation,' which conveys a state change but does not describe side effects, whether the call is idempotent, whether it blocks until running, or what happens if no simulation is loaded.
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 extremely concise and front-loaded, with no wasted words. However, the brevity crosses into under-specification, so while structure is clean, it does not serve the agent's decision-making adequately.
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 simulation control tool with two optional parameters and no annotations, the description is incomplete: it lacks prerequisities, alternation guidance, behavioral effects, and parameter meaning. The presence of an output schema reduces some burden around return values, but the missing operational context is 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?
Schema description coverage is 0% and the description provides no explanation for command_id or idempotency_key. An agent cannot infer what these optional parameters mean or how they affect the invocation. The description does not compensate for the schema gap at all.
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 clear action ('Start') and a specific resource ('the physics simulation'), which is enough to understand the tool's basic role. It is distinct from obvious siblings like pause_simulation, stop_simulation, and step_simulation, though it does not explicitly clarify whether 'play' means resume or start from an initialized scene.
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 guidance is given about when to call this tool versus alternatives, or what prerequisites must be met before calling it. The sibling names imply a simulation lifecycle, but the description never states that a physics scene must already exist or that this should be called after creating a scene.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_artifactB
Read one bounded base64 chunk from a managed artifact.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | ||
| length | No | ||
| offset | No | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully reveals that the tool returns a bounded base64 chunk, implying read-only chunked access. However, it does not explain offset/length boundary behavior, what happens on invalid handles or out-of-range reads, or the role of command_id and idempotency_key.
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 a single tight sentence with no filler. It front-loads the core action and result. It falls slightly short of 5 because the brevity leaves important parameter and usage context unaddressed, though that trade-off keeps the sentence highly readable.
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 tool with 5 parameters, no annotations, and zero schema description coverage, the description is not complete enough. It does not explain how chunking works with offset and length, how to read the entire artifact, what the output schema contains, or what error conditions exist. The output schema is marked as present, which mitigates return-value documentation, but the missing parameter semantics and chunk iteration details remain significant 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%, but the description only adds meaning for 'base64 chunk' and indirectly implies offset/length via 'bounded'. It does not document the meaning of handle, length, offset, command_id, or idempotency_key, so the agent must infer most parameter semantics from argument names alone.
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 ('Read'), resource ('managed artifact'), and a precise mode ('one bounded base64 chunk'). This makes the tool's function immediately clear and distinguishes it from the sibling artifact tools like get_artifact_info, delete_artifact, and cleanup_artifacts.
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 no context for when this tool should be used relative to alternatives, how to iterate over chunks, or when get_artifact_info might be more appropriate. There is also no mention of prerequisites such as needing a valid handle to an existing managed artifact.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_robot_libraryA
Force re-scan the asset server for available robots. Use this if new robot assets were added.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 of behavioral disclosure. It mentions 'Force re-scan' but does not explain side effects, whether the operation is blocking, network/asset-server dependencies, failure behavior, or any rate/performance implications.
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 with no filler. The primary action is front-loaded and the usage trigger is stated directly, making the description efficient and easy to parse.
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 optional-parameter refresh operation, the core purpose and trigger are covered, and the output schema covers return values. However, with no annotations and no parameter information, the description leaves gaps around invocation semantics and operational behavior.
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 does not mention' command_id' or'idempotency_key' at all. The parameter names imply some meaning, but since the schema provides no property descriptions, the description should compensate and does not.
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: 'Force re-scan the asset server for available robots.' It clearly conveys that this tool refreshes the robot library rather than lists or creates robots, distinguishing it from siblings like list_available_robots and create_robot.
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 this if new robot assets were added' gives a clear condition for when to call the tool. It does not mention alternatives or when not to use it, so it stops 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.
reload_scriptA
Reload a Python controller from a file on disk.
Two modes, chosen automatically:
If any Action-Graph ScriptNode references this file (inputs:scriptPath), those ScriptNodes are force-recompiled so your on-disk edits take effect on the running graph. This is how you iterate on a ScriptNode controller.
Otherwise the file is (re-)executed as a standalone controller, the way you would use execute_script for code longer than ~20 lines.
Workflow:
Write the controller as a .py file (attach via create_action_graph script_file=... for ScriptNode use)
reload_script to load / recompile it
step_simulation to debug (frozen timeline) or play for a ScriptNode demo
Edit the file and reload_script again to iterate
The file's directory is auto-added to sys.path.
Args: file_path: Path to the Python file on disk. module_name: Optional module name to reload (e.g. 'my_controller'). timeout_s: Cooperative Python deadline; capped by extension policy. max_output_bytes: Per-stream capture limit; capped by policy.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| timeout_s | No | ||
| command_id | No | ||
| module_name | No | ||
| idempotency_key | No | ||
| max_output_bytes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, and it delivers: it discloses automatic mode selection, force-recompilation of ScriptNodes, standalone re-execution, sys.path mutation, timeout capping, and output byte capture limits. This goes well beyond a generic action statement and tells the agent what side effects to expect.
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 organized effectively: purpose first, then modes, workflow, and finally parameter notes. Each paragraph adds necessary information, and the key distinguishing behavior is front-loaded. The length is justified by the tool's two-mode 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?
For a complex six-parameter tool with no schema descriptions and no annotations, the description covers most of what an agent needs: purpose, modes, workflow, sys.path effect, and policy caps. The main completeness gap is the undocumented command_id and idempotency_key parameters, which are likely important for execution control and retry semantics. An output schema exists, so return-value documentation is not a major 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?
The input schema provides zero descriptions, so the description must compensate. It explains file_path, module_name, timeout_s, and max_output_bytes meaningfully. However, command_id and idempotency_key are not explained at all, leaving two parameters without any semantics beyond their names.
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 and resource: 'Reload a Python controller from a file on disk.' It goes further by distinguishing the two automatic modes (ScriptNode recompilation vs standalone re-execution), which clearly separates this tool from siblings like reload_script_node and execute_script. The purpose is unambiguous and not a tautology.
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 explicitly explains when each mode applies and names related tools and the workflow: write a .py file, reload_script, step_simulation to debug, then edit and reload. It also references execute_script as an alternative for shorter code, giving the agent concrete routing guidance. This is strong, actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reload_script_nodeA
Preview or recompile one exact ScriptNode without cross-graph fallback.
Supply mode='inline' with inline_script to replace inline source.
For mode='file', script_file may select a new canonical local file;
when omitted, the node's existing canonical file path is reloaded. Omitting
mode asks the extension to retain and validate the node's current mode.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| preview | No | ||
| node_path | No | ScriptNode | |
| command_id | No | ||
| graph_path | Yes | ||
| script_file | No | ||
| inline_script | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses meaningful behaviors: replacing inline source, selecting/reloading a canonical file, and retaining/validating mode. However, it does not say whether recompilation mutates persistent state, what errors can occur, or what 'preview' returns vs. final execution.
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, focused sentences with the core purpose front-loaded. The mode-specific guidance is crisply organized and every sentence adds useful information without 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?
Although an output schema exists, the overall context is incomplete for an 8-parameter tool with no annotations. Major parameters are unexplained, the distinction between preview and actual recompile remains ambiguous, and there is no mention of side effects or ordering prerequisites such as the need for an existing ScriptNode.
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 explain the parameters. It does clarify mode, inline_script, and script_file semantics, but 5 of 8 parameters (graph_path, node_path, preview, command_id, idempotency_key) receive no explanation at all, leaving the agent without enough context to set them correctly.
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 sentence states a specific verb pair ('Preview or recompile'), the resource ('one exact ScriptNode'), and the scoping constraint ('without cross-graph fallback'). This clearly differentiates the tool from generic reload/script-management siblings and tells an agent exactly what the operation targets.
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 concrete mode-based instructions: 'inline' with inline_script, 'file' with script_file, and omitted mode to retain/validate current mode. However, it does not explicitly state when to prefer this tool over close siblings like reload_script or configure_script_node, nor does it provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_stage_asA
Preview or export the current stage to a different local USD file inside scratch_root. Source overwrite is always rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| preview | No | ||
| overwrite | No | ||
| command_id | No | ||
| scratch_root | No | ||
| scratch_stage | No | ||
| idempotency_key | No | ||
| readback_root_path | No | / |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 meaningful work: it discloses the dual preview/export behavior, the scratch_root destination restriction, and the important safety guardrail that source overwrite is always rejected. It could go further by explaining exactly what preview mode does or other side effects, but it is notably transparent for a concise 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 sentences with no filler. The core purpose and critical safety constraint are front-loaded, and every clause adds information. This is an efficient, well-structured description.
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?
The description is complete enough to understand the tool's basic purpose and key guardrail, but given 8 parameters, 0% schema coverage, and no annotations, it leaves several invocation details implied rather than explicit. The output schema helps with return values, but parameter roles and the preview-vs-export behavior remain under-explained.
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 partially does by connecting 'preview or export' to the preview flag, 'different local USD file inside scratch_root' to path and scratch_root, and the overwrite guardrail to the overwrite parameter. However, several parameters remain unexplained: command_id, idempotency_key, readback_root_path, and scratch_stage.
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 ('Preview or export'), a clear resource ('the current stage'), and a precise destination ('a different local USD file inside scratch_root'). This clearly distinguishes it from siblings like open_stage or new_stage.
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 useful context about when the tool applies (saving/copying a stage to a different local file) and an explicit exclusion ('Source overwrite is always rejected'). However, it does not mention alternatives or explicitly say when to prefer this tool over related stage tools such as open_stage or new_stage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_usdA
Search the NVIDIA USD asset library by text description, then load the best match.
Args: text_prompt: Text description of the 3D asset to search for. target_path: Prim path for the loaded result. position: [x, y, z] world position. scale: [sx, sy, sz] scale factors.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| position | No | ||
| command_id | No | ||
| target_path | No | /World/my_usd | |
| text_prompt | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose side effects itself. It does state that the tool does more than search by saying 'then load the best match', alerting the agent to a scene-modifying action. However, it does not explain whether loading replaces an existing prim, what happens if no match is found, or whether a stage must already be open.
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 functional sentence plus a terse arg list with no filler. The core behavior is front-loaded and every line 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 tool that searches and then mutates a scene, the description is reasonably complete but missing important context: what happens on no match, whether target_path must exist or is auto-created, and the role of the undocumented command_id and idempotency_key parameters. The output schema helps with return values, but operational gaps remain.
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 args section must add meaning. It usefully explains text_prompt, target_path, position, and scale. However, two schema parameters, command_id and idempotency_key, receive no description at all, leaving their purpose to inference from names.
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: searching the NVIDIA USD asset library and loading the best match. This distinguishes it from generic loader or asset tools by tying the operation to a text description. It is immediately actionable.
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 clearly implies the right use case: the user has a text description and wants a matching asset loaded. It does not explicitly contrast with siblings like load_usd or spawn_nvidia_asset, but the intended context is evident without exclusion or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_action_graph_enabledB
Preview or enable/disable one Action Graph and read back its effective state.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| preview | No | ||
| command_id | No | ||
| graph_path | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It does disclose the dual preview/set behavior and mentions that the tool reads back effective state, which is useful. However, it does not clarify whether preview avoids side effects, what 'effective state' means, or what happens with command_id/idempotency_key.
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, well-structured sentence communicates the core operation and the readback behavior with no filler. Every phrase contributes value.
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?
While an output schema exists, the description still leaves significant gaps: preview semantics, side effects, idempotency_key, and command_id behavior are absent. With no annotations and 0% schema parameter coverage, this is not complete enough for reliable invocation.
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 vaguely covers graph_path ('one Action Graph'), enabled ('enable/disable'), and preview ('Preview'), but command_id and idempotency_key are entirely unexplained. An agent would not know their purpose or format from this 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?
The description states a specific operation — preview or enable/disable one Action Graph — and identifies the resource ('one Action Graph'). It also distinguishes this tool from family members like get_action_graph_status or evaluate_action_graph by emphasizing the enable/disable semantics.
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 no guidance on when to use this tool versus alternatives such as get_action_graph_status, evaluate_action_graph, or edit_action_graph. There is no mention of when previewing is preferable to enabling/disabling, nor when this tool should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_gripper_widthA
Set total gripper opening width using an explicit robot profile.
The profile validates exact joint names and types before applying any position target. width_m is the total distance between both fingers.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | Yes | ||
| width_m | Yes | ||
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It usefully explains that the profile validates exact joint names and types before applying any position target, which is valuable behavioral context. However, it does not mention failure modes, side effects, or what happens when validation fails.
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 compact and well-structured: the first sentence states the core purpose, and the second adds necessary detail about validation and width semantics. No filler 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?
The description covers the main intent and key parameter semantics, and an output schema exists, so return values do not need explaining. However, it lacks guidance on selecting this tool over gripper siblings and leaves prim_path's role implicit, which are meaningful gaps for an agent.
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 does clarify that width_m is the total distance between both fingers and that profile enables joint validation, but it leaves prim_path and command_id semantically unexplained.
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 and resource: 'Set total gripper opening width'. This is clear and distinct from sibling tools like open_gripper/close_gripper in intent, though it does not explicitly name those alternatives or explain the difference.
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 this tool is for explicit width-based gripper control via a robot profile, but it does not explicitly state when to use it versus open_gripper/close_gripper or set_joint_positions. There is no when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_human_behaviorC
Update supported live Behavior Agent settings with read-back.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | ||
| preview | No | ||
| speed_mps | No | ||
| command_id | No | ||
| human_path | Yes | ||
| idempotency_key | No | ||
| navigation_areas | No | ||
| auto_avoidance_enabled | No | ||
| obstacle_avoidance_enabled | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the responsibility for behavioral disclosure. It only adds 'with read-back,' which is useful, but it does not explain mutation semantics, idempotency, permissions, or failure behavior for a tool that updates a live entity.
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 a single, front-loaded sentence with no wasted words. It is concise but perhaps too sparse to be complete; however, as a stubructure score, it is efficient and readable.
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 tool with 9 parameters and no annotations, this description is materially incomplete. It does not explain which settings are 'supported,' what human_path refers to, whether updates are applied immediately, or how the read-back result is returned, so an agent lacks essential context for correct invocation.
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 does not explain any of the 9 parameters, including the required human_path. Words like 'supported' and 'read-back' hint at behavior, but they do not clarify what enabled, preview, speed_mps, command_id, or navigation_areas mean in this context.
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 identifies a clear action ('Update') and a specific resource ('live Behavior Agent settings'), and adds that it performs a read-back. This provides enough clarity to distinguish it from related siblings like set_human_target or set_human_idle, though it does not explicitly name them or enumerate which settings are covered.
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 about when to use this tool versus alternatives such as set_human_target, set_human_idle, or set_human_look_at. The phrase 'supported ... settings' hints at constraints but gives no explicit selection criteria, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_human_idleC
Cancel the active action by issuing Idle, optionally facing one target.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| command_id | No | ||
| human_path | Yes | ||
| facing_position | No | ||
| idempotency_key | No | ||
| facing_prim_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It reveals the core effect (issue Idle, cancel active action) but does not mention side effects, reversibility, behavior when no action is active, preview semantics, idempotency, or what the output contains. This is a significant gap for a state-changing command.
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 a single front-loaded sentence with no filler, and it conveys the core operation efficiently. However, its brevity reflects under-specification rather than ideal completeness, though conciseness itself is handled well.
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 six-parameter tool with no annotations, the description is incomplete. It lacks parameter role explanations, usage boundaries, sibling differentiation, and behavioral edge cases. The presence of an output schema helps with return expectations but does not make up for the missing conceptual context.
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 only loosely hints at optional facing through 'optionally facing one target.' It does not explain the required human_path, preview defaulting to true, command_id, or idempotency_key, leaving most parameter meanings undocumented in both schema and 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?
The description clearly states what the tool does: cancel the active action by issuing Idle, with optional facing of a target. The resource is identifiable via the tool name and human_path parameter, and the action is distinct from sibling target/look-at/behavior tools, though no sibling is explicitly named.
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 'cancel the active action' implies when to use the tool, but there is no explicit guidance on prerequisites, when not to use it, or how it compares to alternatives such as set_human_behavior, cancel_motion, or set_human_target. The usage context is present but left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_human_look_atC
Issue a Behavior Agent LookAt task; zero duration means indefinite.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| command_id | No | ||
| human_path | Yes | ||
| idempotency_key | No | ||
| target_position | No | ||
| duration_seconds | No | ||
| target_prim_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only reveals that a zero duration means an indefinite look-at. It does not mention whether the task replaces existing behavior, whether it is asynchronous, how preview affects execution, or what side effects may occur.
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 a single sentence with no filler, and the most important behavioral note (zero duration equals indefinite) is included up front. Every word contributes, making it highly concise.
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 seven parameters, no annotations, and a large set of related human-control sibling tools, the description is far too sparse. It does not explain how the target is specified, how this task relates to other behavior commands, what the output contains, or whether it blocks or returns immediately.
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 for the seven parameters. It only clarifies duration_seconds' default behavior; human_path, target_position, target_prim_path, preview, command_id, and idempotency_key are left without any added meaning.
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 the operation as 'Issue a Behavior Agent LookAt task' and adds that 'zero duration means indefinite.' It identifies the resource and action well, though it does not explicitly differentiate from sibling human tools like set_human_behavior or set_human_target.
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 set_human_behavior, set_human_target, or set_human_idle. The only usage-related hint is the duration semantic, which is a parameter behavior rather than a selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_human_targetC
Issue a Behavior Agent MoveTo task to exactly one target.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| speed_mps | No | ||
| auto_brake | No | ||
| command_id | No | ||
| human_path | Yes | ||
| idempotency_key | No | ||
| target_position | No | ||
| target_prim_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 of behavioral disclosure. It only states that a MoveTo task is issued, but says nothing about whether the task executes immediately, how preview affects behavior, what happens to prior tasks, or any side effects. This is a significant transparency gap for a motion command 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?
The description is a single, front-loaded sentence with no wasted words. It clearly communicates the core action and the 'exactly one target' constraint. However, it is arguably too sparse for a tool with eight parameters, so it is concise but not optimally informative.
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 eight parameters, no annotations, and 0% schema description coverage, a one-sentence description is not enough for an agent to invoke the tool correctly. The output schema exists, so return-value detail is not required, but the description still fails to explain how to specify a target or what happens when preview is enabled or disabled.
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 does not compensate. It gives no explanation of target_position vs target_prim_path, speed_mps, auto_brake, preview, command_id, or idempotency_key. An agent must infer all parameter semantics from names alone, which is insufficient.
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 uses a specific verb ('Issue') and a specific resource ('Behavior Agent MoveTo task'), and adds a clear scope constraint ('exactly one target'). It is clear enough to be distinguished from sibling human-control tools like set_human_look_at or set_human_idle, though it does not explicitly name an alternative.
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 'MoveTo task' phrasing implies this tool is for commanding a human agent to move to a target, as opposed to idle or look-at behaviors. However, it does not state when to prefer this over set_human_behavior or other sibling tools, and there are no explicit exclusions or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_joint_commandA
Apply an atomic position, velocity, or effort joint command.
All selectors and values are validated before the adapter is called, so an unknown name, invalid index, duplicate selector, non-finite value, or length mismatch applies nothing. Effort commands must be renewed every simulation update; this tool applies one update's effort command.
Args: prim_path: USD path of the articulation root. mode: One of position, velocity, or effort. values: Command values ordered by the selected joints. joint_names: Optional exact, case-sensitive joint subset. joint_indices: Optional DOF-index subset; mutually exclusive with joint_names.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| values | Yes | ||
| prim_path | Yes | ||
| command_id | No | ||
| joint_names | No | ||
| joint_indices | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals that the operation is atomic, that selectors/values are pre-validated and that invalid inputs apply nothing, and that effort commands are one-shot. It does not describe whether position/velocity commands persist across steps or the meaning of idempotency_key, but the disclosed traits are substantive.
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 well-structured: a one-sentence purpose, then the critical behavioral caveats, then a compact Args list. Every sentence adds value, and important details like atomicity and effort renewal are front-loaded.
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 tool with no annotations, the description covers the core semantics, validation failure behavior, effort renewal, and selector constraints. Gaps remain for command_id and idempotency_key, and for whether position/velocity commands persist, so it is not fully complete, but it is strong enough for an agent to safely invoke the 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 0%, so the description must compensate. It does add meaning for prim_path, mode (position/velocity/effort), values (ordered by selected joints), joint_names (exact, case-sensitive subset), and joint_indices (mutually exclusive with joint_names). Yet it omits command_id and idempotency_key, leaving two parameters semantically unexplained.
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 and resource: 'Apply an atomic position, velocity, or effort joint command.' This clearly identifies the tool's function and distinguishes it from sibling tools like set_joint_positions, which only handle positions, and set_joint_drive_config, which configures drive settings rather than issuing commands.
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 provides important usage context for effort mode — commands must be renewed each simulation update and this tool applies one update's effort command. However, it does not explicitly contrast this tool with alternatives such as set_joint_positions or plan_joint_trajectory, so an agent must infer when to choose this tool over the available siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_joint_drive_configA
Atomically update drive gains, limits, or drive type for selected joints.
The timeline must be stopped. Numeric fields must be finite and non-negative. Values use runtime SI units: revolute gains are per radian, revolute velocity is radians_per_second, and prismatic velocity is meters_per_second. drive_type is force or acceleration. All inputs are validated before writing, and an apply failure triggers rollback.
Args: prim_path: USD path of the articulation root. stiffness: Optional proportional gain applied to every selected joint. damping: Optional derivative gain applied to every selected joint. max_force: Optional maximum drive effort. max_velocity: Optional maximum joint velocity; PhysX only. drive_type: Optional force or acceleration drive mode. joint_names: Optional exact, case-sensitive joint subset. joint_indices: Optional DOF-index subset; mutually exclusive with joint_names.
| Name | Required | Description | Default |
|---|---|---|---|
| damping | No | ||
| max_force | No | ||
| prim_path | Yes | ||
| stiffness | No | ||
| command_id | No | ||
| drive_type | No | ||
| joint_names | No | ||
| max_velocity | No | ||
| joint_indices | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral disclosure burden. It explicitly mentions atomicity, validation before writing, rollback on apply failure, runtime SI units, and drive_type allowed values. This gives the agent a strong model of side effects and failure behavior beyond what the schema provides.
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, followed by concise precondition and unit details. The Args list is scannable and every sentence adds non-redundant operational value, especially given the complexity of the 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?
For a complex 10-parameter mutation tool with no annotations, the description covers prerequisites, units, validation, rollback, and joint selection semantics. Gaps remain around command_id, idempotency_key, and the default behavior of omitted optional parameters, though an output schema exists to describe return structure.
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 0%, so the description must compensate. It does so for most parameters by explaining gain meanings, units, optionality, and the mutual exclusivity of joint_names and joint_indices. However, command_id and idempotency_key are completely omitted, and the behavior when optional parameters are left null is not explicitly stated.
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: 'Atomically update drive gains, limits, or drive type for selected joints.' It clearly distinguishes this tool from sibling tools like set_joint_command or set_joint_positions by focusing on drive configuration rather than executing trajectories or commands.
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 clear operational preconditions: the timeline must be stopped, numeric fields must be finite and non-negative, and joint selection is done via names or indices. It does not explicitly name alternative tools or state when not to use this tool, so it stops short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_joint_positionsA
Set target joint positions on a robot via ArticulationAction.
Units: radians for revolute joints, meters for prismatic joints (e.g. gripper fingers). Use get_robot_info to discover joint names, types, and limits first. After calling this, use step_simulation to advance and observe the result — do not use play_simulation + sleep.
Args: prim_path: The prim path of the robot. joint_positions: List of target joint position values. joint_indices: Optional list of joint indices to set. Sets all joints if not provided.
| Name | Required | Description | Default |
|---|---|---|---|
| prim_path | Yes | ||
| command_id | No | ||
| joint_indices | No | ||
| idempotency_key | No | ||
| joint_positions | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals units, the need to step simulation manually, and that omitting joint_indices sets all joints. It does not explain command_id or idempotency_key behavior, but the core behavioral context is well covered.
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 well structured: short intro, units, prerequisites, and an Args section. Every sentence adds value—no filler or repetition. It is appropriately sized for a tool with this many parameters and workflow constraints.
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?
The description covers prerequisites, units, required parameters, optional parameters, and the correct post-call procedure. It omits explanation of command_id and idempotency_key, and does not describe return values, though an output schema exists. Given the complexity of robot control, this is very close to complete but has a few 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 0%, so the description must compensate. It explains prim_path, joint_positions, and joint_indices (including the default behavior), but fails to document command_id and idempotency_key, which appear in the schema without descriptions. Partial but not complete parameter coverage.
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 ('Set'), a specific resource ('target joint positions on a robot'), and the mechanism ('via ArticulationAction'). This clearly distinguishes it from siblings like get_joint_positions, set_joint_command, and set_joint_drive_config.
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 explicit workflow guidance: call get_robot_info first to discover joint names/types/limits, then step_simulation after setting, and explicitly warns not to use play_simulation + sleep. This tells the agent exactly when and how to use the tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_mobile_base_velocityA
Apply a profiled differential or holonomic base velocity target.
The timeline must be playing for a non-zero command. Targets persist until replaced, so always call stop_mobile_base at the end of motion. Differential profiles reject non-zero lateral velocity.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | Yes | ||
| prim_path | Yes | ||
| yaw_radps | No | ||
| command_id | No | ||
| forward_mps | Yes | ||
| lateral_mps | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden. It discloses persistence ('Targets persist until replaced'), the timeline requirement, the need for an explicit stop, and differential validation behavior. It does not cover every side effect, such as whether a previous target is immediately replaced, but it is well above the no-annotation baseline.
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 with no filler: a purpose statement followed by the two most important operational cautions. The key constraints are front-loaded and every sentence 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?
Captures the non-obvious failure modes an agent would otherwise hit: paused timeline, persistent targets, and lateral-velocity rejection. It is not fully complete for a 7-parameter tool with 0% schema coverage, since parameter semantics and valid profile selection are not fully described, but it provides enough context for correct invocation in most cases.
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 partially does by clarifying differential vs. holonomic behavior and the lateral-velocity constraint, and the remaining velocity parameters are largely self-explanatory from their names. However, prim_path, command_id, and idempotency_key are left entirely to inference, and no valid profile values or units are enumerated.
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: 'Apply a profiled differential or holonomic base velocity target.' This clearly separates it from sibling motion tools like execute_trajectory and set_joint_positions, and the explicit mention of stop_mobile_base underscores what it is not.
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 explicit preconditions: the timeline must be playing for a non-zero command, targets persist until replaced, and stop_mobile_base should always be called at the end of motion. It also warns that differential profiles reject non-zero lateral velocity. It stops short of comparing against other motion alternatives like trajectory execution, but the provided guidance is actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_physics_paramsA
Atomically configure Isaac Sim 6 PhysX scene parameters.
The timeline must be stopped. time_step must be within
[0.0001, 1.0] seconds and map to an integer PhysX steps-per-second
value (for example, 1/60 or 1/120). Isaac Sim's Stage time codes and
minimum simulation frame-rate are synchronized to that rate. Enabling GPU physics selects GPU
dynamics and GPU broadphase; disabling it selects MBP broadphase.
This does not change the launcher-controlled physics GPU ordinal.
Success includes both USD and runtime read-back; failed application is
rolled back as one transaction.
Args: gravity: Gravity vector [x, y, z]. time_step: Physics time step in seconds. gpu_enabled: Enable or disable GPU dynamics and matching broadphase.
| Name | Required | Description | Default |
|---|---|---|---|
| gravity | No | ||
| time_step | No | ||
| command_id | No | ||
| gpu_enabled | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It goes well beyond the minimum by revealing atomicity, rollback on failure, USD/runtime read-back verification, synchronization of stage time codes, and the caveat that the launcher-controlled GPU ordinal is unchanged. This is exemplary behavioral 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?
The description is dense but every sentence earns its place: atomicity, preconditions, valid ranges, broadphase behavior, and rollback semantics. The first sentence states the core purpose immediately, and the Args section cleanly maps parameters to explanations.
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?
This is a complex mutation tool with no annotations, but the description covers all critical operational aspects: when it can be called, valid inputs, side effects, failure behavior, and what success means. An output schema exists, so the absence of return-value detail is not a gap. The only minor omission is the purpose of command_id and idempotency_key, but this doesn't undermine safe invocation.
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 adds real meaning for gravity, time_step, and gpu_enabled, including value ranges and side effects. However, command_id and idempotency_key remain undocumented in both schema and description, leaving a partial 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 clearly identifies a specific verb and resource: 'Atomically configure Isaac Sim 6 PhysX scene parameters.' It names the key affected settings (gravity, time_step, gpu_enabled), making the purpose clear. However, it does not explicitly differentiate itself from physics-related siblings like create_physics_scene or configure_physics_body.
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 provides clear operational context: the timeline must be stopped, time_step must satisfy specific constraints, and GPU vs MBP broadphase behavior is spelled out. It does not explicitly discuss when to choose this tool over alternatives, but the prerequisites and constraints give an agent enough context to use it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_semantic_labelsA
Preview or apply Isaac Sim 6.0.1 UsdSemantics LabelsAPI labels under one taxonomy with read-back.
| Name | Required | Description | Default |
|---|---|---|---|
| labels | Yes | ||
| preview | No | ||
| taxonomy | Yes | ||
| overwrite | No | ||
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does disclose meaningful behavior: a non-destructive preview mode, an apply (mutating) mode, and read-back verification. However, it omits safety-relevant traits such as the overwrite semantics (default false — does applying when labels exist error, append, or silently no-op?) and the idempotency/command_id execution behavior. This is a partial disclosure for a mutation-capable 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 16-word sentence that packs in the operation modes, API specificity, taxonomy scoping, and read-back behavior. Every element earns its place and the primary verb is front-loaded. There is 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 7-parameter tool with 0% schema coverage and no annotations, this description is too sparse. The output schema covers return values, but the agent is left guessing about the meaning of prim_path, the consequences of overwrite, what 'preview' actually returns or changes, and whether the read-back is reflected in the output. Key decisions needed to call the tool correctly are 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 0%, so the description must compensate, but it only hints at three of seven parameters: labels and taxonomy ('labels under one taxonomy') and preview ('Preview or apply'). It gives no meaning for prim_path (the target of the operation), overwrite (a behavior-critical flag), or command_id/idempotency_key (execution control). The burden is not met.
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 specific verbs ('Preview or apply'), a specific resource ('Isaac Sim 6.0.1 UsdSemantics LabelsAPI labels'), and a clear scope ('under one taxonomy'). It implicitly differentiates from the sibling get_semantic_labels by signaling that this tool writes or stages changes, with read-back confirming the result.
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 'Preview or apply' phrasing implies a sensible workflow — inspect the effect before committing — which gives some usage context. However, there is no explicit guidance on when to prefer this tool over get_semantic_labels, and no exclusion criteria or mention of prerequisites (e.g., prim must exist, stage must be open).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_typed_attributeA
Preview or set a finite, explicitly typed USD attribute. Existing attributes require overwrite=true and cannot change type.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| custom | No | ||
| preview | No | ||
| attribute | Yes | ||
| overwrite | No | ||
| prim_path | Yes | ||
| type_name | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the tool can run in preview mode or actually set, and it exposes a critical rule about overwrite and type immutability. Still, it does not say what 'preview' does, whether the operation is reversible, what side effects occur on the stage, or how command_id and idempotency_key affect execution.
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 sentences with no filler, front-loading the core action and then immediately stating the key constraint. Every clause contributes either to identifying the tool or to preventing a common misuse, so it earns high marks for conciseness.
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?
This is a 9-parameter tool with no annotations and zero schema descriptions, yet the description covers only a fraction of the operational context. It does not explain preview behavior, accepted type_name values, how to construct value, the meaning of custom, or the role of idempotency_key. The presence of an output schema slightly reduces the need to describe return values, but the overall definition is too sparse for reliable invocation.
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 schema has 0% parameter description coverage, so the description must compensate for nine parameters, but it only sheds light on preview, overwrite, and type_name. Required fields like prim_path, attribute, and value are not explained at all, nor are custom, command_id, or idempotency_key. The minimal mention of 'typed' hints at type_name but leaves the agent guessing about valid values and formatting.
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 uses a specific verb pair ('preview or set') and a concrete resource ('finite, explicitly typed USD attribute'), making the primary purpose unmistakable. It also distinguishes itself from the read-only sibling get_typed_attribute and from other setters by focusing on typed attributes and the overwrite constraint.
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 mentions an important condition—'Existing attributes require overwrite=true and cannot change type'—which implicitly tells the agent when overwrite must be used. However, it does not explicitly state when to prefer this tool over alternatives such as get_typed_attribute or other attribute-related tools, nor does it describe scenarios where the tool should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_variant_selectionB
Preview or select an existing USD variant after validating the set and available names.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| prim_path | Yes | ||
| selection | Yes | ||
| command_id | No | ||
| variant_set | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 of behavioral disclosure. It mentions 'preview or select' and 'validating', but does not explain side effects, whether preview changes state, failure behavior on invalid names, or any permissions or reversibility considerations.
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 sentence that is front-loaded with the core action and includes a relevant precondition. Every word earns its place and there is 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?
Despite having an output schema, the tool has 6 parameters, 3 required, and no annotation coverage. The description omits parameter semantics, usage boundaries, and behavioral effects, leaving significant gaps for an agent trying to call the tool 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 0%, so the description must compensate. It adds some meaning by noting that the selection must be an existing variant and that the set must be valid, which partially clarifies 'selection' and 'variant_set'. However, it gives no guidance for prim_path, preview, command_id, or idempotency_key.
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 identifies the specific action: preview or select an existing USD variant. It also adds the validating precondition for the variant set and available names, making the tool's scope distinct from generic USD composition or attribute tools.
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 when to use the tool: after validating the variant set and available names. However, it does not explicitly state when not to use it, nor does it reference any sibling alternatives for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spawn_humanA
Spawn animated NVIDIA human characters into the CURRENT USD stage.
Uses Isaac Sim 6.0+'s isaacsim.replicator.agent.core (IRA 1.x)
character loader and SimReady assets. Unlike IRA.setup_simulation(),
this tool does not reopen the environment USD, so existing scene edits
are preserved.
A NavMesh is required. The tool can bake an authored volume and waits up to 2000 update frames for complex factory stages. The extension is enabled automatically, but the tool fails closed when no usable NavMesh or character assets are available. Stop the timeline first.
execute_script remains useful for one-off IRA experiments.
reload_script is the better companion for reusable interaction or
event logic after characters have been spawned.
Args:
count: Number of new characters to add, from 1 to 25.
group_name: USD-safe IRA group name. Reusing it appends characters.
root_prim_path: Parent prim for all characters.
asset_path: Character asset directory. Defaults to
Isaac/People/Characters/.
motion_library_path: Human motion-library USD. Defaults to the IRA
extension setting / Isaac Sim asset root.
behavior: wander, patrol, stop, or manual. Use
manual when interaction scripts will issue Behavior Agent
tasks directly.
spawn_areas: Optional NavMesh area names used for spawning.
speed_range: Two walking speeds in m/s.
distance_range: Two wander-leg distances in meters.
idle_time_range: Two idle/stop durations in seconds.
patrol_points: Required for patrol; reachable NavMesh points as
[[x,y,z], ...].
position: Optional exact world position for one spawned character.
The point should lie on the NavMesh.
rotation: Optional [rx, ry, rz] degrees; requires count=1.
auto_create_navmesh_volume: Create one include-volume when the
stage has none. This modifies the current stage and requires
navmesh_volume_size.
navmesh_volume_center: Center of the new NavMesh volume. Defaults
to [0, 0, 1].
navmesh_volume_size: Full [x, y, z] size in stage units. Make
it cover the walkable floor and surrounding obstacles.
seed: Deterministic 32-bit IRA randomization seed.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| count | No | ||
| behavior | No | wander | |
| position | No | ||
| rotation | No | ||
| asset_path | No | ||
| command_id | No | ||
| group_name | No | MCPHumans | |
| spawn_areas | No | ||
| speed_range | No | ||
| patrol_points | No | ||
| distance_range | No | ||
| root_prim_path | No | /World/Characters | |
| idempotency_key | No | ||
| idle_time_range | No | ||
| motion_library_path | No | ||
| navmesh_volume_size | No | ||
| navmesh_volume_center | No | ||
| auto_create_navmesh_volume | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 delivers: it discloses that the tool does not reopen the environment USD (preserving edits), can bake an authored NavMesh and wait up to 2000 frames, fails closed when assets/NavMesh are unavailable, enables the extension automatically, and modifies the stage when auto-create-navmesh is used. It also reveals append behavior for reused group names and the 'requires count=1' constraint for rotation. This is exemplary 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 description is dense but well-structured: purpose first, then implementation context, then prerequisites and failure behavior, then sibling-tool guidance, then a consistent Args block. Every section earns its place, and the most critical operational warnings ('Stop the timeline first', 'fails closed') are front-loaded rather than buried.
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-parameter tool with no annotations and a 0% schema description coverage, the description is remarkably complete: it covers prerequisites, side effects, failure modes, defaults, and parameter constraints. An output schema exists, so return-value details are not required. The only notable gaps are the undocumented command_id and idempotency_key parameters and the lack of an explicit statement about whether the call blocks until characters are fully spawned or returns immediately, though the 'waits up to 2000 update frames' wording implies blocking.
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, and it largely does: it explains defaults, units, valid values for behavior, relationships like 'patrol_points: Required for patrol' and 'rotation: requires count=1', and coordinate formats. However, two schema parameters, command_id and idempotency_key, are not mentioned in the Args section, leaving a small but real gap in an otherwise thorough parameter explanation.
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 and resource: 'Spawn animated NVIDIA human characters into the CURRENT USD stage.' It clearly distinguishes this from sibling tools like list_humans, delete_human, and set_human_behavior by focusing on the act of spawning. The scope ('CURRENT USD stage') is explicitly emphasized, leaving no ambiguity about what the tool does.
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 explicit prerequisites ('A NavMesh is required', 'Stop the timeline first') and names alternatives: 'execute_script remains useful for one-off IRA experiments' and 'reload_script is the better companion for reusable interaction or event logic.' It also clarifies when to choose 'manual' behavior for interaction scripts. This is strong, actionable usage guidance that routes the agent appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spawn_nvidia_assetA
Spawn one catalog asset into the CURRENT USD stage.
Call list_nvidia_assets first to obtain an exact asset_key.
Robot keys create controllable articulations through the existing robot
handler. Props, conveyors, warehouse equipment, and vegetation are
referenced from verified NVIDIA USD paths and remain compatible with
transform_object, clone_object, and delete_object.
Args:
asset_key: Exact key returned by list_nvidia_assets.
prim_path: Optional absolute destination prim path. A unique path
under /World/Assets is generated when omitted.
position: Optional world [x, y, z].
rotation: Optional XYZ Euler degrees [rx, ry, rz].
scale: Optional [sx, sy, sz] multiplier.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| position | No | ||
| rotation | No | ||
| asset_key | Yes | ||
| prim_path | No | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 useful work: it states robot keys create controllable articulations, assets are 'referenced from verified NVIDIA USD paths,' and spawned assets remain compatible with later transform/clone/delete operations. It does not disclose behavior on path conflicts, but it provides meaningful behavioral context beyond just 'spawns an asset.'
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 well-structured: the purpose comes first, followed by a prerequisite, a short behavioral note, then a focused Args list. Every sentence adds information, and there is no redundant fluff.
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?
The description is strong for a moderately complex tool: it covers the prerequisite, current-stage context, asset categories, downstream compatibility, and all core parameters. The output schema exists, so return-value details are not required. Minor gaps include no discussion of how `command_id`/`idempotency_key` affect behavior and no explicit alternative-usage exclusions.
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 compensates well for the main parameters: `asset_key` is exact from `list_nvidia_assets`, `prim_path` defaults under `/World/Assets`, `rotation` is in XYZ Euler degrees, and `scale` is a multiplier. It omits `command_id` and `idempotency_key`, which prevents a 5.
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 and resource: 'Spawn one catalog asset into the CURRENT USD stage.' It clearly separates this from sibling tools by referencing `list_nvidia_assets`, NVIDIA USD paths, and compatibility with `transform_object`, `clone_object`, and `delete_object`.
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 prerequisite: 'Call `list_nvidia_assets` first to obtain an exact `asset_key`.' However, it does not explicitly compare this tool to alternatives like `create_object`, `import_urdf`, or `spawn_human`, so the when-to-use guidance is mostly implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_jobB
Start an eligible asset or sensor command as a bounded background job.
Motion and SDG starts retain their typed tools; their returned IDs can still be queried and cancelled through the unified job tools.
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| command_id | No | ||
| deadline_ms | No | ||
| command_type | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 that jobs run as bounded background jobs with returned IDs queryable and cancellable through unified job tools. However, it does not explain side effects, eligibility criteria, deadline behavior, or idempotency implications.
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 compact and front-loaded with the core purpose. The second sentence adds useful scoping information about Motion and SDG tools without unnecessary bloat. It could include a bit more operational detail without hurting conciseness.
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?
Even with an output schema present, an agent lacks critical invocation details: what command_type values are eligible, what 'asset or sensor command' means, and how each parameter affects execution. The background-job lifecycle is only partially explained, leaving significant gaps for a generic launcher 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 0%, so the description must compensate, but it provides no parameter-level guidance. command_type is required but its allowed values are never stated, and params, command_id, deadline_ms, and idempotency_key are entirely unexplained in both the schema and 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?
The description uses a specific verb ('Start') and resource ('eligible asset or sensor command as a bounded background job'), and it distinguishes itself from Motion and SDG typed starts. However, 'eligible' and 'asset' are left undefined, preventing a perfect score.
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 explicitly states that Motion and SDG starts retain their typed tools, signaling the agent to use specialized tools for those cases, while noting their returned IDs can still be managed through unified job tools. It does not list exact eligible command types or name the specific alternative tools to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_sdg_jobC
Preview or asynchronously start one configured SDG job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| preview | No | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It does add useful behavior: the tool can preview rather than start, and the actual start is asynchronous. However, it does not explain side effects, whether an existing configured job is required, or what happens on preview versus start.
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 a single efficient sentence with no filler, front-loading the preview-versus-async distinction. It is appropriately short, though the terseness contributes to missing behavioral and usage 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?
The tool has four parameters, no annotations, and no schema-level parameter descriptions, yet the description only covers the preview/async start concept. It omits job lifecycle expectations, idempotency behavior, command_id usage, and relationship to other SDG job tools. Even with an output schema present, this is insufficient context for correct invocation.
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 mentions only the preview concept. It does not clarify semantics for 'job_id', 'command_id', or 'idempotency_key'. The parameter names provide some hints, but the description fails to compensate for the complete lack of schema-level documentation.
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 uses a specific verb ('start') and a distinct resource ('one configured SDG job'), and clarifies that the action can be a preview or an asynchronous start. This separates it from generic job tools like 'start_job' and from creation/status tools in the same family, though it does not explicitly name a sibling.
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 no guidance about when to prefer this tool over alternatives such as 'create_sdg_job', 'get_sdg_job_status', or 'start_job'. It implies the job must already be configured but does not state prerequisites, exclusions, or routing conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
step_simulationA
Advance the simulation by exactly N physics frames on a FROZEN timeline.
step is self-contained: it initialises physics on first call and operates on a paused/stopped timeline, so N is always exact and observations correlate to a known frame count.
Do NOT call play_simulation before or during the debug loop; step is for a frozen timeline. If the timeline is already playing, step returns an error (a free run cannot be counted frame-by-frame). Use play_simulation ONLY for a final continuous run / ScriptNode-driven demo, never for debugging.
Typical debug loop (no play):
set_joint_positions to command the robot
step_simulation with observe_prims and observe_joints
get_joint_config if drives are not tracking correctly
get_physics_state if objects are not behaving as expected
Adjust and repeat
Args: num_steps: Number of simulation frames to step. observe_prims: List of prim paths to observe (returns position + velocity). observe_joints: List of articulation prim paths to observe (returns joint positions).
| Name | Required | Description | Default |
|---|---|---|---|
| num_steps | No | ||
| command_id | No | ||
| observe_prims | No | ||
| observe_joints | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 explains that step is self-contained, initialises physics on first call, operates on a paused/stopped timeline, always advances exactly N frames, and returns an error if the timeline is already playing. This is strong behavioral context, though it does not address all possible side effects or failure cases.
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, then provides a concise warning about play_simulation, a practical debug loop, and a short parameter list. Every section earns its place; there is no filler or redundant repetition of schema 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 complex simulation stepping tool, the description gives essential operational context, alternative routing, and parameter semantics. The presence of an output schema covers return value details, and the description explains enough for typical use. The only gap is the undocumented command_id and idempotency_key, which prevents a perfect score.
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 adds meaningful semantics for num_steps, observe_prims, and observe_joints, all of which have no schema descriptions. However, command_id and idempotency_key are left completely unexplained, and with 0% schema description coverage the description must compensate more fully. It covers the main functional parameters but misses two potentially relevant ones.
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 uses a specific verb and resource: 'Advance the simulation by exactly N physics frames on a FROZEN timeline.' It clearly distinguishes this tool from play_simulation and other simulation controls, and the purpose is immediately obvious without needing to inspect the schema or siblings.
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 explicitly states when to use and not use this tool: 'Do NOT call play_simulation before or during the debug loop' and 'Use play_simulation ONLY for a final continuous run / ScriptNode-driven demo, never for debugging.' It also provides a numbered debug loop showing exactly how to combine it with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_mobile_baseB
Set every profiled wheel velocity target to zero and verify the stop target read-back.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | Yes | ||
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavior beyond the schema: it targets only profiled wheel velocities and includes a read-back verification. With no annotations, however, it does not disclose whether this is a command or an instantaneous state change, what side effects occur, or whether further motion commands are required.
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 both the primary action and the verification behavior with no filler. Every word contributes meaning.
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?
The output schema covers return shape, but the description lacks parameter semantics and usage context, leaving required parameters such as prim_path unexplained. It is not complete enough for an agent to reliably construct a correct call in this large tool family.
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 for all four parameters, but it only arguably hints at 'profile' through the word 'profiled.' prim_path, command_id, and idempotency_key are not explained at all.
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 and target: set every profiled wheel velocity target to zero and verify the stop target read-back. This is clearer than the tool name alone and semantically distinguishes it from set_mobile_base_velocity, but it does not explicitly differentiate from sibling tools.
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 guidance is given about when to call stop_mobile_base instead of related tools such as set_mobile_base_velocity, cancel_motion, pause_simulation, or stop_simulation. The intended context is only implied by the tool name and the word 'stop'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_simulationA
Stop the physics simulation and reset to spawn state.
Resets articulations and rigid bodies to their spawn pose (the state captured at first Play), like the Isaac UI Stop button. Call this to return the scene to a clean starting point before another run.
| Name | Required | Description | Default |
|---|---|---|---|
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and succeeds: it discloses that the stop is destructive to current simulation state by resetting articulations and rigid bodies to the pose captured at first Play. The 'like the Isaac UI Stop button' analogy gives a concrete behavioral reference.
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 lead with the core action and then add the reset detail and usage reason. No filler 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 simple stop/reset command with an output schema and no annotations, the description covers what it does, what state it returns to, and when to invoke it. Nothing essential for invoking it correctly is missing.
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 adds no meaning to the two optional parameters, command_id and idempotency_key. The names and default null are self-explanatory, but the tool description does not compensate for the lack of schema documentation.
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 and resource: 'Stop the physics simulation and reset to spawn state.' It further clarifies by stating articulations and rigid bodies are reset to their spawn pose, and compares it to the Isaac UI Stop button, which differentiates it from sibling pause_simulation.
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 provides a clear usage context: 'Call this to return the scene to a clean starting point before another run.' It does not explicitly name alternatives such as pause_simulation or state when not to use it, so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_objectA
Set the transform (position, rotation, scale) of an existing object.
Args: prim_path: The prim path of the object to transform. position: [x, y, z] new world position. rotation: [rx, ry, rz] new rotation in degrees. scale: [sx, sy, sz] new scale factors.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| position | No | ||
| rotation | No | ||
| prim_path | Yes | ||
| command_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully specifies that position is 'world position,' rotation is 'in degrees,' and scale is 'new scale factors,' providing some conventions. However, it does not disclose whether omitted transform fields are left unchanged or reset, nor does it mention error behavior or side effects for a mutating 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?
The description is compact and efficiently structured: a one-sentence summary followed by a terse Args list. Every line adds distinct information, and the key operation is front-loaded.
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 the tool has no annotations, 0% schema coverage, and manages a 3D transform, the description covers essential parameters but leaves important operational details unstated. It does not explain partial-update behavior when position, rotation, or scale is null, nor does it mention units for position/scale. The presence of an output schema reduces the need to document return values, but behavioral gaps remain.
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 schema description coverage is 0%, so the description must compensate for the schema's silence. It clearly explains prim_path, position, rotation, and scale with formats, which covers the main functional parameters. The optional command_id and idempotency_key parameters are undocumented, but they are common cross-cutting parameters and the primary parameters are well described.
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, 'Set the transform (position, rotation, scale) of an existing object,' with a clear verb and resource. It also enumerates the three transform components, making the tool's scope immediately understandable and distinct from siblings like create_object or get_prim_info.
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 'existing object' implicitly tells the agent this tool is for modifying an already-created object, not for creating or deleting one. However, it does not explicitly name alternatives or state when not to use this tool, leaving the routing to inference.
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. Dates show when Glama detected each change.
129 tool updates
v0.1.0- First observed
apply_material - First observed
apply_stage_batch - First observed
bake_navmesh - First observed
cancel_job - First observed
cancel_motion - First observed
cancel_sdg_job - First observed
capture_camera_output - First observed
capture_image - First observed
cleanup_artifacts - First observed
clear_scene - First observed
clone_object - First observed
close_gripper - First observed
compute_ik - First observed
configure_physics_body - First observed
configure_script_node - First observed
connect_action_graph - First observed
create_action_graph - First observed
create_camera - First observed
create_collision_group - First observed
create_lidar - First observed
create_light - First observed
create_material - First observed
create_object - First observed
create_physics_joint - First observed
create_physics_scene - First observed
create_robot - First observed
create_ros2_camera_publisher - First observed
create_ros2_clock_publisher - First observed
create_ros2_joint_state_publisher - First observed
create_ros2_lidar_publisher - First observed
create_ros2_tf_publisher - First observed
create_sdg_job - First observed
delete_action_graph - First observed
delete_artifact - First observed
delete_human - First observed
delete_object - First observed
delete_ros2_workflow - First observed
delete_sdg_job - First observed
delete_sensor - First observed
disconnect_action_graph - First observed
edit_action_graph - First observed
edit_composition_arc - First observed
edit_sublayer - First observed
evaluate_action_graph - First observed
execute_script - First observed
execute_trajectory - First observed
generate_3d - First observed
get_action_graph - First observed
get_action_graph_status - First observed
get_artifact_info - First observed
get_camera_calibration - First observed
get_capabilities - First observed
get_collision_group - First observed
get_human - First observed
get_isaac_logs - First observed
get_job_status - First observed
get_joint_config - First observed
get_joint_positions - First observed
get_joint_state - First observed
get_lidar_config - First observed
get_lidar_point_cloud - First observed
get_material - First observed
get_material_binding - First observed
get_motion_status - First observed
get_navmesh_status - First observed
get_physics_body - First observed
get_physics_joint - First observed
get_physics_state - First observed
get_prim_info - First observed
get_replicator_status - First observed
get_robot_info - First observed
get_ros2_status - First observed
get_runtime_status - First observed
get_scene_info - First observed
get_script_audit_log - First observed
get_script_policy - First observed
get_sdg_job_status - First observed
get_sdg_manifest - First observed
get_semantic_labels - First observed
get_simulation_state - First observed
get_stage_composition - First observed
get_typed_attribute - First observed
import_urdf - First observed
list_action_graphs - First observed
list_available_robots - First observed
list_controller_profiles - First observed
list_environments - First observed
list_humans - First observed
list_jobs - First observed
list_nvidia_assets - First observed
list_prims - First observed
list_ros2_workflows - First observed
load_environment - First observed
load_usd - First observed
modify_light - First observed
new_stage - First observed
open_gripper - First observed
open_stage - First observed
pause_simulation - First observed
plan_joint_trajectory - First observed
play_simulation - First observed
read_artifact - First observed
refresh_robot_library - First observed
reload_script - First observed
reload_script_node - First observed
save_stage_as - First observed
search_usd - First observed
set_action_graph_enabled - First observed
set_gripper_width - First observed
set_human_behavior - First observed
set_human_idle - First observed
set_human_look_at - First observed
set_human_target - First observed
set_joint_command - First observed
set_joint_drive_config - First observed
set_joint_positions - First observed
set_mobile_base_velocity - First observed
set_physics_params - First observed
set_semantic_labels - First observed
set_typed_attribute - First observed
set_variant_selection - First observed
spawn_human - First observed
spawn_nvidia_asset - First observed
start_job - First observed
start_sdg_job - First observed
step_simulation - First observed
stop_mobile_base - First observed
stop_simulation - First observed
transform_object
TDQS
Most tools target distinct resources and actions, but several pairs overlap meaningfully: set_joint_positions vs set_joint_command(mode=position), get_joint_positions vs get_joint_state, and start_job vs start_sdg_job/execute_trajectory. The detailed descriptions help, but an agent could easily misselect between the joint and job-related tools.
The overwhelming majority follow a clear lowercase snake_case verb_noun pattern (create_camera, get_prim_info, delete_sdg_job). Minor deviations like new_stage, save_stage_as, cleanup_artifacts, and get_capabilities break the uniformity slightly, but the convention is otherwise predictable and consistent.
129 tools is far beyond the 50+ extreme threshold for any server, even one covering a broad domain like Isaac Sim. The count creates a massive surface that would overwhelm an agent, and many subsystems could be consolidated or exposed via narrower interfaces.
The toolset is remarkably broad, covering scene, physics, robots, sensors, materials, lights, SDG, ROS2, humans, action graphs, scripting, and asset workflows. Minor gaps exist—no delete_material, delete_light, modify_material, or explicit environment teardown—but most lifecycle paths are covered and workarounds are plausible.
Maintenance
Related MCP Connectors
Control Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Build, validate, and deploy multi-agent AI solutions from any AI environment.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables users to get expert help with Isaac Sim scripting, USD (Universal Scene Description), Python snippets, and API usage through NVIDIA's USDCode AI assistant. Provides specialized guidance for 3D graphics and simulation development workflows.17-
- AlicenseBqualityAmaintenanceEnables AI assistants to control Unreal Engine via Remote Control API for game development automation, including asset management, actor control, level editing, animation, physics, visual effects, and cinematics creation through natural language.1295856MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to read, inspect, and manipulate OpenUSD 3D scenes, including scene graph traversal, property querying, mesh export, and variant switching.10MIT
- AlicenseAqualityAmaintenanceEnables natural language control of NVIDIA Isaac Sim through the Model Context Protocol, allowing you to create robots, build scenes, run simulations, and debug physics from any MCP-compatible IDE.4260MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tim0320/IsaacSim-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server