Roblox Studio MCP Server
The Roblox Studio MCP Server enables AI assistants to deeply interact with Roblox Studio projects through 22 specialized tools for analysis, manipulation, and bulk operations:
Project Navigation: Explore hierarchies (
get_file_tree), analyze game architecture (get_project_structure), and get place information (get_place_info)Search Capabilities: Find files (
search_files), objects (search_objects), or instances with specific property values (search_by_property)Instance Management: Create (
create_object), delete (delete_object), and get children (get_instance_children) of objectsProperty Handling: View (
get_instance_properties), set (set_property), and manipulate properties with formulas (set_calculated_property,set_relative_property)Bulk Operations: Perform mass creation (
mass_create_objects), duplication (mass_duplicate), and property setting (mass_set_property) with atomic undo/redo supportAdvanced Features: Access class information (
get_class_info), services (get_services), and smart duplication with automatic naming and positioning (smart_duplicate)
Provides AI tools access to Roblox Studio data, including file system operations, studio context information, property and instance management, and project structure analysis through a plugin-based architecture.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Roblox Studio MCP Servershow me all scripts in the Workspace folder"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Archiving project June 6th 2026
Hey a few months ago my laptops motherboard was shorted which contained the hardware keys needed to get into my NPM account, due to Node customer support taking forever and also other priorities taking place for me, I will be archiving this project.
I recommend you swap to https://github.com/Chrrxs/robloxstudio-mcp which is a fork of this one that's being actively maintained by Chrrxs.
Roblox Studio MCP Server
Connect AI assistants like Claude and Gemini to Roblox Studio
What is This?
An MCP server that lets AI explore your game structure, read/edit scripts, and perform bulk changes all locally and safely.
Related MCP server: XenozMCP
Setup
Install the Studio plugin to your Plugins folder
Enable Allow HTTP Requests in Experience Settings > Security
Connect your AI:
Claude Code:
claude mcp add robloxstudio -- npx -y robloxstudio-mcp@latestCodex CLI:
codex mcp add robloxstudio -- npx -y robloxstudio-mcp@latestGemini CLI:
gemini mcp add robloxstudio npx --trust -- -y robloxstudio-mcp@latestPlugin shows "Connected" when ready.
{
"mcpServers": {
"robloxstudio-mcp": {
"command": "npx",
"args": ["-y", "robloxstudio-mcp@latest"]
}
}
}Windows users: If you encounter issues, use cmd:
{
"mcpServers": {
"robloxstudio-mcp": {
"command": "cmd",
"args": ["/c", "npx", "-y", "robloxstudio-mcp@latest"]
}
}
}What Can You Do?
Ask things like: "What's the structure of this game?", "Find scripts with deprecated APIs", "Create 50 test NPCs in a grid", "Optimize this movement code"
robloxstudio-mcp-inspector
A lighter, read-only version that only exposes inspection tools. No writes, no script edits, no object creation/deletion. Ideal for safely browsing game structure, reviewing scripts, and debugging without risk of accidental changes.
31 read-only tools: get_file_tree, search_files, get_place_info, get_services, search_objects, get_instance_properties, get_instance_children, search_by_property, get_class_info, get_project_structure, mass_get_property, get_script_source, grep_scripts, get_attributes, get_tags, get_tagged, get_selection, get_playtest_output, get_connected_instances, get_descendants, compare_instances, get_output_log, export_build, list_library, search_materials, get_build, search_assets, get_asset_details, get_asset_thumbnail, preview_asset, capture_screenshot
Setup - same plugin, just swap the package name:
Claude:
claude mcp add robloxstudio-inspector -- npx -y robloxstudio-mcp-inspector@latestCodex:
codex mcp add robloxstudio-inspector -- npx -y robloxstudio-mcp-inspector@latestGemini:
gemini mcp add robloxstudio-inspector npx --trust -- -y robloxstudio-mcp-inspector@latest{
"mcpServers": {
"robloxstudio-mcp-inspector": {
"command": "npx",
"args": ["-y", "robloxstudio-mcp-inspector@latest"]
}
}
}Windows users: If you encounter issues, use cmd:
{
"mcpServers": {
"robloxstudio-mcp-inspector": {
"command": "cmd",
"args": ["/c", "npx", "-y", "robloxstudio-mcp-inspector@latest"]
}
}
}Report Issues | DevForum | MIT Licensed
Available Tools
24 toolscreate_objectA
Create a new Roblox object instance (basic, without properties)
| Name | Required | Description | Default |
|---|---|---|---|
| className | Yes | Roblox class name (e.g., "Part", "Script", "Folder") | |
| name | No | Optional name for the new object | |
| parent | Yes | Path to the parent instance (e.g., "game.Workspace") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not mention side effects, error conditions, permissions, or return values, only that it creates an instance. The 'without properties' qualifier offers limited context about limitations, but the overall behavioral transparency is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the action and scope. It wastes no words and is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, and the schema fully covers parameters. However, with no output schema and no annotations, the description does not explain what the tool returns (e.g., path to the created object) or handle error scenarios. It does disambiguate from more complex creation tools, but lacks some completeness for operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides complete descriptions for all three parameters (className, parent, and optional name), so schema description coverage is 100%. The tool description itself adds no additional parameter-level meaning beyond what the schema already contains, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create), the resource (new Roblox object instance), and the scope ('basic, without properties'). It distinguishes itself from sibling tools like create_object_with_properties and mass_create_objects by specifying this is a single, property-less creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without properties' implicitly signals this is for simple creation, and sibling names like create_object_with_properties suggest the alternative. However, there is no explicit when-to-use or when-not-to-use guidance, and no direct naming of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_object_with_propertiesB
Create a new Roblox object instance with initial properties
| Name | Required | Description | Default |
|---|---|---|---|
| className | Yes | Roblox class name (e.g., "Part", "Script", "Folder") | |
| name | No | Optional name for the new object | |
| parent | Yes | Path to the parent instance (e.g., "game.Workspace") | |
| properties | No | Properties to set on creation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states that creation occurs, but gives no details about side effects, error conditions, permissions, return value, or behavior when the parent path is invalid. This is minimal transparency for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. Every word earns its place, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no output schema, and no annotations, the description is too sparse. It does not explain the creation workflow, return value, or relationship to sibling tools, leaving the agent underinformed for effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's mention of 'initial properties' does not add information beyond the schema's property descriptions. There is no additional semantic detail for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear action ('Create a new Roblox object instance') and adds the differentiator 'with initial properties', distinguishing it from sibling tools like create_object. This is a specific verb+resource with scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as create_object or mass_create_objects_with_properties. The description implies usage through the name but does not state exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_objectB
Delete a Roblox object instance
| Name | Required | Description | Default |
|---|---|---|---|
| instancePath | Yes | Path to the instance to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states 'Delete', but does not disclose if deletion is permanent, whether children are also deleted, or if any safety mechanisms exist. This is a significant gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately conveys the tool's core purpose. Every word earns its place, and no redundant information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks critical context such as undoability, effect on children, or any authorization requirements, making it insufficient for safe autonomous operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the parameter (instancePath) with a clear description. The tool description adds no extra meaning, but the schema already provides sufficient semantics, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and the resource (Roblox object instance). It is easily distinguishable from sibling tools like create_object, clone_object, and reparent_object, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention whether deletion is permanent, whether it can be undone via the 'undo' sibling, or any prerequisites for deletion, leaving the agent without context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_class_infoB
Get available properties/methods for Roblox classes
| Name | Required | Description | Default |
|---|---|---|---|
| className | Yes | Roblox class name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states a basic action. It does not mention return format, whether inherited members are included, or any limitations. This is insufficient for an agent to understand what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no filler. It is appropriately sized for the tool's simplicity and every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but without an output schema or annotations, the description should explain return values or behaviors. It only states 'Get available properties/methods', leaving ambiguity about the exact output and whether there are any side effects. This is a clear gap for an agent relying solely on the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the only parameter 'className', and its schema description already states 'Roblox class name'. The tool description adds no extra meaning beyond the schema, so it meets the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('available properties/methods') with a clear scope ('Roblox classes'). It distinguishes itself from sibling tools like get_instance_properties by focusing on class definitions rather than instance-level data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, fallback tools, or contextual cues that would help an agent decide to invoke this.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_treeC
Get complete hierarchy of the Roblox Studio project with script types, models, and folders
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Optional path to start from (defaults to workspace root) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'complete hierarchy' but doesn't disclose behavioral traits like performance implications, depth limits, or output format. For a tool with no annotations, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the core purpose, and no wasted words. Every part of the description contributes directly to explaining what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a tool that likely returns complex hierarchical data, the description is insufficient. It doesn't explain the return structure, depth, or how to interpret the hierarchy, leaving the agent with incomplete context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'path' well-documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'complete hierarchy of the Roblox Studio project', specifying it includes 'script types, models, and folders'. It distinguishes from siblings like 'get_project_structure' by focusing on hierarchy rather than general structure, but doesn't explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_project_structure', 'get_instance_children', or 'search_files'. The description implies a hierarchical view but doesn't specify use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_instance_childrenC
Get child objects and their types
| Name | Required | Description | Default |
|---|---|---|---|
| instancePath | Yes | Path to the parent instance |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't disclose behavioral traits such as permissions needed, rate limits, error handling, or what 'child objects' entails (e.g., depth, format). This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and target, making it easy to parse quickly. Every word earns its place, achieving optimal conciseness for the information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a vague description, the tool's context is incomplete. The description doesn't clarify what 'child objects' are, how results are structured, or any limitations, making it inadequate for a tool that likely returns complex data. More detail is needed to compensate for the lack of structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'instancePath' documented as 'Path to the parent instance'. The description adds no meaning beyond this, as it doesn't explain the parameter's role or format. With high schema coverage, the baseline score of 3 is appropriate, as the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get child objects and their types' clearly states the action (get) and target (child objects and types), but it's vague about what 'objects' and 'types' refer to in this context. It doesn't distinguish this tool from siblings like 'get_instance_properties' or 'get_project_structure', leaving ambiguity about scope and resource specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'get_instance_properties' and 'get_project_structure' that might overlap in functionality, the description lacks context on prerequisites, exclusions, or comparisons, offering no help for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_instance_propertiesC
Get all properties of a specific instance
| Name | Required | Description | Default |
|---|---|---|---|
| instancePath | Yes | Path to the instance |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get all properties' but doesn't clarify what 'properties' entail (e.g., metadata, attributes), whether this is a read-only operation, if there are permissions required, or how results are formatted. This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'properties' include, the return format, or behavioral aspects like error handling. For a tool that retrieves data, this leaves the agent with insufficient context to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal meaning beyond the input schema, which has 100% coverage and documents the single parameter 'instancePath' as a string path. The description implies the parameter identifies an instance but doesn't elaborate on format or constraints, so it meets the baseline for high schema coverage without adding value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('properties of a specific instance'), making the purpose understandable. However, it doesn't distinguish this tool from similar siblings like 'get_instance_children' or 'mass_get_property', which could also retrieve instance-related data, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'get_instance_children' and 'mass_get_property' that might retrieve related data, there's no indication of context, prerequisites, or exclusions, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_place_infoA
Get place ID, name, and game settings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for disclosing side effects, permissions, or errors. It only lists the data fields returned, similar to the name, and does not explicitly state that the operation is read-only or any other behavioral trait.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It is appropriately sized for a zero-parameter getter, conveying the essential information in a compact form.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, annotations, or parameters, the description sufficiently lists the return fields (ID, name, game settings). While it does not describe response structure or error handling, the tool's simplicity makes this adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is trivially complete. The description adds no parameter details, but none are needed. Baseline 4 applies for 0-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a clear resource 'place' and enumerates the exact fields returned (ID, name, game settings). This distinguishes it from sibling tools like get_class_info or get_attributes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of conditions, exclusions, or related tools, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_structureB
Get complete game hierarchy. IMPORTANT: Use maxDepth parameter (default: 3) to explore deeper levels of the hierarchy. Set higher values like 5-10 for comprehensive exploration
| Name | Required | Description | Default |
|---|---|---|---|
| maxDepth | No | Maximum depth to traverse (default: 3). RECOMMENDED: Use 5-10 for thorough exploration. Higher values provide more complete structure | |
| path | No | Optional path to start from (defaults to workspace root) | |
| scriptsOnly | No | Show only scripts and script containers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It hints at traversal behavior via maxDepth (default 3, recommended 5-10) but does not disclose return format, performance implications, or whether the hierarchy includes hidden objects. The read-only nature is implied by 'Get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and front-loaded with the purpose. The IMPORTANT note about maxDepth is concise and actionable, earning its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters and no output schema, so the description should compensate by explaining what the hierarchy looks like. It does not mention the return structure or edge cases, and lacks guidance on when to choose this tool over siblings. However, the maxDepth guidance adds useful context, making it minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the maxDepth recommendation already present in the schema but does not add substantial new meaning for path or scriptsOnly parameters, nor does it clarify their behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as retrieving the game hierarchy, which is distinct from file tree or place info tools. However, the word 'complete' is slightly misleading given the maxDepth default of 3, and it does not differentiate from sibling tools like get_descendants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides parameter guidance for maxDepth but does not explain when to use this tool versus alternatives like get_descendants or get_instance_children. No explicit context or exclusions are given for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_script_sourceC
Get the source code of a script object (LocalScript, Script, or ModuleScript)
| Name | Required | Description | Default |
|---|---|---|---|
| instancePath | Yes | Path to the script instance (e.g., "game.ServerScriptService.MainScript") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While 'Get' implies a read operation, the description doesn't disclose important behavioral aspects: whether this requires specific permissions, what happens if the path is invalid or the object isn't a script, whether there are rate limits, what format the source code returns in, or if there are size limitations. The description only states what the tool does, not how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple retrieval tool and front-loads the core functionality. Every word earns its place in conveying the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the return value looks like (string format, encoding, etc.), error conditions, or behavioral constraints. Given that this retrieves source code - potentially large or sensitive content - more context about the operation's behavior and output is needed for the agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the instancePath parameter fully documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema - it doesn't clarify path format requirements, validation rules, or provide examples beyond what's in the schema description. With complete schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'source code of a script object', specifying the object types (LocalScript, Script, or ModuleScript). It distinguishes from siblings like get_instance_properties or get_file_tree by focusing specifically on script source code retrieval. However, it doesn't explicitly differentiate from set_script_source (which is the inverse operation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use get_script_source versus get_instance_properties (which might return metadata instead of source), or when to use it versus search_files/search_objects for finding scripts. There's no mention of prerequisites, error conditions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_servicesC
Get available Roblox services and their children
| Name | Required | Description | Default |
|---|---|---|---|
| serviceName | No | Optional specific service name to query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. The word 'Get' implies a read-only operation, but the description does not disclose permissions, failure modes, or the meaning of 'children'. No side effects or prerequisites are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded and free of fluff. It efficiently states the purpose but could be enriched with additional useful context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one optional parameter and no output schema, the description gives an adequate overview of what will be returned (services and their children). It does not explain potential errors, what 'available' means, or the exact structure of the response, but given the tool's simplicity, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'serviceName' is fully described in the schema with 100% coverage, so the description does not need to reiterate it. However, the description also does not add any insight beyond the schema, such as how the parameter filters results or what happens if it's omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'available Roblox services and their children', specifying a concrete resource. It does not explicitly distinguish it from sibling tools like get_instance_children, but the resource type (services) is unique enough to be understood.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_instance_children or get_descendants. It simply states what it does without mentioning context, exclusions, or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mass_create_objectsA
Create multiple objects at once (basic, without properties)
| Name | Required | Description | Default |
|---|---|---|---|
| objects | Yes | Array of objects to create |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for disclosing behavioral traits. However, it only states the action ('create') and the scope ('multiple', 'basic'), without revealing anything about partial failure handling, atomicity, permissions, or return value. For a mutating tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence of 10 words. Every word contributes to defining the purpose, with no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one well-documented parameter, and the description covers the core action. However, without an output schema, the description should mention return values or error behavior, which it does not. This leaves the context slightly incomplete for an agent deciding how to handle results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage, describing the 'objects' array and its items ('className', 'parent', 'name'). The description adds the note about 'without properties', which helps clarify what the array should not contain, but it does not add substantive syntax or format details beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Create multiple objects at once' with a specific qualifier 'basic, without properties'. This verb-resource pair is unambiguous and distinguishes it from siblings like 'create_object' or 'mass_create_objects_with_properties'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'basic, without properties' provides clear context that this tool is for simple bulk creation when properties are not needed. It implies an alternative exists for property creation, but it does not explicitly name that tool or state specific when-not-to-use conditions, so it stops short of full explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mass_create_objects_with_propertiesB
Create multiple objects at once with initial properties
| Name | Required | Description | Default |
|---|---|---|---|
| objects | Yes | Array of objects to create with properties |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits on its own. It only states that multiple objects are created with initial properties, but gives no details on atomicity, failure handling, side effects, or return values. For a mass creation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that delivers the core purpose without any filler. It is easy to parse and immediately comprehensible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having a 100% schema coverage, the tool lacks an output schema and annotations, and the description does not compensate with usage guidance, behavioral details, or error semantics. For a batch creation tool with a nested parameter, the description is too minimal to fully inform an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with descriptions for all parameters, including the nested structure of the 'objects' array. The description adds little beyond the schema, merely echoing 'initial properties' which maps to the 'properties' field. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create multiple objects at once with initial properties' clearly identifies the action (create), scope (multiple objects), and distinguishing feature (initial properties). It differentiates from siblings like create_object and mass_create_objects by specifying both batching and property initialization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'at once' implies batch usage, but the description does not explicitly state when to use this tool versus alternatives like create_object or mass_create_objects. No exclusions or alternative references are provided, leaving usage context mostly to inference from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mass_duplicateC
Perform multiple smart duplications at once
| Name | Required | Description | Default |
|---|---|---|---|
| duplications | Yes | Array of duplication operations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure, but it only states the operation without any consequences, safety notes, or effects on the original instance. It doesn't mention whether this is destructive, requires permissions, or how 'smart' behavior differs from regular duplication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler words. It front-loads the core action, though it sacrifices useful details for brevity, which is acceptable given the simplicity of the description length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a complex schema with nested operations and options, but the description fails to explain what 'smart' means, how multiple duplications are structured, or any edge cases. Without annotations or output schema, the description is insufficient for an agent to fully understand the tool's capabilities and constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the 'duplications' parameter and its nested fields. The description adds no additional meaning beyond the name 'duplications' and the phrase 'at once', matching the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Perform multiple smart duplications at once', which conveys the action (perform) and resource (smart duplications) while implying batch processing. This distinguishes it from the sibling tool 'smart_duplicate' by emphasizing 'multiple' and 'at once', though it doesn't elaborate on what 'smart' entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'smart_duplicate' or 'mass_create_objects'. It neither states explicit conditions nor exclusions, leaving the agent to infer usage solely from the tool name and the word 'multiple'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mass_get_propertyA
Get the same property from multiple instances at once
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | Array of instance paths to read from | |
| propertyName | Yes | Name of the property to get |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the batch read intent, but does not mention return format, behavior when some instances lack the property, partial failures, or performance characteristics — important for a batch operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that is immediately understandable and front-loaded with the action. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 simple parameters and no annotations, the description is adequate for basic invocation but lacks critical context such as expected output (e.g., a map of path to property value) and how errors are handled. It covers the core purpose but leaves operational details unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear descriptions for both paths and propertyName. The description adds a minor extra ('same property', 'multiple instances') but does not provide deeper semantic context beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names a specific operation: 'Get the same property from multiple instances at once.' The verb 'get' plus the resource 'property from multiple instances' precisely distinguishes it from siblings like get_instance_properties (all properties of one instance) and mass_set_property (batch write).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'from multiple instances at once' implies a batch use case, but there is no explicit guidance on when to prefer this over alternatives like get_instance_properties or search_by_property, nor any exclusion criteria. The usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mass_set_propertyB
Set the same property on multiple instances at once
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | Array of instance paths to modify | |
| propertyName | Yes | Name of the property to set | |
| propertyValue | Yes | Value to set the property to (any type) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states it is a batch mutation but gives no information about atomicity, partial-failure behavior, permissions required, reversibility, or return values. This is a significant gap for a bulk write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no fluff or repetition. It efficiently conveys the core purpose, though it sacrifices detail for brevity. For a simple tool with a clear name, this is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch operation with no output schema and no annotations, the description is too sparse. It omits crucial context like error handling on individual paths, whether the operation is transactional, and what the return value indicates. This leaves the agent guessing about the tool's full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with descriptive names and types for all three parameters. The description adds little beyond the schema, merely rephrasing that the same property is applied to multiple instances. Baseline 3 is appropriate since the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set'), the resource ('property'), and the scope ('multiple instances'), which distinguishes it from single-instance 'set_property' and read-oriented 'mass_get_property'. It is specific and unambiguous, though it does not name the exact parameter semantics (e.g., using paths).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: when you need to apply the same property value across multiple instances. However, it does not explicitly say when to prefer this over alternatives like 'set_property' (single) or mention any exclusions or prerequisites. This is minimal viable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_propertyC
Find objects with specific property values
| Name | Required | Description | Default |
|---|---|---|---|
| propertyName | Yes | Name of the property to search | |
| propertyValue | Yes | Value to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the purpose without any details on side effects, return format, performance, permissions, or read-only guarantees. This is a significant gap for a search tool that could have varied behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It gets straight to the point, making it appropriately concise for a simple tool. It could be more informative, but the structure itself is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having only 2 parameters and no output schema, the description is too bare to be complete. It does not indicate what the search returns (e.g., IDs, objects, names), whether it is exact or fuzzy matching, or how it relates to sibling search tools. In the absence of annotations, this leaves significant ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters (propertyName and propertyValue), achieving 100% schema description coverage. The tool description adds no extra meaning beyond 'specific property values', so it does not enhance parameter understanding beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find objects with specific property values' clearly states the action (find), the resource (objects), and the criterion (specific property values). It distinguishes from siblings like search_files (which searches files) and search_objects (potentially broader search), though it could be more specific about what 'objects' refers to in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of use cases, exclusions, or preferred scenarios. Siblings like search_objects might overlap, but the description does not clarify when one should be chosen over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filesC
Find files by name, type, or content patterns
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (name, type, or content pattern) | |
| searchType | No | Type of search to perform | name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe permissions needed, whether it's read-only or has side effects, pagination behavior, rate limits, or what the output looks like. This is inadequate for a search tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a search tool and front-loads the essential information about what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, how results are formatted, whether there are limitations on search scope, or authentication requirements. Given the complexity of search operations and lack of structured metadata, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters completely. The description mentions 'name, type, or content patterns' which aligns with the searchType enum values, but adds no additional semantic context beyond what's in the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'find' and resource 'files', specifying search criteria by 'name, type, or content patterns'. It distinguishes from siblings like 'search_objects' or 'search_by_property' by focusing specifically on files, but doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_objects', 'search_by_property', or 'get_file_tree'. It mentions search criteria but gives no context about prerequisites, limitations, or appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_objectsB
Find instances by name, class, or properties
| Name | Required | Description | Default |
|---|---|---|---|
| propertyName | No | Property name when searchType is "property" | |
| query | Yes | Search query | |
| searchType | No | Type of search to perform | name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits but only restates the purpose. It does not mention read-only behavior, search semantics (e.g., exact vs fuzzy), result limits, error handling, or the relationship between query and propertyName. The agent cannot infer side effects or edge cases beyond the obvious 'find' action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundancies. It efficiently communicates the core purpose, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description is too sparse. It does not indicate return format, whether results are paginated, how the search works for different searchTypes, or any constraints. For a tool with three parameters and many sibling search tools, this lacks essential contextual information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds minimal value by mapping 'name, class, or properties' to the searchType enum, but it does not clarify query syntax, wildcard behavior, or how propertyName interacts with searchType beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Find instances by name, class, or properties'. It uses a specific verb ('Find'), identifies the resource ('instances'), and specifies the three search dimensions, distinguishing it from sibling tools like search_files (for files) and search_by_property (property-only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as search_by_property or get_instance_properties. It does not mention exclusions, preferred use cases, or reference sibling tools, leaving the agent without adequate decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_calculated_propertyC
Set properties using mathematical formulas and variables
| Name | Required | Description | Default |
|---|---|---|---|
| formula | Yes | Mathematical formula (e.g., "Position.magnitude * 2", "index * 50") | |
| paths | Yes | Array of instance paths to modify | |
| propertyName | Yes | Name of the property to set | |
| variables | No | Additional variables for the formula |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It only states what the tool does, not how it behaves. It doesn't mention that it can modify multiple paths, effect of formula evaluation, error handling, or side effects. This is minimal and insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded and free of waste. It earns a high score for brevity, though it lacks a structured breakdown of components.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema, no annotations) and ambiguous relationship to similar tools, the description is too thin. It fails to mention that it operates on multiple paths, what the formula variables can do, return behavior, or how it relates to set_property and mass_set_property.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description mentions 'mathematical formulas' and 'variables' which aligns with the formula and variables parameters, but does not add meaning beyond the schema's own descriptions. No extra semantics are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: setting properties using mathematical formulas and variables. It distinguishes itself from sibling tools like set_property or mass_set_property by specifically mentioning formulas and variables, though it could be more explicit about 'calculated' or 'computed' properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as set_property, mass_set_property, or set_relative_property. The description lacks context about use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_propertyC
Set a property on any Roblox instance
| Name | Required | Description | Default |
|---|---|---|---|
| instancePath | Yes | Path to the instance (e.g., "game.Workspace.Part") | |
| propertyName | Yes | Name of the property to set | |
| propertyValue | Yes | Value to set the property to (any type) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It only says "Set a property" and does not mention side effects, error behavior, permission requirements, reversibility, or any other operational traits. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the verb and object. Every word earns its place, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having a well-documented schema, the description lacks crucial context: it does not clarify that this tool sets a regular property (not an attribute), that it operates on a single instance (unlike mass_set_property), or what happens on invalid property names or read-only properties. No annotations or output schema exist to fill these gaps, making the description inadequate for nuanced tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with each parameter (instancePath, propertyName, propertyValue) already documented. The description adds no new semantic detail beyond what the schema provides, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action with a specific verb and resource: "Set a property on any Roblox instance." It is unambiguous about the core operation, though it does not explicitly differentiate from sibling tools like mass_set_property or set_attribute, which reduces the score slightly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as mass_set_property, set_attribute, or set_calculated_property. There are no scenarios, prerequisites, or exclusions provided, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_relative_propertyB
Modify properties relative to their current values
| Name | Required | Description | Default |
|---|---|---|---|
| component | No | Specific component for Vector3/UDim2 properties | |
| operation | Yes | Mathematical operation to perform | |
| paths | Yes | Array of instance paths to modify | |
| propertyName | Yes | Name of the property to modify | |
| value | Yes | Value to use in the operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It indicates mutation ('Modify') but does not describe side effects, error handling, reversibility, or how operations apply across multiple paths. This is a notable gap for a modification tool, as the agent is left unaware of potential impacts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant words. It conveys the essential purpose efficiently, earning its place as a model of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a moderate parameter count, no output schema, and several sibling tools. The description plus schema provide the basics, but the lack of guidance on return values, error behavior, and usage context relative to siblings leaves gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for all five parameters, including enum details for operation and component. The description adds no extra parameter semantics, so the baseline score of 3 is appropriate; the schema already handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Modify properties relative to their current values' clearly states the action (modify properties) and the distinctive scope (relative adjustment), which differentiates it from siblings like set_property and set_calculated_property. While concise, it effectively communicates the core purpose without being a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for relative modifications, suggesting when an agent should choose this over absolute set_property. However, it provides no explicit guidance on when not to use it, nor does it reference alternative tools, leaving room for confusion among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_script_sourceA
Safely set the source code of a script object without using loadstring (Studio only)
| Name | Required | Description | Default |
|---|---|---|---|
| instancePath | Yes | Path to the script instance (e.g., "game.ServerScriptService.MainScript") | |
| source | Yes | New source code for the script |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds valuable context about safety ('safely') and platform restriction ('Studio only'), but does not cover other critical behaviors such as error handling, permission requirements, or whether the change is reversible. This leaves gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key action ('Safely set the source code') and includes essential constraints without unnecessary words. Every part earns its place by clarifying purpose and usage context concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation tool with no annotations and no output schema, the description is moderately complete. It covers purpose and key constraints but lacks details on behavioral aspects like error responses, side effects, or return values. For a tool that modifies script source, more context on safety implications or success indicators would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters ('instancePath' and 'source'). The description does not add any parameter-specific details beyond what the schema provides, such as syntax examples or constraints on source code format. Baseline 3 is appropriate when the schema handles all parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('set the source code'), target resource ('of a script object'), and key constraints ('without using loadstring', 'Studio only'). It precisely distinguishes this from sibling tools like 'set_property' or 'get_script_source' by focusing on script source modification with safety and platform limitations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage ('Studio only') and a key constraint ('without using loadstring'), which implicitly guides when to use this tool. However, it does not explicitly state when to use alternatives like 'set_property' for other properties or 'get_script_source' for reading, nor does it mention prerequisites like script existence or permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smart_duplicateC
Smart duplication with automatic naming, positioning, and property variations
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | Number of duplicates to create | |
| instancePath | Yes | Path to the instance to duplicate | |
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It mentions 'automatic' behaviors but does not explain side effects, whether the original is preserved, limits on counts, or how variations are applied. This is insufficient for a mutation-like tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise phrase, front-loaded with the core action. No wasted words, though 'smart' is somewhat promotional. It is appropriately brief for a high-level overview.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three parameters including a complex nested options object, yet the description offers no details on return values, error cases, or practical usage. Sibling tools like mass_duplicate suggest a richer context is needed. The description is a teaser rather than a complete guide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the description maps loosely to options fields (namePattern, positionOffset, propertyVariations). However, it adds little beyond the schema's own property descriptions; it does not explain patterns or inter-parameter relationships. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly indicates the tool performs duplication with automatic naming, positioning, and property variations, which distinguishes it from plain duplication tools like clone_object. However, it lacks a direct verb phrase (e.g., 'Creates multiple copies') and the word 'smart' is somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like mass_duplicate or clone_object. The description implies use for variations but does not state exclusions or appropriate contexts.
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.
24 tool updates
v1.0.0- First observed
create_object - First observed
create_object_with_properties - First observed
delete_object - First observed
get_class_info - First observed
get_file_tree - First observed
get_instance_children - First observed
get_instance_properties - First observed
get_place_info - First observed
get_project_structure - First observed
get_script_source - First observed
get_services - First observed
mass_create_objects - First observed
mass_create_objects_with_properties - First observed
mass_duplicate - First observed
mass_get_property - First observed
mass_set_property - First observed
search_by_property - First observed
search_files - First observed
search_objects - First observed
set_calculated_property - First observed
set_property - First observed
set_relative_property - First observed
set_script_source - First observed
smart_duplicate
TDQS
Scored across 24 tools
Most tools have distinct purposes, but there is some overlap between 'create_object' and 'create_object_with_properties', and between 'mass_create_objects' and 'mass_create_objects_with_properties', which could cause confusion. However, descriptions clarify the differences, and other tools like 'search_objects' vs 'search_by_property' are well-differentiated.
Tool names follow a consistent snake_case pattern with clear verb_noun structures (e.g., 'create_object', 'get_instance_properties', 'set_script_source'). There are no deviations in naming conventions, making the set predictable and easy to parse.
With 24 tools, the count is on the higher side for a single domain, which may feel heavy and could overwhelm agents. While the tools cover many aspects of Roblox Studio, some could potentially be consolidated (e.g., the multiple 'mass_' tools) to reduce complexity.
The tool set provides comprehensive coverage for Roblox Studio operations, including CRUD for objects (create, delete, get, set), property management, scripting, searching, and project hierarchy exploration. No obvious gaps are present; agents can perform full lifecycle management and complex workflows.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to Roblox Studio, enabling them to interact with instance hierarchy, edit Luau scripts, manage properties, and sync files over a local connection.8 npm2MIT
- FlicenseAqualityCmaintenanceAn MCP server that bridges AI to Roblox Studio, enabling execution of Luau scripts, instance manipulation, play-testing control, and Open Cloud operations via natural language.21-
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to control Roblox Studio by running Luau code, creating and editing instances, reading the scene tree, and managing scripts via an MCP server with a long-polling plugin bridge.MIT
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to interact with Roblox Studio via a token-efficient MCP server, live two-way script sync, and zero-friction plugin setup.-