Skip to main content
Glama
okenjioxx

Roblox Executor MCP Server

by okenjioxx

Remote-spy controls and diagnostics

remote-spy
Destructive

Control live Roblox remote-call capture: start, pause, filter, block, ignore, and reset rules to inspect or manage game network traffic.

Instructions

WRITES LIVE GAME STATE. Controls the selected spy: lifecycle, configure, pause/resume, clear, block/unblock, ignore/unignore, and reset-controls. Select engine=cobalt (default) or ketamine. status reports effective capture/GUI settings and capabilities; controls lists active block/ignore rules with limit/offset and direction filters. reset-controls clears block/ignore rules in the selected direction, preserving history and capture settings; Ketamine GUI ignore rules span Both and reset only with direction=Both. logs/list support query filters; code generates call code without replay. Configuration is a patch; capture filters affect future MCP records only. Pausing recording preserves blocking and GUI logging. Starting another engine stops the previous after preflight; read/configuration operations never load spies. Block/ignore require observed remotes. Ketamine cannot block incoming RemoteEvents. restart expires IDs/views and resets configuration; stop unloads the selected GUI/hooks. Signature: { engine: "cobalt" | "ketamine"?, operation: "status" | "start" | "restart" | "stop" | "list" | "logs" | "clear" | "block" | "unblock" | "ignore" | "unignore" | "code" | "configure" | "pause" | "resume" | "controls" | "reset-controls", mode: any?, max: number?, capture: { enabled: boolean?, direction: "Incoming" | "Outgoing" | "Both"?, nameFilter: string?, method: "FireServer" | "InvokeServer" | "OnClientEvent" | "OnClientInvoke"?, classFilter: "RemoteEvent" | "UnreliableRemoteEvent" | "RemoteFunction"?, blockedOnly: boolean? }?, resetFilters: boolean?, guiVisible: boolean?, guiLogging: boolean?, limit: any?, offset: number?, resetControl: "block" | "ignore" | "Both"?, direction: any?, remotePath: string?, remoteId: string?, nameFilter: string?, method: "FireServer" | "InvokeServer" | "OnClientEvent" | "OnClientInvoke"?, classFilter: "RemoteEvent" | "UnreliableRemoteEvent" | "RemoteFunction"?, blockedOnly: boolean?, afterId: number?, summaryOnly: any?, callId: number?, threadContext: number? }. Phase: act; cost=medium; idempotency=contextual-write. Requires: active-client, resolved-target, explicit-mutation-approval. Produces: bounded-event-snapshot. Verify with: assert-state. Safety: MUTATING; changes persistent executor-side observer or hook state. On failure: inspect tool-schema for exact fields, defaults, constraints, and an invocation example.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
maxNoRetained MCP calls; resizing preserves newest history and IDs.
modeNoCobalt auto prefers supported RakNet; luau selects standard hooks. Ketamine accepts auto/luau only. Changing an active mode requires restart.auto
limitNoOptional hard result/work budget used to keep output and runtime bounded.
callIdNoOptional numeric value for call id.
engineNoRemote-spy backend. Only one engine runs per client; starting another stops the current engine. Defaults to cobalt.cobalt
methodNoOptional validated input for method.
offsetNoPagination offset for controls only.
afterIdNoOptional numeric value for after id.
captureNoPersistent capture patch; omitted fields keep their current values. Filters apply only to future MCP captures.
remoteIdNoOptional text value for remote id.
directionNoCapture/control direction; incoming includes client callbacks.Both
operationYesoperation selector; use one of the schema's allowed values.
guiLoggingNoKetamine only: enable/disable new GUI log entries independently of MCP capture; disabling also clears queued GUI entries.
guiVisibleNoKetamine only: show/hide its GUI without unloading the spy.
nameFilterNoOptional text value for name filter.
remotePathNoOptional dotted Roblox instance/value path resolved in the active client.
blockedOnlyNoWhether to enable blocked only.
classFilterNoOptional validated input for class filter.
summaryOnlyNoOptional validated input for summary only.
resetControlNoFor reset-controls: which rules to clear; defaults to Both.
resetFiltersNoClear persistent capture filters before applying this patch; preserve pause state, history, and network controls.
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/5.0
Behavior5/5

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

Annotations only give the safety profile (destructive/non-idempotent/write); the description adds substantial behavior beyond them: configuration is a patch affecting only future captures, pausing preserves blocking/GUI logging, restarting expires IDs/views, stop unloads GUI/hooks, starting another engine stops the previous, and Ketamine cannot block incoming RemoteEvents and its ignore rules only reset with direction=Both. This is exactly the kind of context an agent needs before invoking a mutating 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?

Front-loaded with the critical 'WRITES LIVE GAME STATE' warning, and most sentences carry actionable information. It is dense and run-on in places (the signature block and behavioral notes could be structured as bullets), but there is little dead weight.

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 22-parameter mutating tool with no output schema, the description covers operations, key parameter relationships, engine semantics, and safety/state effects well. It partially covers returns (status/controls descriptions) but not the other operations' output, leaving a modest gap.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description adds value by mapping parameters to operations (limit/offset/direction filters apply to controls, direction=Both governs Ketamine reset-controls) and disclosing engine default and switching behavior. It goes beyond enumerating the schema but does not fully cover all 22 parameter interactions.

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

Purpose4/5

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

States a specific verb and resource ('Controls the selected spy') and enumerates the operation families (lifecycle, configure, pause/resume, block/unblock, ignore/unignore, reset-controls), so an agent knows the tool's scope. However it doesn't differentiate itself from closely related siblings like configure-remote-spy, ensure-remote-spy, block-remote, ignore-remote, or monitor-remote, which overlap heavily with its operations.

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?

It explains what each operation does (status reports settings, controls lists rules, reset-controls clears rules) which implies when to pick them, but there is no explicit when-to-use-this-vs-alternatives guidance despite multiple overlapping siblings. Usage is implied rather than stated, matching a 3.

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