rbx-studio-mcp

Servidor MCP gratuito e de código aberto para Roblox Studio. Transporte SSE baseado em push, edições de script seguras para o editor, 29 ferramentas enxutas em tokens.

Documentação

Roblox Studio MCP

Servidor MCP para Roblox Studio: 29 ferramentas sobre uma ponte baseada em push, gravações em lote que desfazem como uma única etapa, edições de script seguras para o editor. MIT.

The Studio MCP panel, showing calls and their latency

Instalação

1. O plugin do Studio

npx -y @el4cteo/rbx-studio-mcp --install-plugin

Ou baixe StudioMCP.rbxmx de Releases para a sua pasta de plugins do Studio.

2. O servidor, em qualquer cliente que você use:

Claude Code
claude mcp add roblox-studio -- npx -y @el4cteo/rbx-studio-mcp
Codex CLI
codex mcp add roblox-studio -- npx -y @el4cteo/rbx-studio-mcp
Cursor~/.cursor/mcp.json ou .cursor/mcp.json
{
  "mcpServers": {
    "roblox-studio": {
      "command": "npx",
      "args": ["-y", "@el4cteo/rbx-studio-mcp"]
    }
  }
}
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "roblox-studio": {
      "command": "npx",
      "args": ["-y", "@el4cteo/rbx-studio-mcp"]
    }
  }
}
Gemini CLI~/.gemini/settings.json
{
  "mcpServers": {
    "roblox-studio": {
      "command": "npx",
      "args": ["-y", "@el4cteo/rbx-studio-mcp"]
    }
  }
}
Windsurf~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "roblox-studio": {
      "command": "npx",
      "args": ["-y", "@el4cteo/rbx-studio-mcp"]
    }
  }
}
VS Code / Copilot.vscode/mcp.json
{
  "servers": {
    "roblox-studio": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@el4cteo/rbx-studio-mcp"]
    }
  }
}
opencodeopencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "roblox-studio": {
      "type": "local",
      "command": ["npx", "-y", "@el4cteo/rbx-studio-mcp"],
      "enabled": true
    }
  }
}

3. Abra o Studio e aceite o prompt 127.0.0.1 — o plugin conecta automaticamente. Verifique com studio_status.

4. debug adicionalmente precisa da Debugger Luau API em Arquivo → Recursos Beta, além de reiniciar o Studio. Nada mais exige isso.

The Debugger Luau API beta feature toggle in Studio

A porta padrão é 44755 — altere com --port ou ROBLOX_STUDIO_MCP_PORT, e ajuste no widget do plugin. Apenas loopback.

Múltiplos agentes

Registre o servidor em quantos clientes quiser — o plugin conecta a uma porta, o primeiro servidor a possui e os demais fazem proxy. Sem configuração, sem segunda conexão ao Studio.

Cada agente mantém seu próprio alvo (set_active_studio é por cliente), então dois agentes podem trabalhar em dois lugares abertos e nenhum pode redirecionar o outro. Passe studioId em uma única chamada para alcançar outro lugar sem mudar seu padrão.

Subagentes compartilham a conexão do pai e, portanto, seu alvo — um subagente chamando set_active_studio redireciona silenciosamente o pai. Dê aos subagentes um studioId explícito por chamada.

Ferramentas

Sessãostudio_status list_studios set_active_studio
Descobrirtree inspect find api
Scriptsscript_read script_edit script_grep script_create
Instânciascreate modify delete move
Mundogeometry assets collision undo
Executar e depurarplaytest execute_luau character input console debug performance
Olharscreenshot viewport device

Pegadinhas: durante um teste de jogo, duas sessões conectam — passe studioId explicitamente e use a sessão de edição para qualquer coisa que precise persistir. A emulação de device persiste até device op="stop".

Lote

Toda ferramenta de gravação aceita um array — dez edições de script ou duzentas exclusões é uma única chamada.

ferramentaaceitalimite
createinstâncias, cada uma aninhando children a qualquer profundidade100
modifyentradas, cada uma com uma lista ilimitada de paths100 entradas
deletecaminhos200
movemovimentos200
script_editedições, em qualquer número de scripts50
script_createscripts50
inspectcaminhos50
inputetapas de entrada, entregues em ordem40

modify limita entradas, não alvos — uma entrada pode ancorar quinhentas partes, então combine com find para mudar um lugar inteiro em uma chamada.

Cada lote é uma única gravação de ChangeHistoryService: um Ctrl+Z. Lotes são tudo-ou-nada — tudo é transformado em memória primeiro, então uma correspondência falha deixa o lugar intocado.

Chamadas paralelas também funcionam (respostas são chaveadas por id de requisição), mas prefira um lote: N chamadas paralelas são N idas e voltas e N etapas de desfazer, um lote é um de cada.

Comparado ao que mais existe

ferramentastransportegravações seguras para o editorgravação de desfazerdump de API ao vivolicença
este29SSE pushsimsimsimMIT
Roblox integrado~27stdioparcialn/acódigo fechado
Chrrxs~40pollnãoparcialnãoMIT
drgost151poll 500 msnãosimnãoMIT
boshyxd43long-pollnãonãonãoMIT (arquivado)
Roblox/studio-rust-mcp-server2HTTPnãonãonãoMIT (substituído)
  • Push, não poll — 50 idas e voltas sequenciais: média de 13,6 ms vs 25,8 ms, mediana de 12,8 ms vs 29,9 ms (node scripts/latency.mjs --count 50 --compare).
  • Edições de script segurasScriptEditorService:UpdateSourceAsync, não script.Source; seu buffer de editor não salvo sobrevive.
  • ~16k tokens de esquema contra 43–51 ferramentas em outros lugares. Paginado por cursor, limitado, detail: concise | standard | full.
  • Dump de API ao vivo — erros de digitação em propriedades recebem sugestões (AnchorredAnchored).

Não construído aqui: terreno, geração de malha de IA e materiais.

Segurança

Vincula 127.0.0.1, rejeita Origin e exige um cabeçalho que um navegador não pode definir entre origens — fechando o buraco de rebinding de DNS. A permissão HTTP é concedida por plugin e por URL, então a configuração "Permitir solicitações HTTP" da sua experiência permanece intocada.

Desenvolvimento

npm install
npm run build          # TypeScript -> dist/
npm run build:plugin   # plugin/src -> build/StudioMCP.rbxmx
npm run install:plugin # build + copy into the Studio plugins folder
npm test               # plugin (Luau) + bridge (Node) tests

Precisa de luau, luau-compile e luau-analyze de os lançamentos do Luau em PATH ou em tools/.

evals/ contém dez perguntas respondíveis apenas dirigindo uma sessão real do Studio — veja evals/README.md.

Licença

MIT.