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 分