Skip to main content
Glama
okenjioxx

Roblox Executor MCP Server

by okenjioxx

Set many properties on one live Instance in a single call

set-properties-bulk
Destructive

Apply multiple property writes to one Roblox instance in a single operation, resolving it once and returning old/new values per property.

Instructions

WRITES LIVE GAME STATE. Resolve a Luau expression to a single Instance ONCE, then apply a list of property writes to it in order. For each property the OLD value is read, the new value is written, and the NEW value is read back — each step pcall-guarded so one bad property never aborts the others. This is the efficient way to reconfigure an instance with several changes at once (e.g. make a Part Anchored + CanCollide=false + Transparency=0.5 + a new Size in one round-trip) instead of issuing many set-instance-property calls. The writes happen sequentially within the same execution so the result is effectively atomic from the game's perspective for that frame. WARNING: this mutates the running game on the client — changes take effect immediately and may replicate. Returns { Path, results:[{ name, OldValue, NewValue, ok, error? }], okCount, failCount }, or { error } if the instance itself cannot be resolved. Signature: { instancePath: string, properties: {{ name: string, value: { kind: "string" | "number" | "boolean" | "nil" | "raw", value: string | number | boolean? } }}, threadContext: number? }. Phase: act; cost=medium; idempotency=idempotent-write. Requires: active-client, resolved-target, explicit-mutation-approval. Produces: operation-receipt. Verify with: get-instance-properties. 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
propertiesYesNon-empty, ordered list of property assignments to apply, e.g. [{ name: 'Anchored', value: { kind: 'boolean', value: true } }, { name: 'Transparency', value: { kind: 'number', value: 0.5 } }, { name: 'Size', value: { kind: 'raw', value: 'Vector3.new(4,1,4)' } }]. Applied top-to-bottom.
instancePathYesLuau expression resolving to the single Instance to modify, e.g. 'game.Workspace.Part', 'game.Players.LocalPlayer.Character.Humanoid', or 'game:GetService("Lighting")'. Evaluated once as `return <instancePath>`.
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.6/5.0
Behavior5/5

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

Goes far beyond the annotations: it explains the read-old/write-new/read-back sequence, pcall-guarding so one failure doesn't abort others, sequential effectively-atomic execution within a frame, immediate client mutation and replication, and the full return shape with per-property ok/error. It also names prerequisites (active-client, resolved-target, explicit-mutation-approval) and a verification 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-loads the critical warning ('WRITES LIVE GAME STATE') and orders the explanation logically: resolution, per-property lifecycle, efficiency rationale, atomicity, warning, return shape, signature, and metadata. Some redundancy between the prose return-shape and the signature block keeps it from a 5.

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?

Despite no output schema, the description fully documents the return object (Path, results array with name/OldValue/NewValue/ok/error, okCount/failCount, error on unresolvable instance), the failure mode, required preconditions, and verification path. An agent has everything needed to call and interpret the tool 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 baseline is 3. The description adds real value beyond the schema by showing an ordered property list example with the kind:'raw' Vector3 case and by restating the signature with optional threadContext, clarifying the shape of the properties array and the resolution-once semantics of instancePath.

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 (apply property writes), resource (a single live Instance resolved from a Luau expression), and scope (many properties in one call). It explicitly distinguishes itself from the sibling set-instance-property by presenting itself as the batch alternative: 'instead of issuing many set-instance-property calls'.

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 a clear condition for use: reconfiguring an instance with several changes at once, with a concrete Part example. It names the alternative (set-instance-property) and why this is preferred, but does not state when NOT to use it (e.g. single property, or when instance is unresolvable).

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