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.
Available Tools
24 toolsbatch_executeA
Run several RoBridge tool calls in one request as a single undo waypoint. Each command is {tool, args}. Stops on first error unless continueOnError is true (stopOnError is the inverse alias). Nested batch_execute is rejected. Prefer this over many round-trips for related mutations.
| Name | Required | Description | Default |
|---|---|---|---|
| commands | Yes | Ordered list of tool calls | |
| waypoint | No | ChangeHistoryService waypoint name for the batch | |
| stopOnError | No | Alias (default true). Inverse of continueOnError. | |
| continueOnError | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It explains error handling (stops on first error unless continueOnError is true), the inverse alias (stopOnError), the nesting restriction, and the undo waypoint behavior. It could mention return-value details, but the core behaviors are well covered.
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 extremely concise—two sentences covering purpose, structure, error behavior, and usage guidance. It is front-loaded with the main purpose and contains no unnecessary words.
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 (executing multiple arbitrary sub-tools) and the absence of an output schema, the description should explain what the return payload looks like (e.g., per-command results, error reporting). It does not, and it also does not specify whether partial mutations are rolled back on error. The description covers behavior well but leaves these important details unaddressed.
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 75%, covering commands, waypoint, and stopOnError. The description adds value by clarifying the alias relationship between stopOnError and continueOnError and confirming the command shape. However, continueOnError itself lacks a schema description, and the description does not elaborate further on parameter formatting beyond what the schema already 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: running several RoBridge tool calls in one request as a single undo waypoint. It uses a specific verb ('Run') and resource ('RoBridge tool calls'), and distinguishes itself from sibling tools like execute_luau by highlighting the batching aspect.
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 usage guidance by recommending this tool 'over many round-trips for related mutations' and explicitly rejecting nested batch_execute. It does not name specific alternative tools, but the context of batching vs. individual calls is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_luauA
Run arbitrary Luau code in Roblox Studio (plugin security level, Edit-only). During Play use manage_studio.run_test / play agents instead — plugin loadstring is unavailable in Play. The code may return a value, which is JSON-encoded (Instances become path strings, Roblox types become typed tables). A helper table RB is available with RB.resolve(path or rbId), RB.encode(value), RB.summary(instance) (includes rbId), RB.setProp(instance, name, value), RB.stripIds().
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Luau source to run | |
| timeoutSeconds | No | Max wait (default 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: it discloses security level, Edit-only constraint, return-value JSON encoding behavior (Instances become path strings, Roblox types become typed tables), and the RB helper table with its methods. This is rich behavioral context beyond any structured metadata.
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?
Every sentence earns its place: purpose, usage guidance, return semantics, and helper table. It is front-loaded with the primary action, and the length is appropriate for the complexity of the tool. No fluff or repetition of schema details.
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 power (arbitrary code execution), the description covers all critical aspects: environment, security, Play vs Edit, return value handling, and available helper APIs. It even provides enough context for an agent to understand side-effect potential and encoding without needing an output schema. This is a model description for a code execution tool.
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?
Although the schema covers both parameters at 100%, the description adds substantial meaning: the `code` parameter is elaborated with return-value behavior and RB helper context, which directly informs how to write the Luau code. Timeout is already adequately described in the schema, but the description's added context for `code` goes well beyond the basic schema description.
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 opens with 'Run arbitrary Luau code in Roblox Studio' — a clear specific verb+resource pair. It also distinguishes from siblings by noting 'plugin security level, Edit-only' and explicitly contrasting with Play-time alternatives, leaving no ambiguity about what this tool does.
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?
Explicitly states when NOT to use this tool: 'During Play use manage_studio.run_test / play agents instead — plugin loadstring is unavailable in Play.' This provides a clear usage boundary and names the alternative tools, making the decision framework unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_animationA
Manage animations. Actions: create (Animation with animationId — do not invent IDs), list, load (load onto a rig without playing), play, stop, stop_all, get_tracks (tracks on a rig). Prefer user-provided or search-accepted animation IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| path | No | Animation instance path for play | |
| action | Yes | ||
| rigPath | No | Model with Humanoid or AnimationController | |
| parentPath | No | ||
| animationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It adds useful semantics (create must not invent IDs, load does not play, get_tracks returns tracks on a rig), but it does not describe effects of stop/stop_all, required prerequisites, or return behavior, leaving significant gaps.
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 two compact sentences with a clear, inline action list. It front-loads the key caveat about animation IDs and avoids wasted words, achieving high density of useful information.
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 6-parameter, multi-action tool with no annotations and no output schema, the description is too thin. It doesn't clarify which parameters each action requires, what stop_all affects (global vs. per-rig), or what each action returns, making it incomplete for an agent to invoke correctly in all cases.
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 coverage is only 33%, so the description must compensate. It adds context for animationId (do not invent), implies rigPath via 'load onto a rig', and clarifies get_tracks is rig-based, but leaves name, parentPath, and the precise semantics of path only partially covered.
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 explicitly names the resource (animations) and enumerates seven concrete actions (create, list, load, play, stop, stop_all, get_tracks), making the tool's purpose specific and distinguishing it from sibling tools like manage_audio or manage_camera.
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?
There is no explicit guidance on when to use this tool versus alternatives, but the action list and resource name make the primary use case clear. The note about preferring user-provided or search-accepted animation IDs is helpful, but no exclusions or sibling alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_assetsA
Roblox Toolbox/Creator Store assets plus a local asset library. ALWAYS search first, then insert using an assetId from those results — never invent or hardcode IDs. Actions: search (keyword/query + assetType), preview / info (metadata for a search-result assetId), insert / insert_free / insert_package (assetId into parentPath), search_insert (search then insert the first match), export_selection_json (JSON snapshot of the Studio selection), export_selection_rbxm / export_path_rbxm (serialize selection or a path into the local ./asset-library as a re-importable asset), import_rbxm (rebuild a library asset in Studio), review_model (QA a model: anchoring, PrimaryPart, naming, size, expected groups; readiness verdict), generate_model (Roblox GenerationService, if this Studio has access), upload_asset (AssetService:CreateAssetAsync — requires confirm=true), generate_thumbnail (render a library asset to a PNG thumbnail).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional name for the inserted instance (especially Sounds) | |
| play | No | If true and the insert is audio, play the Sound once | |
| limit | No | Max search results (default 10, max 30). Alias: maxResults | |
| query | No | Alias for keyword | |
| action | Yes | search first, then insert/preview with an assetId from results | |
| parent | No | Alias for parentPath | |
| prompt | No | generate_model: text prompt for Roblox GenerationService | |
| assetId | No | Toolbox asset id from a search/preview result. Do not invent this. | |
| confirm | No | upload_asset: must be true to actually upload to Roblox | |
| keyword | No | Toolbox search text (required for search). Alias: query | |
| category | No | Library category folder for export/import/review/thumbnail (default 'models') | |
| maxDepth | No | Export child depth (default 10) | |
| position | No | Optional [x,y,z] pivot for models/meshes | |
| assetType | No | Toolbox category. Model=props, Audio=Sounds, Decal=images, Mesh=MeshParts | |
| maxResults | No | Alias for limit | |
| parentPath | No | Insert parent (default Workspace). Aliases: parent, targetParent | |
| sourcePath | No | Instance path for export_path_rbxm / review_model / upload_asset | |
| description | No | Library asset description | |
| displayName | No | Library asset display name | |
| expectedUse | No | ||
| targetParent | No | Alias for parentPath (import_rbxm/generate_model) | |
| expectedGroups | No | review_model: child names that must exist | |
| maxDescendants | No | review_model descendant budget (default 500) | |
| exportToLibrary | No | review_model: also save to the library when review passes | |
| includeChildren | No | export_selection_json: include children (default true) | |
| includeProperties | No | export_selection_json: include common properties (default true) | |
| assetLibraryAssetId | No | Local library asset id from an export action (import_rbxm / generate_thumbnail) |
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 meets it well. It discloses important behaviors such as the confirm=true requirement for upload_asset, the access dependency for generate_model, file-serialization side effects for export actions, and the local ./asset-library destination. This goes beyond the schema and gives the agent essential context about side effects and prerequisites.
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 a single dense paragraph, but it front-loads the most critical rule ('ALWAYS search first') and packs actions efficiently with parenthetical specifics. It could be more scannable as a bullet list, but for 27 parameters it remains appropriately sized and avoids fluff.
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 high complexity (27 parameters, no output schema, no annotations), the description covers all action types with enough context to guide invocation. It doesn't explain return values or error cases, but the action list plus schema coverage makes the tool usable. A more detailed walkthrough for each action would push it to 5, but this is solid.
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?
The input schema already covers 96% of parameter descriptions, so the baseline is 3. The description adds value by mapping parameters to specific actions (e.g., 'search (keyword/query + assetType)', 'insert (assetId into parentPath)') and highlighting critical flags like confirm=true. While the description doesn't explain every alias or default, the schema already handles that detail.
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 identifies the tool as managing Roblox Toolbox/Creator Store assets plus a local asset library, and enumerates every action with specific verbs and resource targets. This distinguishes it from sibling tools that handle terrain, scripts, or instances.
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 strong usage rule: 'ALWAYS search first, then insert using an assetId from those results — never invent or hardcode IDs.' It also outlines the workflow for each action. However, it doesn't explicitly contrast with nearby sibling tools like manage_audio or manage_selection, though the asset-specific context makes such exclusions less necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_audioA
Manage Sound instances. Actions: create (soundId number or 'rbxassetid://...' — do not invent IDs), play, pause, resume, stop, stop_all, list, set, set_listener (SoundService listener: Camera, CFrame, ObjectPosition, or ObjectCFrame). Prefer user-provided or search-accepted asset IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| path | No | ||
| action | Yes | ||
| cframe | No | [x,y,z] for CFrame listener | |
| soundId | No | ||
| parentPath | No | ||
| properties | No | ||
| listenerPath | No | Instance path for ObjectPosition/ObjectCFrame listener | |
| listenerType | No | For set_listener (default Camera) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It adds behavioral context by specifying valid sound ID formats and the listener type options for set_listener. However, it does not disclose side effects of actions (e.g., whether stop_all affects all sounds globally, whether create is reversible, or what errors occur for invalid IDs). The action names imply some behavior, but deeper consequences remain undocumented.
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?
A single sentence front-loads the purpose ('Manage Sound instances') and then efficiently enumerates actions and key constraints. There is no wasted wording; every clause adds useful information. The semicolon-separated structure keeps it compact while covering a broad action set.
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?
Despite listing actions and some constraints, the description omits critical context for a tool with 9 parameters and no output schema. The 'set' action is undefined (what properties can be set?), the return values for 'list', the behavior of 'path' vs 'parentPath', and the format of the free-form 'properties' object are unexplained. The description is too skeletal for an agent to use every action correctly without further inference or trial-and-error.
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 coverage is only 33%, and the description does add meaning for some parameters: it clarifies that soundId can be a number or 'rbxassetid://...' and describes listenerType values. Yet many parameters like name, path, parentPath, properties, and cframe are not explained in the description beyond the schema, leaving significant gaps. The description partially compensates but not enough for a 9-parameter tool with low schema coverage.
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 resource ('Sound instances') and provides a comprehensive verb-based list of actions (create, play, pause, resume, stop, stop_all, list, set, set_listener). This distinguishes it from sibling tools that operate on other resource types such as terrain, lighting, or physics.
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 gives specific usage constraints: 'do not invent IDs' and 'Prefer user-provided or search-accepted asset IDs' for the create action. It also lists all possible actions, making it clear when to use this tool. However, it does not explicitly mention when not to use it or describe alternatives like mutate_instances, so it falls short of an explicit exclusion statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_cameraA
Control the Studio viewport camera. Actions: get/info, set, focus/focus_path, focus_position (look at a world point), suggest (recommended views for a target or the selection — does not move the camera), zoom_extents, screenshot, record, record_stop. screenshot captures the Edit-mode viewport via Roblox CaptureService (works even if Studio is in the background). record captures a short viewport clip (CaptureService frame burst → Node stitch). CaptureService allows only one in-flight shot and typically lands around 1.5–2 fps; that cap is expected. record_stop aborts an in-flight recording. Requires File → Game Settings → Security → Allow Mesh / Image APIs.
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | record target frames per second (default 15, range 4–24). Actual rate is CaptureService-limited (~1.5–2 fps). | |
| path | No | Instance to focus for focus/screenshot/record | |
| action | Yes | ||
| lookAt | No | [x,y,z] point to look at | |
| seconds | No | record duration in seconds (default 4, max 12) | |
| distance | No | Distance from target when focusing | |
| position | No | [x,y,z] camera position | |
| maxDimension | No | Longest screenshot/record side in pixels (screenshot default 1024, record default 480) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden, and it excels. It discloses the CaptureService limitation (only one in-flight shot, ~1.5–2 fps caps), the fact that 'suggest' does not move the camera, that 'screenshot' works even when Studio is in the background, and the required security setting. These behavioral traits go well beyond the schema and give the agent critical operational expectations.
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 tightly packed with essential information and is well-structured. It starts with the core purpose, lists actions in a compact syntax-heavy way, then adds necessary caveats and requirements. No verbose or redundant sentences; every clause adds value.
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 multi-action complexity and lack of output schema, the description is remarkably complete. It covers all actions, the CaptureService constraints, the security prerequisite, and the difference between similar actions (focus vs focus_position vs suggest). The only minor gap is that it doesn't explicitly describe return values (e.g., what 'get/info' returns), but for a control tool this is less critical.
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 88%, so most parameters are already documented. The description adds extra meaning beyond the schema by clarifying action-specific parameter semantics: 'focus_position (look at a world point)' and 'suggest (recommended views for a target or the selection — does not move the camera)'. It also explains the meaning of 'maxDimension' and 'fps' in context of CaptureService limitations, connecting parameters to real-world behavior.
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 opens with a clear verb+resource statement: 'Control the Studio viewport camera.' It then enumerates the full action list (get/info, set, focus, focus_path, focus_position, suggest, zoom_extents, screenshot, record, record_stop), distinguishing each action's role. This clearly separates it from sibling tools like manage_terrain or query_instances, which deal with other subsystems.
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 rich usage context: it explains when to use 'suggest' (for recommended views, does not move camera), that 'screenshot' works in background, and that 'record_stop' aborts in-flight recording. It also lists a prerequisite (File → Game Settings → Security → Allow Mesh / Image APIs), which guides the user on setup. However, it doesn't explicitly name alternative tools to use instead, relying on the tool name and sibling context for distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_effectsA
Add visual effects to parts. Actions: create (ParticleEmitter, Fire, Smoke, Sparkles, Trail, Beam, PointLight, SpotLight, SurfaceLight, Highlight), remove/clear, list, emit (ParticleEmitter:Emit), toggle (Enabled).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| path | Yes | Target part/instance path | |
| count | No | Particle count for emit (default 16) | |
| action | Yes | ||
| effectType | No | ||
| properties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It transparently lists actions like remove/clear and emit, indicating mutating behavior, but does not disclose side effects, permission requirements, or return format. This is a moderate disclosure for a potentially destructive tool.
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 a single, information-dense sentence that front-loads the core purpose and then compactly lists actions and effect types. Every word contributes value with no redundancy.
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?
The description provides a good overview but lacks details on the flexible 'properties' object and the 'name' parameter. It also does not explain output for actions like list, which is a gap given there is no 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?
The description adds significant meaning to the action and effectType parameters by enumerating valid effect types and clarifying what emit and toggle do. However, it does not explain the 'properties' or 'name' parameters, so with only 33% schema coverage, some parameters remain under-documented.
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 'Add visual effects to parts' and enumerates specific effect types and actions, giving a precise scope. It does not explicitly distinguish it from sibling tools like manage_lighting, but the name and content make the purpose clear.
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?
Usage is implied through the action list and effect types, but there is no explicit guidance on when to use this tool versus alternatives like manage_lighting or manage_scripts. It provides context but no exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_inputA
Simulate input. In playtest: walk_to (Humanoid:MoveTo a path/position), click_world (VirtualInput at a 3D instance screen pos), walk_and_click (walk then click — use this to verify world clicks), click_at (viewport pixels), click_path (PlayerGui GuiButton), key, type_text. Clicks use UserInputService:CreateVirtualInput, not VirtualInputManager. In edit: click_path uses VirtualInput plus a LastClick attribute on the ScreenGui.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| key | No | Enum.KeyCode name, e.g. E, Space, W | |
| path | No | 3D instance (walk_to/click_world) or GuiButton (click_path) | |
| text | No | ||
| action | Yes | ||
| timeout | No | Walk timeout seconds (default 8) | |
| duration | No | ||
| position | No | Optional [x,y,z] walk target if path is omitted | |
| standOff | No | How far to stand from the target when walking (default 4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals implementation details (UserInputService:CreateVirtualInput vs VirtualInputManager, LastClick attribute) and explains what each simulated action does. It stops short of describing error handling, return values, 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 dense with information but structured as a single run-on sentence with many parentheticals and clauses. It is not poorly sized, but better formatting (e.g., bullets) would improve readability and scannability.
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 (10 parameters, 7 action types) and lack of output schema, the description covers the core behaviors and action distinctions well. It omits potential details like result values, failure modes, or whether input is simulated server-side or client-side, but the provided context is sufficient for basic use.
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?
The description adds meaning beyond the schema by mapping parameters to actions (e.g., click_at uses viewport pixels, click_path targets a PlayerGui GuiButton, walk_to uses a path/position). Since schema coverage is only 50%, this helps fill gaps, though not all parameters (x, y, text, duration) are explicitly defined in the description.
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 opens with 'Simulate input,' a specific verb+resource phrase, and enumerates distinct action types (walk_to, click_world, etc.) that clearly differentiate it from sibling tools like manage_terrain or query_instances. The scope is unambiguous.
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?
Provides concrete guidance for when to use specific actions (e.g., 'walk_and_click — use this to verify world clicks') and distinguishes playtest vs edit behavior for click_path. However, it does not explicitly contrast with sibling tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_lightingA
Inspect or change Lighting and environment. Actions: get, set/lighting (Lighting properties), set_time/time (clockTime 0-24 or time 'HH:MM:SS'), atmosphere (get/set Atmosphere, createIfMissing), sky, terrain_props (Terrain water/visuals), mood (preset: day/night/sunset/foggy/horror plus optional overrides), add_effect, clear_effects. Do not invent skybox asset IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| mood | No | ||
| time | No | HH:MM:SS for time action | |
| action | Yes | ||
| clockTime | No | ||
| overrides | No | Optional Lighting property overrides for mood | |
| effectType | No | e.g. Atmosphere, BloomEffect | |
| properties | No | ||
| createIfMissing | No | Create Atmosphere/Sky if missing (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It provides useful context: clockTime range (0-24), time format ('HH:MM:SS'), createIfMissing behavior, mood presets, and the warning 'Do not invent skybox asset IDs.' It clearly indicates read-write capabilities ('Inspect or change'). However, it does not disclose return values for 'get' nor potential side effects of mutations.
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 a dense list of actions packed into a single long sentence. It is not elegantly structured but every action is briefly explained. It earns its place by covering many subcommands without excessive verbosity, though readability could be improved with line breaks or bullets.
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?
The tool has 8 parameters, nested objects, and no output schema. The description covers most action-parameter semantics, but there are gaps: what does 'get' return? How does 'set' differ from 'lighting'? What does 'sky' do beyond 'do not invent asset IDs'? The description is adequate for basic usage but incomplete for an AI agent that needs to understand exact behavior without examples.
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 only 50%, missing descriptions for action, clockTime, mood, and properties. The description compensates significantly by explaining how the action parameter maps to other params: 'set_time/time (clockTime 0-24 or time 'HH:MM:SS')', 'mood (preset: ... plus optional overrides)', and 'atmosphere (get/set Atmosphere, createIfMissing)'. This adds high value beyond the raw schema.
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 function: 'Inspect or change Lighting and environment.' It lists specific actions (get, set, set_time, atmosphere, sky, terrain_props, mood, add_effect, clear_effects) that cover the domain, distinguishing it from siblings like manage_terrain or manage_effects. The verb 'inspect/change' is specific and the resource is clearly defined.
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 does not explicitly state when to use this tool versus alternatives. It implies usage through its action list, but there are no exclusions or alternative tool references. For example, it doesn't clarify that terrain_props is for terrain visuals, which overlaps with manage_terrain. The only caution is 'Do not invent skybox asset IDs,' which is more of a constraint than a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_logsA
Read the Roblox Studio output log (captured by the plugin via LogService; play-mode logs come from the play agent). Actions: get (recent entries, optional levelFilter: Print/Warning/Error, containsFilter, since unix-seconds cursor), errors (Error-level only), clear.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max entries (default 100) | |
| since | No | Only entries at/after this unix timestamp in seconds | |
| action | Yes | ||
| levelFilter | No | Print, Warning, or Error | |
| containsFilter | No | Only entries containing this substring |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It mentions the log source and the 'clear' action, but does not warn that 'clear' is destructive or explain any side effects of the read actions. Permissions, rate limits, or data retention are also not addressed.
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 a single dense sentence that front-loads the main purpose and then lists actions in a compact structure. It avoids wasted words, though the packed list could be slightly more readable with line breaks.
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?
The description covers the main actions and filters, but omits important context such as the default limit, return format, and the irreversibility of 'clear'. Given no output schema and no annotations, this leaves gaps for an agent to fully understand consequences and expected responses.
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?
The schema already describes most parameters, but the description adds valuable semantics: it clarifies 'since' as a unix-seconds cursor, maps 'errors' to Error-level only, and labels levelFilter values. This goes beyond the raw schema and helps the agent use filters correctly.
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 reads the Roblox Studio output log and enumerates specific actions (get, errors, clear), making its purpose unambiguous. This distinguishes it from sibling tools like query_instances or execute_luau, which focus on other concerns.
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?
It provides clear context on log sources (plugin via LogService, play-mode from play agent) and describes each action's filter parameters. However, it does not explicitly state when to prefer this over alternatives or when not to use it, but the context is sufficient for typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_physicsC
Physics helpers. Actions: anchor / unanchor, set_collide, weld, get_mass, set_physical_properties, create_constraint, register_group, set_collidable, get_groups (PhysicsService collision groups).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| group | No | Collision group name | |
| action | Yes | ||
| groupA | No | ||
| groupB | No | ||
| density | No | ||
| friction | No | ||
| otherPath | No | ||
| canCollide | No | ||
| collidable | No | ||
| elasticity | No | ||
| properties | No | ||
| constraintType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It lists action verbs but doesn't explain side effects (e.g., whether 'weld' permanently connects parts, whether 'anchor' affects physics simulation), reversibility, required permissions, or what gets destroyed or changed. The parenthetical about collision groups provides a tiny bit of context, but overall it's minimal.
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 a single sentence listing actions, which is concise but under-structured. It front-loads 'Physics helpers' but then becomes a dense list. It's not overly verbose, but the lack of grouping or explanation makes it less effective than a brief structured overview.
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 (10 actions, 13 parameters, no output schema, no annotations), this description is severely incomplete. It provides no per-action behavior, expected return values, prerequisite conditions, or examples. The description is essentially a menu of action names without the context needed to select among them confidently.
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 only 8% (only 'group' has a description), so the description must compensate. It doesn't map actions to their relevant parameters. For example, 'create_constraint' likely requires 'constraintType' and 'otherPath', but this isn't stated. The list of actions adds no semantic detail beyond their names, leaving the agent to guess which of the 13 parameters apply.
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 says 'Physics helpers' and lists actions like 'anchor / unanchor, set_collide, weld', which conveys it's a physics manipulation tool. However, it lacks a clear statement of the tool's overall purpose or how it differs from sibling tools like manage_properties or execute_luau. The list of actions gives some clarity but is more of an enumeration than a coherent purpose.
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?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention scenarios that favor manage_physics over manage_properties, execute_luau, or other siblings. The parenthetical about PhysicsService collision groups is the only contextual hint, and it applies only to a subset of actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_propertiesB
Get/set properties, attributes and tags. Actions: get, get_all, set (property + value), set_many/set_multiple (properties map — also used if you pass action 'set' with a properties map and no property), get_attributes/get_attr/get_all_attrs, set_attribute/set_attr, delete_attr, get_tags, add_tag, remove_tag, check_tag, get_tagged, set_relative (add/subtract/multiply/divide via operation, or plain delta), set_calculated (evaluate a math expression with variables that may be values or instance property paths), mass_set, mass_get, modify_children (set props on matching children).
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Alias for rbId | |
| tag | No | Tag name | |
| path | No | Instance path. An RBId GUID is also accepted. | |
| rbId | No | RoBridge instance id from a prior summary. Preferred over path when both are set. Alias: id | |
| paths | No | Paths for mass_set / mass_get | |
| value | No | Value for set / set_attribute / set_relative. Alias: amount | |
| action | Yes | ||
| amount | No | Alias for value (set_relative) | |
| property | No | Property name for get/set/set_relative/set_calculated. Alias: propertyName | |
| attribute | No | Attribute name | |
| className | No | Optional ClassName filter for modify_children | |
| operation | No | Math operation for set_relative (default add) | |
| variables | No | set_calculated variables: name -> number or 'path.to.Instance.Property' string | |
| expression | No | Math expression for set_calculated, e.g. 'base * multiplier + 2' | |
| properties | No | Property name list (get) or map (set_many) | |
| propertyName | No | Alias for property |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It explains behaviors of many actions (e.g., set_relative uses add/subtract/multiply/divide or plain delta; set_calculated evaluates expressions with variables; modify_children sets props on matching children). However, it does not disclose side effects (e.g., overwriting existing values), return formats, permissions, or error behavior, so transparency is partial.
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 a single long run-on sentence with a massive action list separated by commas and semicolons. It is not concisely structured; a bulleted list or shorter grouped summary would be easier for an agent to parse. While it is front-loaded with the main purpose, the dense enumeration hinders readability, making it less than minimally viable in this dimension.
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 high complexity (16 parameters, 20+ actions, no output schema), the description is quite comprehensive. It covers all actions, highlights important aliases and parameter interactions, and explains nuanced behaviors for complex actions. It omits some details like return value structures or prerequisites, but overall it provides sufficient context for an agent to select and invoke the tool in many scenarios.
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 high (94%), so the baseline is 3. The description adds meaningful semantics beyond the schema by explaining action enum meanings (set_many/set_multiple equivalence, set with properties map, set_relative operation, set_calculated variables, mass_set/mass_get, modify_children). This clarifies how parameters like 'properties', 'operation', and 'variables' integrate with actions, adding value beyond the schema.
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 'Get/set properties, attributes and tags', which identifies the specific resource and actions. It distinguishes the tool from broader siblings like mutate_instances or query_instances by focusing on properties/attributes/tags, and enumerates concrete actions. However, it does not explicitly name sibling alternatives, so it stops short of a 5.
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?
Usage is implied by the resource focus: use this tool for properties, attributes, and tags. The action list gives some idea of when to choose specific actions (e.g., set_relative for math operations, set_calculated for expressions), but there is no explicit 'when to use vs. alternatives' guidance or exclusions for sibling tools. No alternatives are mentioned, so the guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_scriptsA
Work with Script/LocalScript/ModuleScript sources. Actions: get_source, set_source, create, delete, list, search, replace (substring across scripts), edit_lines, edit_replace (find/replace in one script), edit_insert (insert at line), edit_delete (delete line range), validate (loadstring syntax check of a script path or raw source), get_dependencies (require() targets and services a script references). Prefer these over execute_luau for script edits.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Alias for rbId | |
| name | No | Name for create | |
| path | No | Script path (or root path for list/search, defaults to game). An RBId GUID is also accepted. | |
| rbId | No | RoBridge instance id from a prior summary. Preferred over path when both are set. Alias: id | |
| query | No | Substring to search for / find text for replace | |
| action | Yes | ||
| source | No | New source for set_source/create, or replacement text for edit_lines/edit_insert | |
| endLine | No | ||
| className | No | Class for create (default Script) | |
| startLine | No | ||
| maxResults | No | ||
| parentPath | No | Parent for create | |
| replacement | No | Replacement text for replace / edit_replace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry transparency. It adds useful semantic glosses: replace is 'substring across scripts,' edit_replace is 'find/replace in one script,' validate is a 'loadstring syntax check,' and get_dependencies lists 'require() targets and services.' However, it does not disclose side effects for destructive actions (create/delete/set_source), permission requirements, or return behavior, leaving meaningful behavioral ambiguity.
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 a compact single paragraph that front-loads the target resource and action list without filler. Each parenthetical earns its place by disambiguating action names, and the usage note is delivered in one short sentence.
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 13-action tool with no output schema and no annotations, the description provides a useful action inventory but leaves gaps. It does not specify which parameters are required per action, explain the ambiguous 'edit_lines' action, describe return formats for validate/list/search, or note failure/side-effect behavior. The schema covers parameter names but not action-level contracts.
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?
The input schema already describes most parameters (69% coverage), so the baseline is 3. The description adds action-to-parameter context beyond the schema: it clarifies replace vs. edit_replace scope, edit_insert/edit_delete line usage, validate input modes, and get_dependencies output semantics. This lifts parameter understanding above schema-only.
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 opens by naming the exact resource class (Script/LocalScript/ModuleScript sources) and enumerates thirteen concrete actions, making the tool's purpose unambiguous. It also distinguishes itself from sibling execute_luau via the phrase 'Prefer these over execute_luau for script edits.'
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 final sentence is an explicit usage directive: 'Prefer these over execute_luau for script edits.' This names an alternative and states when to choose this tool. Even though no other alternatives are mentioned, the core when-to-use guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_selectionA
Get or set the Studio selection. Actions: get, set (paths array), add, remove, clear, details (selection + common properties, optional maxDepth descendants + includeAncestors), cached (last known selection without a Studio round-trip; maxAge ms), context (selection with script source, properties, and children), watch (install a selection-change watcher; call again to collect changes).
| Name | Required | Description | Default |
|---|---|---|---|
| paths | No | ||
| action | Yes | ||
| maxAge | No | cached: max cache age in ms (default 30000, 0 = any age) | |
| maxDepth | No | details: descendant depth (default 1) | |
| includeSource | No | context: include script sources (default true) | |
| includeChildren | No | context: include immediate children (default false) | |
| includeAncestors | No | details: include ancestor chain | |
| includeProperties | No | context: include common properties (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses non-obvious behaviors such as 'cached' avoiding a Studio round-trip and 'watch' requiring a second call to collect changes. It also hints at return structure (details, context). While it does not explicitly mention side effects of mutation actions, the action names (add/remove/clear/set) clearly imply selection modification, and the description adds meaningful context beyond the schema.
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 front-loaded with the core purpose and then lists actions with parenthetical parameter and behavior notes. It is concise and avoids redundancy, though the single-sentence structure is dense and could be improved with a bulleted list. Still, every word earns its place.
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 9 actions and 8 parameters, the description covers all action variants and their parameter dependencies, including return semantics for details, cached, and context. It lacks explicit error handling or prerequisites, but given the complexity and absence of an output schema, it provides sufficient context for an agent to select and invoke the tool correctly.
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 coverage is 75%, with descriptions for maxAge, maxDepth, includeSource, includeChildren, includeAncestors, and includeProperties. The description adds meaning for the undocumented parameters: 'paths' is explicitly tied to the 'set' action, and 'action' is fully explained by the enumerated action list. It also associates each parameter with its relevant action, enhancing understanding beyond the schema.
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: 'Get or set the Studio selection.' It enumerates all supported actions (get, set, add, remove, clear, details, cached, context, watch), specifying the resource (selection) and distinguishing it from sibling instance management tools like query_instances or mutate_instances.
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 brief context for each action (e.g., 'cached' for last known selection without round-trip, 'watch' for installing a watcher), which helps the agent choose the right action. It does not explicitly contrast with sibling tools or mention when not to use this tool, but the selection-specific scope makes it the obvious choice for selection operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_studioA
Studio-level operations. Actions: get_mode, play_status, play_start (F5 Play or F8 Run), play_stop, play_pause, play_resume, run_test (inject Luau, play, collect [ROBRIDGE_TEST] logs, stop, write report; auto-records a short viewport clip unless record=false), toggle_ui_preview (StarterGui.ShowDevelopmentGui), test_profile_get/set/reset (Player Emulator — no public API; returns manual_required with instructions), experience_language_get (locale info) / experience_language_set (manual_required), undo, redo, set_waypoint, save_prompt. After adding a player-facing feature (UI, clicks, shop, movement, leaderstats), playtest with run_test or play_start before reporting done. Prefer run_test over manually sequencing play_start + logs + play_stop. Viewport clips: manage_camera.record, or run_test (attaches clip metadata).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | play_start / run_test mode: play (F5) or run (F8) | |
| name | No | ||
| action | Yes | ||
| locale | No | experience_language_set: locale id, e.g. en-us | |
| record | No | run_test: attach a viewport clip (default true) | |
| script | No | Luau test body for run_test | |
| enabled | No | toggle_ui_preview: explicit value; omit to toggle | |
| timeout | No | run_test timeout in seconds (default 60, max 300) | |
| testName | No | play_start: name for testSource script (default t0) | |
| test_name | No | Display name for run_test | |
| recordPath | No | run_test: optional instance to focus while recording | |
| testSource | No | play_start: optional run_test script injected with play agents (not saved) | |
| testProfile | No | test_profile_set: Player Emulator profile patch | |
| recordSeconds | No | run_test / record duration in seconds (default 4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses important behaviors: run_test injects Luau, plays, collects [ROBRIDGE_TEST] logs, stops, writes report, and auto-records a clip unless record=false. It also notes test_profile_get/set/reset have no public API and return manual_required, and experience_language_set is manual_required. This is substantial, though some actions like undo/redo/save_prompt lack detail.
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 dense and informative but delivered as a long run-on paragraph with a massive action list. It front-loads the purpose, but the list is hard to scan. Each piece of information earns its place, but the structure could be improved with line breaks or grouping for readability.
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 (17 actions, 14 params, no output schema), the description covers a lot: run_test workflow, special manual_required cases, viewport clip behavior, and playtest guidance. It does not describe return formats for simple actions like get_mode or play_status, but the core behavioral expectations are well documented.
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 coverage is 86%, so the schema already documents most parameters. The description adds meaning beyond the schema by explaining action-specific semantics: 'mode: play (F5) or run (F8)', 'toggle_ui_preview (StarterGui.ShowDevelopmentGui)', and run_test behavior including record defaults and timeout context. This complements the schema effectively.
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 opens with 'Studio-level operations' and enumerates 17 distinct actions with specific verbs and targets (e.g., 'play_start', 'toggle_ui_preview', 'test_profile_get/set/reset'). This clearly differentiates the tool from sibling tools like manage_scripts or manage_camera. However, it is not a single specific action but a broad collection, which slightly reduces clarity.
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 workflow guidance: 'After adding a player-facing feature... playtest with run_test or play_start before reporting done' and 'Prefer run_test over manually sequencing play_start + logs + play_stop.' It also names an alternative for viewport clips ('manage_camera.record, or run_test'), satisfying the when-to-use vs alternatives criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_syncA
Sync between Studio and the local filesystem. Actions: export_scripts (dump every script source under a path to ./sync// on disk), status / status_current_place (place + sync dir + last export), history (recent sync operations), directions (get or set per-type sync directions), read_file (read a synced script file by instancePath), write_file (write content to the synced file AND apply it to the Studio script), progress (last export stats).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Root to export from (default game) | |
| limit | No | history: max entries (default 50) | |
| action | Yes | ||
| outDir | No | Output directory (default ./sync) | |
| content | No | New file content for write_file | |
| directions | No | directions: set map, e.g. {scripts: 'studio_to_file'} | |
| instancePath | No | Script instance path for read_file/write_file, e.g. game.ServerScriptService.Main |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It reveals key side effects: write_file 'apply[ies] it to the Studio script' and export_scripts 'dump[s]' files to disk. However, it does not mention overwrite behavior, permission requirements, or error conditions, leaving some behavioral ambiguity.
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 a single dense sentence with a colon and semicolon-separated list. It is efficient, with no filler, and each action gets a brief parenthetical. However, it is somewhat run-on and could benefit from bullet points for easier scanning.
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?
The tool has 7 parameters and 8 actions; the description covers all actions and hints at return values (e.g., 'place + sync dir + last export', 'last export stats'). It does not distinguish status from status_current_place, and with no output schema, exact return formats are only partially implied, but overall it is reasonably complete.
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 86% (high), so the baseline is 3. The description adds significant value by explaining what each action parameter does (e.g., 'history (recent sync operations)', 'directions (get or set per-type sync directions)'), going beyond the bare schema descriptions and enum values.
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: 'Sync between Studio and the local filesystem.' It then enumerates all eight actions with specific explanations, making it easy to distinguish from siblings like manage_scripts (script management) and execute_luau (code execution).
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 implies usage through its opening phrase and details the behavior of each action (e.g., 'export_scripts' dumps scripts to disk, 'write_file' writes and applies to Studio). It does not explicitly name alternatives or exclusions, but the action list provides sufficient context for most use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_terrainB
Edit Terrain. Actions: fill_block, fill_ball, fill_cylinder, fill_wedge, clear, clear_region (center+size or region {min,max}), clear_bounds (min+max), replace_material (fromMaterial→material), colors_get / colors_set (per-material terrain colors), read_voxel (position), read_voxels / write_voxels (bulk region voxels), generate (procedural fBm terrain with presets mountains/hills/plains/dunes/islands/canyon), smooth (blur occupancy in a region), get_info. Regions: {min:[x,y,z], max:[x,y,z]}. Materials: Grass, Sand, Rock, Water, Snow, Mud, Asphalt, Basalt, Brick, Cobblestone, Concrete, CrackedLava, Glacier, Ground, Ice, LeafyGrass, Limestone, Pavement, Salt, Sandstone, Slate, WoodPlanks.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | Max corner for clear_bounds | |
| min | No | Min corner for clear_bounds | |
| seed | No | ||
| size | No | ||
| color | No | Color for colors_set: [r,g,b] 0-255 or '#hex' | |
| action | Yes | ||
| center | No | ||
| height | No | ||
| preset | No | ||
| radius | No | ||
| region | No | World AABB for clear_region/replace_material/read_voxels/write_voxels/generate/smooth | |
| octaves | No | generate: fBm octaves 1-8 (default 4) | |
| material | No | ||
| position | No | [x,y,z] for read_voxel | |
| amplitude | No | generate: height variation in studs | |
| frequency | No | generate: noise frequency (default 0.01) | |
| intensity | No | smooth: 0-1 blend strength (default 0.5) | |
| materials | No | write_voxels: 3D array of material names [x][y][z] | |
| occupancy | No | write_voxels: 3D array of occupancy 0-1 [x][y][z] | |
| baseHeight | No | generate: base terrain height in studs (default 32) | |
| resolution | No | Voxel resolution in studs (always 4 in Roblox; other values are rejected) | |
| waterLevel | No | generate: absolute water surface height | |
| persistence | No | generate: amplitude decay per octave (default 0.5) | |
| fromMaterial | No | Source material for replace_material. Alias: sourceMaterial | |
| sourceMaterial | No | Alias for fromMaterial | |
| targetMaterial | No | Alias for material (replace_material) | |
| materialPalette | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does include some detail (e.g., resolution is always 4 in Roblox, smooth uses blend strength), but it fails to mention whether actions are destructive/reversible, require permissions, or what read operations return. This is a significant gap for a mutation-capable tool.
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 structure is logical: purpose, action list, region format, material list. It front-loads 'Edit Terrain' and uses compact bullets/lists. While long, the content is dense and each section serves a purpose given the tool's many actions and materials.
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?
The tool has 27 parameters and 16 actions, but the description omits important context: no output format for read actions, no error/edge-case behavior, and no distinction between read-only and mutating actions. With no output schema or annotations, this leaves significant gaps for an agent to safely invoke the tool.
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?
The description adds value by explaining action-specific parameter relationships, such as clear_region accepting either center+size or a region object, and replace_material using fromMaterial→material. These mappings go beyond the raw schema and help the agent select the right parameters for each action.
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 opens with 'Edit Terrain' and then enumerates all supported actions, which clearly establishes the tool's scope as terrain manipulation. However, it doesn't explicitly distinguish this from sibling tools that might also access terrain data (e.g., query_instances), and the long action list may obscure the core purpose.
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?
There is no guidance on when to use this tool versus alternatives. The description lists actions but doesn't explain which scenarios call for each action or when to prefer a sibling tool for related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_tweenA
Animate properties with TweenService (plays live in the Studio viewport). Actions: create (build a tween without playing; returns tweenId), play (tweenId from create, or path+goal to create-and-play), pause, resume, cancel/stop_all. pause/resume/cancel accept tweenId or affect all tracked tweens. goal/properties map e.g. {"Position": [0,10,0], "Transparency": 0.5}.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | Property goal map. Alias: properties | |
| path | No | ||
| action | Yes | ||
| tweenId | No | Tween id returned by create; targets one tween for play/pause/resume/cancel | |
| duration | No | ||
| reverses | No | ||
| tweenInfo | No | Alias object for duration/easing fields | |
| properties | No | Alias for goal | |
| easingStyle | No | ||
| repeatCount | No | ||
| easingDirection | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full disclosure burden. It reveals that create does not play, that playback occurs live in the viewport, and that pause/resume/cancel can target individual or all tracked tweens. Missing details include error handling and state persistence, but the core behavioral traits are covered.
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 dense but efficient, packing action semantics and parameter aliases into a single well-structured sentence. Every phrase adds value; no filler.
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 an 11-parameter tool with no output schema and no annotations, the description gives a solid conceptual overview but omits detailed parameter semantics and return behavior (e.g., what play/pause return). The nested tweenInfo object is only hinted at via the example, making it less complete than ideal.
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?
The schema has only 36% description coverage, and the description adds meaning for key fields (goal/properties alias, tweenId, action semantics). However, duration, tweenInfo, easing fields, and repeatCount remain undocumented, leaving a substantial gap for a low-coverage schema.
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 function—animating properties via TweenService—and differentiates it from sibling tools like manage_animation by specifying the live-viewport playback and action set. The verb 'Animate' plus resource 'TweenService' makes the purpose unambiguous.
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 actions (create, play, pause, resume, cancel/stop_all) and explains when to use tweenId vs path+goal. It does not explicitly call out alternatives, but the context is clear enough for an agent to choose it for tweening tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_uiA
Create, inspect, preview, and interact with Roblox UI. Actions: design_brief (plan a UI from a text brief; set create=true to build it), create_tree, update, list, inspect, list_interactive, preview (clone into CoreGui in Edit), hide_preview, click (VirtualInput / attribute click — PlayerGui during playtest, StarterGui in Edit), type_text, scroll (ScrollingFrame CanvasPosition — PlayerGui during playtest, StarterGui in Edit), get_abs, check, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| path | No | ||
| text | No | Text for type_text | |
| tree | No | ||
| brief | No | Natural-language UI brief for design_brief | |
| delta | No | Pixels to add to CanvasPosition; number is Y (positive = down), or [x, y] | |
| depth | No | ||
| action | Yes | ||
| create | No | If true, design_brief also creates the tree | |
| parentPath | No | ||
| properties | No | ||
| screenGuiName | No | ||
| canvasPosition | No | Absolute ScrollingFrame CanvasPosition [x, y] for scroll |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses important behavioral traits: preview clones into CoreGui in Edit, click uses VirtualInput/attribute click with specific contexts, scroll targets ScrollingFrame CanvasPosition, and design_brief can conditionally build via create=true. However, some actions like check/get_abs/delete are not elaborated regarding side effects or return behavior, leaving gaps.
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 a single, dense sentence that front-loads the main purpose and then lists actions with parenthetical clarifications. It is concise and information-dense, but the one-sentence structure could be improved with bullet points for readability. Still, every word earns its place.
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 high complexity (13 params, many actions, nested trees, no output schema), the description covers the main action list and key operational contexts, which is substantial. However, it omits details on return values, prerequisites, and some actions (e.g., check, get_abs, update), so it is not fully complete.
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 only 38%, so the description adds meaning. It maps actions to parameters: design_brief uses 'brief' and 'create', preview/clicks/scroll explain PlayerGui/StarterGui context, and delta/canvasPosition are clarified. Yet several properties (path, parentPath, screenGuiName, depth, kind, properties, tree) are not described in the text, though some are self-explanatory.
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 states 'Create, inspect, preview, and interact with Roblox UI' with a specific verb+resource, clearly distinguishing it from sibling tools like manage_terrain or manage_lighting. It enumerates 14 concrete actions, leaving no ambiguity about the tool's scope.
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 implies it is the go-to tool for Roblox UI manipulation, and the action-specific notes (e.g., preview clones into CoreGui in Edit, click/scroll work in PlayerGui during playtest) give context on when each action applies. However, it does not explicitly state when to use it over alternatives like mutate_instances or query_instances, nor does it mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mutate_instancesA
Create, delete, clone, move, rename, or pivot instances. Also: create_with_props (create+properties), create_tree (nested hierarchy in one waypoint), mass_create, mass_delete, mass_duplicate, smart_duplicate (N copies with offset), scatter (ray-snap clones onto ground in a region). Property values: numbers/strings/booleans, Vector3 [x,y,z], CFrame [x,y,z] or 12 numbers, Color3 hex '#ff0000' or [r,g,b] 0-1, UDim2 [xs,xo,ys,yo], enum strings like 'Enum.Material.Neon'.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Alias for rbId | |
| name | No | Name for created/cloned instance | |
| path | No | Target instance path (delete/clone/move/rename/pivot/smart_duplicate). An RBId GUID is also accepted. | |
| rbId | No | RoBridge instance id from a prior summary. Preferred over path when both are set. Alias: id | |
| seed | No | ||
| tree | No | Nested instance tree for create_tree | |
| count | No | Copy count for smart_duplicate / scatter | |
| paths | No | Paths for mass_delete / mass_duplicate | |
| action | Yes | ||
| cframe | No | CFrame as [x,y,z] or 12 numbers for pivot | |
| offset | No | [x,y,z] relative offset for pivot/smart_duplicate | |
| parent | No | Alias for parentPath | |
| region | No | World AABB {min,max} for scatter | |
| newName | No | New name for rename | |
| maxSlope | No | Max ground slope degrees for scatter (default 30) | |
| position | No | [x,y,z] position for move/pivot | |
| className | No | ClassName to create | |
| instances | No | Specs for mass_create | |
| avoidWater | No | ||
| parentName | No | Folder name that groups scatter results | |
| parentPath | No | Parent path for create/clone/move. Alias: parent | |
| properties | No | Properties to set | |
| templatePaths | No | Templates to clone for scatter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description alone must disclose behavior. It reveals the types of operations (including irreversible ones like delete) and accepted property value formats, but it does not warn about permanence, workspace impact, or permission requirements. This is a moderate level of transparency.
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 a single run-on sentence combining a list of actions and a property-value guide. While all information is relevant, it lacks bullet points or sectioning, making it harder to parse. The core actions are front-loaded, but the mid-sentence 'Also:' list is dense.
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 high complexity (23 params, 13 sub-actions), the description is under-specified. It lists sub-action names but does not explain which parameters each sub-action requires (e.g., scatter needs templatePaths, region, count) or provide usage examples. The schema's param descriptions partially compensate, but the action-param mapping is left implicit.
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?
The description adds important value-format semantics for the 'properties' parameter (Vector3, CFrame, Color3, UDim2, enums) which are absent from the schema's generic property object. It also redundantly lists the action enum values, which are already in the schema, but the property-format information significantly enhances parameter handling.
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 opens with a clear enumeration of mutation verbs ('Create, delete, clone, move, rename, or pivot instances'), explicitly establishing the tool's scope as structural mutation of instances. It further distinguishes from siblings like query_instances by focusing on mutation operations.
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 implies when to use the tool (when you need to mutate instances) but does not explicitly state alternatives or exclusions. The list of sub-operations (create_with_props, mass_create, scatter) gives context for specific actions, but no guidance on when to choose this over manage_properties or other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_instancesA
Query instances in the Roblox place. Prefer a typed action over execute_luau. Actions: get, children, descendants, ancestors, find_child, find_descendant, wait_for_child, search_class, search_name, search_property, search_tag, class_info, file_tree (nested outline), project_structure (service/script counts). Paths: 'game.Workspace.Model.Part' or 'Workspace/Model/Part'. Prefer rbId (from a prior summary) over path when both are set — names like Part are not unique. Aliases: childName/descendantName/query→name, root→path, propertyName→property, id→rbId.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Alias for rbId | |
| tag | No | Tag for search_tag | |
| name | No | Child/descendant name or name substring for searches | |
| path | No | Instance path. Defaults to game. Alias: root. An RBId GUID is also accepted. | |
| rbId | No | RoBridge instance id from a prior summary. Preferred over path when both are set. Alias: id | |
| root | No | Alias for path | |
| depth | No | Alias for maxDepth | |
| query | No | Alias for name (search_name) | |
| value | No | Optional property value to match (search_property) | |
| action | Yes | ||
| timeout | No | Seconds to wait (wait_for_child, default 5, max 30) | |
| maxDepth | No | Max depth for file_tree (default 5) / project_structure (default 3) | |
| property | No | Property name for search_property | |
| childName | No | Alias for name (find_child / wait_for_child) | |
| className | No | ClassName for search_class / class_info | |
| maxResults | No | Max results for searches/descendants (default 100) | |
| includeProps | No | Include common properties in results | |
| propertyName | No | Alias for property | |
| propertyValue | No | Alias for value | |
| descendantName | No | Alias for name (find_descendant) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explains path formats, aliases, and the rationale for rbId preference, but does not explicitly confirm the tool is read-only or describe result formatting/performance implications.
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 long but densely packed with necessary information for a tool with 20 parameters: action list, path syntax, alias map, and usage preference. It is front-loaded with the core purpose and avoids fluff.
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 (20 params, no output schema), the description covers actions, path formats, aliases, defaults, and usage guidance. It lacks examples but is otherwise comprehensive enough for an agent to select and invoke correctly.
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 coverage is 95%, so baseline is 3. The description adds valuable context beyond the schema by explaining alias relationships and the rbId-over-path preference, which clarifies parameter usage.
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 states 'Query instances in the Roblox place' and lists 14 specific actions, making the tool's function clear and specific. It distinguishes itself from sibling tools like execute_luau and spatial_query.
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?
Explicitly instructs 'Prefer a typed action over execute_luau' and provides guidance on using rbId over path because 'names like Part are not unique.' However, it does not detail when to use this tool versus spatial_query or manage_properties.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spatial_queryA
Spatial queries in workspace. Actions: raycast (filterList/filterType/ignoreWater), multi_raycast (rays[], max 50), in_radius, in_box, ground_height/find_ground (position or x/z), check_placement (is a box placeable at position), scan_area (heightmap grid), find_flat (flat build spots), find_spawn (clear spawn positions), analyze_walkable (walkability grid), spatial_map (all BasePart/Model positions), find_space (empty spot for a box), bounds (one path or paths[]), snap_grid (snap an instance pivot to a grid), collision. Areas: searchArea/area/region are {min:[x,y,z], max:[x,y,z]}.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| z | No | ||
| area | No | Alias for searchArea | |
| axes | No | snap_grid axes (default all) | |
| path | No | Instance path for bounds / collision / snap_grid / spatial_map root. Alias: rootPath | |
| rays | No | Ray list for multi_raycast (max 50) | |
| size | No | [x,y,z] box size for in_box / check_placement / find_space / scan_area (x,z used) | |
| count | No | find_spawn result count (default 10) | |
| paths | No | Multiple paths for bounds | |
| action | Yes | ||
| center | No | ||
| offset | No | find_ground vertical offset added to result (default 0) | |
| origin | No | ||
| radius | No | ||
| minSize | No | find_flat minimum flat area size [x,z] (default [8,8]) | |
| padding | No | find_space clearance around the box (default 1) | |
| gridSize | No | snap_grid / find_space grid size (default 4). Alias: gridSnap | |
| gridSnap | No | Alias for gridSize | |
| maxSlope | No | Max slope degrees for find_flat (default 10) / analyze_walkable (default 45) | |
| position | No | [x,y,z] for find_ground / check_placement / collision / find_space result bias | |
| rootPath | No | Alias for path (spatial_map) | |
| rotation | No | [rx,ry,rz] degrees for check_placement | |
| direction | No | ||
| otherPath | No | Second instance for collision | |
| spawnSize | No | find_spawn entity size (default [4,5,4]) | |
| tolerance | No | find_flat height variation tolerance in studs (default 2) | |
| filterList | No | Instance paths to exclude/include in raycasts. Alias: filterInstances | |
| filterType | No | Raycast filter type (default Exclude) | |
| maxResults | No | ||
| minSpacing | No | find_spawn min distance between results (default 10) | |
| resolution | No | Grid resolution in studs for scan_area/analyze_walkable/find_flat (default 4) | |
| searchArea | No | World AABB for find_flat / find_spawn / find_space / analyze_walkable. Alias: area | |
| checkGround | No | check_placement: also require ground support (default true) | |
| ignoreWater | No | ||
| maxDistance | No | find_ground max cast distance (default 1000) | |
| includeModels | No | spatial_map: include Model bounding boxes (default true) | |
| maxStepHeight | No | analyze_walkable max step between cells (default 2) | |
| preferOutdoor | No | find_spawn: require open sky (default false) | |
| characterHeight | No | analyze_walkable clearance height (default 5) | |
| filterInstances | No | Alias for filterList |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses some behavioral details (e.g., max 50 rays, area format, parameter dependencies) but does not clarify which actions are read-only versus mutating (e.g., snap_grid appears to write) nor describe side effects or return structures.
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 packs a substantial amount of information into a single concise paragraph, front-loaded with the tool's purpose. Each action is listed with relevant parameters, and there is no redundancy. Readability could be improved with formatting, but it is 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 and lack of output schema or annotations, the description is incomplete. It does not explain what any of the 16 actions return, leaving significant ambiguity for an agent. It also doesn't clarify potential write side effects for actions like snap_grid.
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?
While the schema covers 78% of parameters, the description adds crucial action-to-parameter mappings (e.g., 'raycast (filterList/filterType/ignoreWater)') that are absent from the schema. It also standardizes the area format and clarifies parameter alternatives (e.g., 'position or x/z').
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 explicitly states 'Spatial queries in workspace' and enumerates all supported actions, making the tool's purpose unmistakable. It distinguishes itself from sibling tools like query_instances and manage_terrain by focusing specifically on spatial operations.
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 implies usage: it lists actions and area formats, so an agent can infer when to use it. However, it does not explicitly state when to prefer this tool over siblings or provide any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_infoA
RoBridge + Studio status. No action (or action=info) returns the full snapshot. Actions: ping (latency), connection (edit/play sessions), place_info, services (DataModel services), usage (per-tool call statistics for this server session), preflight (read-only Studio diagnostics: mode, publish status, HttpService, loadstring, Mesh/Image APIs — with fix instructions).
| Name | Required | Description | Default |
|---|---|---|---|
| action | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the default behavior ('No action (or action=info) returns the full snapshot') and explicitly labels preflight as 'read-only'. Without annotations, this provides useful behavioral detail, though it does not uniformly state that all actions are read-only.
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 a single well-structured sentence that front-loads the purpose, states the default behavior, and lists actions in a compact, scannable format. No word is wasted.
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 one optional enum parameter and no annotations or output schema, the description adequately covers the purpose, all action variants, and the default snapshot behavior. It is complete enough for an agent to select and invoke correctly.
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?
The schema only lists an enum with no descriptions, so the description fully compensates by explaining each action's meaning (e.g., 'usage (per-tool call statistics...)'). It also clarifies the optional nature and default behavior when the parameter is omitted.
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 it provides 'RoBridge + Studio status' and enumerates specific actions (ping, connection, place_info, etc.) that return status information. This distinguishes it from sibling tools that handle mutations or queries of specific game objects.
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?
It gives clear context for when to use each action (e.g., 'ping (latency)', 'preflight (read-only Studio diagnostics)'), but does not explicitly name alternatives or state when not to use the tool. The read-only nature and action list make the intended usage evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_stateA
Snapshot of the place. Actions: summary (place info, top-level services, selection, camera), counts (instance counts by ClassName under a path), sync (hierarchy outline + metadata + change stats), snapshot (instance tree under a path, maxDepth), changes (recent added/removed instances — installs a watcher on first call), clear_history (reset the change log), viewport (camera + viewport size + selection bounds), metadata (place ids, counts, timestamps), scripts (all script paths with line counts), selection_info (selection with bounds), clear_cache (drop watchers and cached plugin state).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| topN | No | ||
| limit | No | changes: max events returned (default 20) | |
| action | Yes | ||
| maxDepth | No | snapshot depth (default 4) | |
| includeMetadata | No | sync: include metadata block (default true) | |
| includeCameraInfo | No | viewport: include camera (default true) | |
| includeSelectionBounds | No | viewport: include selection bounds (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses significant side effects: 'changes (recent added/removed instances — installs a watcher on first call)' and 'clear_cache (drop watchers and cached plugin state)'. These reveal non-obvious behaviors beyond the schema. It also clarifies the destructive nature of clear_history and clear_cache. The description could have been more explicit about read-only safety for other actions, but it does highlight the main side-effectful operations.
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 a dense single paragraph with a two-word opening and a semicolon-separated action list. It is concise given the number of actions (11), and each action's description is brief and informative. It is not bulleted, but the structure is readable and each word contributes. It could be improved by using a list format, but it remains appropriately sized for the tool's complexity.
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?
With 11 actions, 8 parameters, no annotations, and no output schema, the description covers all actions with understandable summaries and highlights key side effects and parameter usage. It does not provide detailed return value formats, but given the absence of an output schema, this is acceptable. It also does not explicitly describe what 'summary' includes beyond 'place info, top-level services, selection, camera', or the behavior of 'topN', but overall it is sufficiently complete for an agent to select the right action.
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?
The description adds meaning beyond the schema by mapping parameters to actions: 'counts (instance counts by ClassName under a path)' clarifies the path parameter, and 'snapshot (instance tree under a path, maxDepth)' links path and maxDepth. It also clarifies that includeMetadata relates to sync. However, the topN parameter is not described anywhere, and the schema already provides descriptions for limit, maxDepth, includeMetadata, includeCameraInfo, and includeSelectionBounds. The description adds value for path and action-parameter associations but leaves a gap.
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 defines the tool as a 'Snapshot of the place' and then enumerates eleven specific actions, each with a concise description of what it returns (e.g., 'counts (instance counts by ClassName under a path)', 'viewport (camera + viewport size + selection bounds)'). This provides specific verb-action-resource tuples and distinguishes it from sibling management/query tools by focusing on state introspection rather than mutation.
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?
Each action is described with its exact use case (e.g., 'sync (hierarchy outline + metadata + change stats)', 'scripts (all script paths with line counts)'), giving clear context for when to use a particular action. However, the description does not explicitly mention when to prefer this tool over sibling alternatives like query_instances or spatial_query, nor does it state exclusions. The guidance is implied by the action list.
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.
24 tool updates
v0.1.8- First observed
batch_execute - First observed
execute_luau - First observed
manage_animation - First observed
manage_assets - First observed
manage_audio - First observed
manage_camera - First observed
manage_effects - First observed
manage_input - First observed
manage_lighting - First observed
manage_logs - First observed
manage_physics - First observed
manage_properties - First observed
manage_scripts - First observed
manage_selection - First observed
manage_studio - First observed
manage_sync - First observed
manage_terrain - First observed
manage_tween - First observed
manage_ui - First observed
mutate_instances - First observed
query_instances - First observed
spatial_query - First observed
system_info - First observed
workspace_state
TDQS
Each tool targets a distinct domain (terrain, instances, properties, scripts, lighting, etc.), but some overlap exists between query_instances and workspace_state for hierarchy inspection, and between manage_effects, manage_audio, and manage_animation for creating different instance types. Overall, tool purposes are clear enough to avoid frequent misselection.
The naming convention is mixed: many tools use the manage_ prefix (manage_terrain, manage_scripts), but others use bare verbs or noun phrases (query_instances, spatial_query, workspace_state, system_info, execute_luau, batch_execute). While all names are lowercase with underscores, the lack of a uniform verb_noun pattern makes the set feel less predictable.
With 24 tools, the count is at the high end of what is considered heavy (16-25). However, the server covers a very broad domain (Roblox Studio control), and each tool represents a major subsystem, so the count is borderline but arguably justifiable. It still feels dense and might overwhelm agents.
The tool set is highly comprehensive, covering instance management, terrain, lighting, camera, physics, UI, input, scripts, assets, animation, audio, and testing. Minor gaps exist, such as no dedicated tool for managing Game Settings or project-level configuration beyond preflight checks, but the core workflows for editing and testing a Roblox place are well covered.
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
9 remote MCP servers on Cloudflare Workers for AI agents. Free tier + Pro API keys.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
One AI endpoint to search and call 22k+ MCP servers; 50+ hosted tools work instantly, no key.
31A registry of AI agent tools — MCP servers, APIs, CLIs, SDKs — kept current by automated ingestion.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA 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.7MIT
- AlicenseNot gradedqualityDmaintenanceBridges AI assistants to Roblox Studio with 51 tools for exploring, editing, and automating game development, all locally via HTTP polling.7256MIT
- AlicenseNot gradedqualityBmaintenanceA 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-
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