원클릭으로
roblox-tooling
Built-in Studio MCP orchestration, luau-lsp integration, mcp-roblox-docs usage. How the AI drives Studio directly.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Built-in Studio MCP orchestration, luau-lsp integration, mcp-roblox-docs usage. How the AI drives Studio directly.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
DataStores, ProfileStore, session locking, data persistence patterns.
Animations, particles, tweens, ContentProvider, visual effects.
GUI systems, layout, responsiveness, cross-platform UI. ScreenGuis, UIListLayout, constraint-based design.
Luau language fundamentals, type system, OOP, deprecation table, error patterns.
ProcessReceipt correctness, prompt APIs, purchase reconciliation, session-lock interaction.
Server-authoritative networking, RemoteEvent validation, rate limiting, exploit prevention, security hardening.
| name | roblox-tooling |
| description | Built-in Studio MCP orchestration, luau-lsp integration, mcp-roblox-docs usage. How the AI drives Studio directly. |
| last_reviewed | "2026-05-22T00:00:00.000Z" |
Load this reference when:
This covers the built-in Studio MCP server, mcp-roblox-docs for API lookup, luau-lsp for diagnostics, and offline workflows.
The internal luau-check extension hooks .luau file writes and runs luau-lsp analyze automatically. Diagnostics inject into the next agent turn.
Agent uses the CLI binary. The VS Code extension and Studio Companion Plugin are for humans, not agent onboarding.
luau-lsp analyze path/to/file.luau --formatter plain
Output format: path.luau:line:col severity: message
Soft gate at handoff: do not claim "done" with unresolved error-level diagnostics.
Live API lookup via MCP. Registered during /setup if uvx is available.
Use for: class members, properties, methods, events, enums, FastFlags. Never enumerate these in skills.
The official Roblox MCP server ships with Studio. No install required. Enable via the Assistant widget (View → Assistant → MCP toggle).
| Tool | Purpose | Notes |
|---|---|---|
run_code | Execute Luau inside Studio | Primary workhorse for all operations |
insert_model | Insert a model from Creator Store | Takes asset ID, inserts into Workspace |
get_console_output | Read Studio output/console log | Error detection and debug loops |
start_stop_play | Toggle playtest mode | Single tool handles both start and stop |
run_script_in_play_mode | Execute code during playtest | Stops playtest when script finishes |
get_studio_mode | Check Edit vs Play mode | Always call before mode-sensitive ops |
Since the built-in server lacks exploration tools (get_file_tree, grep_scripts), compensate with run_code:
-- Traverse DataModel and print structure
local function printTree(instance, depth)
depth = depth or 0
local indent = string.rep(" ", depth)
print(`{indent}{instance.Name} [{instance.ClassName}]`)
for _, child in instance:GetChildren() do
printTree(child, depth + 1)
end
end
printTree(game:GetService("ServerScriptService"), 0)
Read results via get_console_output. Build search logic inline via run_code instead of relying on dedicated search tools.
When no MCP server is connected, generate self-contained Luau code blocks for copy-paste into Studio.
run_code to print current hierarchy → plan structure → run_code to create folders/instancesrun_code to create Script/LocalScript/ModuleScript instances, wire RemoteEventsinsert_model for Creator Store assets, position via run_codestart_stop_play → get_console_output → start_stop_play to stopBounded retries (max 5 iterations):
get_console_output → parse for script name, line, error typerun_code to print script source → analyze root causerun_code to replace script source (create undo waypoint first)start_stop_play → get_console_output → check if error persistsrun_code to traverse and print full hierarchyrun_code to find all Script/LocalScript/ModuleScript instances, print sources of key scriptsget_studio_mode before any operation. Do not modify DataModel during playtest.game:GetService("ChangeHistoryService"):SetWaypoint("Before: description")
:Destroy() on named/significant instances.:ClearAllChildren() on services without explicit user confirmation.run_script_in_play_mode for runtime testing during play mode.run_code call to minimize round-trips.get_console_output or a playtest.ChangeHistoryService:SetWaypoint() before batches or experimental changes.get_studio_mode first