Skip to main content
Glama
okenjioxx

Roblox Executor MCP Server

by okenjioxx

cache.replace — swap one instance for another in the executor cache

cache-replace
Destructive

Replaces an executor's cached Instance reference so scripts resolving the original object receive a substitute instead, enabling controlled redirection for hitboxes, remotes, or checkpoints.

Instructions

Replace the executor's cached reference for one Instance with another via cache.replace(a, b). After the swap, every script that indexes instance A through the cache transparently receives instance B instead — a powerful redirection primitive for impersonating one object with another (e.g. pointing a checkpoint, hitbox, or remote wrapper at a substitute you control). Both targets are resolved from Luau path/expressions via loadstring('return ' .. expr). Requires the cache library (type(cache)=='table') with cache.replace — both are type-guarded and the call is pcall-wrapped, returning { error } when missing or on failure. Mutates live executor state. Returns { ok } or { error }. Signature: { instancePath: string, replacementPath: string, threadContext: number?, timeoutMs: number? }. Phase: act; cost=medium; idempotency=idempotent-write. Requires: active-client, resolved-target, explicit-mutation-approval. Produces: structured-result. Verify with: assert-state. Safety: MUTATING; writes live game/client state. On failure: inspect tool-schema for exact fields, defaults, constraints, and an invocation example.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
timeoutMsNoOptional per-call deadline in milliseconds; omit it to use the tool or server default.
instancePathYesLuau path/expression resolving to the Instance whose cached reference is replaced (A). Evaluated as `return <expression>`.
threadContextNoOptional Roblox thread identity for this call; omit it to use the server default.
replacementPathYesLuau path/expression resolving to the Instance to substitute in (B). Evaluated as `return <expression>`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0-spies.2

TDQS

A3.6/5.0
Behavior2/5

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

The description adds strong behavioral detail beyond the annotations: the call is type-guarded and pcall-wrapped, returns { error } when the library is missing or on failure, and mutates live executor state. However, it claims 'idempotency=idempotent-write' while the annotations declare idempotentHint=false — a direct conflict on retry safety for a destructive tool, which misleads an agent into believing repeat calls are harmless. This contradiction caps the score despite the otherwise valuable disclosure.

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

Conciseness3/5

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

The core action is front-loaded in the first sentence, which is good. But the text is long and densely packed with generated metadata boilerplate (Phase/cost/Requires/Produces/Verify/Safety/On failure), and it redundantly restates the return shape and the 'mutates state' claim, so several sentences do not fully earn their 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 complex, path-resolving, state-mutating tool with no output schema, the description covers prerequisites, failure behavior, the { ok }/{ error } return, and a verification step (assert-state). That is nearly everything an agent needs to invoke it correctly, missing only the routing against sibling cache tools.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (including optional timeoutMs/threadContext) are already documented in the schema. The description adds only the resolution mechanism (loadstring('return ' .. expr)) and a compact signature line, which the schema largely supplies already, so the baseline of 3 applies.

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

Purpose5/5

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

States a precise verb+resource+mechanism: it swaps the executor's cached reference for one Instance with another via cache.replace(a, b). An agent can distinguish it from cache-invalidate and cache-is-cached without opening either schema, and the redirection semantics are spelled out concretely (checkpoint/hitbox/remote-wrapper impersonation).

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?

Gives clear context and preconditions: requires the cache library (type(cache)=='table') with cache.replace, an active client, resolved targets, and explicit mutation approval. It explains the redirection use case. It stops short of naming the sibling alternative (cache-invalidate) or stating when not to use it.

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

Deploy Server

Other Tools