rbx-studio-mcp
Servidor MCP gratuito y de código abierto para Roblox Studio. Transporte SSE basado en push, ediciones de scripts seguras para el editor, 29 herramientas eficientes en tokens.
Documentación
Roblox Studio MCP
Servidor MCP para Roblox Studio: 29 herramientas sobre un puente basado en push, escrituras por lotes que se deshacen como un solo paso, ediciones de scripts seguras para el editor. MIT.

Instalación
1. El plugin de Studio
npx -y @el4cteo/rbx-studio-mcp --install-plugin
O descarga StudioMCP.rbxmx desde Releases en tu carpeta de plugins de Studio.
2. El servidor, en el cliente que uses:
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 o .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. Abre Studio y acepta el mensaje de 127.0.0.1 — el plugin se conecta automáticamente. Verifica con studio_status.
4. debug adicionalmente necesita Debugger Luau API en Archivo → Funciones Beta, más un reinicio de Studio. Nada más lo requiere.

El puerto por defecto es 44755 — cámbialo con --port o ROBLOX_STUDIO_MCP_PORT, y hazlo coincidir en el widget del plugin. Solo loopback.
Múltiples agentes
Registra el servidor en tantos clientes como quieras — el plugin se conecta a un puerto, el primer servidor lo posee y el resto actúa como proxy. Sin configuración, sin segunda conexión de Studio.
Cada agente mantiene su propio objetivo (set_active_studio es por cliente), así dos agentes pueden trabajar en dos lugares abiertos y ninguno puede reorientar al otro. Pasa studioId en una sola llamada para llegar a otro lugar sin cambiar tu predeterminado.
Los subagentes comparten la conexión de su padre y, por tanto, su objetivo — un subagente que llame a set_active_studio reorienta silenciosamente a su padre. Da a los subagentes un studioId explícito por llamada.
Herramientas
| Sesión | studio_status list_studios set_active_studio |
| Descubrir | tree inspect find api |
| Scripts | script_read script_edit script_grep script_create |
| Instancias | create modify delete move |
| Mundo | geometry assets collision undo |
| Ejecutar y depurar | playtest execute_luau character input console debug performance |
| Mirar | screenshot viewport device |
Advertencias: durante una prueba de juego se conectan dos sesiones — pasa studioId explícitamente y usa la sesión de edición para cualquier cosa que deba persistir. La emulación de device persiste hasta device op="stop".
Procesamiento por lotes
Cada herramienta de escritura acepta un array — diez ediciones de scripts o doscientas eliminaciones es una sola llamada.
| herramienta | acepta | límite |
|---|---|---|
create | instancias, cada una anidando children a cualquier profundidad | 100 |
modify | entradas, cada una con una lista ilimitada de paths | 100 entradas |
delete | rutas | 200 |
move | movimientos | 200 |
script_edit | ediciones, en cualquier número de scripts | 50 |
script_create | scripts | 50 |
inspect | rutas | 50 |
input | pasos de entrada, entregados en orden | 40 |
modify limita entradas, no objetivos — una entrada puede anclar quinientas partes, así que combínala con find para cambiar un lugar completo en una sola llamada.
Cada lote es una única grabación de ChangeHistoryService: un Ctrl+Z. Los lotes son todo-o-nada — todo se transforma en memoria primero, así que una coincidencia fallida deja el lugar intacto.
Las llamadas paralelas también funcionan (las respuestas se identifican por id de solicitud), pero prefiere un lote: N llamadas paralelas son N viajes de ida y vuelta y N pasos de deshacer, un lote es uno de cada.
Comparado con lo que más existe
| herramientas | transporte | escrituras seguras para el editor | grabación de deshacer | volcado de API en vivo | licencia | |
|---|---|---|---|---|---|---|
| este | 29 | SSE push | sí | sí | sí | MIT |
| Roblox integrado | ~27 | stdio | parcial | — | n/a | código cerrado |
| Chrrxs | ~40 | poll | no | parcial | no | MIT |
| drgost1 | 51 | poll 500 ms | no | sí | no | MIT |
| boshyxd | 43 | long-poll | no | no | no | MIT (archivado) |
| Roblox/studio-rust-mcp-server | 2 | HTTP | no | no | no | MIT (superado) |
- Push, no poll — 50 viajes de ida y vuelta secuenciales: 13.6 ms de media vs 25.8 ms, 12.8 ms de mediana vs 29.9 ms (
node scripts/latency.mjs --count 50 --compare). - Ediciones de scripts seguras —
ScriptEditorService:UpdateSourceAsync, noscript.Source; tu buffer de editor sin guardar sobrevive. - ~16k tokens de esquema frente a 43–51 herramientas en otros lugares. Paginado por cursor, limitado,
detail: concise | standard | full. - Volcado de API en vivo — los errores tipográficos en propiedades reciben sugerencias (
Anchorred→Anchored).
No construido aquí: terreno, generación de mallas de IA y materiales.
Seguridad
Se vincula a 127.0.0.1, rechaza Origin, y requiere una cabecera que un navegador no puede establecer entre orígenes — cerrando el agujero de re-vinculación de DNS. El permiso HTTP se concede por plugin y por URL, así que la configuración "Permitir solicitudes HTTP" de tu experiencia queda intacta.
Desarrollo
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
Necesita luau, luau-compile y luau-analyze de los lanzamientos de Luau en PATH o en tools/.
evals/ contiene diez preguntas que solo pueden responderse conduciendo una sesión real de Studio — ver evals/README.md.
Licencia
MIT.