RoBridge
Provides tools for controlling Roblox Studio from an AI agent, including querying and mutating the DataModel, managing scripts, lighting, UI, selection, camera, terrain, assets, playtesting, input simulation, and running arbitrary Luau.
Click on "Install 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., "@RoBridgeCreate a red brick part at the center of the baseplate"
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.
RoBridge
A free, open, local MCP server that lets AI agents (Cursor, Claude, any MCP client) drive Roblox Studio — DataModel, scripts, terrain, lighting, UI, and playtests — plus a dashboard at http://127.0.0.1:3737. All tools included. No Pro tier.
Public MIT: fork for your own version, PRs welcome; main is maintained by LeapVerse/Allusia1.
flowchart LR
A["AI agent<br/>MCP stdio"] --> B["RoBridge server<br/>:3737"]
B --> C["Studio plugin"]
C --> D["Your place"]
B --> E["Dashboard"]Docs
Everything lives in this repo (no separate docs site):
Build, plugin, HTTP, Mesh/Image APIs | |
Cursor, Claude Desktop, Claude Code, generic stdio | |
| |
Local UI on | |
Full action + param reference | |
Fix lines, stuck Play | |
One port, InsertService, no Open Cloud | |
Server 0.1.8 / plugin 0.1.9 |
Clone this repo, then npm install (see First run).
Related MCP server: Roblox Studio MCP Server
Works with
Cursor, Claude Desktop, Claude Code, and any stdio MCP client (VS Code Copilot, Cline, Windsurf). Init writes the spawn config (absolute Node binary + absolute dist/index.js, empty argv). Details: docs/mcp.md.
First run
npm installPostinstall builds the server and runs init: copies the Studio plugin into the Roblox Plugins folder and writes Cursor / Claude MCP configs (merge — other servers are kept). Re-run later with npx robridge init. Plugin only: npx robridge install-plugin. Configs only: npx robridge mcp.
Then reload MCP in Cursor (Settings → MCP), open Studio (or refresh Plugins), Allow HTTP to 127.0.0.1, and (for screenshots) Allow Mesh / Image APIs. Fully quit Claude Desktop if you use it. Clients spawn the server; you do not start it in a terminal. Stuck? npx robridge doctor prints a checklist (Node, dist, plugin, MCP config, :3737, Studio) and exactly one next step. Official Studio MCP (Assistant → … → Enable Studio as MCP server) is optional and complementary — it does not use :3737 (MCP setup).
Plugin destination:
OS | Path |
macOS |
|
Windows |
|
Unusual clients that cannot be auto-configured: MCP setup (fallback JSON). Reload the MCP server after each rebuild (npx robridge mcp updates paths). Claude Desktop: fully quit and reopen.
Dashboard: http://127.0.0.1:3737. Dashboard only (you run this yourself): node dist/index.js --no-mcp.
One process owns :3737. Extra MCP clients (Cursor + Claude together) forward to that owner and share the same Studio session.
Updating
Keep this clone. From the repo root:
npx robridge updateThat runs git pull --ff-only then npm install (rebuild + init). The working tree must be clean. Then reload MCP and refresh Studio plugins. MCP/HTTP start also copies plugin/RoBridge.lua into the Roblox Plugins folder if it is missing or out of date. The dashboard shows a banner when a newer GitHub release exists.
Tools (24, all free)
MCP tools/list and HTTP /api/tools share the same defineTool Zod shapes. Full param tables: docs/tools.md.
Tool | Actions |
| get, children, descendants, ancestors, find_child, find_descendant, wait_for_child, search_class, search_name, search_property, search_tag, class_info, file_tree, project_structure |
| create, create_with_props, delete, clone, move, rename, pivot, create_tree, mass_create, mass_delete, mass_duplicate, smart_duplicate, scatter |
| get, get_all, set, set_many / set_multiple, attributes/tags (incl. get_tagged, check_tag), set_relative, set_calculated, mass_set, mass_get, modify_children |
| get_source, set_source, create, delete, list, search, replace, edit_lines, edit_replace, edit_insert, edit_delete, validate, get_dependencies |
| design_brief, create_tree, update, list, inspect, list_interactive, preview, hide_preview, click, type_text, scroll, get_abs, check, delete |
| get, set / lighting, set_time / time, atmosphere, sky, terrain_props, mood, add_effect, clear_effects |
| get, set, add, remove, clear, details, cached, context, watch |
| get / info, set, focus / focus_path, focus_position, suggest, zoom_extents, screenshot, record, record_stop |
| create, play, pause, resume, cancel / stop_all |
| create, play, pause, resume, stop, stop_all, list, set, set_listener |
| create, list, load, play, stop, stop_all, get_tracks |
| anchor, unanchor, set_collide, weld, get_mass, set_physical_properties, create_constraint, register_group, set_collidable, get_groups |
| create, remove / clear, list, emit, toggle |
| fill_block/ball/cylinder/wedge, clear, clear_region, clear_bounds, replace_material, colors_get/set, read/write voxels, generate, smooth, get_info |
| raycast, multi_raycast, in_radius, in_box, ground_height / find_ground, check_placement, scan_area, find_flat, find_spawn, analyze_walkable, spatial_map, find_space, bounds, snap_grid, collision |
| search, preview / info, insert / insert_free / insert_package, search_insert, export/import library, review_model, generate_model, upload_asset, generate_thumbnail |
| export_scripts, status / status_current_place, history, directions, read_file, write_file, progress |
| summary, counts, sync, snapshot, changes, clear_history, viewport, metadata, scripts, selection_info, clear_cache |
| get, errors, clear |
| info (default), ping, connection, place_info, services, usage, preflight |
| get_mode, play_status, play_start, play_stop, play_pause, play_resume, run_test, toggle_ui_preview, test_profile_get/set/reset, experience_language_get/set, undo, redo, set_waypoint, save_prompt |
| click_at, click_path, key, type_text, walk_to, click_world, walk_and_click |
| run several tool calls in one request (optional waypoint / stopOnError) |
| run arbitrary Luau at plugin security level |
manage_studio.run_test injects Luau, stops leftover Play first, starts Play (or Run), collects [ROBRIDGE_TEST] logs, stops, and writes a report. Prefer it over play_start + manage_logs + play_stop.
system_info.preflight is a read-only Studio checklist (edit mode, HttpService, loadstring, Mesh/Image APIs) with fix instructions.
Value conventions
Property values accept plain JSON: [x,y,z] for Vector3/CFrame position, 12 numbers for full CFrame, "#ff0000" or [r,g,b] for Color3, [xs,xo,ys,yo] for UDim2, "Enum.Material.Neon" or "Neon" for enums, path strings for Instance references.
Instance paths look like game.Workspace.Model.Part or Workspace/Model/Part. Prefer rbId from a prior summary when names collide. Never invent rbxassetid values — manage_assets.search first.
Configuration
Env var | Default | Purpose |
|
| Dashboard + plugin bridge port |
The plugin reads RoBridgeHost/RoBridgePort plugin settings if you need a non-default port.
Dump the shipped catalog (no Studio needed): node dist/index.js --dump-catalog. Live HTTP: http://127.0.0.1:3737/api/tools. Schema check: npm run test:schema.
Troubleshooting
Problem | What to do |
No Studio session | Open the place in Studio with the plugin; click Allow for HTTP to |
| Edit-only. Use |
Stuck Play | Press Stop in Studio (or |
CaptureService / screenshot failed | File → Game Settings → Security → Allow Mesh / Image APIs. One in-flight shot; ~1.5–2 fps is expected. |
Play started but agent never polls | Game Settings → Security → Allow HTTP Requests. |
Stale dashboard / port in use | One process owns |
Tool errors append a Fix: line when the server recognizes the failure. Run system_info preflight for a checklist. More: docs/troubleshooting.md.
Limits
One RoBridge instance owns
:3737; extra MCP clients forward to that owner.manage_assetsinsert usesInsertService:LoadAsset(asset must be free or owned by you).Open Cloud asset upload is not included.
upload_assetis StudioAssetService:CreateAssetAsync(confirm=true).
See docs/limits.md.
Repository
Path | |
| MCP + HTTP server ( |
| Studio plugin ( |
| Dashboard served at http://127.0.0.1:3737 |
| Install, MCP, playtesting, tools, limits |
| Plugin install, catalog extract, tests |
npm test runs test:schema and test:hints (no Studio). Play/UI tests need an open place.
License
MIT. See LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceA free, open-source MCP server that lets Claude, Cursor, Codex, or Gemini operate Roblox Studio — debug live playtests, bulk-edit places, and scaffold whole games — with a built-in safety layer.5MIT
- Alicense-qualityCmaintenanceBridges AI assistants to Roblox Studio with 51 tools for exploring, editing, and automating game development, all locally via HTTP polling.7986MIT
- Alicense-qualityBmaintenanceA production MCP integration that lets AI agents control Roblox Studio to autonomously build, test, and debug Roblox games. Provides 39 tools for explorer control, script management, terrain generation, and autonomous testing.1MIT
- FlicenseAqualityCmaintenanceAn MCP server that bridges AI to Roblox Studio, enabling execution of Luau scripts, instance manipulation, play-testing control, and Open Cloud operations via natural language.21
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Allusia1/RoBridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server