RoBridge is FREE. All 24 tools. No Pro tier, no gated catalog, no paid SKU.
It is a local MCP server that lets an AI client (Cursor, Claude Desktop, Claude Code, VS Code Copilot) drive the place you have open in Roblox Studio — instances, scripts, lighting, terrain, UI, assets, camera, and playtests — plus a dashboard at http://127.0.0.1:3737. system_info reports tier: "free" because that is the only tier.
See it
What it is
AI agent → RoBridge (MCP stdio + http://127.0.0.1:3737)
├─ Studio plugin → your open place
└─ local dashboard (browser)
You talk to the agent. The agent calls typed MCP tools. RoBridge’s Studio plugin applies those calls to the DataModel. The dashboard shows the live session, tool history, and a Luau console so you can see what actually happened.
It is not a hosted cloud service, and not Open Cloud. HTTP binds 127.0.0.1 only.
Server 0.1.6 · plugin 0.1.8 · 24 tools · MIT
Dashboard
Local UI at http://127.0.0.1:3737 — Overview first. Live topology (MCP client → this server → plugin session(s) → open place), every Studio session, tool registry by genre, uptime, port, versions. Activity / UI Studio / Console / Logs are the other tabs.
![]()
Why FREE
A lot of Studio MCP kits split the catalog: a “starter” set in public, the rest behind a Pro SKU. RoBridge does not do that.
If a tool ships, you have it. Lighting, terrain, run_test, camera screenshot/record, UI, asset search + insert — the same list for everyone. There is no upgrade path because there is nothing left to unlock.
What you can do
The agent gets 24 typed tools, each with a real action catalog (create/query/set, not a single vague “do Studio stuff” endpoint). Same shapes on MCP tools/list and GET http://127.0.0.1:3737/api/tools.
Instances and scripts
- Query and mutate the tree (
query_instances,mutate_instances,manage_properties) - Read/write/search scripts, including line edits and a validator (
manage_scripts)
World
- Lighting, atmosphere, sky, mood (
manage_lighting) - Terrain fill/replace/voxels (
manage_terrain) - Physics, welds, collision groups (
manage_physics) - Raycasts, placement, walkable scans (
spatial_query) - Tweens, audio, animation, particles (
manage_tween,manage_audio,manage_animation,manage_effects)
Studio loop
- Selection, workspace snapshot, Output logs
- Camera get/set/focus, screenshot, record
- Creator Store search, then insert (
manage_assets— never inventrbxassetidvalues) - UI trees plus click/type in PlayerGui (
manage_ui) - Character / mouse / key input in Play (
manage_input) batch_executefor several calls in one requestexecute_luauat plugin security (Edit mode only)
Playtesting you can actually trust
Prefer manage_studio action run_test over hand-rolling Play + logs + Stop:
- Stops leftover Play first
- Injects your Luau body
- Starts Play (F5) or Run (F8)
- Collects Output lines tagged
[ROBRIDGE_TEST] - Stops, writes a report, optionally attaches a short viewport clip
print("[ROBRIDGE_TEST] PASS")
-- or
print("[ROBRIDGE_TEST] FAIL expected SpawnLocation above ground")
That is the loop I want from an agent: change something a player can see, then prove it.
All 24 tools
query_instances · mutate_instances · manage_properties · manage_scripts · manage_ui · manage_lighting · manage_selection · manage_camera · manage_tween · manage_audio · manage_animation · manage_physics · manage_effects · manage_terrain · spatial_query · manage_assets · manage_sync · workspace_state · manage_logs · system_info · manage_studio · manage_input · batch_execute · execute_luau
Full action + param tables live in-repo: docs/tools.md.
Install (dummy-proof)
Not on npm as a published package. Clone, then one command. Requires Node 18+.
git clone https://github.com/Allusia1/RoBridge
cd RoBridge
npm install
npm install is enough: postinstall builds the server and runs init. Init copies the Studio plugin and writes Cursor / Claude Desktop / Claude Code / VS Code Copilot MCP configs (merge — your other servers stay). Spawn is the absolute Node binary plus absolute dist/index.js, so Dock/Start-menu apps do not fail because node is missing from PATH.
Re-run later:
npx robridge init # plugin + MCP configs
npx robridge doctor # checklist + exactly one next step
Then:
- Reload MCP in your client (Cursor: Settings → MCP). Fully quit Claude Desktop if you use it (it hides in the tray).
- Open Studio on the place you actually want to edit, or refresh Plugins. You should see a RoBridge toolbar button.
- Allow HTTP to
127.0.0.1when Studio prompts. The plugin long-pollshttp://127.0.0.1:3737. - For screenshots / recordings: File → Game Settings → Security → Allow Mesh / Image APIs.
- For playtests: Game Settings → Security → Allow HTTP Requests.
- Open the dashboard: http://127.0.0.1:3737. Place name visible = you are done.
You do not start node dist/index.js in a terminal. The MCP client spawns it.
Plugin destination:
- macOS:
~/Documents/Roblox/Plugins/RoBridge.lua - Windows:
%LOCALAPPDATA%\Roblox\Plugins\RoBridge.lua
MCP stdio (what init writes for you):
{
"command": "/absolute/path/to/node",
"args": ["/absolute/path/to/RoBridge/dist/index.js"]
}
Dashboard only, no agent: node dist/index.js --no-mcp.
vs official Studio MCP
Roblox shipped a first-party Studio MCP — originally as an open-source proof of concept, now built into Studio with scripts, assets, generation, playtesting, and quick-connect. That is the platform path. Use it.
RoBridge is the fat local toolkit + dashboard next to it:
| Official Studio MCP | RoBridge | |
|---|---|---|
| Where it lives | Built into Studio | Local Node process + plugin |
| Setup | Quick connect / Studio MCP binary | npm install writes plugin + client configs |
| Watch the session | Studio MCP panel | Local dashboard on :3737 |
| Catalog shape | First-party tools (including generation) | 24 typed tools, many actions each |
| Playtests | Studio play tools / playtest subagent | run_test (inject Luau, collect [ROBRIDGE_TEST], report) |
| Price | First-party | Free. Every tool. |
They can coexist. Two MCP servers, one Studio session. Reach for official when you want Studio-native generation and first-party tools. Reach for RoBridge when you want the dashboard, the typed action catalog, dummy-proof install, and a playtest that prints PASS or FAIL.
Requirements / limits
- Node 18+, Roblox Studio, an MCP client (Cursor, Claude Desktop, Claude Code, VS Code Copilot; other stdio clients work with the same spawn).
- Local only. Binds
127.0.0.1. Not reachable from other machines. - One process owns
:3737. Extra clients (Cursor + Claude at once) forward to that owner and share the same Studio session. Not a multi-Studio router — keep the place you care about open. - InsertService: search, then insert an
assetIdfrom those results. Asset must be free or owned by the logged-in Studio user. - No Open Cloud.
upload_assetis StudioAssetService:CreateAssetAsync(confirm=true). There is no API-key upload pipeline. execute_luauis Edit-only (pluginloadstring). In Play, userun_test/ play agents, orplay_stopfirst.- CaptureService: one in-flight screenshot/record; Mesh / Image APIs must be on.
- This is not a published experience. The product is the local MCP bridge.
Honest constraints are in-repo: docs/limits.md.
Links
- Source: https://github.com/Allusia1/RoBridge
- Dashboard (after the client has spawned the server): http://127.0.0.1:3737
- Docs live in the repo (no separate site):
docs/install.md,docs/mcp.md,docs/playtesting.md,docs/dashboard.md,docs/tools.md,docs/troubleshooting.md,docs/limits.md
License: MIT.
FAQ
Is any of this paid?
No. 24 tools, all free, no Pro tier.
Is it on npm?
Not as a published package. Clone the repo, then npm install.
Can I run it next to Roblox’s Studio MCP?
Yes. Add both servers in your client.
Does it need Open Cloud keys?
No. Local plugin bridge only.
Cursor and Claude at the same time?
Yes. The first process binds :3737; the second forwards. Same Studio session, same dashboard.
The agent says “no Studio session”.
Open the place in Studio with the plugin loaded, click Allow for HTTP to 127.0.0.1, then run npx robridge doctor.
Can I paste MCP JSON by hand?
You should not have to for Cursor, Claude Desktop, Claude Code, or VS Code Copilot. Init writes it. Fallback JSON is in docs/mcp.md.
If you already use an MCP client and Studio, clone it, run npm install, reload MCP, Allow HTTP, and tell the agent to create a Part in Workspace. If it appears, the loop works. If it does not, npx robridge doctor prints one next step.
Feedback, bugs, and PRs welcome on GitHub once you have it running. Builders helping builders — that is the whole point of shipping this without a paywall.

