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.

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 Desktop — claude_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"]
}
}
}
opencode — opencode.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.

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ão | studio_status list_studios set_active_studio |
| Descobrir | tree inspect find api |
| Scripts | script_read script_edit script_grep script_create |
| Instâncias | create modify delete move |
| Mundo | geometry assets collision undo |
| Executar e depurar | playtest execute_luau character input console debug performance |
| Olhar | screenshot 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.
| ferramenta | aceita | limite |
|---|---|---|
create | instâncias, cada uma aninhando children a qualquer profundidade | 100 |
modify | entradas, cada uma com uma lista ilimitada de paths | 100 entradas |
delete | caminhos | 200 |
move | movimentos | 200 |
script_edit | edições, em qualquer número de scripts | 50 |
script_create | scripts | 50 |
inspect | caminhos | 50 |
input | etapas de entrada, entregues em ordem | 40 |
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
| ferramentas | transporte | gravações seguras para o editor | gravação de desfazer | dump de API ao vivo | licença | |
|---|---|---|---|---|---|---|
| este | 29 | SSE push | sim | sim | sim | MIT |
| Roblox integrado | ~27 | stdio | parcial | — | n/a | código fechado |
| Chrrxs | ~40 | poll | não | parcial | não | MIT |
| drgost1 | 51 | poll 500 ms | não | sim | não | MIT |
| boshyxd | 43 | long-poll | não | não | não | MIT (arquivado) |
| Roblox/studio-rust-mcp-server | 2 | HTTP | não | não | não | MIT (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 seguras —
ScriptEditorService:UpdateSourceAsync, nãoscript.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 (
Anchorred→Anchored).
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.