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

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
| Requisito | Versión |
|---|---|
| NVIDIA Isaac Sim | 5.1.0 |
| Python | 3.10+ |
uv | última (para instalación desde el código fuente) |
| Plataforma | Linux (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ía | Cantidad | Qué puedes hacer |
|---|---|---|
| Escena | 7 | Inspeccionar escenas, crear física, listar/cargar entornos, explorar prims |
| Objetos | 4 | Crear, eliminar, transformar y clonar primitivas |
| Iluminación | 2 | Crear y ajustar luces |
| Robots | 6 | Generar más de 107 robots, inspeccionar articulaciones, establecer posiciones, actualizar biblioteca |
| Sensores | 4 | Crear cámaras/LiDAR, capturar imágenes, obtener nubes de puntos |
| Materiales | 2 | Crear y aplicar materiales |
| Activos | 4 | Importar URDF, cargar/buscar USD, generar modelos 3D |
| Gráficos | 2 | Construir y editar Action Graphs (OnPlaybackTick, ScriptNode, adjuntar archivos de script) |
| Simulación | 11 | Reproducir/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
- Comienza con
get_scene_infopara verificar la conexión - Crea una escena de física si el escenario está vacío
- Prefiere herramientas específicas antes de
execute_script - Usa
list_available_robots/list_environmentsantes de cargar - Usa
create_action_graphpara conectar controladores OnPlaybackTick → ScriptNode - Usa
step_simulationconobserve_primsyobserve_jointspara depurar - Usa
reload_scriptpara 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
| Script | Propósito | Predeterminado |
|---|---|---|
setup_python_env.sh | Crear venv e instalar el paquete | Python 3.10 |
run_isaac_sim.sh | Iniciar Isaac Sim con la extensión | $HOME/isaacsim |
run_mcp_server.sh | Iniciar el servidor MCP | Puerto 8766 |
launch_isaac_sim_mcp.sh | Lanzador combinado | Asigna puerto automáticamente |
dev_mcp_server.sh | Servidor de desarrollo con recarga en caliente | Puerto 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.