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

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
| Requisito | Versão |
|---|---|
| NVIDIA Isaac Sim | 5.1.0 |
| Python | 3.10+ |
uv | última (para instalação a partir do código-fonte) |
| Plataforma | Linux (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:
| Categoria | Contagem | O que você pode fazer |
|---|---|---|
| Cena | 7 | Inspecionar cenas, criar física, listar/carregar ambientes, navegar por prims |
| Objetos | 4 | Criar, excluir, transformar e clonar primitivas |
| Iluminação | 2 | Criar e ajustar luzes |
| Robôs | 6 | Gerar 107+ robôs, inspecionar juntas, definir posições, atualizar biblioteca |
| Sensores | 4 | Criar câmeras/LiDAR, capturar imagens, obter nuvens de pontos |
| Materiais | 2 | Criar e aplicar materiais |
| Ativos | 4 | Importar URDF, carregar/pesquisar USD, gerar modelos 3D |
| Gráficos | 2 | Construir e editar Action Graphs (OnPlaybackTick, ScriptNode, anexação de arquivo de script) |
| Simulação | 11 | Reproduzir/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
- Comece com
get_scene_infopara verificar a conexão - Crie uma cena de física se o palco estiver vazio
- Prefira ferramentas específicas antes de
execute_script - Use
list_available_robots/list_environmentsantes de carregar - Use
create_action_graphpara conectar controladores OnPlaybackTick → ScriptNode - Use
step_simulationcomobserve_primseobserve_jointspara depuração - Use
reload_scriptpara 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
| Script | Propósito | Padrão |
|---|---|---|
setup_python_env.sh | Criar venv e instalar pacote | Python 3.10 |
run_isaac_sim.sh | Iniciar Isaac Sim com extensão | $HOME/isaacsim |
run_mcp_server.sh | Iniciar o servidor MCP | Porta 8766 |
launch_isaac_sim_mcp.sh | Lançador combinado | Atribui porta automaticamente |
dev_mcp_server.sh | Servidor de desenvolvimento com hot-reload | Porta 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.