Skip to main content
Glama
okenjioxx

Roblox Executor MCP Server

by okenjioxx

Read or move the current camera

camera-control
Destructive

Read or write the local Roblox CurrentCamera CFrame, look-at target, FieldOfView, and CameraType to reproduce client-side camera movement and aim states without moving the character.

Instructions

WRITES LIVE GAME STATE. Read the active camera or set its CFrame, position/look-at target, FieldOfView, and optional CameraType. Use this to reproduce camera movement and aim states in the local client. The tool only changes the local CurrentCamera; it does not move the character or replicate a camera state to the server. For a one-shot read, use action=get. For movement, action=setCFrame requires position and either lookAt or rotation in degrees. Existing camera properties are returned so the change is auditable. Signature: { action: "get" | "setCFrame" | "setFov", position: { x: number, y: number, z: number }?, lookAt: { x: number, y: number, z: number }?, rotation: { pitch: number, yaw: number, roll: number }?, fov: number?, cameraType: "Fixed" | "Attach" | "Watch" | "Track" | "Follow" | "Custom" | "Scriptable" | "Orbital"?, threadContext: number? }. Phase: act; cost=medium; idempotency=contextual-write. Requires: active-client, 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
fovNoFieldOfView for setFov or alongside setCFrame.
actionYesCamera operation.
lookAtNoWorld target for setCFrame; creates CFrame.lookAt(position, lookAt).
positionNoWorld position for setCFrame.
rotationNoEuler rotation in degrees for setCFrame when lookAt is not supplied.
cameraTypeNoOptional Enum.CameraType to apply after changing the CFrame.
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.4/5.0
Behavior5/5

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

Annotations already declare a mutating, non-idempotent, destructive write profile, and the description corroborates and enriches this: it emphasizes WRITES LIVE GAME STATE, clarifies the write is confined to the local camera, notes idempotency=contextual-write, and states that existing properties are returned so the change is auditable. It also points at assert-state for verification. This is well beyond what the structured fields alone convey.

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?

It is front-loaded with the key mutating warning, which is good, but it is padded with a full Signature block that duplicates the input schema and a boilerplate tail (Phase/cost/Produces/Verify/Safety/On failure) that repeats the opening 'writes live game state'. Several sentences do not add information beyond the schema and annotations.

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?

There is no output schema, and the description compensates by noting that existing camera properties are returned for auditability, and by specifying prerequisites, idempotency, and a verification path. It is complete enough for a 7-param, nested-object mutation, though return-shape detail is only summarized.

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 description coverage is 100%, so the baseline is 3. The description adds cross-parameter semantics the schema does not: setCFrame requires position plus either lookAt or rotation in degrees. That constraint reasoning is genuinely useful beyond the per-field descriptions.

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?

The description names a specific resource (the active/CurrentCamera) and concrete operations (read, set CFrame/position/look-at/FOV/CameraType). It even scopes it against the environment by stating it only changes the local CurrentCamera and does not move the character. An agent can tell exactly what this tool does and how it differs from generic instance/character tools.

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?

Explicit routing is given: action=get for a one-shot read, action=setCFrame for movement, with preconditions (requires active-client and explicit-mutation-approval). It also states what the tool is NOT for (no character movement, no server replication). It stops short of naming a specific alternative sibling tool for those excluded cases, so it falls just under fully explicit.

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