Roblox Studio MCP
Integrates with the Roblox Creator Store (Toolbox) to search for and insert models, decals, and audio assets into the development environment.
Provides comprehensive control over Roblox Studio, enabling workspace exploration, instance creation and manipulation, script management, viewport rendering, and playtest session control.
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., "@Roblox Studio MCPCreate a red neon part at the origin and name it 'PowerCore'"
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 MCP
Experimental. This is an active work-in-progress. APIs will change, features may break, and the rendered screenshots are blocky approximations — not pixel-accurate previews. Use at your own risk. Contributions and bug reports welcome.
An MCP (Model Context Protocol) server for controlling Roblox Studio from AI coding tools like OpenCode. Provides workspace exploration, instance manipulation, script management, toolbox integration, playtest controls, and viewport rendering.
Architecture
OpenCode / Claude ──stdio/MCP──> MCP Server (Node.js) ──HTTP──> Studio Plugin (Lua)
:28821 bridge polls for commandsThe MCP server runs a small HTTP server on 127.0.0.1:28821. The Roblox Studio plugin polls this server every 250ms for pending commands, executes them inside Studio, and posts results back.
Related MCP server: robloxstudio-mcp
Setup
1. Install dependencies and build
npm install
npm run build2. Install the Studio plugin
Automatic:
npm run install-pluginManual:
Copy plugin/RobloxStudioMCP.server.lua to your Roblox Studio plugins folder:
Platform | Path |
macOS |
|
Windows |
|
3. Activate the plugin
In Studio, click the MCP Bridge button in the toolbar. A status widget will appear showing connection state.
Note: Plugin HTTP requests are not gated by the "Allow HTTP Requests" game setting. That setting only applies to game scripts — plugins can make HTTP calls freely.
4. Configure OpenCode
The included opencode.json works when you run OpenCode from the project root:
{
"mcp": {
"roblox-studio": {
"type": "local",
"command": ["node", "dist/index.js"],
"environment": {
"ROBLOX_MCP_PORT": "28821"
}
}
},
"default_agent": "studio"
}If you want to use this from a different project, use the absolute path to dist/index.js in the command array.
Tools (6 consolidated)
All tools use an action parameter to select the specific operation.
roblox_get — Read-only queries
Action | Description |
| Check plugin connection status and get place info |
| ASCII tree view of the instance hierarchy |
| Search by name substring and/or class name |
| Get detailed info about a specific instance |
| Read all common properties of an instance |
| Class breakdown with counts for descendants |
| Get currently selected instances |
| Read recent Output window entries |
| Get texture/decal asset IDs for an instance and descendants |
roblox_manage — Instance mutations
Action | Description |
| Create Part, Model, Folder, etc. with properties |
| Batch create multiple instances at once |
| Update properties (Position, Size, Color, etc.) |
| Reset a Model's WorldPivot to bounding box center |
| Destroy an instance (undoable) |
| Clone with optional rename/reparent |
| Move an instance to a new parent |
| Select specific instances |
| Undo last action |
| Redo last undone action |
roblox_script — Script CRUD & execution
Action | Description |
| Create Script/LocalScript/ModuleScript |
| Read script source and metadata |
| Update source code (works with open editors) |
| Execute a Lua snippet in Studio context |
roblox_scene — Camera & screenshots
Action | Description |
| Render a PNG of the current viewport (geometry + color + materials, no textures) |
| Position camera explicitly or auto-frame on an instance |
roblox_toolbox — Creator Store
Action | Description |
| Search for free models/decals/audio |
| Insert a toolbox asset by ID |
| Remove all scripts from an inserted model |
roblox_playtest — Test sessions
Action | Description |
| Begin a playtest session |
| Stop the current playtest |
| Get current state (Edit/Run/Play) |
| Move camera during playtest |
| Fire a ClickDetector |
| Trigger a ProximityPrompt |
| Read game state (players, leaderstats) |
| Run Lua in the live game context |
Instance Paths
Instances are referenced by dot-separated paths from game:
Workspace -- game.Workspace
Workspace.SpawnLocation -- a SpawnLocation in Workspace
ServerScriptService.GameScript -- a script in ServerScriptService
ReplicatedStorage.Modules.Utils -- nested pathAgent
An OpenCode agent definition is included at .opencode/agents/studio.md. It configures the AI with Roblox Studio domain knowledge and tool usage patterns. The opencode.json sets it as the default agent.
Environment Variables
Variable | Default | Description |
|
| HTTP bridge port |
Known Limitations
Screenshots are software-rendered from geometry data — no textures, lighting, or post-processing. They show shapes, colors, and spatial relationships, not what Studio's viewport actually looks like.
Playtest control uses
RunService:Run()/:Stop()which works for server-side testing but doesn't fully replicate Play Solo (no local player character).Toolbox search hits the public Roblox API and may be rate-limited.
Script execution runs via
require()on a temporary ModuleScript. Some APIs may not be available in this context.Instance paths use dot-separated names, so instances with
.in their name will not resolve correctly.
License
MIT
Available Tools
6 toolsroblox_getA
Read-only queries against the Roblox Studio scene. Use the "action" parameter to select what to retrieve.
Actions:
"ping": Check plugin connection status and get place info.
"tree": Get ASCII hierarchy tree. Params: root (path, default game), maxDepth (number).
"search": Find instances by name/class. Params: query (substring), className, root, maxResults.
"instance": Get detailed info about one instance. Params: path (required), depth (children levels, default 1).
"properties": Get all readable properties. Params: path (required), properties (array of extra names).
"descendants_summary": Class-count breakdown under a root. Params: root (default Workspace).
"selection": Get the currently selected instances. Params: depth.
"output_log": Read recent Output log entries. Params: maxEntries (default 50).
"texture_info": Get texture and decal asset IDs for an instance and its descendants. Returns MeshPart TextureIDs, Decal/Texture asset IDs, and materials. Useful for understanding visual appearance without rendering textures in screenshots. Params: path (required), maxDepth (default 2).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Which query to perform | |
| path | No | Instance path (dot-separated) | |
| root | No | Root path to scope the query | |
| query | No | Search substring (for search action) | |
| className | No | Filter by class name (for search) | |
| maxDepth | No | Tree depth limit | |
| maxResults | No | Result limit for search | |
| maxEntries | No | Log entry limit for output_log | |
| depth | No | Children depth for instance/selection | |
| properties | No | Extra property names to read (for properties action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the read-only nature upfront, describes what each action retrieves, and provides useful context like default values and parameter purposes. However, it doesn't mention potential limitations like rate limits, authentication needs, or error conditions that would be helpful for a tool with 10 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening statement followed by an organized action list. Each action is concisely described with its purpose and relevant parameters. While comprehensive, some action descriptions could be slightly more concise (e.g., 'texture_info' has a lengthy explanation). Overall, most sentences earn their place by adding necessary clarification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters, 9 actions, and no output schema or annotations, the description does an excellent job of providing context. It explains the tool's purpose, when to use it, what each action does, and how parameters relate to actions. The main gap is the lack of output format information, which would be helpful given the complexity and absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 100% schema description coverage, the description adds significant value by explaining the semantic meaning of each action and how parameters map to specific actions. It clarifies which parameters are used by which actions, provides default values not in the schema, and explains the purpose of complex actions like 'texture_info' with specific use cases. This goes well beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this is for 'read-only queries against the Roblox Studio scene' and specifies the verb 'retrieve' for the actions. It explicitly distinguishes this tool from its siblings by emphasizing its read-only query nature, which contrasts with management, playtesting, scene manipulation, scripting, and toolbox operations implied by the sibling names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: for read-only queries, with the 'action' parameter selecting specific retrieval operations. It implicitly distinguishes from siblings by focusing on querying rather than modification, though it doesn't name specific alternatives. The action list serves as a comprehensive menu of when to use each query type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roblox_manageA
Mutate instances in the Roblox Studio scene.
Actions:
"create": Create a new instance. Params: className (required), name, parent (path), properties (object).
"create_multiple": Batch-create instances. Params: parent (default path), instances (array of {className, name, parent?, properties?}).
"update": Update properties on an existing instance. Params: path (required), name, properties (object).
"reset_pivot": Reset a Model's WorldPivot to its bounding box center, or a BasePart's PivotOffset to zero. Params: path (required). Use this when positioning/PivotTo is behaving unexpectedly — a stale WorldPivot far from the geometry is a common cause. Automatically done on toolbox insert, but useful for debugging.
"delete": Destroy an instance. Params: path (required).
"clone": Clone an instance tree. Params: path (required), name, parent.
"reparent": Move an instance to a new parent. Params: path (required), newParent (required).
"set_selection": Set the Studio selection. Params: paths (array of paths).
"undo": Undo last action.
"redo": Redo last undone action.
Property format: vectors as {X,Y,Z}, colors as {R,G,B} (0-1 range), booleans, strings, numbers. Example: {"Position": {"X":0,"Y":5,"Z":0}, "Size": {"X":4,"Y":1,"Z":4}, "Anchored": true, "Material": "Neon", "Color": {"R":1,"G":0,"B":0}}
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Which mutation to perform | |
| className | No | Class to create (e.g. "Part", "Model", "Folder", "SpawnLocation") | |
| path | No | Target instance path | |
| name | No | Instance name | |
| parent | No | Parent path (default Workspace) | |
| newParent | No | New parent path (for reparent) | |
| properties | No | Properties to set/update | |
| instances | No | Array of {className, name, parent?, properties?} for create_multiple | |
| paths | No | Instance paths (for set_selection) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it explains what 'reset_pivot' does for debugging, mentions that it's 'automatically done on toolbox insert,' describes property formats with examples, and clarifies that actions like 'delete' destroy instances. However, it doesn't cover error handling, permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose, followed by a structured list of actions with their parameters. Every sentence earns its place, though the property format explanation could be slightly more concise. Overall, it's well-organized and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, nested objects, no output schema, no annotations), the description is quite complete. It covers all actions, parameter semantics, and behavioral context. The main gap is the lack of output information, but this is mitigated by the detailed input guidance. It adequately compensates for the missing structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds significant value by explaining parameter usage per action (e.g., 'className (required)' for create), providing property format examples, and clarifying default values like 'parent (default path)' for create_multiple. This goes well beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear purpose statement: 'Mutate instances in the Roblox Studio scene.' It specifies the exact action (mutate) and resource (instances in Roblox Studio scene), and distinguishes from sibling tools like roblox_get (likely read-only) and roblox_playtest (likely testing-focused).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use specific actions (e.g., 'Use this when positioning/PivotTo is behaving unexpectedly' for reset_pivot), but doesn't explicitly state when to choose this tool over alternatives like roblox_scene or roblox_toolbox. It offers good intra-tool guidance but lacks inter-tool comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roblox_playtestA
Control Roblox Studio playtest sessions and interact with the running game.
Actions:
"start": Begin playtest (RunService:Run). Scripts execute, physics activate. Params: mode ("run"|"play", default "run").
"stop": End playtest, return to Edit mode.
"status": Get current mode (Edit/Running/Client/Server).
"move_camera": Reposition camera during playtest. Params: position {X,Y,Z}, lookAt {X,Y,Z}.
"fire_click": Trigger a ClickDetector. Params: path (instance path).
"fire_proximity": Trigger a ProximityPrompt. Params: path (instance path).
"get_state": Read game state (player count, leaderstats, runtime info).
"execute": Run Lua code in the live game context. Params: code (string).
Workflow: start → interact/observe → screenshot (via roblox_scene) → evaluate → stop → fix → repeat.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Which playtest action | |
| mode | No | For start: "run" (server only) or "play" (client+server) | |
| position | No | Camera position {X,Y,Z} (for move_camera) | |
| lookAt | No | Look-at target {X,Y,Z} (for move_camera) | |
| path | No | Instance path (for fire_click/fire_proximity) | |
| code | No | Lua code (for execute) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well describing what each action does (e.g., 'Scripts execute, physics activate' for start, 'return to Edit mode' for stop), but lacks information about permissions needed, rate limits, error conditions, or what happens when actions fail. The description doesn't contradict any annotations since none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear action listings and a workflow summary. Every sentence adds value, though the workflow section could be slightly more concise. The information is front-loaded with the core purpose, followed by detailed actions, then workflow context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 8 actions, 6 parameters, nested objects, and no output schema, the description does an excellent job covering the tool's functionality. It explains what each action does, how parameters relate to actions, and provides workflow context. The main gap is lack of output information (what each action returns), which is significant given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds significant value by explaining parameter usage context: it clarifies which parameters belong to which actions (e.g., 'mode' for start, 'position' and 'lookAt' for move_camera), provides default values ('run' for mode), and explains enum meanings ('run' vs 'play'). This goes well beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as controlling Roblox Studio playtest sessions and interacting with the running game, with specific verbs for each action (start, stop, status, etc.). It distinguishes from siblings by focusing specifically on playtest control rather than general Roblox operations like scene management or scripting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear workflow (start → interact/observe → screenshot → evaluate → stop → fix → repeat) that gives excellent context for when to use this tool. However, it doesn't explicitly state when NOT to use it or mention specific alternatives among the sibling tools, which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roblox_sceneA
Control the camera and capture rendered viewport screenshots.
Actions:
"screenshot": Render a PNG image of what the camera currently sees. Returns an image you can analyze visually. Use it to verify placement, scale, orientation, and scene composition. No textures are rendered — use roblox_get action "texture_info" if you need texture/decal context. Params: maxParts (default 2000).
"move_camera": Reposition the Studio camera. Two modes: (A) Auto-frame an object: set focusInstance to an instance path (e.g. "Workspace.GasStation"). The camera automatically positions itself at a good distance and angle to see the entire object. Optional: angle (elevation in degrees, default 35), yaw (horizontal rotation in degrees, default 45). (B) Explicit placement: set position {X,Y,Z} (where the camera IS in world space) and lookAt {X,Y,Z} (the world point the camera POINTS AT). Both must be provided and must be different points. Example: position {X:50, Y:20, Z:50} lookAt {X:0, Y:0, Z:0} places camera at (50,20,50) aiming at the origin.
Typical workflow: move_camera (frame your subject) → screenshot (see the result) → evaluate → adjust.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Which scene operation | |
| maxParts | No | Max parts to render (default 2000, for screenshot) | |
| focusInstance | No | For move_camera mode A: instance path to auto-frame, e.g. "Workspace.MyModel". Camera positions itself to see the whole object. | |
| angle | No | For move_camera with focusInstance: camera elevation angle in degrees (default 35). 0 = eye level, 90 = top-down. | |
| yaw | No | For move_camera with focusInstance: horizontal orbit angle in degrees (default 45). 0 = front, 90 = side, 180 = back. | |
| position | No | For move_camera mode B: where the camera IS in world space {X,Y,Z}. Must also provide lookAt. | |
| lookAt | No | For move_camera mode B: the world point the camera AIMS AT {X,Y,Z}. Must differ from position. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well. It explains what screenshots return ('PNG image you can analyze visually'), clarifies limitations ('No textures are rendered'), describes camera positioning behavior for both modes, specifies defaults (maxParts=2000, angle=35, yaw=45), and notes constraints ('Both must be provided and must be different points'). It doesn't mention rate limits or authentication needs, but provides substantial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (overview, actions with sub-modes, typical workflow). Every sentence adds value: the opening states purpose, action descriptions provide specific guidance, and the workflow shows practical application. No wasted words despite the complexity of 7 parameters and multiple operation modes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 7 parameters, no annotations, and no output schema, the description does an excellent job. It explains what the tool does, how to use it, parameter meanings, and provides a workflow. The only gap is not explicitly describing the return format for move_camera (though it's implied to be a camera position change), but given the rich parameter explanations and behavioral context, this is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds significant value by explaining parameter semantics beyond the schema: it clarifies that maxParts is for screenshot only, explains the two distinct modes for move_camera with clear examples, describes what angle and yaw actually control, and provides concrete usage examples. This goes well beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Control the camera and capture rendered viewport screenshots.' It specifies two distinct actions (screenshot and move_camera) with their specific functions, and distinguishes from sibling 'roblox_get' by noting that screenshots don't render textures. This provides specific verb+resource differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use each action: 'Use it to verify placement, scale, orientation, and scene composition' for screenshot, and describes two distinct modes for move_camera. It also provides a typical workflow sequence and explicitly mentions when to use the sibling tool 'roblox_get' for texture context instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roblox_scriptA
Create, read, update, and execute Lua scripts in Roblox Studio.
Actions:
"create": Create a new script. Params: source (required), scriptType ("Script"|"LocalScript"|"ModuleScript"), name, parent, disabled.
"read": Read a script's source. Params: path (required).
"update": Update a script's source code. Params: path (required), source (required).
"execute": Run a Lua snippet in Studio (server context). Returns the result or error. Params: source (required). Code runs in a function body — use 'return' to get values back.
Common parent locations: "ServerScriptService" (server scripts), "StarterPlayerScripts" (local scripts), "ReplicatedStorage" (modules).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Which script operation to perform | |
| path | No | Path to existing script | |
| source | No | Lua source code | |
| scriptType | No | Type of script to create (default Script) | |
| name | No | Script name | |
| parent | No | Parent path | |
| disabled | No | Create in disabled state |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it explains that 'execute' runs code in server context, returns results or errors, and requires 'return' statements to get values back. It also mentions script types and parent locations, though it could add more about permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points for actions and clear parameter lists, making it easy to scan. It's appropriately sized with no wasted sentences, though the 'Common parent locations' section could be integrated more tightly with the 'create' action for better flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and no output schema, the description does a solid job covering key aspects: it explains actions, parameters, and behavioral context like execution environment. However, it lacks details on error handling, response formats, or limitations, leaving some gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some value by clarifying parameter usage per action (e.g., 'source' is required for 'create', 'update', and 'execute') and providing examples like common parent paths, but it doesn't significantly enhance meaning beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs CRUD operations on Lua scripts in Roblox Studio, specifying 'create, read, update, and execute' with explicit resource targeting. It distinguishes from siblings like 'roblox_get' or 'roblox_scene' by focusing specifically on script manipulation rather than general object retrieval or scene management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use each action (e.g., 'create' for new scripts, 'read' to view source) and includes practical guidance like common parent locations for script placement. However, it doesn't explicitly state when NOT to use this tool versus alternatives like 'roblox_manage' or 'roblox_toolbox', missing explicit sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roblox_toolboxA
Search the Roblox Creator Store, insert models, and sanitize them.
Actions:
"search": Search for free models/decals/audio. Returns AssetId, Name, Creator, HasScripts, IsEndorsed. Params: query (required), category ("FreeModels"|"FreeDecals"|"FreeAudio"), maxResults (default 20). Prefer assets where HasScripts=false or IsEndorsed=true.
"insert": Insert an asset by ID. Params: assetId (required), parent (path), position {X,Y,Z}. CRITICAL: Toolbox models often contain far more than their name implies — a "gas station" may bundle pumps, signs, shelving, vehicles, lighting as descendants. Always inspect the returned hierarchy before building additional objects. Check orientation (model axes may not match your scene) and scale (toolbox models vary wildly in size, Roblox studs ≈ 0.28m).
"strip_scripts": Remove all scripts from an instance tree. Params: path (required), scriptTypes (array, default all). Always do this after inserting models with HasScripts=true.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Which toolbox operation | |
| query | No | Search query (for search) | |
| category | No | Asset category (for search, default FreeModels) | |
| maxResults | No | Max results (for search, default 20) | |
| assetId | No | Asset ID to insert (for insert) | |
| parent | No | Parent path (for insert, default Workspace) | |
| position | No | Position {X,Y,Z} (for insert) | |
| path | No | Instance path (for strip_scripts) | |
| scriptTypes | No | Script types to remove (for strip_scripts, default all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and excels at disclosing behavioral traits. It warns about toolbox models containing 'far more than their name implies' with specific examples, mentions orientation and scale mismatches, provides preference guidance for search results ('Prefer assets where HasScripts=false or IsEndorsed=true'), and explains critical post-insertion steps. This goes well beyond basic parameter documentation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear action sections and front-loaded critical information. Every sentence earns its place by providing essential guidance, warnings, or clarification. It could be slightly more concise in the 'insert' section where some details are repeated, but overall it's efficiently organized for a multi-action tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 9 parameters, no annotations, and no output schema, the description provides excellent completeness. It covers all three actions thoroughly, includes critical behavioral warnings, explains parameter usage in context, and provides practical workflow guidance. The only minor gap is lack of explicit return value documentation, but this is reasonable given the tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3, but the description adds significant value beyond the schema. It explains the practical meaning of search parameters (e.g., 'Prefer assets where HasScripts=false or IsEndorsed=true'), clarifies that 'parent' defaults to 'Workspace', and provides context about what 'strip_scripts' actually does ('Remove all scripts from an instance tree'). However, it doesn't fully explain all parameter interactions or edge cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Search', 'insert', 'sanitize') and resources ('Roblox Creator Store', 'models'). It distinguishes from siblings by focusing on the toolbox/store functionality rather than general Roblox operations like get, manage, playtest, scene, or script tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use each action: 'search' for finding assets, 'insert' for placing them, and 'strip_scripts' for cleaning inserted models. It includes critical warnings about toolbox models containing unexpected content and orientation/scale issues, plus specific advice to 'Always inspect the returned hierarchy before building additional objects' and 'Always do this after inserting models with HasScripts=true.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v1.0.0- First observed
roblox_get - First observed
roblox_manage - First observed
roblox_playtest - First observed
roblox_scene - First observed
roblox_script - First observed
roblox_toolbox
TDQS
Each tool has a clearly distinct purpose: roblox_get for read-only queries, roblox_manage for mutations, roblox_playtest for session control, roblox_scene for camera/screenshot, roblox_script for script handling, and roblox_toolbox for asset management. The actions within each tool are well-defined and non-overlapping, making tool selection straightforward for an agent.
All tool names follow a consistent 'roblox_' prefix with a descriptive suffix (e.g., get, manage, playtest, scene, script, toolbox). This pattern is uniform across all six tools, making them easily identifiable and predictable within the server's domain.
With 6 tools, the server is well-scoped for Roblox Studio automation, covering scene inspection, manipulation, playtesting, visualization, scripting, and asset management. Each tool serves a distinct and necessary function, with no redundancy or missing core areas, making the count ideal for the domain.
The tool set provides comprehensive coverage for Roblox Studio workflows, including CRUD operations (e.g., create, update, delete), scene analysis, playtesting, camera control, script management, and asset handling. There are no obvious gaps; agents can perform end-to-end tasks from asset insertion to scene evaluation and debugging.
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 Connectors
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Control Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…
On-brand creative studio for AI agents: images, video, audio, and 3D.
- SkilderOAuthai.skilder
One place to build, share, and govern the skills and tools your AI agents use at work.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI agents to interact with and control Roblox Studio instances in real-time through the Model Context Protocol. It provides a unified tool for building, scripting, and manipulating 3D worlds with over 90 operations including instance management and Luau scripting.14-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to explore Roblox Studio game structure, read and edit scripts, and perform bulk changes locally and safely.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to control Roblox Studio by running Luau code, creating and editing instances, reading the scene tree, and managing scripts via an MCP server with a long-polling plugin bridge.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI tools to read the Roblox Studio game tree, edit scripts, insert models, and run playtests via the Studio MCP interface.234MIT
Appeared in Searches
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/paralov/roblox-studio-opencode-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server