Roblox Executor MCP
Allows AI agents to execute Lua code, inspect scripts, spy on remotes, and interact with a running Roblox game client through the MCP protocol.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Roblox Executor MCP Server
An MCP server that allows Agents to interact with a running Roblox game client — execute code, inspect scripts, spy on remotes, and more.
Dashboard
Roblox Executor MCP includes a local web dashboard at:
http://localhost:16384/Use it to see connected Roblox clients, inspect scripts, run tools, view server logs, configure semantic search, and index games for semantic script search.
Related MCP server: Roblox Executor MCP
Features
Code Execution — Run Lua code and fetch data from the game client.
Script Inspection — Decompile scripts and search across all sources.
Instance Search — CSS-like selectors and hierarchy trees.
Remote Spy — Intercept, log, block, and ignore Remotes/Bindables via Cobalt.
GUI Interaction — Click buttons and type into text boxes.
Screenshot — Capture Roblox window screenshots (Windows only).
Multi-Client — Connect multiple Roblox clients at once.
Primary / Secondary — Multiple MCP instances auto-coordinate with automatic promotion. Supports remote relaying via
--baseurl. See Advanced.
Tutorial

Prerequisites
Node.js ≥ 18
Bun ≥ 1.3 for the interactive OpenTUI harness installer
A Roblox executor that supports
loadstring,request, and (preferably)WebSocket
Executor compatibility
The connector detects features instead of requiring a particular executor name or UNC percentage. get-game-info reports the executor name/version, environment source and available functions. Availability is not a claim that a function passes sUNC or grants additional permissions.
Required:
loadstring, HTTP access throughrequest,http_request,syn.requestorhttp.request, and basic Roblox instance/service access.Missing or failing
getgenvfalls back to_Gor the script environment.clonerefis optional, and a brokengetnilinstancesdoes not stop ordinary script scanning. Detached scripts cannot be discovered without working enumeration.Missing or failing identity setters leave the executor's current permissions in place. This keeps basic execution working; restricted APIs may still fail. Both MCP and dashboard execution use the same connector-side handling.
WebSocket aliases are supported, with HTTP polling as the fallback. The loader can also download through an HTTP request alias when
game:HttpGetfails.Without
firesignal, button clicks use VirtualInputManager when permitted. This converts GUI positions to screen coordinates using Roblox's GUI inset, then sends mouse input to a visible, unobstructed button; down-only signal actions still requirefiresignal. An unavailable input service disables that feature rather than the whole connector.Cobalt remote spying requires native hooking APIs. Missing prerequisites return a specific error before loading Cobalt; the bridge does not invent replacements for unsupported hooks.
Update both the server and the connector (rerun the loader in a fresh Roblox client) to use connector-side identity handling.
These paths are tested with missing and throwing APIs, including the limitations in the supplied Xeno v1.3.30 sUNC report. Live compatibility probes ran on Xeno v1.3.65, including an observed click on a temporary test button without firesignal. Failed sUNC tests can still expose callable functions, so operations are protected at runtime rather than classified by score alone.
Quick Start
1. Clone the server
git clone https://github.com/dissering/roblox-executor-mcp.git
cd roblox-executor-mcp2. Run the harness installer
The installer builds the server, lets you choose AI clients, writes supported MCP configs, and prints the Roblox loader script.
npm run install:harnessesThe normal server build consumes the committed connector.luau artifact, so harness installs do not require Darklua. Connector developers can install the pinned tool with rokit install, edit connector-src/, and regenerate the artifact with npm run build:connector.
The picker is built with OpenTUI and runs through Bun. npm run install:harnesses installs Bun first if it is not already available. It shows detected local clients by default; if none are detected, it warns you to install a harness first. Press s in the picker or pass --show-all-harnesses to reveal every supported config target. If your terminal has trouble with the interactive picker, use the plain numbered prompt:
npm run install:harnesses -- --plainThe installer can also place the Roblox loader into a detected executor autoexec folder, such as MacSploit on macOS or supported Windows executor autoexec folders. Use the prompt, or run:
npm run getscript -- --autoexecIt can also help with:
cross-machine setup on the same LAN
copying the Roblox loader to your clipboard
optional Ollama
embeddinggemmasetup for semantic indexingpulling latest repo changes before install/build
To update an existing install later, run:
npm run updateThe update command can stop currently running MCP server processes, optionally pull latest changes, and always rebuilds the server.
Manual setup
If you prefer to configure a client yourself, use the setup guide for your client:
Client | Guide |
Cursor | |
Claude Desktop | |
Claude Code | |
Codex CLI | |
Windsurf | |
Antigravity | |
BLACKBOX AI | |
ZCode |
3. Connect from Roblox
The installer prints this for you. Put it in your executor or Auto Execute:
local environment = _G
if type(getgenv) == "function" then
local ok, value = pcall(getgenv)
if ok and type(value) == "table" then environment = value end
end
if type(environment) ~= "table" then environment = getfenv(0) end
local lastError
while not environment.MCP_Loaded do
local bridgeUrl = environment.BridgeURL or environment.bridgeurl or "localhost:16384"
local ok, failure = pcall(function()
local downloaded, source = pcall(function() return game:HttpGet("http://" .. bridgeUrl .. "/script.luau") end)
if not downloaded or type(source) ~= "string" then
local send
for _, candidate in {request, http_request, type(syn) == "table" and syn.request, type(http) == "table" and http.request} do
if type(candidate) == "function" then send = candidate; break end
end
assert(send, "Executor has neither a working HttpGet nor an HTTP request function.")
local response = send({Url = "http://" .. bridgeUrl .. "/script.luau", Method = "GET"})
assert(type(response) == "table" and tonumber(response.StatusCode or response.Status or response.status_code or response.status) == 200, "Connector download failed.")
source = response.Body or response.body
end
assert(type(loadstring) == "function", "Executor needs loadstring to load MCP.")
local chunk, compileError = loadstring(source)
assert(chunk, compileError)
chunk()
end)
if not ok and tostring(failure) ~= lastError then
lastError = tostring(failure)
warn("MCP connector: " .. lastError)
end
task.wait(1)
endOptional settings (set before running the loader; use _G instead of getgenv() when getgenv is unavailable):
getgenv().BridgeURL = "10.0.0.4:16384" -- default: localhost:16384
getgenv().DisableWebSocket = true -- force HTTP polling
getgenv().DisableInitialScriptDecompMapping = true -- skip initial decompilation
getgenv().MCP_FailedScriptResyncInterval = 30 -- retry failed script syncs periodically
getgenv().MCP_FailedScriptResyncBatchSize = 8 -- bound each periodic retry batchAfter the MCP server starts and Roblox connects, open the dashboard:
http://localhost:16384/Community
Have a suggestion or need help? Join the Discord server.
Security
This server allows arbitrary code execution. Only use with AI clients you trust. Port
16384has no authentication — never expose it to the internet. For cross-machine setups, use a local network, VPN, or SSH tunnel. See Advanced for details.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Make games with AI: one MCP server that connects your agent to Unity, Unreal and Godot editors.
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
MCP server for building and testing AI agents with multi-model experimentation and insights.
Trading MCP server for AI agents, with live market data, account reads and controlled execution.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI agents to execute Lua code, inspect scripts, spy on remotes, and interact with a running Roblox game client through an MCP interface.1622131 npm1MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that lets AI agents drive a running Roblox client, execute Luau, decompile scripts, spy on remotes, and automate UI, with a bundled Vyre dashboard for live monitoring.131 npmMIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to execute Lua code, inspect scripts, spy on remotes, and interact with running Roblox game clients, including support for mobile executors on Android and iOS.131 npm1MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that enables AI agents to interact with a running Roblox game client, including code execution, script inspection, remote spying, and GUI automation.131 npm7MIT