Skip to main content
Glama

Roblox Executor MCP Server

An advanced Model Context Protocol (MCP) server that allows AI agents to interact with running Roblox game clients. This server enables code execution, script decompilation, instance hierarchy querying, remote event spying and firing, and real-time log streaming.


πŸš€ Key Features

  • Code Execution β€” Run Luau code on the client dynamically, with optional return value yielding.

  • Script Inspection β€” Decompile scripts, search across sources, and perform semantic searches.

  • Instance Search & Manipulation β€” Use CSS-like selectors, traverse the instance hierarchy tree, and query dynamic properties/attributes.

  • Remote Spy & Fire β€” Intercept, log, block, ignore, and fire RemoteEvents / RemoteFunctions (backed by Cobalt).

  • Real-Time Log Streaming β€” Capture client console outputs dynamically via WebSockets and view them live.

  • GUI Interaction β€” Automate input by clicking buttons and typing text into UI elements.

  • OS Integrations β€” Retrieve list of Roblox processes and capture client window screenshots (Windows only).

  • Multi-Client Routing β€” Coordinate between multiple running clients with automatic Primary/Secondary promotion and relaying.

  • Local Script Hub β€” Save, load, and execute pre-configured Luau scripts.


Related MCP server: Roblox Executor MCP

πŸ–₯️ Local Web Dashboard

The Roblox Executor MCP includes a rich, responsive local web dashboard hosted at:

http://localhost:16384/

Use the dashboard to monitor connected clients, debug executables, and inspect games:

  1. Console Tab (New): A real-time stream of the Roblox client console logs (LogService.MessageOut), color-coded by log levels: Info (White), Warning (Yellow), and Error (Red).

  2. Executor Tab (New): A developer-focused suite to write Luau code directly, toggle "Get Return Value" to yield and print results, and instantly execute scripts saved in the user-scripts/ hub.

  3. Tools Tab: A control center to run all registered MCP tools manually and review inputs/outputs.

  4. Scripts Tab: Explore local and decompiled scripts, search sources, index game hierarchies, and set up semantic vector search.


πŸ› οΈ Complete Tool Catalog

The server registers a comprehensive list of tools for connected AI agents:

1. Client Management

  • list-clients β€” Lists all currently connected Roblox game clients.

  • set-active-client β€” Selects the active target client for subsequent tool operations.

2. Execution Tools

  • execute β€” Executes raw Luau code on the active Roblox client.

  • execute-file β€” Executes a Luau file from the server's local path.

  • teleport-player (New) β€” Relocates the player to specific coordinates, offsets, or target players.

  • set-player-property (New) β€” Modifies character stats (e.g., WalkSpeed, JumpPower, HipHeight, Gravity) or toggles Noclip.

3. Inspection & Search Tools

  • get-script-content β€” Retrieves the source/decompiled code of a specific script.

  • get-data-by-code β€” Queries client metadata using a Luau lookup script.

  • get-console-output β€” Returns the history of client console prints and warnings.

  • search-instances β€” Finds instances using selectors or names.

  • get-descendants-tree β€” Dumps the child hierarchy tree of a specific instance.

  • script-grep β€” Performs text searches across all loaded script sources.

  • semantic-search-scripts β€” Performs vector-based search on script contents (requires Ollama setup).

  • get-game-info β€” Queries game details (e.g., PlaceId, JobId, Player count).

  • get-executor-environment (New) β€” Returns a checklist of custom APIs supported by the connected Roblox executor (e.g., getgc, hookfunction).

  • get-instance-properties (New) β€” Probes attributes, CollectionService tags, and properties of an instance dynamically.

4. Remote Spy & Network Tools

  • ensure-remote-spy β€” Starts the Cobalt-backed remote spy pipeline.

  • get-remote-spy-logs β€” Retreives captured remote calls.

  • clear-remote-spy-logs β€” Clears captured logs.

  • block-remote β€” Blocks a specific RemoteEvent or RemoteFunction.

  • ignore-remote β€” Filters a remote out of the active log stream.

  • fire-remote (New) β€” Fires a RemoteEvent or invokes a RemoteFunction. Supports dynamically evaluated arguments starting with loadstring:.

5. GUI & OS Tools

  • click-button β€” Fires clicks on specific GUI buttons on the screen.

  • type-text-box β€” Focuses and sends text inputs to game TextBoxes.

  • list-roblox-windows β€” Lists active Roblox OS window handles.

  • screenshot-window β€” Caps and saves screenshots of the game client (Windows only).


πŸ“‹ Prerequisites

  • Node.js β‰₯ 18

  • Bun β‰₯ 1.3 (used for the interactive OpenTUI harness installer)

  • Roblox Executor β€” Any executor supporting loadstring, request, and (preferably) WebSocket.


⚑ Quick Start

1. Clone the Repository

git clone https://github.com/notpoiu/roblox-executor-mcp.git
cd roblox-executor-mcp

2. Run the Harness Installer

The installer handles server building, configuration generation for your AI client of choice, and prints your loader script:

npm run install:harnesses
TIP

If your terminal has issues rendering the interactive OpenTUI picker, run it in plain-text prompt mode:

npm run install:harnesses -- --plain

To automatically place the Roblox loader into the autoexec folder of a detected executor (e.g. MacSploit, or supported Windows executors), run:

npm run getscript -- --autoexec

3. Connect from Roblox

Paste this script into your executor or place it in your autoexec folder:

local bridgeUrl = getgenv().BridgeURL or "localhost:16384"
loadstring(game:HttpGet("http://" .. bridgeUrl .. "/script.luau"))()

Optional Environment Configuration

Configure these globals before running the loader script to customize behavior:

getgenv().BridgeURL = "10.0.0.4:16384"                  -- Default: localhost:16384
getgenv().DisableWebSocket = true                        -- Forces HTTP fallback polling
getgenv().DisableInitialScriptDecompMapping = true       -- Skips initial project script indexing

βš™οΈ Client Configuration & Manual Setup

If you prefer to configure your AI interface manually, refer to the guides below:

Client

Configuration Guide

Cursor

Setup Guide

Claude Desktop

Setup Guide

Claude Code

Setup Guide

Codex CLI

Setup Guide

Windsurf

Setup Guide

Antigravity

Setup Guide


πŸ› οΈ Developer Commands

Maintain, run, or update the server using these project scripts:

  • Build the project (compiles TypeScript and copies assets to dist/):

    npm run build
  • Start the server:

    npm run start
  • Update existing install (pulls updates, stops running processes, and rebuilds):

    npm run update

πŸ”’ Security & Safe Operation

CAUTION

This server allows arbitrary local code execution. Only connect trusted AI clients. Port 16384 does not enforce authenticationβ€”never expose this port to the public internet. For cross-machine or LAN setups, secure connections with a local VPN or an SSH tunnel.


πŸ“„ License

This project is licensed under the MIT License.

Available Tools

26 tools
block-remoteBlock or unblock a remoteA

Block or unblock a Roblox remote by exact name and direction. Requires ensure-remote-spy first; use get-remote-spy-logs to discover candidates.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionYesWhether the remote is Incoming or Outgoing
remoteNameYesThe exact name of the remote to block/unblock
shouldBlockNotrue to block, false to unblock

TDQS

A3.9/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 full burden. It mentions a prerequisite but does not disclose side effects, return values, error conditions, or whether the operation is reversible. The behavior after blocking/unblocking is not described.

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 at two sentences. It front-loads the core purpose and quickly adds necessary context, with no wasted 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 lack of annotations and output schema, the description covers purpose and prerequisite but is incomplete regarding expected outcomes, error handling, and behavior. It is adequate but not thorough.

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 100% and each parameter already has a description. The description adds no new semantics beyond what the schema provides, resulting in a baseline score of 3.

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 action (block or unblock), the resource (Roblox remote), and the criteria (exact name and direction). It is specific and leaves no ambiguity about the tool's purpose.

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 explicitly mentions the prerequisite (ensure-remote-spy) and provides a helpful hint to use get-remote-spy-logs for discovery. This guides the agent on when and how to use the tool, though it does not compare with sibling tools like ignore-remote.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear-remote-spy-logsClear all remote spy logsA

Clear all captured Cobalt remote spy logs. Requires ensure-remote-spy first.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/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 indicates the tool clears logs but does not disclose potential side effects (e.g., irreversibility, permission requirements). While the operation is simple, the description could be more transparent about the destructive nature.

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 consists of two short sentences with no redundant information. Every sentence serves a purpose: stating the action and noting a prerequisite. It is efficiently written.

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 no parameters and no output schema, the tool is simple. The description covers the purpose and prerequisite. However, it does not mention that logs are permanently deleted or that the operation is irreversible, which would add completeness. Still, it is mostly complete for a clear 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 input schema has no parameters, and schema coverage is 100% (trivially). The description does not need to add parameter details because there are none. A baseline of 4 is appropriate.

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 verb 'Clear' and the resource 'all captured Cobalt remote spy logs'. It distinguishes itself from siblings like 'get-remote-spy-logs' (retrieval) and 'ensure-remote-spy' (setup), making the tool's 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 explicitly mentions a prerequisite: 'Requires ensure-remote-spy first.' This provides clear context for when this tool should be used. However, it does not mention when not to use it or provide alternative approaches, but for a straightforward clear operation this is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

click-buttonClick a GuiButtonA

Click a Roblox TextButton or ImageButton by firing its GUI signals. Use when direct UI activation is needed inside the active client.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe instance path to the Button
actionNoThe specific signal to fire (e.g., 'Activated', 'MouseButton1Click'). If omitted, fires all standard click signals.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the mechanism (firing signals) but does not cover side effects, prerequisites, or return behavior. Without annotations, the description carries the full burden.

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?

Two sentences, efficient and well-structured. Could be slightly more concise but no waste.

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?

Adequate for a simple action tool, but lacking return value details and any 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?

Adds value beyond schema by explaining default behavior for omitted 'action' parameter (fires all standard click signals). Schema coverage is 100%.

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 action ('Click a Roblox TextButton or ImageButton') and the method ('firing its GUI signals'), making the tool's purpose distinct from sibling tools.

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 a clear use case ('direct UI activation inside the active client'), but lacks explicit when-not or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ensure-remote-spyEnsure the Cobalt remote spy is loadedA

Load or verify the Cobalt remote spy in the active Roblox client. Call before reading, clearing, blocking, or ignoring remote spy logs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool loads or verifies the spy, implying it may initialize if not loaded. While it doesn't detail error handling or idempotency, the simplicity of the tool (0 parameters) makes this acceptable. No contradictions.

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?

Two short sentences, front-loaded with the action, no extraneous words. Every sentence adds value: first states purpose, second gives usage context.

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 zero parameters, no output schema, and the tool's simple role as a prerequisite for remote spy operations, the description is fully adequate. It explains what it does and when to call it.

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?

There are zero parameters. Schema description coverage is 100% (trivially). The rubric states '0 params = baseline 4', so this score is appropriate.

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 specifies the action ('Load or verify') and resource ('Cobalt remote spy in the active Roblox client'). It distinguishes from sibling tools like get-remote-spy-logs and block-remote by explicitly stating it is a prerequisite for operations like reading, clearing, blocking, or ignoring remote spy logs.

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 clear when-to-use guidance: 'Call before reading, clearing, blocking, or ignoring remote spy logs.' It does not explicitly state when not to use or list alternatives, but the context is sufficient for this tool's role.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

executeExecute Code in the Roblox Game ClientA

Execute Luau in the active Roblox client without returning output. Use get-data-by-code instead when you need returned values.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe code to execute in the Roblox Game Client. This tool does NOT return output - use get-data-by-code if you need to retrieve data.
threadContextNoThe thread identity to execute the code in (default: 8, normal game scripts run on 2)

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must carry behavioral burden. It discloses the important no-return behavior but lacks details on safety, side effects, or error handling. The thread context default is already in schema.

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?

Two sentences, zero waste. First sentence states purpose and key constraint, second sentence directs to alternative.

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?

Adequate for selection and invocation: describes function, no-return behavior, and when to use sibling. Lacks error and safety context, but given schema coverage and sibling list, it is fairly complete.

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 100% (baseline 3). Description adds value by reinforcing the no-return constraint for the 'code' parameter, but does not add new info for 'threadContext' beyond schema defaults.

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 verb 'execute', the resource 'Luau in the active Roblox client', and the key constraint 'without returning output'. It distinguishes from sibling 'get-data-by-code'.

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 tells when to use alternative ('use get-data-by-code instead when you need returned values') and implies when to use this tool (when no return value is needed).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute-fileExecute a Luau file in the Roblox Game ClientA

Execute a local .luau or .lua file in the active Roblox client without returning output. Use get-data-by-code instead when you need returned values.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesThe absolute path to the .luau or .lua file to execute
threadContextNoThe thread identity to execute the code in (default: 8, normal game scripts run on 2)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description is the sole source of behavioral info. It correctly states that no output is returned, but lacks details on potential side effects, error behavior, or prerequisites (e.g., active client).

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, using only two sentences to convey the core purpose and an important usage note. No redundant or unnecessary information.

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 essential purpose and a key exclusion, but for a code execution tool, more context would be beneficial (e.g., error handling, file accessibility, requirement of an active client). However, given the simplicity of the tool and the presence of sibling tools, it is adequate.

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?

Both parameters are fully described in the input schema (100% coverage), so the description adds no additional meaning. The baseline score of 3 applies as the schema already provides the necessary semantics.

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 verb 'Execute', the resource 'local .luau or .lua file', and the context 'active Roblox client'. It also explicitly distinguishes from the sibling tool 'get-data-by-code' by noting the lack of returned output.

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 guidance on when to use this tool (when returned values are not needed) and directs the agent to the alternative 'get-data-by-code' when values are required, offering clear usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fire-remoteFire or invoke a RemoteEvent or RemoteFunctionB

Execute network calls by firing RemoteEvents (FireServer) or invoking RemoteFunctions (InvokeServer) with custom arguments.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoOptional arguments array to pass to the remote. String arguments starting with 'loadstring:' will evaluate as a Roblox expression (e.g. 'loadstring:game.Players.LocalPlayer').
pathYesThe path or expression returning the target RemoteEvent or RemoteFunction (e.g. 'game.ReplicatedStorage.RemoteEvent')
isFunctionNoSet to true if target is a RemoteFunction (calls InvokeServer and yields for result). If false, fires RemoteEvent (calls FireServer, returns immediately).

TDQS

B3.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 full burden. It does convey the side-effecting nature of the operation and the yield-vs-return distinction between InvokeServer and FireServer, but omits error behavior (e.g. missing remote), serialization constraints on arguments, and whether a live client session is required.

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?

A single front-loaded sentence with no filler, stating the action before the mode detail. It is efficient, though it is thin enough that the brevity reads as under-specification rather than disciplined concision.

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?

There is no output schema and no annotations, yet the description never explains what an invocation returns (the RemoteFunction result) or what happens on failure. For an action tool with zero structured behavioral coverage, this leaves meaningful gaps for an agent.

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 100%, so all three parameters are already documented in the schema, including the loadstring: convention and the isFunction yield semantics. The description only adds the generic phrase 'with custom arguments' and does not go beyond the schema, so the baseline 3 applies.

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 names a specific action (firing/invoking remotes) and distinguishes the two modes with the concrete API calls FireServer and InvokeServer. It is clear what the tool does, though it does not differentiate itself from adjacent siblings like ignore-remote or block-remote.

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 versus ignore-remote, block-remote, or the remote-spy tools, nor any prerequisite such as needing an active client (set-active-client). The agent is left to infer the whole usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-console-outputGet the roblox developer console output from the Roblox Game ClientC

Read recent Roblox developer console logs from the active client. Use limit and logsOrder to control volume and ordering.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 50, to avoid overwhelming output)
filterNoOptional string filter; only logs containing this text are returned
logsOrderNoThe order of the logs to return (default: NewestFirst)NewestFirst

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It only states 'read recent logs,' implying a non-destructive read, but omits details like requirements for an active client, response format, or what happens if no logs are available.

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?

Two sentences, no fluff, front-loaded with the core action. Every word earns its place.

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?

Tool has 3 parameters and no output schema or annotations. The description is too brief; it does not explain return behavior, pagination, or error cases. More detail is needed for adequate completeness.

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 100%, so the schema already documents all parameters. The description repeats paraphrased guidance ('use limit and logsOrder to control volume and ordering') without adding new meaning. Baseline 3 is appropriate.

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 it reads recent Roblox developer console logs from the active client, specifying the resource and scope. It is specific enough to distinguish from sibling tools like get-remote-spy-logs, though it does not explicitly differentiate them.

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?

The description mentions controlling volume and ordering with limit and logsOrder, but gives no guidance on when to use this tool vs alternatives. No context on prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-data-by-codeGet data by codeB

Execute Luau in the active Roblox client and return serialized raw Lua values. The code must return values; do not manually JSON-encode them.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe code to execute in the Roblox Game Client (MUST return one or more values). Return raw Lua values - do NOT manually serialize tables or use JSONEncode, the connector handles serialization automatically.
timeoutNoTimeout in milliseconds for the response (default: 15000, max: 120000). Increase for long-running operations like decompiling many modules.
threadContextNoThe thread identity to execute the code in (default: 8, normal game scripts run on 2)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden for behavioral traits. It does not mention safety, side effects, error handling, or the potential for client crashes or state mutation. The description lacks warnings about executing arbitrary code.

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?

Two sentences with the first sentence front-loading the primary purpose. No wasted words; every sentence earns its place.

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?

Adequate for a straightforward execution tool but missing details on return format (serialized raw Lua values) and error behavior. No output schema further increases need for completeness.

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 100%, so baseline is 3. The description adds marginal value by stating the execution context and serialization rule, but the schema already documents parameters thoroughly. No additional meaning beyond 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 verb (execute Luau), resource (active Roblox client), and outcome (return serialized values). It distinguishes from siblings like 'execute' and 'execute-file' by specifying Luau execution and serialized return.

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 explicit guidance on when to use this tool versus alternatives like 'execute'. The only constraint is 'code must return values; do not manually JSON-encode', but no context on appropriate 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-descendants-treeGet the descendants tree of a Roblox instanceA

Get a depth-limited hierarchy of descendants under a Roblox instance. Use for broad structure exploration; use search-instances for selector-based filtering.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootYesThe instance path to get the tree from (e.g., 'game.Workspace', 'game.Workspace.CurrentRooms')
maxDepthNoMaximum depth to traverse (default: 3). Higher values return more detail but larger output.
classFilterNoOptional class name filter β€” only show instances that IsA this class (e.g., 'BasePart', 'Model'). Leave empty to show all.
maxChildrenNoMaximum number of children to show per node (default: 50). Prevents overwhelming output for large containers.

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It does not disclose behavioral traits like read-only nature, performance impact, or error behavior (e.g., invalid root path).

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?

Two concise sentences that front-load purpose and usage. Could be improved by adding a brief behavioral note, but no waste.

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?

With 4 parameters and no output schema or annotations, the description is adequate for basic use but lacks details on return format, error handling, and limitations, leaving gaps for an AI agent.

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 100% with detailed param descriptions. The description adds no additional meaning beyond the schema, so baseline of 3 is appropriate.

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?

Clear verb 'get' and resource 'depth-limited hierarchy of descendants' distinguish from sibling 'search-instances', which is explicitly mentioned for selector-based filtering.

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 to use ('broad structure exploration') and when to use alternative ('search-instances for selector-based filtering').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-executor-environmentGet Roblox Executor Environment InformationB

Check and retrieve the capabilities, custom globals, and identification metadata of the running Roblox exploit/executor environment.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden. It implies a read-only inspection of runtime state ('check and retrieve') with no mutation language, which is useful, but it never states that it is side-effect-free, what the returned structure looks like, or whether the target environment must already be attached/active.

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?

A single front-loaded sentence with the resource named early and no filler. 'Check and retrieve' is mildly redundant, keeping it from a 5.

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 no parameters, no annotations, and no output schema, the description is the only contract, and it does enumerate the categories of information returned. It is sufficient to call the tool correctly; only the absence of any usage context and return-shape detail keeps it from a 5.

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 tool takes zero parameters, so there is no parameter semantics burden; baseline for 0 params is 4. The description adds nothing misleading about inputs.

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?

Names a specific verb pair (check/retrieve) and a specific resource (the running Roblox executor environment), and enumerates what is returned: capabilities, custom globals, identification metadata. An agent can distinguish it from data-oriented siblings like get-game-info or get-instance-properties. It stops short of naming a sibling explicitly, so it isn't 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative routing is provided. The agent must infer from the name and the phrase 'running ... environment' that this is a pre-flight capability probe, but nothing states that explicitly or says what to do instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-game-infoGet information about the current Roblox gameA

Get current Roblox place and universe metadata such as PlaceId, GameId, and PlaceVersion.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, but the description clearly indicates a read-only operation (get metadata). It is transparent about the scope (current Roblox game) and does not hide any behavioral traits.

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 that efficiently communicates both the action and the returned data. No wasted words.

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 no output schema, but the description lists example return fields (PlaceId, GameId, PlaceVersion), providing adequate context for a simple getter. It does not explain all possible metadata, but is sufficient.

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 has zero parameters and 100% coverage. The description adds no parameter details, but none are needed. It correctly implies no arguments are required.

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 retrieves current Roblox place and universe metadata, with specific examples (PlaceId, GameId, PlaceVersion). It distinguishes itself from sibling get tools like get-console-output or get-script-content by focusing on game info.

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 (when you need game metadata) but does not provide explicit guidance on when to use this over alternatives, nor does it mention any prerequisites 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-propertiesGet properties, attributes and tags of a Roblox instanceB

Inspect a Roblox Instance by path or debug ID to retrieve its properties, attributes, and tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoThe path or expression returning the target instance (e.g., 'game.Workspace.Part' or 'game.Players.LocalPlayer')
debugIdNoTarget instance DebugId (used when path is unknown or instance is outside workspace)
propertiesNoOptional specific list of property names to retrieve. If omitted, common class properties will be probed automatically.

TDQS

B3.2/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 behavioral burden. 'Inspect ... to retrieve' weakly implies a read-only operation, but the description never states that nothing is mutated, offers no auth/permission requirements, and gives no sense of return shape or error behavior when the path is invalid.

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?

One sentence, front-loaded with the action and the returned data. Nothing is wasteful or redundant.

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 three-parameter read tool with no output schema and no annotations, this covers the essentials: what it targets and what it returns. It could add a note that omitting 'properties' triggers automatic probing of common class properties, which currently lives only in the schema.

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 100%, so all three parameters are documented in the schema itself. The description's phrase 'by path or debug ID' only hints at the root/debugId distinction already spelled out in the schema, so it adds little beyond the baseline.

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 names a specific verb (inspect/retrieve) and the exact resources returned: properties, attributes, and tags of a Roblox instance. It's clear what the tool does, though it doesn't explicitly differentiate itself from nearby read-oriented siblings like search-instances or get-descendants-tree.

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?

It implies the two ways to target an instance (path or debug ID) and notes that the debug ID is for cases where the path is unknown, but it offers no guidance on when to choose this tool versus search-instances, get-descendants-tree, or get-game-info. No when-not or exclusion guidance is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-remote-spy-logsGet captured remote spy logs from CobaltA

List captured Cobalt remote and bindable call logs. Requires ensure-remote-spy first; supports direction and name filters to narrow noisy logs.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of remote logs to return (default: 50)
directionNoFilter by call direction (default: Both)Both
remoteNameFilterNoOptional filter β€” only return logs for remotes whose name contains this string (case-insensitive)
maxCallsPerRemoteNoMaximum number of recent calls to return per remote (default: 5)

TDQS

A3.9/5.0
Behavior3/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 the prerequisite and filtering capability, but does not mention if the operation is read-only, any side effects, rate limits, or performance implications. A 3 reflects adequate but not comprehensive disclosure.

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?

Two sentences that are clear and to the point, front-loading the purpose. No extraneous information, and every sentence earns its place.

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?

With four parameters and no output schema, the description does not mention return format, pagination, or what 'captured' logs look like. While the prerequisite and filters are covered, there is room for more context to fully describe the tool's input and output behavior.

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 100%, so the baseline is 3. The description adds context that direction and name filters are for narrowing noisy logs, which adds some value beyond the schema. However, it does not add significant new meaning for the limit and maxCallsPerRemote parameters.

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 'List captured Cobalt remote and bindable call logs', providing a specific verb and resource. It also differentiates from siblings like 'clear-remote-spy-logs' by noting it requires 'ensure-remote-spy' first and supports filters.

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 explicitly states a prerequisite ('Requires ensure-remote-spy first') and mentions the use of filters to narrow noisy logs. However, it does not provide explicit when-not-to-use or compare to other log-related tools among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-script-contentGet the content of a script in the Roblox Game ClientA

Get decompiled source for a Roblox script by path, script proxy, or getter code. Use startLine/endLine for a focused range when the full script is large.

ParametersJSON Schema
NameRequiredDescriptionDefault
endLineNoOptional end line number (1-based, inclusive) to return only a range of lines. Defaults to end of script if startLine is set but endLine is omitted.
startLineNoOptional start line number (1-based) to return only a range of lines from the decompiled script. If omitted, returns the full script.
scriptPathNoThe path to the script to get the content of. If passing a GC'd script proxy (e.g. <ScriptProxy: 1_316566>), use the literal angle brackets < > β€” do NOT HTML-encode them as &lt; or &gt;.
scriptGetterSourceNoThe code that fetches the script object from the game (should return a script object, and MUST be client-side only, will not work on Scripts with RunContext set to Server)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations; description adds behavioral details: script proxy encoding, client-side-only requirement for scriptGetterSource, line range behavior. Could mention error handling or return format but sufficient.

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?

Two concise sentences: first states purpose and methods, second gives practical usage hint. No unnecessary words.

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?

Covers multiple specification methods and parameter usage. No output schema, but return format is implied (decompiled source). Missing explicit note on return type or error behavior, but sufficient for a simple retrieval 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?

Schema coverage 100%; description adds context: startLine/endLine usage hint, warning about HTML encoding for scriptPath, and client-side restriction for scriptGetterSource, enriching schema descriptions.

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?

Clearly states verb 'Get' and resource 'decompiled source for a Roblox script' with three methods (path, script proxy, getter code). Distinct from sibling tools like script-grep.

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 guidance on when to use startLine/endLine for large scripts. Mentions the three ways to specify the script. No explicit when-not or alternatives, but given sibling list, it's the only script content tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ignore-remoteIgnore or unignore a remoteA

Ignore or unignore logging for a Roblox remote by exact name and direction. Requires ensure-remote-spy first; ignored remotes still fire.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionYesWhether the remote is Incoming or Outgoing
remoteNameYesThe exact name of the remote to ignore/unignore
shouldIgnoreNotrue to ignore, false to unignore

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that ignored remotes still fire and that the tool affects logging only. However, with no annotations provided, it lacks details on persistence, side effects, or error handling (e.g., if remote name is invalid). This is adequate but not comprehensive.

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 sentences, each serving a distinct purpose: first states the action and method, second provides a prerequisite and behavioral note. No wasted words.

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 simple tool with 3 parameters and no output schema, the description covers purpose, prerequisite, and a key behavioral insight. It lacks mention of return values or error handling, but for a toggle tool, this is sufficient.

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 100%, so the description adds minimal value beyond the schema. It reiterates 'by exact name and direction' but does not elaborate on the shouldIgnore parameter or provide examples. A score of 3 is appropriate given the baseline.

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 ignores/unignores logging for a Roblox remote by exact name and direction, distinguishing it from sibling tools like block-remote. It also mentions a prerequisite (ensure-remote-spy) to set context.

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 explicitly states the prerequisite (ensure-remote-spy) and clarifies that ignored remotes still fire, implying this is for suppressing logs rather than blocking. This provides useful when-to-use guidance, though it could explicitly mention alternatives like block-remote.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-clientsList connected Roblox clientsA

List connected Roblox game clients with clientId and session metadata. Use before set-active-client when multiple clients are connected or the target client is unknown.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/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 states the tool lists clients but does not disclose any potential behavioral traits such as side effects, safety, or prerequisites. For a simple list operation, it's adequate but not exemplary.

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 sentences, front-loaded with the purpose, and includes a usage guideline. Every sentence adds value; no 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 simplicity (no params, no output schema), the description covers the essential purpose and when to use it. It distinguishes from sibling tools. However, it could mention what 'session metadata' includes for completeness.

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 has zero parameters and 100% coverage. The description adds no parameter information, which is expected. Per the guidelines, 0 parameters gets a baseline score of 4.

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 lists connected Roblox game clients with clientId and session metadata. It distinguishes itself from the sibling tool set-active-client by explicitly recommending its use before that tool.

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 a clear usage guideline: use this tool before set-active-client when multiple clients are connected or the target client is unknown. This tells the agent when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-roblox-windowsList visible Roblox windowsA

List visible Roblox OS windows with PIDs. Use before screenshot-window when multiple Roblox windows may be open.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although no annotations are provided, the description discloses that only 'visible' windows are listed and that PIDs are included, which adds behavioral context beyond the name. However, it could be improved by noting that no parameters are required and that the operation is read-only and non-destructive.

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, front-loaded sentence that immediately states the tool's purpose, followed by a usage hint. Every word is necessary and contributes to clarity without repetition.

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 simplicity and lack of output schema, the description provides sufficient context: what it does and when to use it. It could be more complete by mentioning that no arguments are needed, but the empty schema already conveys that.

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?

With zero parameters, the description does not need to add parameter information, and it correctly implies that the tool requires no input. The baseline for 0 parameters is 4, and the description does not conflict with the empty 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 lists visible Roblox OS windows with PIDs, specifying the verb 'list' and the resource 'Roblox OS windows', which distinguishes it from the sibling tool 'screenshot-window' that takes a screenshot of a specific window.

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 explicitly advises to 'Use before screenshot-window when multiple Roblox windows may be open', providing clear when-to-use guidance and naming an alternative sibling tool, which helps the agent decide which tool to invoke.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screenshot-windowTake a screenshot of a Roblox windowA

Capture an actual OS screenshot of a Roblox window via Windows APIs. Provide pid when multiple windows are open; secondary servers relay capture to the primary host.

ParametersJSON Schema
NameRequiredDescriptionDefault
pidNoThe PID (process ID) of the Roblox window to capture. If omitted and only one Roblox window exists, it is captured automatically. If multiple windows exist and no pid is provided, the tool returns a list of windows for disambiguation.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description discloses OS-level capture and relay behavior, but does not detail permissions or return format.

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?

Two sentences, front-loaded with purpose, no wasted 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 no output schema, the description omits return value details (e.g., image data or window list), leaving some incompleteness.

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 100% and already describes pid behavior. The description adds relay context but no new parameter semantics beyond 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 captures an actual OS screenshot of a Roblox window via Windows APIs, distinct from sibling tools like list-roblox-windows.

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 guidance on providing pid when multiple windows are open and mentions secondary server relay, but lacks explicit alternatives or when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

script-grepGrep across all scripts in the gameA

Search decompiled Roblox scripts with JavaScript regex or literal string matching. Use for exact identifiers or code patterns; use semantic-search-scripts when behavior is known but names are not.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of scripts to return results from (default: 50)
queryYesThe search pattern. Supports JavaScript RegExp syntax: \d, \w, \s, \b, character classes [a-z], alternation (foo|bar), quantifiers (+, *, ?), groups, lookaheads, etc. Use the literal flag for exact string matching.
literalNoWhen true, treats the query as a plain literal string - no regex interpretation. Equivalent to grep -F / ripgrep -F. (default: false)
maxResultsNoMaximum total number of matches across ALL scripts (default: unlimited). Use this to cap total matches, e.g. maxResults=1 to find just the first match.
contextLinesNoNumber of lines of context to show before and after each match (default: 2)
caseSensitiveNoWhen false, matches case-insensitively. Equivalent to grep -i. (default: true)
maxMatchesPerScriptNoMaximum number of matches to return per script (default: 20)

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description does not disclose whether the tool is read-only, performance implications, or any side effects. Missing behavioral context beyond the basic search functionality.

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?

Two concise sentences with no unnecessary words. Efficiently communicates core functionality and usage distinction.

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?

No output schema and description does not mention what the results look like (e.g., list of scripts, match details, pagination). For a tool with 7 parameters, this is a notable omission.

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 100%, so parameters are well-documented in schema. Description adds some extra context (e.g., literal flag use) but does not significantly improve 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?

Clearly states it searches decompiled Roblox scripts with regex or literal matching, and distinguishes from sibling tool semantic-search-scripts by specifying when to use each.

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 tells when to use this tool (exact identifiers or code patterns) vs. semantic-search-scripts (when behavior is known but names are not).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search-instancesSearch for instances in the gameB

Search Roblox instances with QueryDescendants selector syntax. Use for class, name, tag, property, and attribute queries against a chosen root.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoThe root instance to search from (e.g., 'game.Workspace', 'game.ReplicatedStorage'). Defaults to 'game' if not specified.game
limitNoMaximum number of results to return (default: 50, to avoid overwhelming output)
selectorYesSelector string to filter instances. Supports classes (Part), tags (.Tagged), names (#HumanoidRootPart), properties ([CanCollide = false]), attributes ([$QuestId] or [$Health = 100]), child/descendant combinators (> and >>), OR selectors (,), :not(), and :has(); chain selectors for AND logic, e.g. Part.Tagged[Anchored = false].

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only describes the action. It does not disclose any behavioral traits such as read-only nature, side effects, permissions needed, or performance characteristics.

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 concise with two sentences, front-loading the core functionality. However, it could be more structured with bullet points or clearer separation of details.

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 no output schema and moderate complexity of selector syntax, the description is adequate but lacks information about return format or potential edge cases. It provides enough for basic understanding but could be more complete.

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 100%, so the schema already documents all three parameters in detail. The description adds a high-level summary of the selector syntax but does not provide additional meaning beyond the schema's property descriptions.

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 it searches Roblox instances using QueryDescendants selector syntax, and lists supported query types (class, name, tag, property, attribute). However, it does not explicitly differentiate from sibling search tools like 'semantic-search-scripts' or 'gc-search'.

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 for specific queries against a chosen root, but provides no guidance on when not to use it or alternatives. No explicit context or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic-search-scriptsSemantically search scripts in the gameA

Find decompiled Roblox scripts by behavior using semantic embeddings. Use when exact identifiers are unknown; use script-grep for exact text or regex.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of semantic matches to return (default: 10, max: 50).
queryYesNatural-language description of the code behavior to find.
minScoreNoOptional minimum cosine similarity score. Typical useful values are 0.2-0.5.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions semantic embeddings but does not disclose non-modifying nature, rate limits, or behavior on no matches. Adequate for a search tool but lacks detail.

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?

Two sentences, front-loaded with purpose, no unnecessary words. Highly concise.

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 simplicity (3 params, no output schema), the description is nearly complete. Could mention return format or example query, but not critical. Minor gap.

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 100% with existing parameter descriptions. The tool description adds no additional meaning beyond what the schema already provides. Baseline score of 3 applies.

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?

Description clearly states it finds decompiled Roblox scripts by behavior using semantic embeddings. Verb 'Find' and resource 'decompiled Roblox scripts' are specific. Distinguishes from sibling 'script-grep' for exact text/regex.

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 says 'Use when exact identifiers are unknown; use script-grep for exact text or regex.' Provides clear context for when to use this tool vs. the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set-active-clientSet active Roblox clientA

Route future Roblox tool calls to the specified connected client. Use list-clients first if you need available clientIds.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYesThe client ID to set as active. Use list-clients to get available client IDs.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the primary effect (routing to specified client). With no annotations, it carries the full burden; it adequately conveys the side-effect of switching the active client, though does not detail what happens to the previous active client.

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?

Two sentences with no wasted words; the main action is front-loaded, and the prerequisite advice follows naturally.

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 simple state-changing tool with no output schema, the description sufficiently explains its purpose and prerequisite. It could mention that changing the active client affects subsequent Roblox tool calls, but this is implied.

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 100%, so the param is already documented. The description adds value by referencing 'list-clients' for obtaining valid IDs, providing context 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 it routes future tool calls to a specified client, with a specific verb ('route') and resource ('future Roblox tool calls'). It distinguishes itself from sibling tools like 'list-clients' by implying its role as the routing setter.

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 instructs to use 'list-clients' first to get available clientIds, providing clear prerequisite and when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set-player-propertySet properties of the player characterB

Modify character stats or physics properties including WalkSpeed, JumpPower, JumpHeight, HipHeight, Gravity, and Noclip.

ParametersJSON Schema
NameRequiredDescriptionDefault
noclipNoEnable or disable Noclip (disables collisions for the player's character parts)
gravityNoThe global workspace gravity (Roblox default: 196.2)
hipHeightNoThe HipHeight of the local player character (Roblox default is calculated based on rig size)
jumpPowerNoThe JumpPower of the local player character (Roblox default: 50). Using this sets UseJumpPower = true.
walkSpeedNoThe WalkSpeed of the local player character (Roblox default: 16)
jumpHeightNoThe JumpHeight of the local player character (Roblox default: 7.2). Using this sets UseJumpPower = false.

TDQS

B3.1/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 behavioral burden, yet it only restates what is modified. It does not say whether changes are client-side or server-replicated, whether they persist across respawns, what permissions are required, or what side effects accompany setting noclip/gravity. No annotation contradiction, but the disclosure is thin 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the verb first and the affected properties enumerated; there is no filler or 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?

For a 6-parameter mutation tool with no annotations and no output schema, the description covers what is changed but omits scope, persistence, and error behavior. Parameter-level detail is fully covered by the schema, so the remaining gap is behavioral rather than structural.

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 100%, so every parameter (including defaults and the UseJumpPower coupling) is already documented in the schema. The description merely echoes the property names, adding no syntax, unit, or interaction detail beyond what the schema provides, so the baseline 3 applies.

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?

States a specific verb ('Modify') and resource ('character stats or physics properties') and enumerates the affected properties, so an agent knows exactly what the tool changes. It does not, however, distinguish itself from related siblings like execute or teleport-player, 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus alternatives such as execute (running arbitrary Lua to set the same properties) or teleport-player. The description gives no context, prerequisites, or exclusions, leaving the agent to infer usage entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

teleport-playerTeleport the player characterB

Teleport the LocalPlayer's character to a specified player, set of coordinates, or relative offset, optionally facing a specific lookAt target.

ParametersJSON Schema
NameRequiredDescriptionDefault
lookAtNoOptional Vector3 coordinates for the character to face after teleporting
coordinatesNoAbsolute Vector3 coordinates to teleport to
targetPlayerNoTarget player username to teleport to
relativeOffsetNoRelative Vector3 offset from current position (e.g. {x:0, y:50, z:0} to jump up 50 studs)

TDQS

B3.4/5.0
Behavior2/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 does not disclose whether teleporting is safe/reversible, whether it requires the player to be alive/loaded, what happens if multiple targeting parameters are supplied, or whether the change persists server-side. For a mutation tool with zero annotation coverage 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-formed sentence that front-loads the action and resource before listing the options. No waste, no redundancy.

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 takes 4 mutually-related targeting parameters with no required fields and no annotations or output schema. The description does not resolve the ambiguity of which parameter to use, the precedence if several are given, or the behavioral effects of teleporting. For a mutation tool with this complexity, the description is under-informative.

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 100%, so the schema already documents all four parameters in detail. The description only names the categories (player, coordinates, relative offset, lookAt) without adding format or precedence rules beyond the schema. Baseline 3 is appropriate.

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?

States a specific verb (teleport) and resource (LocalPlayer's character), and enumerates the three targeting modes: a player, coordinates, or a relative offset. This distinguishes it clearly from siblings like set-player-property or fire-remote.

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 by naming the three alternative targeting modes, so an agent can infer which parameter matches which intent. However, it never states when to use teleport-player versus set-player-property, nor does it warn about mutual exclusivity of the targeting parameters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

type-text-boxType into a TextBoxA

Enter text into a Roblox TextBox by path. Can simulate keystrokes or set Text directly based on useKeyPress.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe instance path to the TextBox
textYesThe string to type into the TextBox
enterNoWhether to press Enter after typing
useKeyPressNoIf true, simulates real keystrokes using VirtualInputManager / keypress. If false, directly sets the Text property.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the two simulation modes, but lacks details on side effects, permissions, or limitations (e.g., requires focus, works on locked boxes). With no annotations, description carries full burden.

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?

Two sentences, 25 words, front-loaded with core action. No wasted information.

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?

Covers core functionality and modes, but lacks information on error handling, return values, or prerequisites like TextBox existence. Adequate but not comprehensive.

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?

All 4 parameters have schema descriptions (100% coverage). Description adds context by explaining the useKeyPress toggle beyond schema, enhancing meaning.

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?

Clearly states the action (Enter text), the target (Roblox TextBox by path), and distinguishes between two modes (keystrokes vs direct set). No sibling ambiguity.

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?

Implies usage for typing into text boxes, but does not provide explicit when-to-use or when-not-to-use guidance, nor alternatives.

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.

  1. 26 tool updatesv1.0.0
    • First observedblock-remote
    • First observedclear-remote-spy-logs
    • First observedclick-button
    • First observedensure-remote-spy
    • First observedexecute
    • First observedexecute-file
    • First observedfire-remote
    • First observedget-console-output
    • First observedget-data-by-code
    • First observedget-descendants-tree
    • First observedget-executor-environment
    • First observedget-game-info
    • First observedget-instance-properties
    • First observedget-remote-spy-logs
    • First observedget-script-content
    • First observedignore-remote
    • First observedlist-clients
    • First observedlist-roblox-windows
    • First observedscreenshot-window
    • First observedscript-grep
    • First observedsearch-instances
    • First observedsemantic-search-scripts
    • First observedset-active-client
    • First observedset-player-property
    • First observedteleport-player
    • First observedtype-text-box

TDQS

A3.7/5.0

Scored across 26 tools

Disambiguation4/5

Most tools have clearly distinct purposes and the descriptions cross-reference alternatives (e.g. execute vs get-data-by-code, script-grep vs semantic-search-scripts). A few boundaries are fuzzy: execute/execute-file/get-data-by-code all run Luau with differing output behavior, and ignore-remote vs block-remote both act on remotes, though descriptions do clarify the distinction.

Naming Consistency4/5

Nearly all tools follow a consistent kebab-case verb_noun pattern (get-script-content, set-active-client, clear-remote-spy-logs, fire-remote). Minor deviations exist in noun-first names like script-grep and semantic-search-scripts, but the overall convention is readable and predictable.

Tool Count4/5

At 26 tools this sits at the upper edge of the ideal range, but the domain is unusually broad (client routing, code execution, player control, script decompilation/search, instance introspection, remote spy, GUI automation, screenshots), so most tools earn their place rather than being redundant.

Completeness5/5

The surface covers the full exploitation lifecycle: client discovery/routing, execution, player manipulation, script reading and both grep/semantic search, instance and game introspection, remote spying/firing/blocking, GUI interaction, and OS-level screenshots. No obvious dead ends for the stated purpose.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for controlling and reverse engineering Roblox games, providing 132 tools across 8 categories for instance exploration, property inspection, input simulation, and more.
    52 npm
    6
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that enables AI agents to execute Lua code, inspect scripts, spy on remotes, and interact with running Roblox game clients, including support for mobile executors on Android and iOS.
    56 npm
    1
    MIT