Isaac Sim MCP Server

Conecte qualquer IDE compatível com MCP (Cursor, VS Code, Claude Code, Windsurf, JetBrains) a uma instância em execução do Isaac Sim e controle-a com comandos em inglês simples — crie robôs, monte cenas, execute simulações e depure física diretamente do seu editor.

Documentação

Isaac Sim MCP Server

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

Controle por linguagem natural para NVIDIA Isaac Sim através do Model Context Protocol (MCP).

Conecte qualquer IDE compatível com MCP (Cursor, VS Code, Claude Code, Windsurf, JetBrains) a uma instância Isaac Sim em execução e controle-a com prompts em inglês simples -- crie robôs, construa cenas, execute simulações e depure física tudo a partir do seu editor.

Robot Simulate Demo


Destaques

  • 42 ferramentas em 9 categorias -- cena, objetos, iluminação, robôs, sensores, materiais, ativos, simulação, gráficos
  • 107+ robôs descobertos automaticamente da biblioteca de ativos do Isaac Sim (Franka, UR, Unitree, Boston Dynamics, e mais)
  • Depuração passo-a-passo -- avance a simulação e inspecione posições de prims, estados de juntas e física em uma única chamada
  • Hot-reload -- itere em controladores Python sem reiniciar o Isaac Sim
  • Multi-instância -- execute múltiplas sessões do Isaac Sim lado a lado em portas diferentes
  • Construído para Isaac Sim 5.1.0 com uma camada de adaptadores modular para isolamento de versões

Instalação

Opção A: pip install (recomendado)

pip install isaacsim-mcp-server

Isso instala o servidor MCP e a CLI isaacsim-mcp-server. Você ainda precisa da extensão Isaac Sim do repositório (veja Lançando Isaac Sim abaixo).

Opção B: A partir do código-fonte

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

Requisitos

RequisitoVersão
NVIDIA Isaac Sim5.1.0
Python3.10+
uvúltima (para instalação a partir do código-fonte)
PlataformaLinux (Ubuntu 22.04+)

[!IMPORTANT] Atualmente apenas Linux é suportado. O suporte para Windows está planejado. macOS não é suportado porque o NVIDIA Isaac Sim não roda em macOS.

[!NOTE] Estamos recebendo contribuições para suportar outras versões do Isaac Sim. A camada de adaptadores é projetada para fácil isolamento de versões.


Início Rápido

1. Configure o ambiente

Se você instalou a partir do código-fonte:

./scripts/setup_python_env.sh

2. Inicie o Isaac Sim com a extensão

./scripts/run_isaac_sim.sh

Você deve ver nos logs:

Registered 41 command handlers
Isaac Sim MCP server started on localhost:8766
Opcional: chaves de API Beaver3D / NVIDIA para geração 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. Conecte sua IDE

Adicione o servidor MCP ao seu editor. Substitua o caminho pela localização real do seu repositório.

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

Ou edite ~/.claude.json / .mcp.json:

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

Crie .vscode/mcp.json no seu espaço de trabalho:

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

Abra Cursor Settings > MCP, ou edite ~/.cursor/mcp.json:

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

Edite o arquivo de configuração para sua 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

Abra Windsurf Settings > MCP ou edite ~/.codeium/windsurf/mcp_config.json:

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

Vá para Settings > Tools > AI Assistant > MCP Servers e adicione o servidor. Veja a documentação do JetBrains MCP para detalhes.

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

Arquitetura

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

Ferramentas

42 ferramentas em 9 categorias:

CategoriaContagemO que você pode fazer
Cena7Inspecionar cenas, criar física, listar/carregar ambientes, navegar por prims
Objetos4Criar, excluir, transformar e clonar primitivas
Iluminação2Criar e ajustar luzes
Robôs6Gerar 107+ robôs, inspecionar juntas, definir posições, atualizar biblioteca
Sensores4Criar câmeras/LiDAR, capturar imagens, obter nuvens de pontos
Materiais2Criar e aplicar materiais
Ativos4Importar URDF, carregar/pesquisar USD, gerar modelos 3D
Gráficos2Construir e editar Action Graphs (OnPlaybackTick, ScriptNode, anexação de arquivo de script)
Simulação11Reproduzir/pausar/parar/avançar, executar Python, inspecionar física, hot-reload
Lista completa de ferramentas

Cena: 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

Iluminação: create_light modify_light

Robôs: 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

Materiais: create_material apply_material

Ativos: import_urdf load_usd search_usd generate_3d

Gráficos: create_action_graph edit_action_graph

Simulação: 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


Exemplos de Prompts

Inicialização de cena

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.

Layout de robô

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

Carregamento de ambiente

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

Pesquisa de ativos e geração 3D

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

Uso Avançado

Múltiplas Instâncias

Execute múltiplas sessões do Isaac Sim lado a lado. Cada uma usa uma porta diferente (atribuída automaticamente a partir de 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
Configuração JSON para múltiplas instâncias
{
  "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" }
    }
  }
}

Lançador de Desktop (Linux)

Instale um ícone de aplicativo dedicado Isaac Sim MCP:

./scripts/install_desktop_entry.sh

Isso cria um lançador que atribui portas automaticamente, aguarda o socket da extensão e limpa ao sair.

Fluxo de Trabalho Recomendado

  1. Comece com get_scene_info para verificar a conexão
  2. Crie uma cena de física se o palco estiver vazio
  3. Prefira ferramentas específicas antes de execute_script
  4. Use list_available_robots / list_environments antes de carregar
  5. Use create_action_graph para conectar controladores OnPlaybackTick → ScriptNode
  6. Use step_simulation com observe_prims e observe_joints para depuração
  7. Use reload_script para iterar em controladores sem reiniciar

Demonstração: Franka Pick-and-Place

Uma demonstração pronta para executar em demo/franka_pick_place.py usando RMPflow para planejamento de movimento:

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 com script_file para configuração de Action Graph + ScriptNode em uma etapa, além das ferramentas de observabilidade: get_joint_config, step_simulation com observe_prims, get_physics_state, e edit_action_graph para hot-reload de scripts.


Desenvolvimento

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

O inspetor está disponível em http://localhost:5173.

Notas de Configuração

ScriptPropósitoPadrão
setup_python_env.shCriar venv e instalar pacotePython 3.10
run_isaac_sim.shIniciar Isaac Sim com extensão$HOME/isaacsim
run_mcp_server.shIniciar o servidor MCPPorta 8766
launch_isaac_sim_mcp.shLançador combinadoAtribui porta automaticamente
dev_mcp_server.shServidor de desenvolvimento com hot-reloadPorta 8766

Substitua os padrões:

PYTHON_SPEC=3.11 ./scripts/setup_python_env.sh
ISAACSIM_ROOT=/opt/isaacsim ./scripts/run_isaac_sim.sh
Solução de problemas

Se o Isaac Sim disser 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 deve apontar para a raiz do repositório, não para isaac.sim.mcp_extension/ diretamente.


Contribuindo

Pull requests são bem-vindos. Melhorias em ferramentas, documentação, adaptadores e testes são todas úteis.

Licença

Licença MIT. Copyright (c) 2023-2025 omni-mcp, Copyright (c) 2026 whats2000. Veja LICENSE.