roblox-studio-bridge MCP
Allows an agent to drive Roblox Studio: run Luau in edit mode or play-test sessions, sync Rojo projects, start and stop solo/multiplayer play tests, read output logs, inspect GUI trees, and capture screenshots or rendered views.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@roblox-studio-bridge MCP sync my Rojo project and run a play test"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
roblox-studio-bridge MCP
An MCP server that lets an agent drive Roblox Studio: run Luau in any DataModel, sync a Rojo project into the open place, start solo or multiplayer play tests, read Output, inspect GUIs and see the game.
How it works
agent ──MCP stdio──▶ server.mjs ──▶ bridge.mjs (HTTP 127.0.0.1:44777) ◀──long-poll── StudioBridge plugin
├─ edit DataModel
├─ play-test server
└─ play-test clients (relayed via the server)Plugin (
plugin/StudioBridge.server.luau): a small bootstrap. In edit mode it downloadsplugin/Core.luaufrom the bridge, soreload_pluginapplies core changes without restarting Studio. Play-test DataModels use the copy bundled into the plugin.Play-test clients cannot use HttpService, so the server session relays their traffic through a RemoteEvent, with large results sent in chunks.
Code execution:
loadstringin edit mode. Play-test server and clients have noloadstring, so the bridge compiles the code with a pinned Luau 0.700 compiler (bin/luau-compile-bc6) and the bundled Fiu VM runs the bytecode.Screenshots: by default
screenshotcaptures the real Studio window withbin/studio-snap(macOS, needs Screen Recording permission for the app hosting the agent). If Studio is on another Space behind a full-screen app, it is brought forward for about a second and the previous app is restored.Software render fallback (
mode: "render"): Studio'sStudioCaptureServiceis feature-flagged off in current builds, andCaptureServicecaptures can't be read back. The plugin falls back to a software raycast renderer (sun/moon plus point and spot lights with shadows, fog and sky), then overlays the visible GUI with the same z-order and clipping rules Roblox uses. It also renders ViewportFrame contents and returns every visible text string with its position. It works in edit mode, on the server and on each client, with no screen access.
Related MCP server: Roblox Studio MCP Server
Tools
Tool | Purpose |
| Connected sessions (edit, server, |
| Run Luau (may yield) in |
| Output from all sessions, filter by target/level/text, page with |
| Real Studio window capture (default), or |
| A client's PlayerGui tree with positions, visibility and text |
| Push a Rojo project's scripts into the open place (edit mode) |
|
|
| Add clients to a running multiplayer test |
| Instance hierarchy under a path |
| Hot-reload |
cli.mjs exposes the same tools from a shell (node cli.mjs status,
node cli.mjs run server < file.luau, node cli.mjs shot client out.png '{"width":800}'). If no bridge is
running, it starts one in the background.
Install
scripts/setup.sh installs dependencies, the pinned compiler, the capture helper and the plugin.
Register the server in any MCP client:
{ "mcpServers": { "roblox-studio": { "command": "node", "args": ["/abs/path/studio-mcp/server.mjs"] } } }License
MIT, see LICENSE. Third-party code: see THIRD_PARTY_NOTICES.md (Fiu, MIT).
Available Tools
11 toolsadd_playersB
Add simulated clients to a running multiplayer test.
Inputs: players (required).
get_logsB
Read Studio Output (LogService) captured from connected sessions. Use since with the last seq to page.
Inputs: level, limit, since, target, +1 more.
get_treeC
Describe the instance hierarchy under a path such as 'Workspace.Camp' (dot separated from game).
Inputs: path, depth, target.
list_guiA
List the PlayerGui hierarchy of a play-test client with positions, visibility and text.
Inputs: target.
reload_pluginA
Hot-reload the StudioBridge core (plugin/Core.luau) in every connected session.
Inputs: no named parameters.
run_luauA
Execute Luau in a Studio DataModel and return print/warn output plus returned values. Code may yield (task.wait). plugin is available in scope. Target: edit (default), server, client, client:<PlayerName|n>, or a session id.
Inputs: code (required), target, timeoutSec.
screenshotA
See what Studio shows. Default mode 'window' captures the real Studio window (macOS; briefly brings Studio forward if it is on another Space). Use title to pick a window (e.g. a multiplayer client's player name). mode 'render' asks a session (target: edit|server|client[:name]) for a software raycast render with GUI overlay and a GUI text listing; it works without screen access and can move the camera first: camera={position:[x,y,z], lookAt:[x,y,z], fov?, release?}. In window mode camera is applied to the target session before capturing.
Inputs: mode, title, width, camera, +4 more.
start_testA
Start a Studio test from the edit DataModel. mode: play (solo, default), run (server only), multiplayer (players 1-8 simulated clients). Waits until the server and client sessions connect.
Inputs: mode, players, waitSec.
stop_testA
End the running Studio test session.
Inputs: no named parameters.
studio_statusA
List connected Roblox Studio sessions (edit DataModel, play-test server and each play-test client).
Inputs: no named parameters.
sync_projectA
Push scripts from a Rojo project file into the open place (edit mode only). Creates/updates scripts and folders, removes previously synced instances that no longer exist on disk.
Inputs: project (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Each tool targets a distinct capability: session listing, code execution, logs, screenshots, project sync, test lifecycle, GUI inspection, plugin reload, and tree traversal. Even where run_luau returns print output, get_logs is clearly the historical log reader, so no two tools are easily confused.
Most tools follow a clear verb_noun snake_case pattern such as run_luau, start_test, stop_test, add_players, and get_tree. Minor deviations like studio_status (noun phrase) and screenshot (single word without object) keep it from being perfectly consistent.
Eleven tools is well within the ideal range for a domain-specific server, and each tool covers a meaningful part of the Roblox Studio workflow without redundancy or bloat.
The surface covers session discovery, arbitrary Luau execution, log access, visual inspection, project syncing, test lifecycle management, simulated players, GUI hierarchy listing, and instance tree traversal. run_luau also provides a powerful escape hatch for any specialized operation not explicitly exposed.
Maintenance
Related MCP Connectors
Drive real devices from your AI Coding tool. Embed a client SDK (Unity, Godot, Flutter, iOS/macOS, Android, React Native, Web) in your app, then capture screenshots, traverse the UI tree, inject taps and key events, and run automated test tasks on the physical device over a secure relay.
Build, run, inspect, and continue AgentScript workflows on connected Super Chrome and Mac clients.
1Develop, manage, and debug Railway projects, services, and deployments from within agents.
Run your Krtuworks apps from an AI agent: setup, remote config, stats, players, bug reports.
1
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI coding tools to control Roblox Studio for workspace exploration, instance manipulation, and script management. It provides tools for playtesting, scene rendering, and integration with the Roblox Creator Store.69MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to explore, edit, and automate Roblox Studio sessions locally, including browsing instance hierarchies, reading and modifying scripts, manipulating properties, creating instances, building terrain, and running playtests.1,020 npmMIT
- AlicenseAqualityBmaintenanceEnables AI agents to drive a running Roblox Studio in real time over a single WebSocket, executing whole Luau programs, installing in-engine controllers, hot-patching scripts during live playtests, and receiving errors, assertions and other events as pushes. It also reaches Roblox Open Cloud for the open place and answers visual questions via a vision sidecar, exposing all of this through nine MCP tools.91MIT
- AlicenseBqualityCmaintenanceEnables a bot to inspect, query, create, edit, and script Roblox Studio instances in token-cheap batches, plus run Luau, playtests, screenshots, and inputs through Roblox's official Studio MCP connection. It runs locally over stdio or an authenticated local HTTP endpoint, returning small structured answers instead of dumping whole games into context.8MIT