Skip to main content
Glama
okenjioxx

Roblox Executor MCP Server

by okenjioxx

Capture, rollback, and clean up bounded live state transactions

state-transaction
Destructive

Begin bounded client-state transactions, capture requested Instance properties, attributes, and camera fields, then rollback or commit changes with per-item cleanup.

Instructions

STATE TRANSACTION JOURNAL. Begin a bounded getgenv-backed transaction, capture explicitly requested Instance properties/attributes and camera fields, register known cleanup resources, inspect status, commit without restoration, or rollback in reverse journal order with pcall-isolated per-item results. Cleanup can rollback or explicitly discard expired and cross-place/job orphaned transactions. Registered resources support MCP Drawing ids, held virtual input releases, connection state restoration or cleanup-only disconnection, and canonical __mcp_hooks/__mcp_hook_meta entries when their metadata is safely understood. This is a best-effort client-state journal, not a general undo system: destroyed Instances, fired remotes, server-side changes, arbitrary script side effects, and connections destroyed before capture cannot be reconstructed. Commit intentionally discards all snapshots and does not clean registered resources. Signature: { action: "begin" | "capture" | "status" | "commit" | "rollback" | "cleanup", transactionId: string?, name: string?, targets: any?, captureCamera: any?, cleanupItems: any?, maxItems: number?, expirySeconds: number?, limit: any?, cleanupMode: any?, includeOrphans: any?, threadContext: number? }. Phase: act; cost=medium; idempotency=contextual-write. Requires: active-client, explicit-mutation-approval, begin a transaction before mutating reversible client state, capture every property/attribute before changing it. Capabilities: getgenv. Produces: grounded-evidence, bounded state journal, per-item rollback evidence, expired/orphaned cleanup report. Verify with: assert-state. Safety: MUTATING; writes live game/client state, capture stores raw client references in getgenv until commit, rollback, cleanup, expiry, or executor shutdown, rollback writes captured values and runs registered cleanup actions in reverse order, connection disconnect cleanup is irreversible and is reported separately from reversible restoration. On failure: inspect tool-schema for exact fields, defaults, constraints, and an invocation example.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoHuman label; later actions may use it only when exactly one active transaction matches.
limitNoMaximum transactions listed or processed by status/cleanup.
actionYesTransaction lifecycle action.
targetsNoExplicit property/attribute snapshot targets for begin or capture.
maxItemsNoPer-transaction journal cap (default 128, hard maximum 256); for capture it may only lower the call cap.
cleanupModeNoFor cleanup, rollback attempts every journal item first; discard explicitly removes journals without restoration.rollback
cleanupItemsNoResources to release/restore during reverse-order rollback.
captureCameraNoSnapshot CurrentCamera CameraType, CameraSubject, CFrame, Focus, and FieldOfView.
expirySecondsNoSeconds until cleanup considers the transaction expired (default 900 on begin). Capture may refresh it.
threadContextNoOptional Roblox thread identity for this call; omit it to use the server default.
transactionIdNoStable transaction id. Optional for begin (one is generated); required by id for unambiguous later actions.
includeOrphansNoFor cleanup, include transactions created in another PlaceId/JobId, not only expired ones.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0-spies.2

TDQS

A4.7/5.0
Behavior5/5

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

Far exceeds the destructive=true annotation: it discloses that capture stores raw client references in getgenv until commit/rollback/cleanup/expiry/shutdown, that rollback writes in reverse order, that connection disconnect cleanup is irreversible and reported separately, and that commit intentionally discards snapshots without cleaning registered resources.

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?

Front-loaded and organized into labeled sections, but bulky; the inline { action: ... } signature duplicates information already fully covered by the schema, and the Safety sentence restates points made earlier about rollback ordering and disconnect irreversibility.

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?

Given a 12-param mutating tool with no output schema, the description covers lifecycle semantics, best-effort limitations, failure handling ('inspect tool-schema'), and verification path. An agent has everything needed to invoke it 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?

Schema coverage is 100%, so the schema already documents all 12 params (baseline 3). The description adds real meaning beyond field text by tying params to actions, e.g. 'capture it may only lower the call cap' for maxItems and the per-action semantics of cleanupMode/rollbackAction, though the inline signature largely echoes the 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?

Opens with a specific verb+resource framing ('STATE TRANSACTION JOURNAL') and enumerates the six lifecycle actions (begin/capture/status/commit/rollback/cleanup) with what each does. This is unmistakably distinct from siblings like assert-state or world-delta, which it explicitly cross-references.

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?

States when to use it ('begin a transaction before mutating reversible client state, capture every property/attribute before changing it'), when not to ('not a general undo system') with a concrete exclusion list, and routes verification to 'assert-state'. Explicit alternatives and prerequisites are all present.

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