Skip to main content
Glama
okenjioxx

Roblox Executor MCP Server

by okenjioxx

Monitor a LuaStateProxy's generic cross-state Event

lua-state-event-monitor
Destructive

Monitor live Roblox Lua state events: start/stop an observer, retain a 200-event buffer, and poll by key; start/stop require confirm=true.

Instructions

WRITES LIVE GAME STATE when starting/stopping. Connect to LuaStateProxy.Event, retain a bounded 200-event buffer, and poll it by key. Start/stop require confirm=true. Signature: { action: "start" | "poll" | "stop", key: any?, limit: any?, clear: any?, confirm: any?, threadContext: number?, state: any?, stateExpression: any? }. Phase: act; cost=medium; idempotency=contextual-write. Requires: active-client, explicit-mutation-approval. Capabilities: getluastate. 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
keyNoOptional validated input for key.default
clearNoOptional validated input for clear.
limitNoOptional hard result/work budget used to keep output and runtime bounded.
stateNoOptional state selector or reusable state reference returned by a discovery tool.current
actionYesoperation selector; use one of the schema's allowed values.
confirmNoExplicit safety acknowledgement; must be true before this state-changing operation runs.
threadContextNoOptional Roblox thread identity for this call; omit it to use the server default.
stateExpressionNoFor state='expression', a Luau expression resolving to a LuaStateProxy, Actor, or BaseScript.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0-spies.2

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is known. The description still adds material context beyond them: the specific side effect ("changes persistent executor-side observer or hook state"), the buffer bound, and the confirm=true requirement for start/stop. It stops short of describing failure/partial-write behavior, so 4 rather than 5.

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 critical fact is front-loaded, but the body is a telegraphic metadata dump where several clauses duplicate structured data ("idempotency=contextual-write" vs idempotentHint=false, the full signature vs the schema, "Phase: act; cost=medium"). It is compact but not every line 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?

With 8 parameters, one required, no output schema, and annotations present, the description covers most of what an agent needs: the lifecycle, buffer bounds, the confirm gate, the mutated state, and a suggested verification step (assert-state). It omits return/poll-result shape and what happens on the read path, leaving a small 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 description coverage is 100%, so the baseline is 3. The description's inline signature restates the fields already in the schema and adds only two semantic points: polling is by key and confirm must be true for start/stop. Undocumented-in-prose parameters like clear and limit gain nothing, so no lift above baseline.

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

Purpose4/5

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

Opens with a specific verb and effect ("WRITES LIVE GAME STATE when starting/stopping") and names the exact resource (LuaStateProxy.Event), plus the retention model (bounded 200-event buffer polled by key). It does not name its near-identical siblings (actor-event-monitor, comm-channel-monitor, watch-value), so an agent must infer differentiation itself, keeping it below 5.

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 action lifecycle (start/poll/stop) and the confirm=true gate imply how to use the tool, and "Requires: active-client, explicit-mutation-approval" gives a precondition. However, it never states when to choose this over actor-event-monitor or comm-channel-monitor, so the when/when-not guidance is only implied.

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