Roblox-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| set-active-clientA | Route future Roblox tool calls to the specified connected client. Use list-clients first if you need available clientIds. |
| list-clientsA | List connected Roblox game clients with clientId and session metadata. Use before set-active-client when multiple clients are connected or the target client is unknown. |
| executeA | Execute Luau in the active Roblox client without returning output. Use get-data-by-code instead when you need returned values. |
| execute-fileA | Execute a local .luau or .lua file in the active Roblox client without returning output. Use get-data-by-code instead when you need returned values. |
| teleport-playerB | Teleport the LocalPlayer's character to a specified player, set of coordinates, or relative offset, optionally facing a specific lookAt target. |
| set-player-propertyB | Modify character stats or physics properties including WalkSpeed, JumpPower, JumpHeight, HipHeight, Gravity, and Noclip. |
| get-script-contentA | Get decompiled source for a Roblox script by path, script proxy, or getter code. Use startLine/endLine for a focused range when the full script is large. |
| get-data-by-codeB | Execute Luau in the active Roblox client and return serialized raw Lua values. The code must return values; do not manually JSON-encode them. |
| get-console-outputC | Read recent Roblox developer console logs from the active client. Use limit and logsOrder to control volume and ordering. |
| search-instancesB | Search Roblox instances with QueryDescendants selector syntax. Use for class, name, tag, property, and attribute queries against a chosen root. |
| script-grepA | Search decompiled Roblox scripts with JavaScript regex or literal string matching. Use for exact identifiers or code patterns; use semantic-search-scripts when behavior is known but names are not. |
| semantic-search-scriptsA | Find decompiled Roblox scripts by behavior using semantic embeddings. Use when exact identifiers are unknown; use script-grep for exact text or regex. |
| get-game-infoA | Get current Roblox place and universe metadata such as PlaceId, GameId, and PlaceVersion. |
| get-descendants-treeA | Get a depth-limited hierarchy of descendants under a Roblox instance. Use for broad structure exploration; use search-instances for selector-based filtering. |
| get-executor-environmentB | Check and retrieve the capabilities, custom globals, and identification metadata of the running Roblox exploit/executor environment. |
| get-instance-propertiesB | Inspect a Roblox Instance by path or debug ID to retrieve its properties, attributes, and tags. |
| ensure-remote-spyA | Load or verify the Cobalt remote spy in the active Roblox client. Call before reading, clearing, blocking, or ignoring remote spy logs. |
| get-remote-spy-logsA | List captured Cobalt remote and bindable call logs. Requires ensure-remote-spy first; supports direction and name filters to narrow noisy logs. |
| clear-remote-spy-logsA | Clear all captured Cobalt remote spy logs. Requires ensure-remote-spy first. |
| block-remoteA | Block or unblock a Roblox remote by exact name and direction. Requires ensure-remote-spy first; use get-remote-spy-logs to discover candidates. |
| ignore-remoteA | Ignore or unignore logging for a Roblox remote by exact name and direction. Requires ensure-remote-spy first; ignored remotes still fire. |
| fire-remoteB | Execute network calls by firing RemoteEvents (FireServer) or invoking RemoteFunctions (InvokeServer) with custom arguments. |
| type-text-boxA | Enter text into a Roblox TextBox by path. Can simulate keystrokes or set Text directly based on useKeyPress. |
| click-buttonA | Click a Roblox TextButton or ImageButton by firing its GUI signals. Use when direct UI activation is needed inside the active client. |
| screenshot-windowA | Capture an actual OS screenshot of a Roblox window via Windows APIs. Provide pid when multiple windows are open; secondary servers relay capture to the primary host. |
| list-roblox-windowsA | List visible Roblox OS windows with PIDs. Use before screenshot-window when multiple Roblox windows may be open. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 26 tools
Most tools have clearly distinct purposes and the descriptions cross-reference alternatives (e.g. execute vs get-data-by-code, script-grep vs semantic-search-scripts). A few boundaries are fuzzy: execute/execute-file/get-data-by-code all run Luau with differing output behavior, and ignore-remote vs block-remote both act on remotes, though descriptions do clarify the distinction.
Nearly all tools follow a consistent kebab-case verb_noun pattern (get-script-content, set-active-client, clear-remote-spy-logs, fire-remote). Minor deviations exist in noun-first names like script-grep and semantic-search-scripts, but the overall convention is readable and predictable.
At 26 tools this sits at the upper edge of the ideal range, but the domain is unusually broad (client routing, code execution, player control, script decompilation/search, instance introspection, remote spy, GUI automation, screenshots), so most tools earn their place rather than being redundant.
The surface covers the full exploitation lifecycle: client discovery/routing, execution, player manipulation, script reading and both grep/semantic search, instance and game introspection, remote spying/firing/blocking, GUI interaction, and OS-level screenshots. No obvious dead ends for the stated purpose.