Skip to main content
Glama

RoBridge

version plugin tools license changelog

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):

Install

Build, plugin, HTTP, Mesh/Image APIs

MCP setup

Cursor, Claude Desktop, Claude Code, generic stdio

Playtesting

run_test, Play/Run, input

Dashboard

Local UI on :3737

Tools

Full action + param reference

Troubleshooting

Fix lines, stuck Play

Limits

One port, InsertService, no Open Cloud

Changelog

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 install

Postinstall 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

~/Documents/Roblox/Plugins/RoBridge.lua

Windows

%LOCALAPPDATA%\Roblox\Plugins\RoBridge.lua

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 update

That 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

query_instances

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

mutate_instances

create, create_with_props, delete, clone, move, rename, pivot, create_tree, mass_create, mass_delete, mass_duplicate, smart_duplicate, scatter

manage_properties

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

manage_scripts

get_source, set_source, create, delete, list, search, replace, edit_lines, edit_replace, edit_insert, edit_delete, validate, get_dependencies

manage_ui

design_brief, create_tree, update, list, inspect, list_interactive, preview, hide_preview, click, type_text, scroll, get_abs, check, delete

manage_lighting

get, set / lighting, set_time / time, atmosphere, sky, terrain_props, mood, add_effect, clear_effects

manage_selection

get, set, add, remove, clear, details, cached, context, watch

manage_camera

get / info, set, focus / focus_path, focus_position, suggest, zoom_extents, screenshot, record, record_stop

manage_tween

create, play, pause, resume, cancel / stop_all

manage_audio

create, play, pause, resume, stop, stop_all, list, set, set_listener

manage_animation

create, list, load, play, stop, stop_all, get_tracks

manage_physics

anchor, unanchor, set_collide, weld, get_mass, set_physical_properties, create_constraint, register_group, set_collidable, get_groups

manage_effects

create, remove / clear, list, emit, toggle

manage_terrain

fill_block/ball/cylinder/wedge, clear, clear_region, clear_bounds, replace_material, colors_get/set, read/write voxels, generate, smooth, get_info

spatial_query

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

manage_assets

search, preview / info, insert / insert_free / insert_package, search_insert, export/import library, review_model, generate_model, upload_asset, generate_thumbnail

manage_sync

export_scripts, status / status_current_place, history, directions, read_file, write_file, progress

workspace_state

summary, counts, sync, snapshot, changes, clear_history, viewport, metadata, scripts, selection_info, clear_cache

manage_logs

get, errors, clear

system_info

info (default), ping, connection, place_info, services, usage, preflight

manage_studio

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

manage_input

click_at, click_path, key, type_text, walk_to, click_world, walk_and_click

batch_execute

run several tool calls in one request (optional waypoint / stopOnError)

execute_luau

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

ROBRIDGE_PORT

3737

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 127.0.0.1.

execute_luau / loadstring in Play

Edit-only. Use run_test / play agents, or play_stop first.

Stuck Play

Press Stop in Studio (or manage_studio.play_stop), then retry.

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 :3737. Stop the owner MCP/Node process and start once.

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_assets insert uses InsertService:LoadAsset (asset must be free or owned by you).

  • Open Cloud asset upload is not included. upload_asset is Studio AssetService:CreateAssetAsync (confirm=true).

See docs/limits.md.

Repository

Path

src/

MCP + HTTP server (VERSION 0.1.8)

plugin/

Studio plugin (VERSION 0.1.9)

ui/

Dashboard served at http://127.0.0.1:3737

docs/

Install, MCP, playtesting, tools, limits

scripts/

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 tools
batch_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandsYesOrdered list of tool calls
waypointNoChangeHistoryService waypoint name for the batch
stopOnErrorNoAlias (default true). Inverse of continueOnError.
continueOnErrorNo

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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().

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesLuau source to run
timeoutSecondsNoMax wait (default 30)

TDQS

A5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pathNoAnimation instance path for play
actionYes
rigPathNoModel with Humanoid or AnimationController
parentPathNo
animationIdNo

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the inserted instance (especially Sounds)
playNoIf true and the insert is audio, play the Sound once
limitNoMax search results (default 10, max 30). Alias: maxResults
queryNoAlias for keyword
actionYessearch first, then insert/preview with an assetId from results
parentNoAlias for parentPath
promptNogenerate_model: text prompt for Roblox GenerationService
assetIdNoToolbox asset id from a search/preview result. Do not invent this.
confirmNoupload_asset: must be true to actually upload to Roblox
keywordNoToolbox search text (required for search). Alias: query
categoryNoLibrary category folder for export/import/review/thumbnail (default 'models')
maxDepthNoExport child depth (default 10)
positionNoOptional [x,y,z] pivot for models/meshes
assetTypeNoToolbox category. Model=props, Audio=Sounds, Decal=images, Mesh=MeshParts
maxResultsNoAlias for limit
parentPathNoInsert parent (default Workspace). Aliases: parent, targetParent
sourcePathNoInstance path for export_path_rbxm / review_model / upload_asset
descriptionNoLibrary asset description
displayNameNoLibrary asset display name
expectedUseNo
targetParentNoAlias for parentPath (import_rbxm/generate_model)
expectedGroupsNoreview_model: child names that must exist
maxDescendantsNoreview_model descendant budget (default 500)
exportToLibraryNoreview_model: also save to the library when review passes
includeChildrenNoexport_selection_json: include children (default true)
includePropertiesNoexport_selection_json: include common properties (default true)
assetLibraryAssetIdNoLocal library asset id from an export action (import_rbxm / generate_thumbnail)

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pathNo
actionYes
cframeNo[x,y,z] for CFrame listener
soundIdNo
parentPathNo
propertiesNo
listenerPathNoInstance path for ObjectPosition/ObjectCFrame listener
listenerTypeNoFor set_listener (default Camera)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNorecord target frames per second (default 15, range 4–24). Actual rate is CaptureService-limited (~1.5–2 fps).
pathNoInstance to focus for focus/screenshot/record
actionYes
lookAtNo[x,y,z] point to look at
secondsNorecord duration in seconds (default 4, max 12)
distanceNoDistance from target when focusing
positionNo[x,y,z] camera position
maxDimensionNoLongest screenshot/record side in pixels (screenshot default 1024, record default 480)

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pathYesTarget part/instance path
countNoParticle count for emit (default 16)
actionYes
effectTypeNo
propertiesNo

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
keyNoEnum.KeyCode name, e.g. E, Space, W
pathNo3D instance (walk_to/click_world) or GuiButton (click_path)
textNo
actionYes
timeoutNoWalk timeout seconds (default 8)
durationNo
positionNoOptional [x,y,z] walk target if path is omitted
standOffNoHow far to stand from the target when walking (default 4)

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
moodNo
timeNoHH:MM:SS for time action
actionYes
clockTimeNo
overridesNoOptional Lighting property overrides for mood
effectTypeNoe.g. Atmosphere, BloomEffect
propertiesNo
createIfMissingNoCreate Atmosphere/Sky if missing (default true)

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax entries (default 100)
sinceNoOnly entries at/after this unix timestamp in seconds
actionYes
levelFilterNoPrint, Warning, or Error
containsFilterNoOnly entries containing this substring

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
groupNoCollision group name
actionYes
groupANo
groupBNo
densityNo
frictionNo
otherPathNo
canCollideNo
collidableNo
elasticityNo
propertiesNo
constraintTypeNo

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAlias for rbId
tagNoTag name
pathNoInstance path. An RBId GUID is also accepted.
rbIdNoRoBridge instance id from a prior summary. Preferred over path when both are set. Alias: id
pathsNoPaths for mass_set / mass_get
valueNoValue for set / set_attribute / set_relative. Alias: amount
actionYes
amountNoAlias for value (set_relative)
propertyNoProperty name for get/set/set_relative/set_calculated. Alias: propertyName
attributeNoAttribute name
classNameNoOptional ClassName filter for modify_children
operationNoMath operation for set_relative (default add)
variablesNoset_calculated variables: name -> number or 'path.to.Instance.Property' string
expressionNoMath expression for set_calculated, e.g. 'base * multiplier + 2'
propertiesNoProperty name list (get) or map (set_many)
propertyNameNoAlias for property

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness2/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAlias for rbId
nameNoName for create
pathNoScript path (or root path for list/search, defaults to game). An RBId GUID is also accepted.
rbIdNoRoBridge instance id from a prior summary. Preferred over path when both are set. Alias: id
queryNoSubstring to search for / find text for replace
actionYes
sourceNoNew source for set_source/create, or replacement text for edit_lines/edit_insert
endLineNo
classNameNoClass for create (default Script)
startLineNo
maxResultsNo
parentPathNoParent for create
replacementNoReplacement text for replace / edit_replace

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsNo
actionYes
maxAgeNocached: max cache age in ms (default 30000, 0 = any age)
maxDepthNodetails: descendant depth (default 1)
includeSourceNocontext: include script sources (default true)
includeChildrenNocontext: include immediate children (default false)
includeAncestorsNodetails: include ancestor chain
includePropertiesNocontext: include common properties (default true)

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoplay_start / run_test mode: play (F5) or run (F8)
nameNo
actionYes
localeNoexperience_language_set: locale id, e.g. en-us
recordNorun_test: attach a viewport clip (default true)
scriptNoLuau test body for run_test
enabledNotoggle_ui_preview: explicit value; omit to toggle
timeoutNorun_test timeout in seconds (default 60, max 300)
testNameNoplay_start: name for testSource script (default t0)
test_nameNoDisplay name for run_test
recordPathNorun_test: optional instance to focus while recording
testSourceNoplay_start: optional run_test script injected with play agents (not saved)
testProfileNotest_profile_set: Player Emulator profile patch
recordSecondsNorun_test / record duration in seconds (default 4)

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines5/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoRoot to export from (default game)
limitNohistory: max entries (default 50)
actionYes
outDirNoOutput directory (default ./sync)
contentNoNew file content for write_file
directionsNodirections: set map, e.g. {scripts: 'studio_to_file'}
instancePathNoScript instance path for read_file/write_file, e.g. game.ServerScriptService.Main

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoMax corner for clear_bounds
minNoMin corner for clear_bounds
seedNo
sizeNo
colorNoColor for colors_set: [r,g,b] 0-255 or '#hex'
actionYes
centerNo
heightNo
presetNo
radiusNo
regionNoWorld AABB for clear_region/replace_material/read_voxels/write_voxels/generate/smooth
octavesNogenerate: fBm octaves 1-8 (default 4)
materialNo
positionNo[x,y,z] for read_voxel
amplitudeNogenerate: height variation in studs
frequencyNogenerate: noise frequency (default 0.01)
intensityNosmooth: 0-1 blend strength (default 0.5)
materialsNowrite_voxels: 3D array of material names [x][y][z]
occupancyNowrite_voxels: 3D array of occupancy 0-1 [x][y][z]
baseHeightNogenerate: base terrain height in studs (default 32)
resolutionNoVoxel resolution in studs (always 4 in Roblox; other values are rejected)
waterLevelNogenerate: absolute water surface height
persistenceNogenerate: amplitude decay per octave (default 0.5)
fromMaterialNoSource material for replace_material. Alias: sourceMaterial
sourceMaterialNoAlias for fromMaterial
targetMaterialNoAlias for material (replace_material)
materialPaletteNo

TDQS

B3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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}.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalNoProperty goal map. Alias: properties
pathNo
actionYes
tweenIdNoTween id returned by create; targets one tween for play/pause/resume/cancel
durationNo
reversesNo
tweenInfoNoAlias object for duration/easing fields
propertiesNoAlias for goal
easingStyleNo
repeatCountNo
easingDirectionNo

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
pathNo
textNoText for type_text
treeNo
briefNoNatural-language UI brief for design_brief
deltaNoPixels to add to CanvasPosition; number is Y (positive = down), or [x, y]
depthNo
actionYes
createNoIf true, design_brief also creates the tree
parentPathNo
propertiesNo
screenGuiNameNo
canvasPositionNoAbsolute ScrollingFrame CanvasPosition [x, y] for scroll

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAlias for rbId
nameNoName for created/cloned instance
pathNoTarget instance path (delete/clone/move/rename/pivot/smart_duplicate). An RBId GUID is also accepted.
rbIdNoRoBridge instance id from a prior summary. Preferred over path when both are set. Alias: id
seedNo
treeNoNested instance tree for create_tree
countNoCopy count for smart_duplicate / scatter
pathsNoPaths for mass_delete / mass_duplicate
actionYes
cframeNoCFrame as [x,y,z] or 12 numbers for pivot
offsetNo[x,y,z] relative offset for pivot/smart_duplicate
parentNoAlias for parentPath
regionNoWorld AABB {min,max} for scatter
newNameNoNew name for rename
maxSlopeNoMax ground slope degrees for scatter (default 30)
positionNo[x,y,z] position for move/pivot
classNameNoClassName to create
instancesNoSpecs for mass_create
avoidWaterNo
parentNameNoFolder name that groups scatter results
parentPathNoParent path for create/clone/move. Alias: parent
propertiesNoProperties to set
templatePathsNoTemplates to clone for scatter

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoAlias for rbId
tagNoTag for search_tag
nameNoChild/descendant name or name substring for searches
pathNoInstance path. Defaults to game. Alias: root. An RBId GUID is also accepted.
rbIdNoRoBridge instance id from a prior summary. Preferred over path when both are set. Alias: id
rootNoAlias for path
depthNoAlias for maxDepth
queryNoAlias for name (search_name)
valueNoOptional property value to match (search_property)
actionYes
timeoutNoSeconds to wait (wait_for_child, default 5, max 30)
maxDepthNoMax depth for file_tree (default 5) / project_structure (default 3)
propertyNoProperty name for search_property
childNameNoAlias for name (find_child / wait_for_child)
classNameNoClassName for search_class / class_info
maxResultsNoMax results for searches/descendants (default 100)
includePropsNoInclude common properties in results
propertyNameNoAlias for property
propertyValueNoAlias for value
descendantNameNoAlias for name (find_descendant)

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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]}.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
zNo
areaNoAlias for searchArea
axesNosnap_grid axes (default all)
pathNoInstance path for bounds / collision / snap_grid / spatial_map root. Alias: rootPath
raysNoRay list for multi_raycast (max 50)
sizeNo[x,y,z] box size for in_box / check_placement / find_space / scan_area (x,z used)
countNofind_spawn result count (default 10)
pathsNoMultiple paths for bounds
actionYes
centerNo
offsetNofind_ground vertical offset added to result (default 0)
originNo
radiusNo
minSizeNofind_flat minimum flat area size [x,z] (default [8,8])
paddingNofind_space clearance around the box (default 1)
gridSizeNosnap_grid / find_space grid size (default 4). Alias: gridSnap
gridSnapNoAlias for gridSize
maxSlopeNoMax slope degrees for find_flat (default 10) / analyze_walkable (default 45)
positionNo[x,y,z] for find_ground / check_placement / collision / find_space result bias
rootPathNoAlias for path (spatial_map)
rotationNo[rx,ry,rz] degrees for check_placement
directionNo
otherPathNoSecond instance for collision
spawnSizeNofind_spawn entity size (default [4,5,4])
toleranceNofind_flat height variation tolerance in studs (default 2)
filterListNoInstance paths to exclude/include in raycasts. Alias: filterInstances
filterTypeNoRaycast filter type (default Exclude)
maxResultsNo
minSpacingNofind_spawn min distance between results (default 10)
resolutionNoGrid resolution in studs for scan_area/analyze_walkable/find_flat (default 4)
searchAreaNoWorld AABB for find_flat / find_spawn / find_space / analyze_walkable. Alias: area
checkGroundNocheck_placement: also require ground support (default true)
ignoreWaterNo
maxDistanceNofind_ground max cast distance (default 1000)
includeModelsNospatial_map: include Model bounding boxes (default true)
maxStepHeightNoanalyze_walkable max step between cells (default 2)
preferOutdoorNofind_spawn: require open sky (default false)
characterHeightNoanalyze_walkable clearance height (default 5)
filterInstancesNoAlias for filterList

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNo

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
topNNo
limitNochanges: max events returned (default 20)
actionYes
maxDepthNosnapshot depth (default 4)
includeMetadataNosync: include metadata block (default true)
includeCameraInfoNoviewport: include camera (default true)
includeSelectionBoundsNoviewport: include selection bounds (default true)

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 24 tool updatesv0.1.8
    • First observedbatch_execute
    • First observedexecute_luau
    • First observedmanage_animation
    • First observedmanage_assets
    • First observedmanage_audio
    • First observedmanage_camera
    • First observedmanage_effects
    • First observedmanage_input
    • First observedmanage_lighting
    • First observedmanage_logs
    • First observedmanage_physics
    • First observedmanage_properties
    • First observedmanage_scripts
    • First observedmanage_selection
    • First observedmanage_studio
    • First observedmanage_sync
    • First observedmanage_terrain
    • First observedmanage_tween
    • First observedmanage_ui
    • First observedmutate_instances
    • First observedquery_instances
    • First observedspatial_query
    • First observedsystem_info
    • First observedworkspace_state

TDQS

B3.4/5.0
Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count3/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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