servers / robloxstudio-mcp-2

robloxstudio-mcp

communitystdiolocaldestructive capablehealthy

MCP server for Roblox Studio runtime debugging, playtest control, screenshots/input, multiplayer testing, and per-peer server/client eval from AI agents.


01Tools · 82

How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.

ToolRiskSide effectsApproval
add_tag
Add a tag
writetrueunknown
breakpoints
Use to trace script execution with breakpoints or logpoints.
unknownunknownunknown
bulk_set_attributes
Set multiple attributes on an instance in a single call. More efficient than repeated set_attribute calls.
writetrueunknown
capture_device_matrix
Use to compare viewport screenshots across up to six device settings.
unknownunknownunknown
capture_micro_profiler
Use to profile engine and game frame time on a live peer.
unknownunknownunknown
capture_screenshot
Use to capture the Studio viewport or map input coordinates.
unknownunknownunknown
capture_script_profiler
Use to find Luau CPU hotspots on a running server or client.
readfalseunknown
clone_object
Clone an instance to a new parent location. Creates a deep copy of the instance and all its descendants.
unknownunknownunknown
compare_instances
Diff two instances by comparing their properties. Useful for debugging why a duplicate behaves differently.
unknownunknownunknown
create_build
Create a new build model from scratch and save it to the library. Define parts using compact arrays [posX, posY, posZ, sizeX, sizeY, sizeZ, rotX, rotY, rotZ, paletteKey, shape?, transparency?]. Palette maps short keys to [BrickColor, Material] pairs. The build is saved and can be referenced by import_build or import_scene.
writetrueunknown
create_object
Create a new instance. Optionally set properties on creation.
writetrueunknown
delete_attribute
Delete an attribute
destructivetruetrue
delete_object
Delete an instance
destructivetruetrue
delete_script_lines
Use to remove a known inclusive line range from one script.
destructivetruetrue
edit_script_lines
Use for an exact, localized replacement in one script.
writetrueunknown
eval_client_runtime
Use to run Luau in a live client VM with its require cache.
unknownunknownunknown
eval_server_runtime
Use to run Luau in the live server VM with its require cache.
unknownunknownunknown
execute_luau
Use for custom Studio traversal, edits, or peer execution.
writetrueunknown
export_build
Export a Model/Folder into a compact, token-efficient build JSON format and auto-save it to the local build library. The output contains a palette (unique BrickColor+Material combos mapped to short keys) and compact part arrays with positions normalized relative to the bounding box center. The file is saved to build-library/{style}/{id}.json automatically.
unknownunknownunknown
export_rbxm
Use to save selected DataModel instances as a local .rbxm file.
unknownunknownunknown
find_and_replace_in_scripts
Use to preview or apply one replacement across scripts.
readfalseunknown
generate_build
Procedurally generate a build via JS code. ALWAYS generate the entire scene in ONE call - never split into multiple small builds. PREFER high-level primitives over manual loops. No comments. No unnecessary variables. Maximize build detail per line. EDITING: When modifying an existing build, call get_build first to retrieve the original code. Then make ONLY the targeted changes the user requested - do not rewrite unchanged code. Pass the modified code to generate_build. HIGH-LEVEL (use these first - each replaces 5-20 lines): room(x,y,z, w,h,d, wallKey, floorKey?, ceilKey?, wallThickness?) - Complete enclosed room (floor+ceiling+4 walls) roof(x,y,z, w,d, style, key, overhang?) - style: "flat"|"gable"|"hip" stairs(x1,y1,z1, x2,y2,z2, width, key) - Auto-generates steps between two points column(x,y,z, height, radius, key, capKey?) - Cylinder with base+capital pew(x,y,z, w,d, seatKey, legKey?) - Bench with seat+backrest+legs arch(x,y,z, w,h, thickness, key, segments?) - Curved archway fence(x1,z1, x2,z2, y, key, postSpacing?) - Fence with posts+rails BASIC: part(x,y,z, sx,sy,sz, key, shape?, transparency?) rpart(x,y,z, sx,sy,sz, rx,ry,rz, key, shape?, transparency?) wall(x1,z1, x2,z2, height, thickness, key) - vertical plane from (x1,z1) to (x2,z2) floor(x1,z1, x2,z2, y, thickness, key) - horizontal plane at height y, corners (x1,z1)-(x2,z2). NOT fill - only takes 2D corners+y, not 3D points fill(x1,y1,z1, x2,y2,z2, key, [ux,uy,uz]?) - 3D volume between two 3D points beam(x1,y1,z1, x2,y2,z2, thickness, key) IMPORTANT: Palette keys must match exactly. Use only keys defined in your palette object, not color names. CUSTOM MATERIALS: Use search_materials to find MaterialVariant names, then reference them as the 3rd palette element: {"a": ["Color", "BaseMaterial", "VariantName"]}. REPETITION: row(x,y,z, count, spacingX, spacingZ, fn(i,cx,cy,cz)) grid(x,y,z, countX, countZ, spacingX, spacingZ, fn(ix,iz,cx,cy,cz)) Shapes: Block(default), Wedge, Cylinder, Ball, CornerWedge. Max 10000 parts. Math and rng() available. CYLINDER AXIS: Roblox cylinders extend along the X axis. For upright cylinders, use size (height, diameter, diameter) with rz=90. The column() primitive handles this automatically. EXAMPLE - compact cabin (17 lines): room(0,0,0,8,4,6,"a","b","a") roof(0,4,0,8,6,"gable","c") wall(-4,-2,4,-2,4,1,"a") part(0,2,3,3,3,0.3,"a","Block",0.4) row(-2,0,-1,3,0,2,(i,cx,cy,cz)=>{pew(cx,0,cz,3,2,"d")}) column(-3,0,-2,4,0.5,"a","b") column(3,0,-2,4,0.5,"a","b") part(0,2,0,2,1,1,"b")
readfalseunknown
generate_model
Use to stage a Roblox model from text or an image.
unknownunknownunknown
get_asset_details
Use to inspect a shortlisted Creator Store asset.
readfalseunknown
get_asset_thumbnail
Use when an asset thumbnail would help with visual review.
readfalseunknown
get_attributes
Use to inspect every attribute on one instance.
readfalseunknown
get_build
Get a build from the library by ID. Returns metadata, palette, and generator code (if the build was created with generate_build). IMPORTANT: When the user asks to modify an existing build, ALWAYS call get_build first to retrieve the original code, then make targeted edits to only the relevant lines, and call generate_build with the modified code. Never rewrite the entire code from scratch - only change what the user asked to change.
readfalseunknown
get_class_info
Get properties/methods for a class
readfalseunknown
get_connected_instances
Use to discover connected places and the roles available in each.
readfalseunknown
get_descendants
Get all descendants of an instance recursively with depth info. More efficient than repeated get_instance_children calls.
readfalseunknown
get_device_simulator_state
Use to inspect device simulation or list device presets.
readfalseunknown
get_file_tree
Get instance hierarchy tree from Studio
readfalseunknown
get_instance_children
Get children and their class types
readfalseunknown
get_instance_properties
Use to inspect an instance's current properties.
readfalseunknown
get_memory_breakdown
Use to compare memory categories across Studio peers.
readfalseunknown
get_place_info
Use when you need the current place's identity or settings.
readfalseunknown
get_project_structure
Use to inspect a DataModel subtree and its hierarchy.
readfalseunknown
get_roblox_docs
Use to read official Roblox engine or Luau references.
readfalseunknown
get_roblox_skills
Use to read installed Roblox Studio Assistant skills.
readfalseunknown
get_runtime_logs
Use to read recent Studio output from edit, server, or client peers.
readfalseunknown
get_scene_analysis
Use to attribute scene cost across instances and content.
readfalseunknown
get_script_source
Use to read all or part of a script's source.
readfalseunknown
get_selection
Use when the current Studio selection should define the objects to work on.
readfalseunknown
get_services
Get available services and their children
readfalseunknown
get_simulation_state
Use to inspect current network and device simulation.
readfalseunknown
get_tagged
Get all instances with a specific tag
readfalseunknown
get_tags
Get all tags on an instance
readfalseunknown
grep_scripts
Use to locate text or Lua pattern matches across script sources.
unknownunknownunknown
import_build
Import a build into Roblox Studio. Accepts either a full build data object OR a library ID string (e.g. "medieval/church_01") to load from the build library. When using generate_build or create_build, pass the build ID string instead of the full data.
unknownunknownunknown
import_rbxm
Use to load a local, remote, or inline .rbxm under a chosen parent.
unknownunknownunknown
import_scene
Import a full scene layout. Provide a scene with model references (resolved from library) and placement data. Each model is placed at the specified position/rotation. Can also include inline custom builds.
unknownunknownunknown
insert_asset
Use to sanitize and insert a Creator Store asset into a Studio place.
writetrueunknown
insert_script_lines
Use to add source after a known line in one script.
writetrueunknown
list_library
List available builds in the local build library. Returns build IDs, styles, bounds, and part counts. Optionally filter by style.
readfalseunknown
manage_instance
Use to manage Studio processes or list place revisions.
readfalseunknown
mass_create_objects
Create multiple instances. Each can have optional properties.
writetrueunknown
mass_duplicate
Batch smart_duplicate operations
unknownunknownunknown
mass_get_property
Get a property from multiple instances
readfalseunknown
mass_set_property
Set a property on multiple instances
writetrueunknown
multiplayer_playtest
Use to run or inspect a multi-client Studio playtest.
readfalseunknown
preview_asset
Use to inspect an asset's hierarchy and media without inserting it.
readfalseunknown
redo
Redo the last undone change in Roblox Studio. Uses ChangeHistoryService to reapply the most recently undone operation.
unknownunknownunknown
remove_tag
Remove a tag
destructivetruetrue
reset_simulation_state
Use to clear network and device simulation state.
unknownunknownunknown
search_assets
Use to find public Creator Store assets by type or keyword.
readfalseunknown
search_by_property
Find objects with specific property values
readfalseunknown
search_files
Search instances by name, class, or script content
readfalseunknown
search_materials
Search for MaterialVariant instances in MaterialService by name. Use this to find custom materials before using them in generate_build or create_build palettes. Returns material names and their base material types.
readfalseunknown
search_objects
Use to find instances by name, class, or property value.
readfalseunknown
selection
Use to get, set, or frame selection.
readfalseunknown
set_attribute
Set an attribute. Supports primitives, Vector3, Color3, UDim2, BrickColor.
writetrueunknown
set_device_simulator
Use to manage device simulation in edit or a playtest client.
writetrueunknown
set_network_profile
Use to simulate client latency, jitter, or packet loss.
writetrueunknown
set_properties
Use to update several properties on one instance in a single call.
writetrueunknown
set_property
Set a property on an instance
writetrueunknown
set_script_source
Use only when replacing a script's entire source.
writetrueunknown
simulate_keyboard_input
Use to send key presses or text to a live playtest client.
unknownunknownunknown
simulate_mouse_input
Use to click the live playtest viewport at known pixel coordinates.
unknownunknownunknown
smart_duplicate
Duplicate with naming, positioning, and property variations
unknownunknownunknown
solo_playtest
Use to start, stop, or inspect a single-player Studio playtest.
readfalseunknown
undo
Undo the last change in Roblox Studio. Uses ChangeHistoryService to reverse the most recent operation.
unknownunknownunknown
upload_asset
Use to upload a local asset file to a Roblox user or group.
writetrueunknown

02Install & source
npx -y @chrrxs/robloxstudio-mcp@latest
npx
npx -y @chrrxs/robloxstudio-mcp-inspector@latest
npx

05Provenance & freshness
sourcesGitHub repo search [p4]
last_checked2026-10-08 03:30Z
next_check2026-10-08 06:30Z
cadenceevery 3h
verifiedmetadata:passed metadata:passed metadata:passed metadata:passed metadata:passed metadata:passed metadata:passed metadata:passed metadata:passed metadata:passed
index_statusindex — 8 unique facts >= 5

06Badge

Add the “as seen on MCPExplorer” badge to your README. robloxstudio-mcp MCP — as seen on mcpexplorer.com

[![robloxstudio-mcp MCP — as seen on mcpexplorer.com](https://mcpexplorer.com/badge/robloxstudio-mcp-2.svg)](https://mcpexplorer.com/servers/robloxstudio-mcp-2)

Next step

This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.

Explore loadouts →