Skip to main content
Glama

Raven Roblox MCP

verify Node 22+ MCP

A clean-room Roblox MCP bridge owned by N3zuui. Raven connects Codex and other MCP clients to an authorized live Roblox client through a private loopback-only daemon.

Install in one command

Requirements: Windows, Node.js 22+, Codex, Roblox, and an executor you are authorized to use.

npx -y github:valrinx/raven-roblox-mcp#main setup codex

The installer configures raven_roblox, starts the shared daemon, and prints this connector loader:

loadstring(game:HttpGet("http://127.0.0.1:17654/loader.luau"))()

Restart Codex once after initial setup. That is the entire installation—no clone, manual build, JSON editing, or separate server per chat.

Full Codex instructions: docs/CODEX.md. Problems: docs/TROUBLESHOOTING.md.

Related MCP server: Roblox-MCP

Why Raven is different

  • One singleton daemon on 127.0.0.1:17654; every Codex chat/agent shares the same Roblox connection.

  • A tiny STDIO proxy auto-starts or attaches to the daemon, eliminating port conflicts between agents.

  • Accurate public place/experience names through cached MarketplaceService:GetProductInfo(game.PlaceId) metadata. Internal game.Name is exposed separately as dataModelName.

  • Smooth-by-default connector: delayed startup, duplicate-launch guard, 2 ms cooperative work slices, 15-second heartbeat, and error-only console forwarding.

  • Persistent per-user loopback token, so the connector automatically reconnects after daemon restarts.

  • No telemetry, analytics, remote updater, external decompiler, or third-party Roblox API calls.

  • Multiple Roblox clients with explicit active-client routing.

  • Stateless Streamable HTTP MCP endpoint at /mcp, plus STDIO compatibility through the proxy.

Architecture

Codex chat A ─┐
Codex chat B ─┼─ STDIO proxies ── Streamable HTTP /mcp ─┐
Codex agent C ┘                                         │
                                                       ▼
                                            Raven daemon :17654
                                             │              │
                                  /loader.luau│              │/dashboard
                                             ▼              ▼
                                      Roblox connector   Browser UI

The daemon binds only to 127.0.0.1. Roblox receives the WebSocket token from the locally served connector; the token is never committed to Git.

Useful commands

# Configure Codex and start Raven
npx -y github:valrinx/raven-roblox-mcp#main setup codex

# Check server, MCP endpoint, and connected Roblox clients
npx -y github:valrinx/raven-roblox-mcp#main doctor

# Print only the Roblox loader
npx -y github:valrinx/raven-roblox-mcp#main loader

# Run the shared daemon visibly
npx -y github:valrinx/raven-roblox-mcp#main daemon

Dashboard: http://127.0.0.1:17654/dashboard

Capabilities

Live inspection and control

  • Smart snapshots of game, player, nearby world, visible UI, and console

  • Bounded instance search, property inspection, and hierarchy trees

  • Visible UI dump and button activation

  • Player state, teleport, interaction, waits, benchmarks, and screenshots

  • Atomic typed property mutations with rollback

  • Sequential or parallel batches of up to 50 operations

Authorized reverse engineering

  • Unified bounded behavior traces for transient instance lifecycle, selected properties, remote calls, console entries, and explicit experiment markers

  • Script indexing, search, bytecode metadata, closure/constants/prototype inspection

  • Luau v3-v12 bytecode parser with Roblox opcode-decoder auto-detection

  • Instruction disassembly, register-oriented pseudo code, and control-flow graphs

  • Evidence-scored VM-obfuscation signals and snapshot-driven regression plans

  • Unified bounded behavior graph across scripts, callsites, remotes, UI, and state effects

  • Controlled-repeat scoring against no-action runs, with explicit non-causal semantics

  • Direct controlled comparison of completed causal sessions and their runtime fingerprints

  • Bounded semantic alias registry with hash history and conservative conflict resolution

  • Static virtual-dispatch slices with PC ranges and effect-boundary graphs

  • Automatic hypothesis-session creation from changed snapshot regions

  • Runtime-to-static attribution with ranked effect PCs and explicit non-exact semantics

  • Time-decayed graph confidence and bounded evidence-refresh queues

  • Deduplicated hypothesis sessions generated from graph refresh queues

  • Executor/runtime capability audit with readiness, blind spots, and evidence fallbacks

  • Evidence-aware next-strategy recommendation with explicit stop conditions and no automatic action

  • Source-line reconstruction from Luau relative/baseline debug metadata when present

  • Optional debug local/upvalue names with PC lifetimes and line-aware static candidate ranking

  • Ambiguity-aware PC confidence separated from higher-confidence source-line attribution

  • Bounded whole-program nested prototype analysis with explicit child/closure graphs

  • Bounded restart-resilient prototype registry that preserves genuine serialized debug-name evidence without inventing names for anonymous functions; its local atomic store keeps hashes and diff fingerprints only (25 scripts, 200 prototypes/version, 10 versions, 10 MB), never bytecode, instructions, disassembly, or runtime traces

  • Differential whole-program fingerprints across bytecode hashes (opcode/effect/VM changes), with anonymous matches explicitly marked tentative

  • Read-only visible UI → registered closure → script/source evidence graphs when the executor exposes signal connections

  • Runtime source-line correlation from registered UI closures to ambiguity-aware serialized prototype candidates

  • Same-line static effect-boundary candidates extending UI evidence paths through prototype to CALL/NAMECALL/API boundaries without claiming execution

  • Bounded behavioral closure constants and direct/shallow captured Instance upvalues, inspected without invoking registered callbacks

  • Class-evidenced closure capture semantics for tools, UI, modules, remotes, and generic instances (for example hotbar button closures capturing their corresponding Tool)

  • Controlled UI observation orchestration (prepare → external/user action → finish) that combines structural UI evidence with causal-session traces while never clicking on the user's behalf

  • Before/after visible-UI fingerprints and ScreenGui-level transient monitoring so panels created or revealed by an action are observable beyond the clicked button itself

  • Comparison-eligibility guard: controls are explicit, while action runs require confirmed/direct action evidence before they can affect repeatability scores

  • Passive UI signal experiments that never activate the target: temporary GuiButton.Activated listeners produce direct action evidence, bounded no-signal control windows, daemon-restart hydration from connector memory, and role-validated repeated-action/control comparison

  • Connector and daemon hydration retain up to 20 passive UI captures, matching the maximum size of one experiment plan; older evidence across multiple plans remains intentionally bounded and may be reported unavailable

  • Connector reload/stop cancels armed captures and the active causal session before disconnecting, while experiment plans bind to the exact client/place/game/job origin so evidence cannot cross a teleport or server-session boundary accidentally

  • UI experiment precondition fingerprints that reject comparisons across different effect-root states (for example opening versus closing the same toggle button), plus a bounded action-arm timeout to prevent indefinitely stale baselines

  • Root-scoped visible-UI collection for experiment baselines, so unrelated large interfaces cannot exhaust the global item budget before the target ScreenGui is fingerprinted

  • Opt-in, local-only high-confidence evidence summaries with an allowlisted schema, 100-record/1 MB bounds, atomic replacement with in-memory rollback on write failure, restart recovery, explicit per-ID deletion, and no raw traces, console output, bytecode, or UI dumps

  • A restart-resilient daemon-local UI experiment orchestrator that freezes the initial precondition, interleaves controls/actions, emits exact passive-capture arguments, and accepts only ordered finished captures whose path, role, eligibility, and precondition all match; its bounded local file contains plan metadata and capture IDs only, never raw evidence, failed writes roll memory back, and attribution stays gated until every ID is available or explicitly reconciled from matching connector evidence

  • One-step experiment advancement: control windows arm, finish, normalize, and attach automatically without activating UI; action windows persist as pending and explicitly wait for one real user activation before the next advance. Cancel cleans pending connector state, and completed/cancelled plans support transactional exact-ID deletion

  • Long-lived UI observations default to structural/UI evidence only; remote serialization requires explicit opt-in, and behavior traces restore only remote-monitor state they enabled themselves

  • Passive Activated capture with a temporary listener and automatic short causal window; Raven observes the real user action but never invokes the button

  • Controlled comparison of repeated UI-action observations against no-action controls across remote, instance, state, and structural UI fingerprints

  • Evidence-completeness and uncertainty audit separating executor capability from current observations, freshness, ambiguity, hard limits, and prioritized minimal recapture actions

  • Conservative VM classification using descriptive debug names and weak slices as counter-evidence

  • Capability preflight with actionable stale daemon/connector diagnostics

  • Status-level compatibility report for daemon version, connector version, and missing core capabilities

  • Evidence-scored cross-script dependency graph

  • Bounded remote monitoring, argument-schema clustering, replay, and snapshots/diffs

  • Evidence-scored remote callsite attribution using the calling script and a bounded runtime stack when the executor exposes those APIs

  • find_remote_callsites graph linking captured remotes to runtime callsites and exact or candidate indexed scripts with inspectable confidence/evidence

  • Semantic symbol suggestions derived from paths, attributed remotes, and bounded runtime constants; suggestions are explicitly never claimed as original source identifiers

  • Runtime FPS, memory, ping, class-count, and traversal profiling

Evidence-driven behavior trace

Use behavior_trace_control when an object or effect may exist for only a few frames, or when one action needs to be correlated with remote traffic:

  1. Start a trace with narrow roots such as game/Workspace/RedShow and select only the properties needed for the hypothesis.

  2. Add a marker immediately before the authorized test action.

  3. Perform the action once.

  4. Read get_behavior_trace incrementally and stop the trace.

The trace is retained only in bounded client memory (100–5,000 events). Instance creation/removal records include lifetime when Raven observed both boundaries. Starting a new trace disconnects prior trace listeners; stopping or unloading the connector cleans them up.

Use causal_session_control to wrap one controlled experiment. start captures the before snapshot and opens a trace; mark records an action boundary without performing the action; finish captures after state, closes the trace, computes the snapshot diff, and groups observations into marker windows. Results explicitly label temporal correlation as non-causal until controlled repetition or direct callsite evidence supports a stronger conclusion.

The daemon-local hypothesis tools encode Raven's troubleshooting guardrails: every attempt requires current evidence, an unchanged strategy cannot be retried without new evidence, one strategy is limited to two attempts, failures require an updated hypothesis, and three distinct failed strategies move the session to review_required instead of permitting more guesses. Sessions remain bounded to 20 and survive Roblox connector reconnects while the daemon stays running.

Pseudo code is an evidence-oriented representation, not claimed source recovery. Original identifiers, comments, formatting, and some high-level constructs do not exist in bytecode.

  1. Call status, then list_clients.

  2. Use smart_snapshot for initial orientation.

  3. Narrow with query_instances, inspect_instance, get_tree, or dump_visible_ui.

  4. Use batch for related reads.

  5. Use mutation and remote-replay tools only when a live change is explicitly intended.

Build from source

git clone https://github.com/valrinx/raven-roblox-mcp.git
cd raven-roblox-mcp
npm ci
npm run check
npm run privacy:audit
npm audit

Run locally:

npm start

Security and scope

Raven is intended only for experiences, clients, and accounts you own or are explicitly authorized to test. execute_luau, remote replay, teleport, UI interaction, and property mutation can change live client state. See SECURITY.md for the complete security model.

Ownership and license

Raven's Roblox bridge, RPC protocol, tool schemas, security limits, bytecode analysis, and connector were developed as a clean-room implementation. Runtime dependencies are the official MCP SDK, Zod, and ws.

Copyright © 2026 N3zuui. Source-available for lawful use and private modification; redistribution, resale, relicensing, and removal of attribution are restricted. See LICENSE.

Available Tools

42 tools
analyze_scriptAnalyze local scriptA
Read-onlyIdempotent

Analyze one indexed script locally using closure debug info, constants and nested prototypes when executor introspection is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
clientIdNoConnected client id; defaults to active client
maxDepthNo
includeUpvaluesNo
includeConstantsNo
maxItemsPerClosureNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate this is read-only and idempotent. The description adds the behavioral note that analysis uses closure debug info, constants, and nested prototypes, and that this only works 'when executor introspection is available'. This provides useful context beyond the annotations, though it doesn't detail failure modes.

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 clearly states the action, target, and methodology. Every phrase contributes useful information, with no redundant or filler content.

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, yet the description does not explain what the analysis returns or how the result is structured. It also omits details about behavior when executor introspection is unavailable, and provides no guidance on prerequisites beyond the script being indexed. With 6 parameters, this is insufficient.

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 low at 17%, only clientId has a description. The description mentions 'constants' and 'nested prototypes', which map to includeConstants and maxDepth, but does not explain each parameter or how they control the analysis. It adds some meaning beyond the bare schema, but not enough to fully compensate for the missing per-parameter 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?

The description clearly identifies the action ('Analyze'), the target ('one indexed script'), the scope ('locally'), and the method ('using closure debug info, constants and nested prototypes'). This distinguishes it from sibling tools like disassemble_script which disassembles, or search_scripts which searches across scripts.

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 analyzing a specific indexed script's internals, but does not explicitly state when to use this vs alternatives like explore_closure or disassemble_script. No exclusion criteria are provided, leaving the agent to infer from the tool name and context.

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

batchRun RPC pipelineA
Destructive

Run up to 50 supported client operations in one round trip, sequentially or concurrently, with optional stop-on-error.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNosequential
clientIdNoConnected client id; defaults to active client
timeoutMsNo
operationsYes
stopOnErrorNo

TDQS

A3.8/5.0
Behavior3/5

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

The description adds behavioral context beyond annotations by specifying the 50-operation limit, round-trip optimization, sequential/concurrent modes, and stop-on-error option. However, it does not disclose error handling details, whether operations are atomic, or what the return format is. Annotations already declare destructiveHint, so the description's additional context is moderate value.

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, focused sentence that front-loads the core function and includes all key options without unnecessary words. Every phrase earns its place, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with 5 parameters, a nested operations array, no output schema, and low schema coverage. The description is too brief to cover critical aspects like how to specify operations (method names), what 'supported' means, error/result behavior, or the impact of clientId and timeoutMs. It leaves the agent with significant unknowns for successful invocation.

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 only 20%, so the description must compensate. It clarifies 'sequentially or concurrently' (mode), 'stop-on-error' (stopOnError), and 'up to 50' (maxItems for operations). Yet it does not explain operations object structure (method/params), clientId, or timeoutMs, leaving significant gaps for the required operations parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: running up to 50 client operations in a single round trip, with options for sequential/concurrent execution and stop-on-error. It distinguishes itself from sibling tools (individual operations) by explicitly being a batch wrapper, making its purpose unmistakable.

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 phrase 'in one round trip' clearly implies usage when multiple operations need to be performed together to reduce overhead, and 'sequentially or concurrently' indicates execution modes. However, it does not explicitly mention when NOT to use this tool or name specific alternative tools for single operations, so it lacks explicit exclusions.

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

benchmarkBenchmark bridgeB
Read-onlyIdempotent

Measure local bridge latency and bounded client-side instance traversal throughput.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNoConnected client id; defaults to active client
scanRootNogame/Workspace
scanLimitNo
iterationsNo

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and idempotentHint=true, so no safety disclosure is required from the description. The description adds useful details about the bounded nature and specific metrics, but it does not disclose potential runtime impact or result format. This is adequate given the annotations but not rich.

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 with no filler words. It immediately states the action and target, maximizing information density while staying concise.

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 the description does not mention return values or how results are reported. Combined with sparse parameter explanations and no usage context, the description leaves significant gaps for a tool with 4 parameters, even though annotations cover safety.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (clientId has a description). The description does not explain scanRoot, scanLimit, or iterations, leaving the agent to rely on defaults and constraints. The phrase 'bounded traversal throughput' hints at scanLimit but does not explicitly describe parameter behavior, failing to compensate for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Measure' and identifies the resource as 'local bridge latency and bounded client-side instance traversal throughput'. This clearly distinguishes it from siblings like profile_runtime, which focuses on runtime profiling, making the tool's unique 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 Guidelines2/5

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

There is no mention of when to use this tool or any alternatives. No exclusions or alternative tool references are provided, leaving the agent to infer its use solely from the name 'benchmark' and the vague context of the description.

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

build_script_graphBuild cross-script graphA
Read-only

Infer a cross-script dependency graph from exact runtime Instance constants and unique string evidence, with confidence on every edge.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNoConnected client id; defaults to active client
maxScriptsNo
maxClosureDepthNo

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, and the description's 'infer' aligns with a read-only operation. The description adds context about the method (exact runtime constants and unique string evidence) and output characteristic (confidence on every edge), which goes beyond annotations. However, it does not disclose potential error behaviors, performance impacts, or irreversibility, so it only moderately enhances transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single, information-dense sentence with no filler or redundant text. It front-loads the core purpose and immediately conveys the tool's unique approach. Every phrase contributes value, making it an exemplary concise description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has three parameters but no output schema, and the description does not explain the return format (e.g., how the graph is represented, what 'confidence on every edge' means concretely). The description also omits how maxScripts and maxClosureDepth affect behavior. Given the complexity of graph inference, a single sentence is insufficient for an agent to invoke the tool correctly without additional assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only 'clientId' has a schema description). The tool description does not mention or explain any of the three parameters, including the meaning of 'maxScripts' and 'maxClosureDepth'. With such low schema coverage, the description should compensate but does not, leaving the semantics of key parameters underspecified.

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 a specific verb ('infer') and resource ('cross-script dependency graph'), and distinguishes it from sibling tools like search_scripts or analyze_script. The mention of 'exact runtime Instance constants and unique string evidence' adds methodological specificity, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies usage scenarios: whenever a cross-script dependency graph is needed, this tool is appropriate. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. This is implied usage, not explicit guidance.

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

capture_re_snapshotCapture RE snapshotB
Read-only

Capture an in-memory versioned snapshot of script hashes, inferred remote schemas, and selected instance properties.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNo
clientIdNoConnected client id; defaults to active client
instancesNo
maxScriptsNo
includeScriptsNo
includeRemoteSchemasNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=false. The addition of 'in-memory' and 'versioned' clarifies that the snapshot is not persisted and that each call creates a new version, which is helpful context. However, it does not explain side effects beyond that.

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 is specific and free of fluff. It 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?

With 6 parameters, no output schema, and no connection to the larger snapshot workflow (e.g., diff_re_snapshots, list_re_snapshots), the description leaves many unknowns such as how to specify instances, what maxScripts limits, and what the tool returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17% (clientId has a description). The description maps some content to likely parameters (script hashes→includeScripts, remote schemas→includeRemoteSchemas, instance properties→instances) but does not explain label, maxScripts, or the exact format of instances. It should compensate for the low schema coverage but only partially does.

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 'Capture' and the resource 'in-memory versioned snapshot' with specific contents (script hashes, remote schemas, instance properties). This distinguishes it from sibling tools like diff_re_snapshots and list_re_snapshots.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like smart_snapshot or infer_remote_schemas. The description only says what it does, not when or why to use it.

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

click_uiClick UIB

Activate a visible GuiButton by exact path, exact text, or text substring.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNo
pathNo
textNo
clientIdNoConnected client id; defaults to active client
exactTextNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate this is not read-only, idempotent, or destructive. The description adds the targeting semantics but does not disclose side effects, error behavior, or prerequisites such as active client or visibility conditions beyond 'visible'.

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 conveys the essential operation without filler. 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?

Despite the moderate complexity (5 optional parameters), there is no output schema and the description does not explain the 'all' parameter, behavior when multiple elements match, or the result/return value. This leaves significant gaps for an agent to invoke the tool correctly.

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?

With only 20% schema description coverage, the description compensates by explaining the main targeting parameters (path, text, exactText). However, 'all' is left unexplained, and clientId is already covered by the schema, so the added value is partial.

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 (activate), the target (visible GuiButton), and the targeting methods (exact path, exact text, or text substring). This distinguishes it from sibling tools like get_tree or interact, which serve different purposes.

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 explicit guidance on when to use this tool versus alternatives like interact or get_tree. The context is implied by the description but exclusions or alternative recommendations are absent.

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

console_streamConfigure console streamingA
Idempotent

Control live console forwarding. Errors mode keeps warnings/errors only; all can add overhead in noisy games.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNostatus
clientIdNoConnected client id; defaults to active client

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare idempotent and non-destructive behavior. The description adds a useful behavioral trait about performance overhead for 'all' mode, but does not explain the effects of 'status' or 'off' modes. This is moderate added value beyond annotations.

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 concise sentences. The first sentence states the core purpose, and the second adds practical mode guidance without unnecessary words. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity configuration tool with no output schema, the description covers the core behavior and mode selection adequately. However, the 'status' mode remains ambiguous, and return values are not mentioned, leaving minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides a description for clientId, but mode lacks one. The description adds semantics for two of the four mode enums ('errors' and 'all'), partially compensating for the schema gap, but leaves 'status' and 'off' undefined. Overall, moderate parameter guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's function with a specific verb ('Control') and resource ('live console forwarding'), and adds mode semantics that distinguish it from console-reading tools like get_console. It is unambiguous and informative.

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 concrete guidance on mode selection, noting that 'errors' mode limits to warnings/errors and 'all' mode can add overhead. However, it does not explicitly contrast with sibling tools like get_console or list_clients, so exclusion guidance is absent but context is clear.

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

dashboard_infoDashboard informationA
Read-onlyIdempotent

Return the private local dashboard URL and its current availability.

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?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is known. The description adds the specific return content (URL and availability) but does not disclose prerequisites or edge cases (e.g., what happens when the dashboard is unavailable). This adds some value beyond annotations but not rich context.

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 sentence of 12 words, front-loaded with the verb and object. It contains no filler or unnecessary detail, making it highly concise and easy to parse.

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 parameterless read-only tool, the description adequately conveys what the tool returns (URL and availability). It could mention prerequisites like 'requires a running game session' or define 'availability', but given the simplicity and annotations, it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema fully covers parameter semantics (trivially). The description does not need to explain parameters. Baseline 4 is appropriate for parameterless tools.

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 uses a specific verb 'Return' with a clear object: 'the private local dashboard URL and its current availability.' This is precise and differentiates the tool from siblings like status or get_game_info, which do not mention a dashboard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description implies its usage context—when you need the local dashboard URL or its availability—but it does not explicitly state alternatives or when not to use it. The purpose is clear enough for an agent to infer usage, but explicit exclusions are missing.

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

diff_re_snapshotsDiff RE snapshotsA
Read-onlyIdempotent

Diff script versions, remote schemas, and selected runtime state between two in-memory snapshots.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterIdYes
beforeIdYes
clientIdNoConnected client id; defaults to active client
maxChangesNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint and idempotentHint, so the safety profile is known. The description adds context about what is diffed but does not disclose any additional behavioral traits such as output format, performance characteristics, or prerequisites beyond the parameter IDs. This is acceptable given the annotations, but not particularly rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single, well-structured sentence that efficiently conveys the core functionality without redundancy. It is front-loaded with the main action and scoped appropriately.

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 is adequate for a read-only diff operation with annotations, but it does not explain what the output looks like or what 'selected runtime state' means. It also doesn't mention the maxChanges limit or prerequisite that snapshots must exist. Without an output schema, this leaves some ambiguity for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (only clientId has a description). The description does not explain beforeId, afterId, or maxChanges semantics beyond what is inferable from names. It fails to compensate for the low schema coverage, especially for maxChanges which is not self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the verb ('Diff') and the resource ('in-memory snapshots'), specifying the types of content compared (script versions, remote schemas, selected runtime state). It distinguishes itself from sibling tools like capture_re_snapshot (create) and list_re_snapshots (list).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description implies when to use the tool: when you need differences between two snapshots. It does not explicitly state alternatives or when-not-to-use, but the context is clear enough that an agent would not confuse it with capture or list operations.

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

disassemble_scriptDisassemble Luau bytecodeB
Read-onlyIdempotent

Read one script's serialized Luau bytecode locally, decode instructions, generate register-level pseudo code, build a control-flow graph, and extract behavioral evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
protoIdNo
clientIdNoConnected client id; defaults to active client
maxInstructionsNo
opcodeMultiplierNoauto

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description adds valuable context by detailing the analysis pipeline (decode, pseudo-code, CFG, evidence extraction). It does not contradict annotations and offers more behavioral detail than the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single sentence but each clause adds distinct value (read, decode, generate, build, extract). It is efficient and front-loaded with the primary verb, though slightly dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters and no output schema, and the description does not explain parameter semantics, usage context, or return value structure. While it lists outputs, it omits necessary details like maxInstructions limits or protoId selection, leaving gaps for a complex analysis tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (clientId only). The description does not mention path, protoId, maxInstructions, or opcodeMultiplier, nor their purposes. It implies path is the script target but provides no additional meaning for the other 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 uses specific verbs and resources: reads serialized Luau bytecode, decodes instructions, generates pseudo code, builds a control-flow graph, and extracts behavioral evidence. This clearly distinguishes it from siblings like analyze_script or build_script_graph.

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. It only states it reads bytecode locally, but does not mention when to prefer this over analyze_script, explore_closure, or build_script_graph, nor any exclusions or prerequisites.

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

dump_visible_uiDump visible UIA
Read-onlyIdempotent

Read a flat, bounded tree of visible PlayerGui/gethui/CoreGui elements including text, geometry, and interaction state.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNoConnected client id; defaults to active client
maxItemsNo
textLimitNo
interactiveOnlyNo
includeOffscreenNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds useful behavioral context: the tree is flat and bounded, and includes text, geometry, and interaction state, which goes beyond the annotations.

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 one sentence, front-loaded with the verb 'Read', and contains no redundant information. Every word contributes to the meaning.

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 read-only inspection tool with strong annotations, but it lacks guidance on parameter effects and return shape. With five optional parameters and no output schema, additional detail on semantics would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (only clientId is documented). The tool description does not elaborate on parameters like maxItems, textLimit, interactiveOnly, or includeOffscreen, failing to compensate for the low coverage. Parameter names and defaults provide some hints but are insufficient.

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 specifies the action 'Read' and the resource: a flat, bounded tree of visible PlayerGui/gethui/CoreGui elements including text, geometry, and interaction state. This is specific enough to distinguish it from sibling tools like get_tree (generic tree) or click_ui (interaction).

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 implicitly conveys when to use this tool: when you need a read-only, bounded view of visible UI elements. It does not explicitly mention alternatives or exclusions, but the context is clear for agent selection among siblings.

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

execute_luauExecute LuauA
Destructive

Execute authorized Luau in the selected client, serialize returned values safely, and report compile/runtime timings.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
clientIdNoConnected client id; defaults to active client
chunkNameNoRavenMCP
timeoutMsNo

TDQS

A3.5/5.0
Behavior4/5

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

The description adds useful behavioral context beyond the annotations: it mentions safe serialization of returned values and reporting of compile/runtime timings. It also notes 'authorized,' indicating access control expectations. However, it does not elaborate on side effects or error behavior, which is acceptable given the destructiveHint annotation already flags risk.

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, concise sentence that front-loads the core purpose and includes essential output behaviors (serialization, timing). Every phrase serves a purpose, and there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-complexity tool (arbitrary code execution, four parameters, destructive potential, no output schema), this description is too sparse. It omits expected return value structure, error handling, permission prerequisites, side effects, and usage examples, leaving significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (only clientId has a description). The description maps 'selected client' to that parameter but offers no explanation for 'code', 'chunkName', or 'timeoutMs'. It adds minimal value beyond the schema, failing to compensate for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('execute'), a resource ('authorized Luau in the selected client'), and additional details about serialization and timing. It unambiguously distinguishes this from sibling tools, which are mostly read/inspection utilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'batch' or other script-related tools. The phrase 'authorized Luau' implies permission requirements but does not explain when to prefer this tool over others or any exclusions.

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

explore_closureExplore closure and upvaluesB
Read-onlyIdempotent

Recursively inspect runtime closure metadata, constants, nested prototypes, and bounded upvalue values.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
clientIdNoConnected client id; defaults to active client
maxDepthNo
includeUpvaluesNo
includeConstantsNo
maxItemsPerClosureNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds behavioral context beyond that: it mentions recursive traversal, constants, nested prototypes, and bounded upvalue values, which gives the agent a clearer picture of what the tool does.

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 sentence that is front-loaded with the core action ('Recursively inspect') and packs relevant detail without any 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 tool with no output schema, the description does not describe return values or edge cases. It covers core behavior and annotations handle safety, but it lacks usage context and parameter guidance, making it adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 17% (only clientId is described). The description mentions 'constants' and 'upvalue values' which map to includeConstants and includeUpvalues, but it does not explain the required path, maxDepth, or maxItemsPerClosure, leaving key parameters underspecified.

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 the tool's purpose with a specific verb ('inspect') and resource ('runtime closure metadata'). It enumerates key aspects (constants, nested prototypes, bounded upvalue values), which distinguishes it from static-analysis siblings like disassemble_script, though it doesn't explicitly compare to 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?

No guidance is provided on when to use this tool versus alternatives. The description is purely definitional and lacks exclusions, prerequisites, or pointers to sibling tools.

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

get_consoleRead developer consoleA
Read-onlyIdempotent

Read buffered Roblox LogService messages with sequence-based incremental polling.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
levelsNo
clientIdNoConnected client id; defaults to active client
sinceSequenceNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, covering the safety profile. The description adds behavioral context by mentioning that messages are buffered and that polling is sequence-based, which explains how the tool operates without contradicting the annotations.

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 sentence, front-loaded with the verb and object, and contains no redundant information. Every word 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?

The description covers the core purpose but lacks sufficient parameter semantics and does not differentiate from console_stream. Given the absence of an output schema and low schema coverage, the description is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, with only clientId described. The description does not explain the meaning of limit, levels, or sinceSequence, though it hints at sequence-based polling. This is insufficient for a low-coverage schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Read' and names the exact resource 'buffered Roblox LogService messages'. It also highlights the method 'sequence-based incremental polling', which distinguishes it from sibling tools like console_stream. This clearly states what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides clear context that the tool is for reading buffered console messages and supports polling, so an agent can infer when to use it. It does not explicitly mention alternatives or exclusions, but the context is clear enough for basic usage.

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

get_game_infoGet game metadataA
Read-onlyIdempotent

Read current place, universe, server, creator, and local-player metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNoConnected client id; defaults to active client
includeMarketplaceNoResolve the real Roblox place/experience name through MarketplaceService; cached after the first request

TDQS

A3.8/5.0
Behavior3/5

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

The description aligns with the annotations (readOnlyHint and idempotentHint) by using 'Read', so no contradiction. However, it adds little behavioral context beyond the annotations, such as caching or network dependencies. With annotations covering the safety profile, the description contributes minimally but adequately.

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 concise sentence that lists the key data categories. No filler or redundancy, and the essential information is front-loaded.

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 is simple with full annotation coverage and complete parameter documentation. The description lists the returned metadata categories, which partially compensates for the absence of an output schema. However, it does not explain the response structure, so a small gap remains.

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 both parameters already carry detailed descriptions (e.g., clientId defaults to active client, includeMarketplace caching behavior). The tool description itself does not add parameter semantics, but the schema does the heavy lifting, yielding 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 uses a clear verb ('Read') and specifies the resource (game metadata) along with the scoped data categories (place, universe, server, creator, local-player). This differentiates it from sibling tools like get_tree or status, which target different data or scope.

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 one needs current game metadata, but it does not explicitly state when to use this tool over alternatives, nor does it mention any exclusions or prerequisites. The simplicity of the read operation makes the context reasonably clear, but explicit guidance is absent.

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

get_player_stateGet player stateB
Read-onlyIdempotent

Read character, humanoid, position, velocity, camera, backpack tools, and selected attributes.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNoConnected client id; defaults to active client
includeBackpackNo
includeAttributesNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds the specific components read, but it doesn't disclose any potential edge cases, defaults, or behavioral nuances beyond the annotation-provided data.

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 no filler. It efficiently lists the components without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is read-only with annotated safety, and the description enumerates the data components, giving some sense of the return content. However, without an output schema, the description does not clarify the exact return structure or what 'selected attributes' means, which is a notable 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 only 33% (clientId has a description). The description mentions 'backpack tools' and 'selected attributes,' which hints at the includeBackpack and includeAttributes booleans, but it does not explain their behavior or defaults. clientId is not addressed in the description, so the compensation is partial.

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 the tool reads player state components (character, humanoid, position, etc.) with a specific verb 'Read', and the title reinforces the resource. It is distinct from sibling tools like get_tree and get_game_info, though it does not explicitly differentiate itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or preferred contexts, leaving the agent to infer usage from the name and description.

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

get_recordingRead RPC recordingB
Read-onlyIdempotent

Read bounded recorded calls including parameters, outcome, timing, and client routing.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sinceSequenceNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description adds useful context by specifying the content of the returned records ('parameters, outcome, timing, and client routing') and the 'bounded' nature. However, it does not disclose ordering, default limit behavior, or how sinceSequence affects results, leaving some behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single sentence with no filler, front-loaded with the verb 'Read' and immediately stating the object and key details. It earns its place without 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 read-only tool with two optional parameters and no output schema, the description covers the return content reasonably well but omits parameter behavior and any relationship to sibling tools. It is minimally adequate but leaves gaps that an agent must resolve through schema constraints or trial, especially without output schema guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter meaning. It does not mention 'limit' or 'sinceSequence' at all, and 'bounded' only vaguely hints at limitation. The agent must infer semantics from parameter names and constraints, which is insufficient for precise invocation.

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 uses the specific verb 'Read' with a clear resource ('recorded calls') and scope ('bounded'), and lists content areas: parameters, outcome, timing, and client routing. This distinguishes it from sibling tools like recording_control or replay_recording, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives. It does not mention that replay_recording is for replaying, or that recording_control manages recordings, nor does it provide any exclusions or context for selection. The usage is only implied by the verb 'Read'.

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

get_remote_eventsRead remote eventsC
Read-onlyIdempotent

Read locally captured remote calls with incremental sequence filtering.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
methodNo
clientIdNoConnected client id; defaults to active client
nameContainsNo
sinceSequenceNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds the notion of incremental sequence filtering, which hints at pagination behavior, but fails to disclose ordering, default behavior, or response format. The added value beyond annotations is modest, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single sentence with no wasted words, and it front-loads the primary action. However, it is terse to the point of omitting important context, so it earns a 4 rather than 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and a minimal description, critical information is missing: the return value shape, default values, and interplay between filters. The description only covers the sequence filtering concept, leaving users to guess other behavior. This is inadequate for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (clientId has a description). The description's reference to 'incremental sequence filtering' clarifies the purpose of sinceSequence, but it leaves limit, method, and nameContains unexplained. With 5 optional parameters and low schema coverage, the description does not compensate enough, resulting in a score of 2.

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 'Read locally captured remote calls with incremental sequence filtering' clearly states the verb (read) and resource (locally captured remote calls), adding scope with sequence filtering. It is specific enough to distinguish from siblings like remote_monitor or replay_remote_event, though it does not explicitly call out alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus siblings. There is no mention of requirements, preconditions, or alternatives. The phrase 'locally captured' implies it works after capture, but this is not explicit.

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

get_treeGet instance treeA
Read-onlyIdempotent

Return a depth- and breadth-bounded hierarchy below any Roblox instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNogame/Workspace
clientIdNoConnected client id; defaults to active client
maxDepthNo
maxChildrenNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description doesn't need to cover safety. It adds the behavioral trait that the hierarchy is depth- and breadth-bounded, which is valuable context for what results to expect. However, it doesn't describe truncation behavior or errors.

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, 12 words, front-loaded with the core action and parameters. Every word contributes; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core purpose and the bounding constraints, but with no output schema, it leaves the return structure undefined. Error behavior and parameter nuances (e.g., defaults) are also omitted. For a 4-param tool, this is adequate but has gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (25%); only clientId has a description. The description only hints at the root parameter ('below any Roblox instance') and does not explain maxDepth/maxChildren semantics beyond their names. It does not compensate for the missing 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?

The description uses a specific verb ('Return') and resource ('hierarchy below any Roblox instance'), with clear scope ('depth- and breadth-bounded'). This distinguishes it from sibling tools like inspect_instance (single instance) or query_instances (query-based).

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 get_tree vs alternatives like query_instances or inspect_instance. There are no exclusions or alternative recommendations. The description only implies the use case of fetching a subtree, but doesn't clarify when to prefer this tool.

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

index_scriptsIndex local scriptsA
Read-only

Build an in-memory, local-only script/module index with stable path, bytecode hash/size when available, and no external decompiler.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNoConnected client id; defaults to active client
maxScriptsNo
includeBytecodeMetadataNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds useful behavioral context: the index is in-memory (not persisted), local-only (no external data transfer), and does not use an external decompiler. This goes beyond the annotations but does not disclose all side effects (e.g., overwriting existing index), though the readOnly hint mitigates the need.

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 sentence that is front-loaded with the verb 'Build'. It contains no filler and packs relevant detail about scope (local-only), storage (in-memory), and content (stable path, bytecode metadata). 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?

There is no output schema, and the description does not state what the tool returns (e.g., an index summary, success indicator). It also omits behavior around maxScripts and includeBytecodeMetadata parameters. Given the tool's role among siblings (likely a precursor to analysis), the lack of return-value information and parameter edge cases makes the description incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (only clientId has a description). The description does not mention maxScripts or includeBytecodeMetadata, though it hints at bytecode hash/size 'when available' which partially relates to includeBytecodeMetadata. Overall, parameter meaning is not adequately explained, and the description does not compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Build' with resource 'in-memory, local-only script/module index' clearly states the action and object. It distinguishes from siblings by highlighting 'local-only' and 'no external decompiler', which differentiates it from search/analysis/disassembly tools.

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 creating a lightweight local index without decompiling, but it does not explicitly state when to use this tool versus alternatives like search_scripts or analyze_script. No exclusions or alternatives are named, so guidance is only implicit.

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

infer_remote_schemasInfer remote schemasA
Read-onlyIdempotent

Cluster captured remote calls into structural argument signatures with frequency and sequence ranges.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
clientIdNoConnected client id; defaults to active client

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds the notion of an analysis operation, but it does not disclose any further behavioral traits such as performance implications, data source requirements, or side effects. With annotations present, this is acceptable but not enriched.

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, focused sentence that starts with the core action 'Cluster'. It avoids redundancy, contains no filler, and every word contributes to understanding. This is exemplary conciseness.

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 no output schema, the description should explain return values; it does just enough by naming 'structural argument signatures with frequency and sequence ranges'. However, it omits details about prerequisites (e.g., how calls were captured), edge cases, or result format, making completeness moderate for an analysis tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%, with only clientId described. The description does not mention parameters at all, failing to compensate for the undocumented 'limit' parameter. It provides no insight into how limit affects the clustering or why a user might adjust it, so the value added is minimal.

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 ('Cluster') and the resource ('captured remote calls') while specifying the output ('structural argument signatures with frequency and sequence ranges'). This distinguishes it from sibling tools like get_remote_events or capture_re_snapshot by focusing on schema inference from recorded calls.

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 captured remote calls are available, but it does not explicitly state when to choose this tool over alternatives or provide exclusions. While the context is somewhat clear, it lacks explicit guidance on prerequisites or comparison to siblings, so it falls short of a 4.

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

inspect_instanceInspect instanceA
Read-onlyIdempotent

Inspect one instance with safe common properties, attributes, tags, children, and optional properties.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
clientIdNoConnected client id; defaults to active client
propertiesNo
includeChildrenNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, lowering the bar. The description adds context by stating it inspects 'safe common properties', which signals that potentially unsafe or volatile properties are excluded, and mentions 'optional properties', indicating the returned data can be extended. This goes beyond the annotations and gives behavioral insight.

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 sentence of 14 words, with no filler or redundancy. It front-loads the verb 'Inspect' and efficiently conveys the scope. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 4 parameters and no output schema, so the description carries the burden of explaining the result content. It lists what is included (properties, attributes, tags, children) but does not describe the return format, the role of the path, or the default behavior of includeChildren. It is adequate but leaves gaps for a tool with this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (only clientId is described). The description mentions 'optional properties', which relates to the 'properties' parameter, but it does not explain the meaning or behavior of 'path' (the required parameter) or 'includeChildren'. It fails to compensate for the low schema coverage, leaving most parameters underdocumented.

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 the action ('Inspect') and the target resource ('one instance'), and lists what is included (common properties, attributes, tags, children, optional properties). It distinguishes itself from siblings like 'get_tree' by specifying a single instance, but it does not explicitly name alternatives or contrast itself with other inspection tools.

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 phrase 'one instance' implies this tool is for inspecting a specific instance rather than the whole tree (e.g., get_tree), but no explicit when-to-use or when-not-to-use guidance is provided. There are no alternative tool names or exclusion criteria, so usage context is only implied.

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

interactInteract with world objectA
Destructive

Trigger an authorized ProximityPrompt, ClickDetector, or TouchTransmitter by path.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoauto
pathYes
clientIdNoConnected client id; defaults to active client

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly=false, idempotent=false, and destructiveHint=true, covering side-effect risk. The description adds the context 'authorized', indicating a precondition/permission requirement. This is useful, but it does not disclose consequences of triggering (e.g., in-game state changes) beyond the annotation. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single, well-structured sentence with no filler. It front-loads the action and resource, and every word contributes meaning. This is an exemplar of conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a potentially destructive trigger with no output schema and sparse parameter descriptions. The description gives the core trigger behavior but omits important context such as how to obtain a valid path (e.g., via get_tree), what happens on success/failure, or how clientId factors in. However, annotations cover the safety profile, so it is minimally adequate for simple invocation but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low at 33%, so the tool description must compensate. 'By path' clarifies that the path parameter is a locator, and the three component types echo the kind enum, but the 'auto' default and clientId parameter are not addressed. The description adds limited meaning beyond the schema and fails to fully compensate for the undocumented 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 uses the specific verb 'Trigger' and names precise resources (ProximityPrompt, ClickDetector, TouchTransmitter) with a clear locator ('by path'). This clearly distinguishes it from sibling tools like click_ui (UI elements) and teleport, 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 Guidelines3/5

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

The description implies usage: use when you need to trigger these specific world-object interaction components. However, it does not explicitly state when not to use it or mention alternatives such as click_ui or execute_luau. There is no explicit exclusion or alternative guidance, so it stops at implied usage.

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

list_clientsList Roblox clientsA
Read-onlyIdempotent

List every Roblox client connected to the private local bridge.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, providing safety expectations. The description adds the 'every' quantifier and the 'private local bridge' scope, but does not describe return format, pagination, or any potential side effects. This is consistent with the annotations and adds minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single, front-loaded sentence: 'List every Roblox client connected to the private local bridge.' It contains no filler, repeats no schema information, and every word contributes to meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list operation with no output schema, the description fully captures the tool's purpose and scope. The return value (a list of clients) is implied, and no additional context is necessary for an agent to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description has no parameter semantics to explain. The schema is empty, and the description correctly avoids inventing parameters. The baseline of 4 applies because no parameter explanation is needed.

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 uses a specific verb ('List') and identifies the resource ('Roblox clients') with a clear scope ('connected to the private local bridge'). It distinguishes itself from siblings like list_roblox_windows by focusing on bridge-connected clients rather than OS windows.

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 stating the tool lists all connected clients, but does not explicitly state when to use it over alternatives like list_roblox_windows. No exclusions or context about prerequisites are provided, so usage guidance is only implicit.

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

list_re_snapshotsList RE snapshotsA
Read-onlyIdempotent

List the up to 20 reverse-engineering snapshots retained in client memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNoConnected client id; defaults to active client

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint. The description adds valuable behavioral context: the limit of 20 and the fact that snapshots are kept in client memory. This gives a clearer picture of the tool's behavior beyond the annotations.

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 concise sentence, front-loaded with the core action and resource. Every word adds meaningful detail without redundancy.

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 read-only list tool with annotations, the description covers the main aspects: what is listed, the count limit, and the storage location. It is slightly incomplete in not indicating the format of the returned list (IDs, metadata, etc.), but the verb 'List' and context make this a 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% (clientId has a description). The description itself adds no parameter information, so the baseline of 3 is appropriate. The schema already documents the only parameter's 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?

The description clearly states the verb 'List', the resource 'reverse-engineering snapshots', and adds useful constraints: 'up to 20' and 'retained in client memory'. This distinguishes it from sibling tools like capture_re_snapshot or diff_re_snapshots.

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. It does not mention that capture_re_snapshot is for creating new snapshots or diff_re_snapshots for comparing them. The context is implied but not stated.

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

list_roblox_windowsList Roblox windowsA
Read-onlyIdempotent

List visible Roblox OS windows available for private local screenshot capture.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare the tool as read-only and idempotent, which covers the safety profile. The description adds the 'visible' qualifier and the 'private local' scope, which is useful behavioral context. However, it does not disclose what the tool returns (e.g., window titles, handles) or any other behavioral traits, so it only partially exceeds annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

A single sentence that immediately states the action ('List'), the object ('visible Roblox OS windows'), and the purpose ('available for private local screenshot capture'). No wasted words; every phrase earns its place.

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?

This is a simple, low-complexity list operation with no parameters and strong annotations (read-only, idempotent). The description provides enough context to understand when and why to use the tool. Although there is no output schema, the listing purpose is adequately conveyed for an agent to proceed.

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 has zero parameters, making schema coverage trivially 100%. The description does not need to explain parameters, and the baseline for zero-parameter tools is 4. There is no additional parameter information to add.

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 uses the specific verb 'List' and clearly identifies the resource: 'visible Roblox OS windows'. It also scopes the purpose to 'private local screenshot capture', which distinguishes it from sibling tools like get_tree or dump_visible_ui that inspect the UI hierarchy rather than OS-level 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?

The phrase 'available for private local screenshot capture' implies this tool is a prerequisite for capturing screenshots, providing clear context on when to use it. However, it does not explicitly name alternative tools or state when not to use this tool, so it stops short of a 5.

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

performance_modeConfigure client performanceC
Idempotent

Read or set the cooperative client work budget. Smooth is the default and minimizes frame hitches.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNostatus
clientIdNoConnected client id; defaults to active client

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already show readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds that smooth minimizes frame hitches, which is useful context about the effect of the default mode, but it doesn't disclose side effects of other modes or what status returns. This is some added value, but not extensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single sentence, front-loaded with the purpose and no unnecessary words. However, it packs a misleading claim about the default, which slightly reduces its efficiency in conveying accurate information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a config tool with 2 parameters and no output schema, the description is incomplete: it doesn't explain the 'status' mode, return values, or the meaning of balanced/maximum. The contradiction about the default mode adds confusion. It covers only a fraction of what an agent needs to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50% (clientId has a description, mode does not). The description should compensate by explaining the mode values, but it only mentions 'smooth' and incorrectly states 'Smooth is the default' while the schema default is 'status.' This contradiction undermines the parameter guidance and leaves balanced/maximum unexplained. clientId also lacks description-level clarification from the tool description.

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 the tool reads or sets the cooperative client work budget, using a specific verb and resource. However, it doesn't explicitly differentiate this from sibling tools like benchmark or profile_runtime, though the focus on cooperative budget is fairly unique.

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 provides no guidance on when to use this tool versus alternatives. It only mentions 'Smooth is the default and minimizes frame hitches,' which hints at one use case but doesn't explain when to choose other modes or when to read vs. set. No alternatives or exclusions are mentioned.

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

profile_runtimeProfile Roblox runtimeB
Read-only

Sample FPS/frame time, instance class counts, Lua/engine memory, network ping, physics and client metadata locally.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNoConnected client id; defaults to active client
durationMsNo
topClassesNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations declare readOnlyHint: true, and the description's 'Sample' aligns with that non-mutating behavior. It adds 'locally' to clarify scope, but does not disclose details such as whether sampling affects game performance or how results are delivered. The description is consistent with annotations and adds some value beyond them.

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 sentence with a dense yet efficient list of metrics. Every word earns its place, and the structure is front-loaded with the verb and resource. No fluff 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?

The tool is relatively simple with 3 optional params and no output schema, so the description provides a decent overview. However, it omits what the tool returns and how to access the results, and it lacks usage differentiation from siblings like 'benchmark'. These gaps leave the agent without a complete picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, with clientId described but durationMs and topClasses lacking semantic explanations. The description lists metrics like 'FPS/frame time' and 'instance class counts' that loosely relate to these parameters, but it does not explicitly map them, so the agent cannot confidently infer param meanings.

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 uses a specific verb 'Sample' and lists concrete metrics (FPS, frame time, class counts, memory, ping, physics) with the scope 'locally', clearly identifying the Roblox runtime as the resource. However, it does not explicitly distinguish itself from the sibling 'benchmark' tool, which may overlap in purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'benchmark' or 'get_game_info'. The phrase 'locally' hints at client-side use, but there are no explicit when-to-use or when-not-to-use instructions, leaving the agent to guess suitability.

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

query_instancesQuery Roblox instancesA
Read-onlyIdempotent

Fast bounded instance search by root, class, name substring, tags, attributes, depth, and distance from the player.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
rootNogame/Workspace
clientIdNoConnected client id; defaults to active client
maxDepthNo
attributeNo
classNameNo
maxResultsNo
maxScannedNo
propertiesNo
withinStudsNo
nameContainsNo
attributeValueNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds the behavior of being 'bounded' and 'fast,' but does not detail limits like maxResults or scan bounds. It offers minimal extra beyond annotations.

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?

Single sentence, front-loaded with 'Fast bounded instance search.' No redundancy; all terms are meaningful.

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?

With 12 parameters and no output schema, the description is too sparse. It doesn't explain the return value, how results are ordered, or what 'bounded' means in practice. The tool's complexity demands more context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 8%, so the description must compensate. It maps to several parameters (className, nameContains, tag, attribute, maxDepth, withinStuds) but omits properties, maxResults, maxScanned, and clientId. It provides intuitive labels but not detailed 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 states 'Fast bounded instance search' with explicit filter dimensions (root, class, name substring, tags, attributes, depth, distance from player), clearly distinguishing it from sibling tools like get_tree or inspect_instance.

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 the tool is for filtering instances by criteria but does not mention when to prefer it over alternatives like get_tree or wait_for_instance. No exclusions or alternatives are named.

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

recording_controlControl RPC recordingB

Start, stop, or clear the bounded in-memory RPC record/replay trace.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, idempotentHint=false, destructiveHint=false, providing no safety information. The description adds 'bounded in-memory' but does not disclose effects of actions like starting when already started, clearing data, or state change semantics. It does not clarify whether actions are reversible or require setup.

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?

Single sentence, concise, and gets to the point. However, the omission of 'status' means it is under-specifying the set of actions. It is not excessively verbose but loses a point for incompleteness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one enum parameter and no output schema, so it is relatively simple. But the description lacks information about the 'status' action and consequences of each action on the recording state. This is a minimal but incomplete description for a control tool with mutating operations.

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 0%, so the description must explain the 'action' parameter. It enumerates start, stop, clear but omits 'status' from the enum, providing incomplete semantics. It adds some value by listing the main actions but does not fully compensate for the missing schema 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 specifies 'Start, stop, or clear the bounded in-memory RPC record/replay trace,' clearly indicating the tool's role in controlling the recording lifecycle. It differentiates from siblings like get_recording and replay_recording by focusing on control actions rather than retrieval/replay. However, it omits the 'status' action present in the enum, slightly reducing completeness.

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?

No explicit guidance on when to use this tool versus alternatives. The description implies usage for controlling recording but does not mention alternatives or conditions, leaving the agent to infer. The presence of get_recording and replay_recording suggests related tools but no differentiation is provided.

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

remote_monitorControl remote monitorA

Start, stop, clear, or inspect a bounded local monitor for FireServer and InvokeServer calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
clientIdNoConnected client id; defaults to active client

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate mutating (readOnlyHint=false) but non-destructive (destructiveHint=false). The description adds the context that the monitor is 'bounded' and 'local', which implies limited buffer and no game-side effects. But it does not clarify what 'clear' discards, whether 'stop' preserves data, or what 'status'/inspect returns, leaving behavioral gaps beyond annotations.

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, compact sentence that front-loads the verbs and clearly states the resource. Every word is informative, with no filler or redundancy. It is appropriately sized for a simple control tool.

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 tool with no output schema, the description should clarify what 'inspect' returns, but it doesn't. The actions are simple, and annotations/schema cover safety and parameters reasonably, but the missing return value details and lack of per-action behavior leave the description incomplete for fully informed use. However, given the low complexity, it remains minimally viable.

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 50%: clientId has a description, but action only has enum values. The description lists 'start, stop, clear, or inspect', which maps to the enum but uses 'inspect' instead of the schema's 'status', potentially causing ambiguity. It doesn't explain the clientId parameter or the action semantics beyond the enumeration, adding only partial 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?

The description uses specific verbs ('Start, stop, clear, or inspect') and names the resource ('bounded local monitor for FireServer and InvokeServer calls'). This clearly distinguishes it from sibling tools like get_remote_events or replay_remote_event, which focus on listing or replaying events rather than controlling a local monitor.

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: use this tool when you need to control a local monitor for FireServer/InvokeServer calls. However, it provides no explicit 'when to use' versus alternatives, no exclusions, and no mention of scenarios where other remote-related tools would be more appropriate.

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

replay_recordingReplay recorded callsC
Destructive

Replay up to 100 selected recorded RPC calls against their original or a selected client.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNoConnected client id; defaults to active client
sequencesNo
stopOnErrorNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate destructiveHint=true, but the description adds no context about side effects, reversibility, or permission requirements. It mentions targeting a selected client, but this is more about parameters than behavioral consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single, concise sentence with no redundant words. However, its extreme brevity omits crucial operational details, preventing a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool is destructive, has no output schema, and has three parameters, the description is insufficient. It does not explain the meaning of sequences or stopOnError, nor the consequences of replaying calls. Sibling tools like recording_control suggest a broader workflow, but the description fails to provide that context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (clientId has a description). The description adds some meaning for sequences ('up to 100 selected') and clientId ('original or a selected client'), but fails to explain stopOnError. This inadequate compensation for low schema coverage results in a low score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Replay') and resource ('recorded RPC calls'), including scope ('up to 100 selected') and target ('original or a selected client'). This distinguishes it from sibling tools like get_recording and replay_remote_event, which handle different operations.

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 provides no guidance on when to use this tool versus alternatives, such as replay_remote_event or recording_control. It does not mention exclusions, prerequisites, or typical use cases.

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

replay_remote_eventReplay remote eventA
Destructive

Replay one locally captured remote call by sequence on the same live client.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNoConnected client id; defaults to active client
sequenceYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare the tool as destructive, and the description adds that the replay occurs on the live client, which conveys that real side effects will happen. However, it does not disclose details about failure modes, state changes, or preconditions beyond what annotations imply. Given the annotations, the description adds modest value.

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, concise sentence that immediately states the core action and context. There is no filler, repetition, or extraneous detail. It is front-loaded with the verb and resource.

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 tool with a destructive hint and no output schema, the description provides the essential purpose but omits important contextual details such as prerequisites (e.g., having a previously captured event), how to find the sequence number, and what happens on invalid input. Still, given the small parameter set, it is minimally viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%; the 'sequence' parameter lacks a description. The description mentions 'by sequence' but does not explain what a sequence is, how it relates to captured events, or how to obtain one. The clientId parameter is described in the schema. The description does not sufficiently compensate for the missing parameter 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 action (replay) and the specific resource (one locally captured remote call) with a precise selection method (by sequence) and target (same live client). This distinguishes it from sibling tools like replay_recording, which replays a full recording rather than a single event.

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 implicitly communicates when to use the tool: to replay a single captured remote call on the live client. It does not explicitly mention alternatives or exclusions, but the phrasing makes the use case clear enough for an agent to choose this over replay_recording or other remote-event tools.

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

screenshot_windowCapture Roblox windowA
Read-onlyIdempotent

Capture a real PNG of a visible Roblox window through local Windows APIs and return it directly as MCP image content.

ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and idempotentHint=true. The description adds useful context about the operating mechanism ('local Windows APIs'), the output type ('MCP image content'), and a prerequisite that the window must be visible. It does not cover error handling or edge cases, but given the annotations cover the safety profile, this is a meaningful addition.

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 one well-structured sentence that opens with the primary verb and delivers all key information without filler. It is highly scannable and efficient.

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 core purpose and output format, which is adequate for a simple capture tool. However, it fails to clarify how the optional 'pid' parameter behaves (e.g., whether it is needed for multi-window scenarios or when omitted), and it does not address failure modes such as a missing or hidden window. This leaves gaps for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema includes a single 'pid' parameter with no description, and the description does not mention it or explain how it selects the Roblox window. Since schema description coverage is 0%, the description was expected to compensate, but it leaves the parameter's purpose and optionality completely ambiguous, forcing the agent to infer from the property name alone.

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 precisely states the action ('Capture a real PNG'), the target ('a visible Roblox window'), the method ('through local Windows APIs'), and the output format ('return it directly as MCP image content'). This makes it distinct from sibling tools like capture_re_snapshot or smart_snapshot, which likely return UI trees or structured data.

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 emphasis on 'real PNG' and 'visible Roblox window' implies this tool is for pixel-accurate screenshots, but it does not explicitly name alternatives or state when not to use it. Sibling tools such as list_roblox_windows or capture_re_snapshot are not referenced, so guidance remains implicit rather than explicit.

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

search_scriptsSearch indexed scriptsA
Read-onlyIdempotent

Search the private in-memory script index by path/name/class/hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
clientIdNoConnected client id; defaults to active client
classNameNo
maxResultsNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds the 'private' and 'in-memory' qualifiers, which imply a session-local index that likely must be populated first, but it doesn't elaborate on availability or result behavior.

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 sentence with no filler. It front-loads the action and scope, making it concise and efficiently structured.

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 no output schema and no parameter descriptions for query/className/maxResults, the description should explain search semantics and usage prerequisites. It mentions searchable fields but doesn't clarify query syntax, default behavior, or the need to run index_scripts first, leaving gaps for a 4-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 25% (only clientId has a description). The description adds that search is by path/name/class/hash, which suggests query is a general search field, but it doesn't explain how className relates to query or the role of clientId and maxResults. This partially compensates for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Search' with a clear resource ('private in-memory script index') and lists searchable attributes (path/name/class/hash). This differentiates it from sibling tools like analyze_script or disassemble_script, which operate on indexed scripts rather than searching them.

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 clearly implies when to use the tool: when you need to find scripts in the in-memory index by path/name/class/hash. However, it does not explicitly state when not to use it or mention alternatives, though the context is sufficiently clear.

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

set_active_clientSelect active clientA
Read-onlyIdempotent

Route future tool calls to a specific connected Roblox client.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdYes

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint and idempotentHint, indicating a safe, side-effect-free operation. The description adds the behavioral trait that it affects 'future tool calls,' which is useful context beyond the annotations. However, it does not disclose error handling, return values, or behavior with invalid client IDs, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is one concise sentence: 'Route future tool calls to a specific connected Roblox client.' It is front-loaded with the main verb and resource, and every word adds value. No unnecessary repetition or fluff.

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 simple one-parameter tool with annotations and no output schema, the description covers the core behavior of selecting a client for future calls. However, it omits practical prerequisites such as calling list_clients to discover client IDs, and does not mention potential errors or side effects on subsequent tool calls. This is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only the parameter name 'clientId' with minLength 1 and no description. The description adds minimal context by mentioning 'specific connected Roblox client,' but does not explain how to obtain valid IDs, the expected format, or any relationship to list_clients. With 0% schema description coverage, this is insufficient.

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 a specific verb and resource: 'Route future tool calls to a specific connected Roblox client.' This distinguishes it from sibling tools like list_clients, which simply lists clients, and other interaction tools. The tool's core function is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: when you want future tool calls to target a specific connected Roblox client. It implies a prerequisite of knowing which client, but does not explicitly mention alternatives or exclusions. This meets the 'clear context, no exclusions' level.

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

set_propertiesAtomically set propertiesA
Destructive

Set up to 100 instance properties with typed values; automatically rolls back earlier changes if any write fails.

ParametersJSON Schema
NameRequiredDescriptionDefault
changesYes
clientIdNoConnected client id; defaults to active client

TDQS

A4/5.0
Behavior4/5

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

The description adds behavioral detail beyond annotations by disclosing the rollback mechanism on failure, which is not inferable from readOnlyHint/destructiveHint. It also communicates the 100-property limit, giving the agent a constraint for invocation.

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-structured sentence conveys purpose, limit, and atomicity. No redundant information.

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 description covers the key operational detail (atomic rollback) and the invocation limit. However, since there is no output schema, it does not describe the return value or success/failure behavior beyond rollback. Given the destructive nature, mentioning idempotency (already false) is not needed, but confirmation of completion would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes clientId as optional with a default, but the 'changes' parameter lacks description. The description clarifies that values are typed, but does not explain the path/property/value structure in detail, leaving some ambiguity for complex use cases.

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 sets instance properties with a limit of 100, distinguishing it from generic batch operations. The verb 'set' and resource 'instance properties' are specific and align with the tool name.

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 setting properties but does not explicitly compare to sibling tools like 'batch' or provide when-not-to-use guidance. The atomic rollback feature is mentioned, giving some context for choosing this tool over alternatives, but it lacks explicit alternatives.

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

smart_snapshotSmart game snapshotA
Read-onlyIdempotent

Capture game info, player state, nearby instances, visible UI, and recent console entries in one client round trip.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientIdNoConnected client id; defaults to active client
includeUiNo
timeoutMsNo
maxUiItemsNo
consoleLimitNo
nearbyRadiusNo
includeNearbyNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, covering the safety profile. The description adds the specific data categories captured and the round-trip behavior, but it does not disclose potential prerequisites, error behavior, or return structure. The added context is moderate but not rich beyond what annotations already convey.

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 sentence that front-loads the primary action and uses a compact, clear list of captured data. It contains no redundant or extraneous information, achieving high conciseness.

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?

With 7 parameters and no output schema, the description must provide thorough context. It enumerates data categories but fails to describe the returned snapshot's structure, any prerequisites (e.g., a connected client), or the effect of configuration parameters. This leaves the agent without enough detail to confidently use the tool and interpret its output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14% (only clientId has a description), so the description carries a heavy burden to explain parameters. It indirectly maps includeUi to visible UI and includeNearby to nearby instances, but parameters like maxUiItems, nearbyRadius, and consoleLimit are not elaborated. This leaves significant gaps in understanding parameter 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 uses a specific verb 'Capture' and enumerates exact resources (game info, player state, nearby instances, visible UI, recent console entries), clearly stating what the tool does. The phrase 'in one client round trip' distinguishes it from sibling tools by highlighting its composite nature, making its unique value immediately apparent.

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 an efficiency benefit with 'in one client round trip', suggesting use when multiple data types are needed simultaneously, but it does not explicitly mention alternatives or when-not-to-use. This provides only implied usage context without clear exclusions or comparisons to sibling tools.

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

statusBridge statusA
Read-onlyIdempotent

Check local Raven MCP health and active Roblox client without contacting the game.

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?

Annotations already declare read-only and idempotent, so the safety profile is covered. The description adds that this is a local check and explicitly does not contact the game, which is useful behavioral context beyond the annotations.

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 concise sentence that front-loads the action and scope with no filler or redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only status tool with annotations covering safety, the description sufficiently conveys purpose and scope. The output schema is absent, but the description gives enough context for a simple health/status check.

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 accepts zero parameters, so the schema is complete. Per the rubric, zero parameters warrant a baseline of 4; the description adds no need for parameter explanation.

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 uses the specific verb 'check' and names the resources 'local Raven MCP health and active Roblox client'. The qualifier 'without contacting the game' distinguishes it from game-interacting siblings like get_game_info or list_clients.

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 clearly indicates a local status check without game contact, providing context for when to use it. However, it does not explicitly name alternative tools or say when not to use it, so it stops short of a 5.

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

teleportTeleport local characterB
Destructive

Move the local character to coordinates or an instance path with an optional offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
offsetNo
clientIdNoConnected client id; defaults to active client
positionNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds the offset behavior and path/coordinate choice. However, it does not disclose side effects, permission requirements, or what happens to the character's state after teleportation. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single well-structured sentence, front-loaded with the action verb, and contains no redundant or filler words. It efficiently conveys the core purpose.

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?

With 4 parameters including nested objects and no output schema, the description omits critical details such as how to choose between path and position, how the offset is applied, whether clientId is required, and any return or confirmation behavior. This leaves significant gaps for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 25% (only clientId has a description). The description maps position to coordinates and path to instance path, but does not explain how offset applies, how position and path interact, or clientId semantics beyond what the schema already states. This is insufficient compensation for low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'Move' and the resource 'local character', and distinguishes two target types: 'coordinates' and 'instance path'. This is a specific action that is clearly differentiated from sibling tools like set_properties or interact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description simply states the action without context for decision-making.

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

wait_for_instanceWait for instanceA
Read-onlyIdempotent

Poll inside the client until an instance path appears or disappears, avoiding repeated MCP calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
stateNoexists
pollMsNo
clientIdNoConnected client id; defaults to active client
timeoutMsNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds valuable context that the tool polls inside the client (not via MCP), which is a behavioral trait beyond annotations. It does not contradict annotations.

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, efficient sentence that front-loads the core action and the benefit. Every word earns its place, and it is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the core polling behavior but omits details about timeout behavior, return values, and parameter semantics. Given the absence of an output schema and moderate parameter count, the description could be more complete, though annotations cover safety aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 20% (clientId has a description), and the description adds minimal parameter meaning. It implies that 'path' refers to an instance path and 'state' can be appears/disappears, but it does not explain pollMs, timeoutMs, or how clientId relates to the active client. With low schema coverage, the description needed to compensate more.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: polling until an instance path appears or disappears. It uses a specific verb and resource, and it distinguishes this from sibling tools like wait_for_property (property-based) and query_instances (querying).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description implies when to use this tool by mentioning 'avoiding repeated MCP calls', which signals it is for waiting on conditions efficiently rather than manual polling. However, it does not explicitly name alternative tools or provide exclusions, so it lacks full guidance.

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

wait_for_propertyWait for propertyB
Read-onlyIdempotent

Wait client-side until a property equals a serialized expected value.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
pollMsNo
clientIdNoConnected client id; defaults to active client
expectedYes
propertyYes
timeoutMsNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare read-only and idempotent, so the description need not restate safety. It adds the 'client-side' execution context and the serialized expected value detail, but does not disclose timeout behavior or polling implications, which are relevant for a waiting tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

A single sentence that is efficient and front-loaded, with no filler. However, it's so brief that it sacrifices clarity, which is less a conciseness issue and more a completeness issue.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters, no output schema, and a potentially ambiguous 'serialized' concept, the description is too sparse. Critical details like what happens when timeout is reached, how to construct the path, and what the return value is are missing. A wait tool needs these details to be used correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17% (only clientId has a description), so the description needed to compensate but doesn't. 'Serialized expected value' hints at expected, but not how path, property, pollMs, or timeoutMs should be used, leaving the agent to infer from names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's action (wait client-side), the target (a property), and the condition (equals a serialized expected value). It distinguishes from sibling wait_for_instance by focusing on property rather than instance, and 'client-side' adds scope.

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 vs alternatives; no mention of when not to use or related tools. The 'client-side' qualifier provides some context, but the agent gets no decision support for choosing between this and other tools like wait_for_instance or inspect_instance.

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

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes (e.g., click_ui vs interact vs teleport), but there is some overlap in state-reading utilities like get_tree, dump_visible_ui, query_instances, and smart_snapshot. Script analysis tools (analyze_script, disassemble_script, explore_closure) are specialized but could confuse an agent unfamiliar with their boundaries.

Naming Consistency4/5

The majority follow a verb_noun pattern (get_tree, execute_luau, set_properties), but a few outliers like 'batch', 'status', and 'performance_mode' break the convention. The overall style is consistent enough to be predictable, with only minor deviations.

Tool Count2/5

With 42 tools, this is well above the 25-tool threshold for 'heavy' servers. While the domain is broad, the count is excessive and risks overwhelming agents; a more focused set of 20-25 tools would better serve the purpose.

Completeness4/5

The tool surface is remarkably comprehensive, covering UI interaction, Lua execution, script analysis, remote event monitoring, profiling, screenshots, and client management. Minor gaps exist (e.g., no dedicated local player list tool) but core workflows are fully supported.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/valrinx/raven-roblox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server