pnpm test:cli-mcp-parity pnpm test:reference-cli-mcp-parity pnpm test:mcp-parity
test:cli-mcp-parity for runtime tool contracts or CLI mappings. Use test:reference-cli-mcp-parity for @iwsdk/reference mappings. Use test:mcp-parity when a change touches both surfaces or before a full contract review.xr_get_session_statusxr_accept_sessionxr_end_sessionxr_get_transform| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | headset, controller-left, controller-right, hand-left, hand-right |
xr_set_transform| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | Device to move |
position | {x, y, z} | No | World position in meters. Y=1.6 is standing height. |
orientation | {x,y,z,w} or {pitch,yaw,roll} | No | Quaternion or Euler angles (degrees) |
xr_look_at| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | Device to orient |
target | {x, y, z} | Yes | World position to look at |
moveToDistance | number | No | Also move the device to this distance from the target |
xr_animate_to| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | Device to animate |
position | {x, y, z} | No | Target world position in meters |
orientation | {x,y,z,w} or {pitch,yaw,roll} | No | Target rotation |
duration | number | No | Animation duration in seconds (default: 0.5) |
xr_set_input_mode| Parameter | Type | Required | Description |
|---|---|---|---|
mode | string | Yes | controller or hand |
xr_set_connected| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | controller-left, controller-right, hand-left, hand-right |
connected | boolean | Yes | Whether the device should be connected |
xr_get_select_value| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | controller-left, controller-right, hand-left, hand-right |
xr_set_select_value| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | controller-left, controller-right, hand-left, hand-right |
value | number | Yes | 0 (released) to 1 (fully pressed/pinched) |
xr_selectselectstart, select, and selectend events.| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | controller-left, controller-right, hand-left, hand-right |
duration | number | No | How long to hold in seconds (default: 0.15) |
xr_get_gamepad_state| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | controller-left or controller-right |
xr_set_gamepad_state| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | controller-left or controller-right |
buttons | [{index, value, touched?}] | No | Button states to set |
axes | [{index, value}] | No | Axis values to set (0=thumbstick X, 1=thumbstick Y) |
xr_get_device_statexr_set_device_statestate parameter, resets everything to defaults.| Parameter | Type | Required | Description |
|---|---|---|---|
state | object | No | Partial device state with headset, inputMode, stereoEnabled, fov, controllers, hands |
browser_screenshotbrowser_get_console_logs| Parameter | Type | Required | Description |
|---|---|---|---|
count | number | No | Maximum number of logs to return (most recent N) |
level | string or string[] | No | Filter by level: log, info, warn, error, debug |
pattern | string | No | Regex pattern to filter log messages |
since | number | No | Return logs since this timestamp (ms since epoch) |
browser_reload_pageMCPRuntime (automatically available in IWSDK projects).scene_get_hierarchy| Parameter | Type | Required | Description |
|---|---|---|---|
parentId | string | No | UUID of parent Object3D to start from (defaults to scene root) |
maxDepth | number | No | Maximum depth to traverse (default: 5) |
scene_get_object_transformpositionRelativeToXROrigin which can be used directly with xr_look_at.| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | UUID of the Object3D (from scene_get_hierarchy) |
MCPRuntime.ecs_pauseecs_resumeecs_stepecs_pause first.| Parameter | Type | Required | Description |
|---|---|---|---|
count | number | No | Number of frames to advance (1-120, default: 1) |
delta | number | No | Fixed time step in seconds (default: 1/72, matching Quest refresh rate) |
ecs_query_entity| Parameter | Type | Required | Description |
|---|---|---|---|
entityIndex | number | Yes | Entity index (from scene_get_hierarchy or ecs_find_entities) |
components | string[] | No | Specific component IDs to include (defaults to all) |
ecs_find_entities| Parameter | Type | Required | Description |
|---|---|---|---|
withComponents | string[] | No | Component IDs entities must have (AND logic) |
withoutComponents | string[] | No | Component IDs entities must NOT have |
namePattern | string | No | Regex to match against entity Object3D name |
limit | number | No | Maximum results (1-50, default: 50) |
ecs_list_systemsecs_list_componentsecs_toggle_system| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | System class name (for example, OrbSystem) |
paused | boolean | No | true to pause, false to resume. Omit to toggle. |
ecs_set_component| Parameter | Type | Required | Description |
|---|---|---|---|
entityIndex | number | Yes | Entity index |
componentId | string | Yes | Component ID (for example, Orb, Transform) |
field | string | Yes | Field name within the component |
value | any | Yes | New value. Scalars: number/string/boolean. Vectors: array (for example, [1,2,3] for Vec3). |
ecs_snapshot| Parameter | Type | Required | Description |
|---|---|---|---|
label | string | No | Label for this snapshot (auto-generated if omitted) |
ecs_diff| Parameter | Type | Required | Description |
|---|---|---|---|
from | string | Yes | Label of the “before” snapshot |
to | string | Yes | Label of the “after” snapshot |