[Project Share] Isaac Sim MCP Server (LTS) now supports Isaac Sim 5.1.x – 6.0.x on both PhysX and Newton

Hi everyone,

This is a follow-up to my earlier post about the LTS fork of the Isaac Sim MCP server. As promised, Isaac Sim 6.0 support is now available. The same server works across 5.1.x through 6.0.x, on both PhysX and Newton.

Repo: GitHub - whats2000/isaacsim-mcp-server: Isaac Simulation 5.1.0~6.0.1 MCP Extension and Server · GitHub
PyPI: pip install isaacsim-mcp-server

What’s new

Isaac Sim 6.0 adapter. There’s a new V6 adapter built on the 6.0 APIs (isaacsim.core.experimental, SimulationManager, the experimental RTX sensors and the new URDFImporter). The server reads the Isaac Sim version at startup and picks the V5 or V6 adapter for you, so your MCP client config stays the same whichever version you run.

PhysX and Newton, both first-class. Choose the engine when you launch:

./scripts/run_isaac_sim.sh            # PhysX (default)
./scripts/run_isaac_sim.sh --newton   # Newton (6.0+)

On the MCP side there’s nothing to configure. The server detects the active engine live, and get_simulation_state tells the LLM which engine and version it’s talking to. On Newton, stepping is frame-exact and positions are read from Fabric, where Newton keeps its simulated transforms. The server also refuses up front any geometry the MuJoCo solver can’t build, instead of silently leaving physics dead until Kit restarts.

A more honest feedback loop. In the last post I said the feedback loop was the biggest change, and most of the work since then has gone into making that feedback trustworthy:

  • Joint reads report whether a value was measured from physics or just echoes the last command you sent.
  • Every reported position names its frame (local or world).
  • Joint limits come back in the same units as joint positions, and drive gains are reported per radian.
  • A group of tools that used to return “success” for input that did nothing (a typo’d prim path, a wrong-length array) now return errors.

For an agent doing multi-step tasks, a wrong “success” does more damage than a clear error, so this was the priority.

Windows support (community contribution, thanks @punal100): there’s now a PowerShell launcher with the same PhysX/Newton selection as the Linux script.

Everything has been verified on device on Isaac Sim 5.1.0, 6.0.1 PhysX and 6.0.1 Newton.

How does this relate to NVIDIA’s official Isaac Sim MCP?

A few people have asked about this, so to clarify: NVIDIA has an official Isaac Sim MCP in kit-usd-agents. It solves a different problem, and the two work well together:

Official isaacsim_mcp (kit-usd-agents) This project
What it does Knowledge retrieval: searches extensions, code examples, settings and developer guidance Live control: connects to a running Isaac Sim instance
Typical use “What’s the right API or extension for X?” “Spawn this robot, step 10 frames, show me the joint states”
Touches the sim? No Yes: scene, robots, sensors, physics, action graphs, step-and-observe

My recommendation is to install both. The official MCP helps the agent write correct Isaac Sim code: the right APIs, current extensions and real examples. This server lets it run that code against the live sim and see what actually happened. When I use Claude Code with both enabled, it looks up the right API with one, then applies it and checks the result with the other. That noticeably cuts down on hallucinated APIs and blind retries.

Links

Feedback, issues and PRs are welcome, especially from anyone running Newton on custom robots. I’d love to hear what breaks.

Did my contribution to run on Windows!

Many thanks for @whats2000mc for maintaining this project!

Thanks for sharing!