Isaac Sim MCP Server

Conecta cualquier IDE compatible con MCP (Cursor, VS Code, Claude Code, Windsurf, JetBrains) a una instancia en ejecución de Isaac Sim y contrólala con comandos en lenguaje natural: crea robots, construye escenas, ejecuta simulaciones y depura física todo desde tu editor.

Documentación

Isaac Sim MCP Server

PyPI version Isaac Sim 5.1.0 Python 3.10+ License: MIT MCP Quality

Control por lenguaje natural para NVIDIA Isaac Sim a través del Model Context Protocol (MCP).

Conecta cualquier IDE compatible con MCP (Cursor, VS Code, Claude Code, Windsurf, JetBrains) a una instancia de Isaac Sim en ejecución y contrólala con prompts en lenguaje natural: crea robots, construye escenas, ejecuta simulaciones y depura física desde tu editor.

Robot Simulate Demo


Aspectos destacados

  • 42 herramientas en 9 categorías: escena, objetos, iluminación, robots, sensores, materiales, activos, simulación, gráficos
  • Más de 107 robots descubiertos automáticamente desde la biblioteca de activos de Isaac Sim (Franka, UR, Unitree, Boston Dynamics y más)
  • Depuración paso a paso y observación: avanza la simulación e inspecciona posiciones de prims, estados de articulaciones y física en una sola llamada
  • Recarga en caliente: itera sobre controladores Python sin reiniciar Isaac Sim
  • Multi-instancia: ejecuta múltiples sesiones de Isaac Sim en paralelo en diferentes puertos
  • Construido para Isaac Sim 5.1.0 con una capa de adaptadores modular para aislamiento de versiones

Instalación

Opción A: pip install (recomendada)

pip install isaacsim-mcp-server

Esto instala el servidor MCP y la CLI isaacsim-mcp-server. Aún necesitas la extensión de Isaac Sim del repositorio (consulta Iniciar Isaac Sim a continuación).

Opción B: Desde el código fuente

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

Requisitos

RequisitoVersión
NVIDIA Isaac Sim5.1.0
Python3.10+
uvúltima (para instalación desde el código fuente)
PlataformaLinux (Ubuntu 22.04+)

[!IMPORTANTE] Actualmente solo se admite Linux. El soporte para Windows está planificado. macOS no es compatible porque NVIDIA Isaac Sim no se ejecuta en macOS.

[!NOTA] Agradecemos contribuciones para admitir otras versiones de Isaac Sim. La capa de adaptadores está diseñada para facilitar el aislamiento de versiones.


Inicio rápido

1. Configura el entorno

Si instalaste desde el código fuente:

./scripts/setup_python_env.sh

2. Inicia Isaac Sim con la extensión

./scripts/run_isaac_sim.sh

Deberías ver en los registros:

Registered 41 command handlers
Isaac Sim MCP server started on localhost:8766
Opcional: claves de API de Beaver3D / NVIDIA para generación 3D
export BEAVER3D_MODEL="<your beaver3d model name>"
export ARK_API_KEY="<your beaver3d api key>"
export NVIDIA_API_KEY="<your nvidia api key>"

3. Conecta tu IDE

Añade el servidor MCP a tu editor. Reemplaza la ruta con la ubicación real de tu repositorio.

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

O edita ~/.claude.json / .mcp.json:

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

Crea .vscode/mcp.json en tu espacio de trabajo:

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

Abre Cursor Settings > MCP, o edita ~/.cursor/mcp.json:

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

Edita el archivo de configuración para tu plataforma:

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

Abre Windsurf Settings > MCP o edita ~/.codeium/windsurf/mcp_config.json:

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

Ve a Settings > Tools > AI Assistant > MCP Servers y añade el servidor. Consulta la documentación de MCP de JetBrains para más detalles.

4. Empieza a usar prompts

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].

Arquitectura

MCP Client (IDE)
      |
      v
isaacsim-mcp-server          (PyPI package / CLI)
      |
      v  TCP socket (localhost:8766)
      |
isaac.sim.mcp_extension      (Omniverse extension)
      |
      v
Handlers -> Adapter -> Isaac Sim 5.1.0 APIs

Herramientas

42 herramientas en 9 categorías:

CategoríaCantidadQué puedes hacer
Escena7Inspeccionar escenas, crear física, listar/cargar entornos, explorar prims
Objetos4Crear, eliminar, transformar y clonar primitivas
Iluminación2Crear y ajustar luces
Robots6Generar más de 107 robots, inspeccionar articulaciones, establecer posiciones, actualizar biblioteca
Sensores4Crear cámaras/LiDAR, capturar imágenes, obtener nubes de puntos
Materiales2Crear y aplicar materiales
Activos4Importar URDF, cargar/buscar USD, generar modelos 3D
Gráficos2Construir y editar Action Graphs (OnPlaybackTick, ScriptNode, adjuntar archivos de script)
Simulación11Reproducir/pausar/detener/avanzar, ejecutar Python, inspeccionar física, recarga en caliente
Lista completa de herramientas

Escena: get_scene_info create_physics_scene clear_scene list_prims get_prim_info list_environments load_environment

Objetos: create_object delete_object transform_object clone_object

Iluminación: create_light modify_light

Robots: create_robot list_available_robots refresh_robot_library get_robot_info set_joint_positions get_joint_positions

Sensores: create_camera capture_image create_lidar get_lidar_point_cloud

Materiales: create_material apply_material

Activos: import_urdf load_usd search_usd generate_3d

Gráficos: create_action_graph edit_action_graph

Simulación: play_simulation pause_simulation stop_simulation step_simulation set_physics_params get_isaac_logs get_simulation_state get_physics_state get_joint_config execute_script reload_script


Ejemplos de prompts

Arranque de escena

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.

Disposición de robots

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].

Carga de entornos

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

Búsqueda de activos y generación 3D

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

Uso avanzado

Múltiples instancias

Ejecuta múltiples sesiones de Isaac Sim en paralelo. Cada una usa un puerto diferente (asignado automáticamente desde 8766).

# 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
Configuración JSON para múltiples instancias
{
  "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" }
    }
  }
}

Lanzador de escritorio (Linux)

Instala un icono de aplicación dedicado de Isaac Sim MCP:

./scripts/install_desktop_entry.sh

Esto crea un lanzador que asigna puertos automáticamente, espera el socket de la extensión y limpia al salir.

Flujo de trabajo recomendado

  1. Comienza con get_scene_info para verificar la conexión
  2. Crea una escena de física si el escenario está vacío
  3. Prefiere herramientas específicas antes de execute_script
  4. Usa list_available_robots / list_environments antes de cargar
  5. Usa create_action_graph para conectar controladores OnPlaybackTick → ScriptNode
  6. Usa step_simulation con observe_prims y observe_joints para depurar
  7. Usa reload_script para iterar sobre controladores sin reiniciar

Demo: Pick-and-Place con Franka

Una demo lista para ejecutar en demo/franka_pick_place.py que usa RMPflow para planificación de movimiento:

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.

Usa create_action_graph con script_file para una configuración de Action Graph + ScriptNode en un solo paso, además de las herramientas de observabilidad: get_joint_config, step_simulation con observe_prims, get_physics_state y edit_action_graph para la recarga en caliente de scripts.


Desarrollo

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

El inspector está disponible en http://localhost:5173.

Notas de configuración

ScriptPropósitoPredeterminado
setup_python_env.shCrear venv e instalar el paquetePython 3.10
run_isaac_sim.shIniciar Isaac Sim con la extensión$HOME/isaacsim
run_mcp_server.shIniciar el servidor MCPPuerto 8766
launch_isaac_sim_mcp.shLanzador combinadoAsigna puerto automáticamente
dev_mcp_server.shServidor de desarrollo con recarga en calientePuerto 8766

Anula los valores predeterminados:

PYTHON_SPEC=3.11 ./scripts/setup_python_env.sh
ISAACSIM_ROOT=/opt/isaacsim ./scripts/run_isaac_sim.sh
Solución de problemas

Si Isaac Sim muestra Can't find extension with name: isaac.sim.mcp_extension:

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

Nota: --ext-folder debe apuntar a la raíz del repositorio, no a isaac.sim.mcp_extension/ directamente.


Contribuciones

Las pull requests son bienvenidas. Las mejoras en herramientas, documentación, adaptadores y pruebas son todas útiles.

Licencia

Licencia MIT. Copyright (c) 2023-2025 omni-mcp, Copyright (c) 2026 whats2000. Consulta LICENSE.