Isaacsim Mcp Server

io.github.whats2000由 GitHub 账号 whats2000 发布v0.6.1更新于 Oct 24, 2026

Control NVIDIA Isaac Sim robotics simulator through MCP with 42 tools

概览

AI 生成的概览

通过 MCP 兼容编辑器控制正在运行的 NVIDIA Isaac Sim 机器人仿真器,可创建场景、机器人、传感器并运行仿真。

可以做什么
提供 9 大类共 42 个工具:场景检查与物理设置、对象创建与变换、灯光、从 107 个以上机器人库中生成机器人、相机与 LiDAR 传感器、材质、USD 与 URDF 资产加载、Action Graph,以及仿真控制。仿真工具包括播放、暂停、停止、单步、修改物理参数、读取日志,以及执行 Python 脚本并支持热重载。它通过本地 TCP 套接字与 Isaac Sim 扩展通信。
适用场景
当你使用 NVIDIA Isaac Sim,并希望在编辑器中而非 Isaac Sim 图形界面里搭建或调试机器人场景、生成机器人、采集传感器数据或迭代控制器脚本时,适合使用。适用于 Linux 或 Windows 上的机器人仿真与研究流程。
运行要求
需要本地安装 NVIDIA Isaac Sim 5.1.0 至 6.0.1(PhysX 或 Newton)、Python 3.10+,以及 Linux(Ubuntu 22.04+)或 Windows 10/11;不支持 macOS。PyPI 包通过 pip 安装,同时还需启动仓库中的 Isaac Sim 扩展。可选的 3D 生成使用 BEAVER3D_MODEL、ARK_API_KEY 和 NVIDIA_API_KEY 环境变量。多实例使用 ISAAC_MCP_PORT。
安装前请注意
execute_script 和 reload_script 工具会在 Isaac Sim 内执行任意 Python,场景工具会创建、删除和修改仿真内容,因此提示可能改变或删除运行会话中的工作。可选的 3D 生成会使用 ARK_API_KEY 和 NVIDIA_API_KEY 向外部服务发送请求。已知缺陷影响部分版本:Newton 关节驱动不收敛、RTX 相机无法删除、LiDAR 点云可能需要重试。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Isaacsim Mcp Server,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Isaac Sim MCP Server

[PyPI version] [Isaac Sim 5.1.0 - 6.0.1] [Python 3.10+] [License: MIT] [MCP Quality] [isaacsim-mcp-server MCP server]

Natural language control for NVIDIA Isaac Sim through the Model Context Protocol (MCP).

Connect any MCP-compatible IDE (Cursor, VS Code, Claude Code, Windsurf, Antigravity, JetBrains) to a running Isaac Sim instance and control it with plain-English prompts -- create robots, build scenes, run simulations, and debug physics all from your editor.

[Robot Simulate Demo]


Highlights

  • 43 tools across 9 categories -- scene, objects, lighting, robots, sensors, materials, assets, simulation, graphs
  • 107+ robots auto-discovered from the Isaac Sim asset library (Franka, UR, Unitree, Boston Dynamics, and more)
  • Step-and-observe debugging -- step the simulation and inspect prim positions, joint states, and physics in one call
  • Hot-reload -- iterate on Python controllers without restarting Isaac Sim
  • Multi-instance -- run multiple Isaac Sim sessions side by side on different ports
  • Built for Isaac Sim 5.1.0 - 6.0.1 (PhysX + Newton) with a modular adapter layer for version isolation

Installation

Option A: pip install (recommended)

bash
pip install isaacsim-mcp-server

This installs the MCP server and the isaacsim-mcp-server CLI. You still need the Isaac Sim extension from the repo (see Launching Isaac Sim below).

Option B: From source

bash
git clone https://github.com/whats2000/isaacsim-mcp-servercd isaacsim-mcp-server./scripts/setup_python_env.sh

Requirements

RequirementVersion
NVIDIA Isaac Sim5.1.0 - 6.0.1 (PhysX or Newton)
Python3.10+
uvlatest (for source install)
PlatformLinux (Ubuntu 22.04+) or Windows 10/11

[!IMPORTANT] Linux and Windows are supported. On Windows, use the PowerShell launcher scripts/run_isaac_sim.ps1 in place of the .sh scripts (see below). macOS is not supported because NVIDIA Isaac Sim does not run on macOS.

[!NOTE] We are welcoming contributions to support other Isaac Sim versions. The adapter layer is designed for easy version isolation.


Quick Start

1. Set up the environment

If you installed from source:

bash
./scripts/setup_python_env.sh

On Windows, uv sync creates the virtual environment (.venv) and installs the package plus its dependencies:

powershell
uv sync

2. Launch Isaac Sim with the extension

bash
./scripts/run_isaac_sim.sh

You should see in the logs:

Registered 43 command handlersIsaac Sim MCP server started on localhost:8766

The script looks for Isaac Sim in $HOME/isaacsim; set ISAACSIM_ROOT to use a different install.

Choosing the physics engine. Isaac Sim 6.0+ ships PhysX (default) and Newton backends. Select one with --newton / --physx, or ISAACSIM_ENGINE:

bash
./scripts/run_isaac_sim.sh                  # PhysX (default)./scripts/run_isaac_sim.sh --newton         # NewtonISAACSIM_ENGINE=newton ./scripts/run_isaac_sim.sh

The same flags work with scripts/launch_isaac_sim_mcp.sh. Everything else on the command line is forwarded to Kit untouched. The server auto-detects the active engine, so no MCP-side configuration changes. Newton requires 6.0 or newer; asking for it on 5.1.0 fails with a clear message.

On Windows, use the PowerShell launcher instead. It takes the same engine selection and forwards extra arguments to Kit:

powershell
.\scripts\run_isaac_sim.ps1                          # PhysX (default).\scripts\run_isaac_sim.ps1 -Engine newton           # Newton$env:ISAACSIM_ENGINE = 'newton'; .\scripts\run_isaac_sim.ps1

The script resolves the install from -IsaacSimRoot, then $env:ISAACSIM_ROOT, then a local source build, then C:\isaacsim, then %USERPROFILE%\isaacsim. It also creates a writable USD working directory (.cache\usd) since Windows has no /tmp.

Optional: Beaver3D / NVIDIA API keys for 3D generation
bash
export BEAVER3D_MODEL="<your beaver3d model name>"export ARK_API_KEY="<your beaver3d api key>"export NVIDIA_API_KEY="<your nvidia api key>"

On Windows (PowerShell):

powershell
$env:BEAVER3D_MODEL = "<your beaver3d model name>"$env:ARK_API_KEY = "<your beaver3d api key>"$env:NVIDIA_API_KEY = "<your nvidia api key>"

3. Connect your IDE

Add the MCP server to your editor. Replace the path with your actual repo location. The command examples are for Linux/macOS; each guide shows the Windows equivalent, which wraps the PowerShell launcher scripts\run_mcp_server.ps1.

Claude Code (CLI)
bash
claude mcp add isaac-sim /path/to/isaacsim-mcp-server/scripts/run_mcp_server.sh

Or edit ~/.claude.json / .mcp.json:

json
{  "mcpServers": {    "isaac-sim": {      "command": "/path/to/isaacsim-mcp-server/scripts/run_mcp_server.sh"    }  }}

On Windows, wrap the PowerShell launcher:

bash
claude mcp add isaac-sim -- powershell -NoProfile -ExecutionPolicy Bypass -File C:\path\to\isaacsim-mcp-server\scripts\run_mcp_server.ps1
json
{  "mcpServers": {    "isaac-sim": {      "command": "powershell",      "args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-File", "C:\\path\\to\\isaacsim-mcp-server\\scripts\\run_mcp_server.ps1"]    }  }}
VS Code

Create .vscode/mcp.json in your workspace:

json
{  "servers": {    "isaac-sim": {      "command": "/path/to/isaacsim-mcp-server/scripts/run_mcp_server.sh"    }  }}

On Windows, wrap the PowerShell launcher:

json
{  "servers": {    "isaac-sim": {      "command": "powershell",      "args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-File", "C:\\path\\to\\isaacsim-mcp-server\\scripts\\run_mcp_server.ps1"]    }  }}
Cursor

Open Cursor Settings > MCP, or edit ~/.cursor/mcp.json:

json
{  "mcpServers": {    "isaac-sim": {      "command": "/path/to/isaacsim-mcp-server/scripts/run_mcp_server.sh"    }  }}

On Windows, wrap the PowerShell launcher:

json
{  "mcpServers": {    "isaac-sim": {      "command": "powershell",      "args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-File", "C:\\path\\to\\isaacsim-mcp-server\\scripts\\run_mcp_server.ps1"]    }  }}
Claude Desktop

Edit the config file for your platform:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
json
{  "mcpServers": {    "isaac-sim": {      "command": "/path/to/isaacsim-mcp-server/scripts/run_mcp_server.sh"    }  }}

On Windows, wrap the PowerShell launcher:

json
{  "mcpServers": {    "isaac-sim": {      "command": "powershell",      "args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-File", "C:\\path\\to\\isaacsim-mcp-server\\scripts\\run_mcp_server.ps1"]    }  }}
Windsurf

Open Windsurf Settings > MCP or edit ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "isaac-sim": {      "command": "/path/to/isaacsim-mcp-server/scripts/run_mcp_server.sh"    }  }}

On Windows, wrap the PowerShell launcher:

json
{  "mcpServers": {    "isaac-sim": {      "command": "powershell",      "args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-File", "C:\\path\\to\\isaacsim-mcp-server\\scripts\\run_mcp_server.ps1"]    }  }}
Antigravity

Open the agent side panel, click … > MCP Servers > Manage MCP Servers > View raw config, or edit ~/.gemini/config/mcp_config.json (global) or .agents/mcp_config.json (workspace):

json
{  "mcpServers": {    "isaac-sim": {      "command": "/path/to/isaacsim-mcp-server/scripts/run_mcp_server.sh"    }  }}

On Windows, wrap the PowerShell launcher:

json
{  "mcpServers": {    "isaac-sim": {      "command": "powershell",      "args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-File", "C:\\path\\to\\isaacsim-mcp-server\\scripts\\run_mcp_server.ps1"]    }  }}
JetBrains IDEs

Go to Settings > Tools > AI Assistant > MCP Servers and add the server, with the command /path/to/isaacsim-mcp-server/scripts/run_mcp_server.sh. See the JetBrains MCP docs for details.

On Windows, set the command to powershell and the arguments to -NoProfile -ExecutionPolicy Bypass -File C:\path\to\isaacsim-mcp-server\scripts\run_mcp_server.ps1.

4. Start prompting

text
Check the connection with get_scene_info.If the scene is empty, create a physics scene.Add a Franka robot at the origin and a Go1 quadruped at [2, 0, 0].

Architecture

text
MCP Client (IDE)      |      visaacsim-mcp-server          (PyPI package / CLI)      |      v  TCP socket (localhost:8766)      |isaac.sim.mcp_extension      (Omniverse extension)      |      vHandlers -> Adapter -> Isaac Sim 5.1 / 6.0 APIs

Tools

43 tools across 9 categories:

CategoryCountWhat you can do
Scene7Inspect scenes, create physics, list/load environments, browse prims
Objects4Create, delete, transform, and clone primitives
Lighting2Create and tune lights
Robots6Spawn 107+ robots, inspect joints, set positions, refresh library
Sensors4Create cameras/LiDAR, capture images, get point clouds
Materials2Create and apply materials
Assets4Import URDF, load/search USD, generate 3D models
Graphs2Build and edit Action Graphs (OnPlaybackTick, ScriptNode, script file attachment)
Simulation11Play/pause/stop/step, execute Python, inspect physics, hot-reload
Full tool list

Scene: get_scene_info create_physics_scene clear_scene list_prims get_prim_info list_environments load_environment

Objects: create_object delete_object transform_object clone_object

Lighting: create_light modify_light

Robots: create_robot list_available_robots refresh_robot_library get_robot_info set_joint_positions get_joint_positions

Sensors: create_camera capture_image create_lidar get_lidar_point_cloud

Materials: create_material apply_material

Assets: import_urdf load_usd search_usd generate_3d

Graphs: create_action_graph edit_action_graph

Simulation: play_simulation pause_simulation stop_simulation step_simulation set_physics_params get_isaac_logs get_simulation_state get_physics_state get_joint_config set_drive_params execute_script reload_script


Known Limitations

Open defects a normal session can hit. Each is warned about at the point of use where that is possible; this list is for choosing a runtime before you start.

AffectsWhat happensIssue
6.0 NewtonJoint drives do not converge — a commanded target is overshot and the joint keeps going, and joint limits are not enforced. Scene setup, stepping and inspection are fine; run motion work on PhysX (isaac-sim.sh).#21
6.0The first RTX camera created in a session cannot be removed. create_camera warns once when it hands you that camera.#20
5.1get_lidar_point_cloud fills on roughly a third of reads, so a caller must retry. A lidar created while the timeline is running never fills at all — create it stopped.#31
5.1An RTX lidar prim cannot be deleted; the prim is left behind as a Camera. create_lidar refuses such a path and names a free one.#25

Example Prompts

Scene bootstrap

text
Check the connection with get_scene_info. If the scene is empty, create a physics scene.Add stronger lighting and place a camera that looks at the workspace.

Robot layout

text
Create three Franka robots in a row at [0,0,0], [2,0,0], and [4,0,0].Then add a Go1 robot at [1, 3, 0].

Environment loading

text
List available environments, choose a warehouse-like one, and load it.Create a camera and capture an image.

Asset search and 3D generation

text
Search for a rusty desk, load the best result near [0, 5, 0], scaled to [2, 2, 2].

Advanced Usage

Multiple Instances

Run multiple Isaac Sim sessions side by side. Each uses a different port (auto-assigned from 8766).

bash
# First instance (default port 8766)claude mcp add isaac-sim /path/to/isaacsim-mcp-server/scripts/run_mcp_server.sh
# Second instance (port 8767)claude mcp add isaac-sim-2 -e ISAAC_MCP_PORT=8767 -- /path/to/isaacsim-mcp-server/scripts/run_mcp_server.sh
JSON config for multiple instances
json
{  "mcpServers": {    "isaac-sim": {      "command": "/path/to/isaacsim-mcp-server/scripts/run_mcp_server.sh"    },    "isaac-sim-2": {      "command": "/path/to/isaacsim-mcp-server/scripts/run_mcp_server.sh",      "env": { "ISAAC_MCP_PORT": "8767" }    }  }}

Desktop Launcher (Linux)

Install a dedicated Isaac Sim MCP application icon:

bash
./scripts/install_desktop_entry.sh

This creates a launcher that auto-assigns ports, waits for the extension socket, and cleans up on exit.

Recommended Workflow

  1. Start with get_scene_info to verify the connection
  2. Create a physics scene if the stage is empty
  3. Prefer purpose-built tools before execute_script
  4. Use list_available_robots / list_environments before loading
  5. Use create_action_graph to wire OnPlaybackTick → ScriptNode controllers
  6. Use step_simulation with observe_prims and observe_joints for debugging
  7. Use reload_script to iterate on controllers without restarting

Demo: Franka Pick-and-Place

A ready-to-run demo at demo/franka_pick_place.py using RMPflow for motion planning:

text
Please use the Isaac MCP tool complete this:
Create a physics scene with a ground plane, then spawn a Franka FR3 robot at the origin.
Add two textured tables with a gap along Y. Place a small textured cube with physics enabled on top of the first table.
Use `create_action_graph` to wire `OnPlaybackTick` → `ScriptNode`, and write a pick-and-place controller script using RMPflow for motion planning. Save the script to the `demo/` directory.
Use `get_prim_info` to query actual positions and sizes of the tables and cube before writing the controller — do not hardcode coordinates.
Start the simulation with Play. The robot should pick the cube from table 1 and place it on table 2. Verify the process using `step_simulation` with `observe_prims` on the cube to confirm it reaches table 2.

Uses create_action_graph with script_file for one-step Action Graph + ScriptNode setup, plus the observability tools: get_joint_config, step_simulation with observe_prims, get_physics_state, and edit_action_graph for script hot-reload.


Development

bash
# Run the MCP inspector./.venv/bin/python -m mcp dev ./isaac_mcp/server.py

The inspector is available at http://localhost:5173.

Setup Notes

ScriptPurposeDefault
setup_python_env.shCreate venv and install packagePython 3.10
run_isaac_sim.shLaunch Isaac Sim with extension (Linux)$HOME/isaacsim
run_isaac_sim.ps1Launch Isaac Sim with extension (Windows)C:\isaacsim
run_mcp_server.shStart the MCP server (Linux)Port 8766
run_mcp_server.ps1Start the MCP server (Windows)Port 8766
launch_isaac_sim_mcp.shCombined launcherAuto-assigns port
dev_mcp_server.shDev server with hot-reloadPort 8766

Override defaults:

bash
PYTHON_SPEC=3.11 ./scripts/setup_python_env.shISAACSIM_ROOT=/opt/isaacsim ./scripts/run_isaac_sim.shISAACSIM_ENGINE=newton ./scripts/run_isaac_sim.sh

Engine selection lives in scripts/lib/isaac_launcher.sh: each engine maps to the launcher script Isaac Sim ships for it. Adding an entry to that map is all a new backend needs — it enables both ISAACSIM_ENGINE=<name> and --<name> in every launcher script.

Troubleshooting

If Isaac Sim says Can't find extension with name: isaac.sim.mcp_extension:

bash
# Make sure you're in the repo rootpwdtest -f ./isaac.sim.mcp_extension/config/extension.toml && echo OK

Note: --ext-folder must point to the repo root, not to isaac.sim.mcp_extension/ directly.


Contributing

Pull requests are welcome. Improvements to tools, docs, adapters, and tests are all useful.

License

MIT License. Copyright (c) 2023-2025 omni-mcp, Copyright (c) 2026 whats2000. See LICENSE.

来源:README.md,提交 9d166f7

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.6.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分