# Isaac Sim robot workbench (pypi · dex-isaac-mcp)

Drive a live Isaac Sim session: any robot, poses, gain tuning, range tests, Isaac Lab training.

- Trust score: 81/100 (high trust)
- Change this week: +2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- pypi · `dex-isaac-mcp`: 81/100 (this document), [markdown](https://verifymcp.io/servers/milokucia-dex-isaac-mcp/dex-isaac-mcp.md), [page](https://verifymcp.io/servers/milokucia-dex-isaac-mcp/dex-isaac-mcp)

## Channel facts

- Registry: `pypi`
- Package: `dex-isaac-mcp`
- Version: `0.1.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it.
  - 1 of 28 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 32 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 76/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 2454 tokens (~68/item across 36 items; 36 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (94% of tools); any adoption earns full credit.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "sim_remove_object" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 37 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the Isaac Sim robot workbench MCP server?

Isaac Sim robot workbench runs locally as a PyPI package, launched with uvx dex-isaac-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add milokucia-dex-isaac-mcp -- uvx dex-isaac-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "milokucia-dex-isaac-mcp": {
      "command": "uvx",
      "args": [
        "dex-isaac-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "milokucia-dex-isaac-mcp": {
      "command": "uvx",
      "args": [
        "dex-isaac-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add milokucia-dex-isaac-mcp -- uvx dex-isaac-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "milokucia-dex-isaac-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "dex-isaac-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add milokucia-dex-isaac-mcp --command uvx --arg dex-isaac-mcp
```

### Hermes

```yaml
mcp_servers:
  milokucia-dex-isaac-mcp:
    command: "uvx"
    args: ["dex-isaac-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "milokucia-dex-isaac-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "dex-isaac-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add milokucia-dex-isaac-mcp -t stdio -c uvx -a dex-isaac-mcp
```

### Other

```json
{
  "mcpServers": {
    "milokucia-dex-isaac-mcp": {
      "command": "uvx",
      "args": [
        "dex-isaac-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 81, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-11-03 (score 66, 0)

- [security regression] Provenance: unverified → fail
- [functional regression] Security disclosure: unverified → fail

### 2026-11-02 (score 66, −14)

- [security regression] Malware scan: pass → unverified
- [security regression] Provenance: fail → unverified
- [security] Stability: 0.97 → pass

### 2026-10-31 (score 80, +1)

- [security regression] Provenance: unverified → fail

### 2026-10-30 (score 79, 0)

- [security regression] Provenance: fail → unverified
- [functional regression] Security disclosure: fail → unverified

### 2026-10-29 (score 79, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-10-26 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-24 (score 62, +1)

- [functional regression] Security disclosure: unverified → fail

## MCP tools (36)

### `sim_status` (~26 tokens)

Report whether the sim daemon is up, its robot, driven joints, poses and parameters.

### `sim_up` (~190 tokens)

Start the daemon container and wait until it answers. Idempotent.

robot: a robot config JSON, path relative to the repo root
(e.g. examples/robots/franka.json); defaults to $ISAAC_MCP_ROBOT. usd: a USD path instead of / overriding
the config's (every joint driven if no config). gui=True is needed for
sim_screenshot; the host must have run `xhost +local:docker` once.
ground=False spawns without a floor (use for range tests).
extra_args go to scripts/simd.py verbatim (e.g. ["--pos-iters", "64"]).
The first start downloads Nucleus assets and builds shader caches: minutes.

Input parameters:

- `extra_args`
- `ground` (boolean)
- `gui` (boolean)
- `robot`
- `timeout` (number)
- `usd`

### `sim_down` (~18 tokens)

Stop the sim daemon; its container removes itself.

### `sim_reload` (~100 tokens)

Restart the daemon to change a spawn property: robot, USD, solver iterations, self-collision.

One Kit start rather than one per experiment; gains stay live via sim_set_params.
Omitted robot/usd fall back to the defaults, not to what was loaded before.

Input parameters:

- `ground` (boolean)
- `gui` (boolean)
- `pos_iters`
- `robot`
- `self_collisions`
- `usd`

### `sim_inspect_joints` (~62 tokens)

List a USD's articulation DOFs, joints excluded from the articulation (loop closures), and roots.

Reads the file, not the live scene, so it shows edits saved from the Isaac
GUI. Defaults to the loaded USD.

Input parameters:

- `usd`

### `sim_get_joint_state` (~28 tokens)

Joint positions (rad/m) and velocities, plus driven joints' normalized positions and limits.

### `sim_get_stats` (~49 tokens)

Per-joint travel and driven-joint mean tracking error since the last reset.

Travel on a passive joint proves a linkage transmits: with zero stiffness it
moves only if its constraint moves it.

### `sim_set_targets` (~71 tokens)

Command the driven joints, normalized 0..1 (lower..upper limit).

Pass `unit` as a full vector in driven order (see sim_status), or `joints`
to set individual joints by name. Targets persist; advance with sim_step.

Input parameters:

- `joints`
- `unit`

### `sim_list_poses` (~31 tokens)

Named poses from the robot config, as {pose: {joint_pattern: 0..1}}.

### `sim_set_pose` (~86 tokens)

Command a named pose. amount blends toward it: 1 = as authored, 0.5 = halfway.

Halfway from the lower limits by default, or from the current targets with
from_current=True. Follow with sim_step, then sim_screenshot to verify.

Input parameters:

- `amount` (number)
- `from_current` (boolean)
- `name` (string, required)

### `sim_step` (~34 tokens)

Advance the simulation n physics steps (dt from sim_status, default 1/120 s).

Input parameters:

- `n` (integer)

### `sim_play` (~31 tokens)

Run the sim continuously in real time (True) or pause it (False).

Input parameters:

- `playing` (boolean)

### `sim_wave` (~30 tokens)

Sweep every driven joint through its range for n steps; return travel stats.

Input parameters:

- `n` (integer)

### `sim_range_test` (~111 tokens)

Drive every driven joint from its lower limit toward `target`, report the fraction reached.

A joint below 0.9 is blocked: self-collision, a binding linkage, or too
little effort for the load. reset=True first puts every joint at its lower
limit and verifies it. Start the daemon with ground=False if the robot can
reach the floor, or the test measures the floor.

Input parameters:

- `reset` (boolean)
- `steps` (integer)
- `target` (number)

### `sim_set_params` (~39 tokens)

Change the driven joints' PD gains and effort limit on the live articulation.

Input parameters:

- `damping`
- `effort`
- `stiffness`

### `sim_set_coupling` (~59 tokens)

Change software-coupling ratios live, keyed by follower joint. 0 releases a follower.

Couplings are declared in the robot config; a follower is driven to
ratio x its leader's target.

Input parameters:

- `ratios` (object, required)

### `sim_spawn_object` (~220 tokens)

Add a prop to the live scene: a primitive or a USD file, with collision.

shape: cuboid (size=[x,y,z]), sphere (radius), cylinder / capsule / cone
(radius, height), or usd (usd=<path>, optional scale). Units are meters and kg.
static=True: a fixed collider (a table, a wall). kinematic=True: a rigid body
that contact cannot move. rot is a (w, x, y, z) quaternion. color is RGB 0..1.
Spawns at /World/Objects/<name>; sim_step to let it fall and settle.

Input parameters:

- `color`
- `friction` (number)
- `height`
- `kinematic` (boolean)
- `mass` (number)
- `name` (string, required)
- `pos` (array, required)
- `radius`
- `rot`
- `scale`
- `shape` (string, required)
- `size`
- `static` (boolean)
- `usd`

### `sim_list_objects` (~32 tokens)

Every spawned prop with its current world pose (pos in m, rot as w, x, y, z).

### `sim_remove_object` (~21 tokens)

Delete a spawned prop.

Input parameters:

- `name` (string, required)

### `sim_set_camera` (~59 tokens)

Point the viewport camera, e.g. eye=[1.2, 1.2, 1.0] target=[0, 0, 0.3].

Input parameters:

- `eye` (array, required)
- `target` (array, required)

### `sim_screenshot` (~24 tokens)

Capture the viewport as an image. Requires the daemon started with gui=True.

### `sim_frame_robot` (~138 tokens)

Aim the capture camera so the whole robot fills the frame.

direction points from the robot toward the camera, e.g. [1, 0, 0.3] for a
front view slightly from above (default: the last direction used).
margin > 1 leaves room around the robot. raise_frac lifts it in the frame
(fraction of its size), e.g. 0.15 to clear recording captions.
Then sim_capture or sim_record_start.

Input parameters:

- `direction`
- `height` (integer)
- `margin` (number)
- `raise_frac` (number)
- `width` (integer)

### `sim_set_capture_camera` (~38 tokens)

Place the capture camera by hand (sim_frame_robot does it automatically).

Input parameters:

- `eye` (array, required)
- `target` (array, required)

### `sim_set_backdrop` (~59 tokens)

Put a plain panel (RGB 0..1) behind the robot, facing the capture camera; no color removes it.

For clean footage, also start the daemon with ground=False.

Input parameters:

- `color`
- `size` (number)

### `sim_capture` (~39 tokens)

A frame from the capture camera. Works headless; no GUI or viewport needed.

Input parameters:

- `height` (integer)
- `width` (integer)

### `sim_record_start` (~87 tokens)

Start recording the capture camera: one frame every `every` physics steps.

Everything that steps the sim is recorded (sim_step, sim_wave, sim_range_test).
caption is drawn along the bottom of each frame; change it with sim_record_caption.

Input parameters:

- `caption` (string)
- `every` (integer)
- `height` (integer)
- `width` (integer)

### `sim_record_caption` (~31 tokens)

Change the caption drawn on frames recorded from now on ('' for none).

Input parameters:

- `text` (string, required)

### `sim_record_stop` (~74 tokens)

Stop recording and write an animated GIF; returns its path on the host.

At the default every=2 and dt=1/120, fps=30 plays back at half speed; 60 is real time.

Input parameters:

- `fps` (number)
- `hold_last` (number)
- `name` (string)

### `sim_sweep` (~114 tokens)

Compare several values of one live parameter inside the single session.

param: stiffness, damping, effort, or "coupling:<follower>". For each value
it applies the parameter and runs `test` ("wave" or "range") for `steps`.
The original value is restored afterwards, even on error. A diverging
solver is recorded as a result, not raised.

Input parameters:

- `param` (string, required)
- `steps` (integer)
- `test` (string)
- `values` (array, required)

### `train_start` (~141 tokens)

Launch a headless Isaac Lab training run in its own container; returns at once.

task is a registered gym id (e.g. Isaac-Cartpole-v0). run_name defaults to
'<task>_<timestamp>'; keep it to find the run later. extra_args go to the
training script verbatim (e.g. Hydra overrides). device pins one GPU index.
Independent of the daemon and of this MCP session.

Input parameters:

- `checkpoint`
- `device`
- `extra_args`
- `max_iterations`
- `num_envs`
- `run_name`
- `seed`
- `task` (string, required)

### `train_list` (~23 tokens)

List training runs: live or recent containers, and log directories holding checkpoints.

### `train_status` (~31 tokens)

Container state, checkpoints, and latest TensorBoard scalar values for one run.

Input parameters:

- `run_name` (string, required)

### `train_logs` (~33 tokens)

Tail a running training container's stdout/stderr.

Input parameters:

- `run_name` (string, required)
- `tail` (integer)

### `train_stop` (~23 tokens)

Stop a training run's container.

Input parameters:

- `run_name` (string, required)

### `train_checkpoints` (~28 tokens)

List a run's saved checkpoints with step and size.

Input parameters:

- `run_name` (string, required)

### `train_metrics` (~53 tokens)

TensorBoard scalars for a run: no tag lists tag names; a tag returns its series, downsampled.

Input parameters:

- `max_points` (integer)
- `run_name` (string, required)
- `tag`

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/milokucia-dex-isaac-mcp/dex-isaac-mcp#diagnostics

## Score history

- 2026-11-05: 81
- 2026-11-04: 81
- 2026-11-03: 66
- 2026-11-02: 66
- 2026-11-01: 80
- 2026-10-31: 80
- 2026-10-30: 79
- 2026-10-29: 79
- 2026-10-28: 63
- 2026-10-27: 63
- 2026-10-26: 63
- 2026-10-25: 62
- 2026-10-24: 62
- 2026-10-23: 61
- 2026-10-22: 76
- 2026-10-21: 60
- 2026-10-20: 75
- 2026-10-19: 59
- 2026-10-18: 74
- 2026-10-17: 73
- 2026-10-16: 58
- 2026-10-15: 72
- 2026-10-14: 72
- 2026-10-13: 67
- 2026-10-12: 67
- 2026-10-04: 67
- 2026-10-03: 52

## Common questions

### What is the Isaac Sim robot workbench MCP server?

Isaac Sim robot workbench is an MCP server listed in the public MCP registry as io.github.Milokucia/dex-isaac-mcp. Drive a live Isaac Sim session: any robot, poses, gain tuning, range tests, Isaac Lab training. This page covers its PyPI package (dex-isaac-mcp).

### Is the Isaac Sim robot workbench MCP server safe to use?

Isaac Sim robot workbench scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Isaac Sim robot workbench MCP server expose?

Isaac Sim robot workbench exposes 36 tools: sim_status, sim_up, sim_down, sim_reload, sim_inspect_joints, and 31 more. Their descriptions and schemas cost roughly 2,233 tokens of context every time the server is loaded.

### Is the Isaac Sim robot workbench MCP server still maintained?

Isaac Sim robot workbench is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Isaac Sim robot workbench MCP server under?

Isaac Sim robot workbench declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

### What did VerifyMCP test on the Isaac Sim robot workbench MCP server?

VerifyMCP ran 16 checks on Isaac Sim robot workbench, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to a PyPI package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- PyPI project: https://pypi.org/project/dex-isaac-mcp/
- Socket report: https://socket.dev/pypi/package/dex-isaac-mcp
- Repository: https://github.com/Milokucia/dex-isaac-mcp
- Changelog RSS feed: https://verifymcp.io/servers/milokucia-dex-isaac-mcp/dex-isaac-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/milokucia-dex-isaac-mcp/dex-isaac-mcp/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/milokucia-dex-isaac-mcp/dex-isaac-mcp.json
- HTML version of this page: https://verifymcp.io/servers/milokucia-dex-isaac-mcp/dex-isaac-mcp
