iwsdk-runtime MCP server exposes 45 public tools in IWSDK 0.5.3. The installed CLI is the authority for descriptions, required fields, accepted values, and limits:npx iwsdk mcp inspect npx iwsdk mcp inspect --tool scene_render_file
| Group | Count | Purpose |
|---|---|---|
xr_* | 16 | Control XR sessions, tracked poses, input mode, and controller or hand input. |
browser_* | 3 | Capture the application runtime, read console logs, and reload the page. |
Scene file and Editor | 10 | Validate, compose, open, inspect, and capture native scene files. |
Runtime scene | 3 | Inspect the live application hierarchy, transforms, and render statistics. |
ui_* | 2 | Discover UIKitML assets and render previews. |
ecs_* | 11 | Inspect and modify ECS execution and state. |
| Tool | Purpose |
|---|---|
xr_get_session_status | Get XR session and device status. |
xr_accept_session | Accept an offered XR session. |
xr_end_session | End the active XR session. |
xr_get_transform | Read a tracked device’s position and orientation. |
xr_set_transform | Set a tracked device’s position or orientation. |
xr_look_at | Orient a device toward a world-space target. |
xr_animate_to | Animate a device toward a position or orientation. |
xr_set_input_mode | Switch between controller and hand input. |
xr_set_connected | Connect or disconnect a controller or hand. |
xr_get_select_value | Read a trigger or pinch value. |
xr_set_select_value | Set a trigger or pinch value for held interactions. |
xr_select | Dispatch a complete select press and release. |
xr_get_gamepad_state | Read controller buttons and axes. |
xr_set_gamepad_state | Set controller button or axis values. |
xr_get_device_state | Read the complete emulated device state. |
xr_set_device_state | Apply partial device state, or reset it when state is omitted. |
xr_get_session_status and call xr_accept_session when the application is offering a session.| Tool | Purpose |
|---|---|
browser_screenshot | Capture the application runtime. If Editor is visible, the tool switches to Runtime before capture. |
browser_get_console_logs | Read logs from the managed application page. |
browser_reload_page | Reload the managed application page. |
browser_screenshot has no target parameter. Use scene_screenshot when you need an Editor image.public/scenes/*.iwsdk.scene.json with file tools, then use these MCP tools to validate and inspect the files. MCP does not provide the public scene-document mutation tools found in earlier experimental contracts.| Tool | Purpose |
|---|---|
scene_get_capabilities | Read the native scene format and editor capabilities. Pass full: true for the expanded contract. |
scene_render_file | Validate and render a detached scene file without changing the active Editor document. |
scene_flatten_file | Resolve imports and write one import-free scene file. |
scene_open | Open an existing, import-free scene file in Editor. |
scene_get_state | Read the active file, selection, hashes, diagnostics, dirty or conflict state, runtime readiness, and render statistics. |
scene_select | Replace the Editor selection with the supplied nodeIds array. |
scene_set_preview_visibility | Apply preview-only visibility, context, ghosting, locking, solo, or saved-arrangement operations. |
scene_set_camera | Set a named, stepped, orbit, perspective, or orthographic Editor camera. |
scene_screenshot | Capture the native scene with explicit camera and size options. |
scene_measure_image_regions | Measure named regions when you already have a valid captureToken. |
iwsdk.scene.v1. Node content can be a group, asset, instance, or pattern. Scene resources currently describe prefabs. Asset nodes refer to asset identifiers supplied by the project manifest, including identifiers for procedural Three.js assets.scene_capture_review operation that issues the trusted captureToken required by scene_measure_image_regions. Do not present region measurement as a runnable end-to-end public workflow unless another supported integration has already supplied a valid, session-bound token.scene_render_file first, scene_flatten_file second, and scene_open only on the flattened output. Configure the application to load that flat output through iwsdk.config.json. A successful flatten proves sourceRuntimeHash === outputRuntimeHash; it does not imply that source-document, composed-document, and runtime hashes are the same. See Workflows.| Tool | Purpose |
|---|---|
scene_get_render_stats | Read runtime renderer counters, scene bounds, resource counts, and scene asset, environment, light, and material summaries. |
scene_get_runtime_hierarchy | Traverse the live application Object3D hierarchy. |
scene_get_object_transform | Read local and global transforms by runtime UUID or native scene node ID. |
scene_get_render_stats returns calls, triangles, points, lines, geometries, textures, programs, meshCount, materialCount, shadowCasters, worldBounds, framingBounds, environment, sceneAssets, sceneEnvironment, sceneLights, and sceneMaterials. Editor-only fields such as objectCount, nodeCount, geometryCount, visibleNodeIds, and frameTimeSamplesMs come from Editor state or capture results, not this runtime tool. scene_get_object_transform also reports the position relative to the XR origin, which can be passed to xr_look_at.| Tool | Purpose |
|---|---|
ui_list_assets | List UIKitML assets available to the project. |
ui_render_preview | Render a UIKitML preview without inserting it into a scene. |
| Tool | Purpose |
|---|---|
ecs_pause | Pause ECS system updates while the render loop continues. |
ecs_resume | Resume ECS system updates with a capped first-frame delta. |
ecs_step | Advance a fixed number of ECS frames while paused. |
ecs_query_entity | Read component data for an entity index. |
ecs_find_entities | Find entities by components or an object-name pattern. |
ecs_list_systems | List systems, priorities, pause state, configuration keys, and query counts. |
ecs_list_components | List registered component schemas. |
ecs_toggle_system | Pause or resume one system by name. |
ecs_set_component | Set one component field after inspecting its schema and current value. |
ecs_snapshot | Store a labeled snapshot of ECS entity and component state. |
ecs_diff | Compare two labeled snapshots. |
ecs_pause before ecs_step, and call ecs_resume when deterministic inspection is complete.expectedTab precondition added by the CLI. Supply the tab identity returned by current state when a sequence must fail instead of acting on a stale or reloaded tab.| Claim | Use this evidence |
|---|---|
Native scene layout or framing | scene_screenshot, with captureMode: render to omit Editor overlays or captureMode: editor to include selection and editing overlays |
Validation, dirty, conflict, file, or runtime-readiness diagnostics | scene_get_state |
Application behavior, system-driven motion, or input results | browser_screenshot and browser_get_console_logs |
Live application hierarchy or transform | scene_get_runtime_hierarchy and scene_get_object_transform |
Deterministic ECS state change | ecs_snapshot, ecs_diff, and targeted entity queries |
scene_get_state. A runtime screenshot is not a substitute for either source.