Skip to main content
Glama
okenjioxx

Roblox Executor MCP Server

by okenjioxx

Find GC tables that contain a named string key (structure scan)

find-tables-by-key
Read-onlyIdempotent

Scan live Luau GC tables by field name to locate config or stat containers, returning each table, matched key, and sample value.

Instructions

Cheat-Engine-style STRUCTURE scan: walk every live Luau GC table and report each one that contains a string key matching key. This is the complement to search-gc-value (which matches by stored VALUE) — here you match by the NAME of a field, which is ideal when you know a stat/config table exposes a field like 'Coins', 'WalkSpeed', 'GodMode' or 'Config' but you don't yet know the value or the container. For every matching key the tool records { table, matchedKey, sampleValue } where 'table' is the table's address (tostring), 'matchedKey' is the exact key string found, and 'sampleValue' is the encoded current value at that key — so you can immediately see what the field holds. Set contains=true for a substring match on key names (string.find with plain=true). Iteration of each table is pcall-guarded so locked/proxy tables never abort the scan; the number of GC objects examined is capped by maxScan and the result list by limit, with a 'truncated' flag when either cap is hit. Pivot from a hit with read-path-value / write-path-value (using a Luau expression that reaches the container) to read or flip the field. Requires getgc (falls back from getgc(true) to getgc()). Returns { matchCount, scannedObjects, truncated, matches } or { error }. Signature: { key: string, contains: any?, limit: any?, maxScan: any?, threadContext: number? }. Phase: observe; cost=medium; idempotency=read-only. Requires: active-client. Produces: bounded-candidates. Safety: read-only. On failure: inspect tool-schema for exact fields, defaults, constraints, and an invocation example.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYesThe field name to look for as a KEY in GC tables, e.g. 'Coins', 'Health', 'WalkSpeed', 'GodMode', 'Config'. With contains=false (default) only string keys exactly equal to this are matched; with contains=true any string key whose text includes this substring matches (case-sensitive, plain text).
limitNoMaximum number of matched keys to return (default 100). Hitting this sets truncated=true.
maxScanNoMaximum number of GC objects to examine before stopping (default 40000). Hitting this sets truncated=true. Raise for a deeper sweep at the cost of time; lower if scans are slow.
containsNoWhen true, match any string key that CONTAINS `key` as a plain substring (string.find with plain=true) instead of requiring exact equality. Default false (exact match). Use for fuzzy field discovery.
threadContextNoOptional Roblox thread identity for this call; omit it to use the server default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0-spies.2

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/non-destructive, yet the description still discloses non-obvious behavior beyond them: iteration is pcall-guarded so locked/proxy tables never abort the scan, getgc falls back from getgc(true) to getgc(), maxScan caps examined objects and limit caps results, and a 'truncated' flag fires when either cap is hit. This is exactly the added context the annotations can't express.

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?

Front-loads the core purpose and the sibling contrast before the mechanics, and every sentence carries substance. It is on the long side and the trailing metadata line (Phase/cost/idempotency/Safety) partially repeats the annotations, which slightly dilutes conciseness.

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?

There is no output schema, so the description carries the full burden and does so: it names the return shape { matchCount, scannedObjects, truncated, matches }, the per-hit record fields, the error case, and the getgc prerequisite. An agent has everything needed to invoke and interpret it.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the prose adds meaning beyond it: it explains the cross-parameter interplay of the two caps ('number of GC objects examined is capped by maxScan and the result list by limit'), the exact key-vs-substring matching behavior, and the contents of the returned { table, matchedKey, sampleValue } record.

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

Purpose5/5

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

States a specific verb+resource+mechanism: 'STRUCTURE scan: walk every live Luau GC table and report each one that contains a string key matching `key`.' It explicitly distinguishes itself from the sibling search-gc-value (matches stored VALUE) versus this one (matches field NAME), so an agent can route correctly without opening either schema.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use scenario ('when you know a stat/config table exposes a field like Coins/WalkSpeed/GodMode but you don't yet know the value or the container'), names the alternative (search-gc-value) and the condition that selects it, and even supplies the follow-up pivot (read-path-value / write-path-value).

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

Deploy Server

Other Tools