Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ROBLOX_MCP_PORTNoBridge port used by the MCP server (default 44755). Can also be set with the --port option, e.g. --port 44756.44755
ROBLOX_MCP_TOKENNoOptional authentication token. Start the server with --token <random string>; the Studio plugin must then send the header X-Roblox-MCP-Token: <random string> with requests.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

You are connected to a running Roblox Studio session through the RobloxMCP plugin.

Answer questions about the open place by inspecting it before you change it: get_tree → search_instances → get_instance → read_script.

Address every instance with a path such as Workspace/Baseplate or ServerScriptService/Main/Init. game (or game/Workspace) is the root.

Mutating tools (create_instance, set_property, delete_instance, insert_model, write_script, execute_luau) act on the real Studio place. Each change is wrapped in a Studio undo recording, so the user can press Ctrl+Z. Prefer the smallest change that answers the request, tell the user what you are about to change when it is destructive, and never guess a path — look it up first.

execute_luau runs arbitrary Luau inside Studio (plugin identity). Use it only when no dedicated tool covers the job, and keep the snippet small.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
studio_statusA

Check whether the Roblox Studio plugin is connected and report the open place, port and queue state.

get_treeA

Print the instance tree of the open place as text. root is a path like 'Workspace' or 'game' (default), max_depth limits recursion (default 2).

get_instanceA

Read one instance: class, curated properties, attributes and children. path is like 'Workspace/Baseplate'. properties is an optional comma list of property names.

search_instancesB

Find instances by name substring and/or exact class name. Returns paths with class.

create_instanceC

Create a new instance. class_name is a Roblox class such as 'Part', 'Script', 'Model'. properties is an optional JSON object like {"Size": "Vector3(4,1,2)", "Anchored": true}.

set_propertyB

Set one property on an instance. Values accept plain JSON scalars or literals such as 'Vector3(4,1,2)', 'Color3(1,0,0)', 'Enum.Material.Neon', 'CFrame(0,5,0)'.

delete_instanceB

Delete (Destroy) an instance by path. Wrapped in an undo recording.

insert_modelB

Insert a model or asset from the Roblox catalog into the place via InsertService. asset_id is the catalog asset id; position is optional like 'Vector3(0,5,0)'.

execute_luauB

Run a Luau snippet inside Studio and return its return value plus printed output. Use sparingly: dedicated tools are safer. The snippet runs as a temporary ModuleScript.

list_scriptsC

List all scripts in the place (path, class, line count).

read_scriptC

Read the source of a Script/LocalScript/ModuleScript by path.

write_scriptB

Replace the source of a Script/LocalScript/ModuleScript by path (undoable).

get_selectionB

Show what the user currently has selected in Studio.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 13 tools

Disambiguation4/5

Each tool targets a distinct resource or action, but there are mild overlaps: get_instance vs read_script (both read instance data, one script-source-specific) and create_instance vs insert_model (both add objects, one generic, one catalog asset). execute_luau intentionally overlaps with everything, though its description explicitly says to prefer dedicated tools.

Naming Consistency4/5

Almost all tools follow a clean snake_case verb_noun pattern (read_script, get_tree, create_instance, set_property, delete_instance, list_scripts, write_script). The only deviation is studio_status, which is a descriptive noun phrase without a verb, but it remains readable and predictable.

Tool Count5/5

13 tools is well within the sweet spot and every tool maps to a meaningful Studio operation: status, inspection, search, mutation, scripts, and asset insertion. Nothing feels redundant enough to remove, and nothing essential is obviously missing from the count.

Completeness4/5

The surface covers the core lifecycle: inspect (status, tree, instance, selection, search), mutate (create, set_property, delete, insert_model), and script management (read/list/write) plus an escape hatch via execute_luau. Gaps include no explicit playtest start/stop control, no undo/redo tool, and no dedicated reparent/rename operation, though most can be worked around via set_property (Parent/Name) or execute_luau.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues