rbx-studio-mcp

Roblox Studio向けの無料・オープンソースMCPサーバー。プッシュベースのSSEトランスポート、エディタに安全なスクリプト編集、29のトークン効率的なツールを備えています。

ドキュメント

Roblox Studio MCP

Let an AI agent drive Roblox Studio: read your place, edit scripts, build geometry, run playtests, take screenshots. 35 tools. MIT.

The Studio MCP panel

Install

1. The plugin

npx -y @el4cteo/rbx-studio-mcp --install-plugin

Or drop StudioMCP.rbxmx from Releases into your Studio plugins folder.

2. The server

claude mcp add roblox-studio -- npx -y @el4cteo/rbx-studio-mcp
Other clients

Codex CLI:

codex mcp add roblox-studio -- npx -y @el4cteo/rbx-studio-mcp

Cursor, Claude Desktop, Gemini CLI, Windsurf — add to their config file:

{
  "mcpServers": {
    "roblox-studio": {
      "command": "npx",
      "args": ["-y", "@el4cteo/rbx-studio-mcp"]
    }
  }
}

VS Code / Copilot (.vscode/mcp.json) uses "servers" instead of "mcpServers", plus "type": "stdio".

opencode (opencode.json):

{
  "mcp": {
    "roblox-studio": {
      "type": "local",
      "command": ["npx", "-y", "@el4cteo/rbx-studio-mcp"],
      "enabled": true
    }
  }
}

3. Open Studio and accept the 127.0.0.1 prompt. Check it works with studio_status.

Something wrong? Run npx -y @el4cteo/rbx-studio-mcp doctor — it says what is broken and how to fix it.

Port is 44755, loopback only. Change it with --port and match it in the plugin.

Tools

Sessionstudio_status list_studios set_active_studio
Discovertree inspect find api
Scriptsscript_read script_edit script_grep script_create
Instancescreate modify delete move
Worldgeometry terrain generate assets collision audio undo
Live gameuniverse
Run & debugplaytest execute_luau character input console debug performance
Lookscreenshot viewport device

Write tools take arrays — ten script edits is one call, one Ctrl+Z, and all-or-nothing.

Open Cloud

Some calls reach past Studio to Roblox itself. All need one API key; everything else works without it.

assets op="upload"send a local audio/image/model/video file, get an asset id
datastore target="live"the running game's real player data
execute_luau target="live"run a script on the published place
universerestart servers, message them, ban players
alsoassets op="grant", op="publish", script_read/script_edit target="live"

Make a key at Creator Dashboard → Credentials, adding the permissions you want: assets, universe-datastores, ordered-data-stores, luau-execution-sessions, universe-places, universe-place-instances, universe, messaging-service, user-restrictions, inventory, users, asset-permissions.

Then in the Studio panel:

cloud key <paste>
cloud user <your user id>
cloud place <place id>

cloud place works out the universe for you. The typed key is masked in the log and in the history, and stored at ~/.rbx-studio-mcp/credentials.json (mode 0600) — never in the place file, never in the conversation. cloud shows what is set, cloud test re-checks it, cloud forget deletes it. ROBLOX_API_KEY and friends in the environment work too and take priority.

Two things to watch: a playtest connects a second session, so pass studioId and use the edit one for changes that must last; device emulation stays on until device op="stop".

The console panel

Every call is logged with how long it took. At the foot of the panel is a command line — type a command, or type a sentence and a coding agent answers it.

helplist everything
doctorcheck the setup
status version place clientswhat this session is
studios use <n>which Studio window calls go to
theme [name] visuals autoopen [on|off] log [level] clear copythe panel
port [n] reconnectthe connection
cloud [key|user|group|test|forget]the Open Cloud key upload uses
agent [use <id>|new] stopwhich agent runs your prompts
anything elsesent to that agent

Click the bar and every command is listed with what it does. Keep typing to filter, scroll for the rest, click one to fill it in.

Prompts start a real agent — whichever you have on PATH: Claude Code, Codex, opencode, Gemini, Cursor, Amp, Qwen Code, Factory Droid, goose, Copilot CLI, Aider, Crush, DeepSeek Harness. It runs headless, drives the same Studio, and its work appears in the log. It is a separate session from your terminal, billed separately, and allowed the rbx-studio tools only. stop cancels it.

Eight themes behind the tab on the right edge. Your pick is remembered.

Why this one

  • Push, not poll — 13.6 ms per call against 25.8 ms.
  • Safe script edits — writes go through the script editor, so unsaved work survives.
  • Stale edits are refused — pass back the rev from script_read and a write lands only if nobody else touched the file.
  • Property names are checked against the running engine, so Anchorred comes back as a suggestion, not a runtime error.

DeepSeek Harness (dsh)

This server registers as a dsh plugin. Append this row to $DSH_HOME/cordis.patch.yml, or to $DSH_HOME/profiles/<name>/cordis.patch.yml for one profile only:

- insert:
    - id: mcp-rbx-studio
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: rbx-studio
        transport: stdio
        command: npx
        args: ['-y', '@el4cteo/rbx-studio-mcp']
        cwd: !!js process.cwd()

Then dsh --profile headless "what is in workspace". Needs DEEPSEEK_API_KEY. The same row, commented, is in config/dsh.cordis.yml for use with dsh --patch.

Security

Loopback only, and requires a header a browser cannot set cross-origin. Your experience's "Allow HTTP Requests" setting is untouched.

Development

npm install
npm run build          # TypeScript -> dist/
npm run install:plugin # build the plugin and copy it into Studio
npm test

Needs luau, luau-compile and luau-analyze from the Luau releases on PATH or in tools/.

Licence

MIT.