dex-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port injected by platforms like Railway. Overrides DEX_MCP_PORT if set. | |
| DEX_MCP_HTTP | No | Enable remote mode. Bind 0.0.0.0, serve MCP over HTTP at /mcp, and point the bridge at wss://<host>. | false |
| DEX_MCP_PORT | No | WebSocket hub port. | 8392 |
| DEX_MCP_TOKEN | No | Shared token required by the bridge. Required in remote mode (container disks are ephemeral). | |
| DEX_MCP_TOKEN_FILE | No | Where the auto-generated token is persisted. | ~/.dex-mcp/token |
| DEX_MCP_ENABLE_WRITE | No | Enable set_property tool. | true |
| DEX_MCP_ENABLE_REMOTES | No | Enable remote calling/spying. | true |
| DEX_MCP_RPC_TIMEOUT_MS | No | Per-request timeout in milliseconds. | 15000 |
| DEX_MCP_ENABLE_RUN_LUAU | No | Enable run_luau tool. | true |
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 |
|---|---|
| dex_statusA | Report whether the Roblox bridge is connected and basic game info (name, placeId, client version, capabilities). |
| get_rootA | Get the root instance (game, ref 0) and its top-level services. |
| get_childrenA | List the direct children of an instance by ref. Optionally filter by className. |
| get_propertiesA | Read the properties of an instance by ref. Property names come from the cached Roblox API dump when available. |
| searchA | Recursively search instances by name substring (and optional className), capped by limit. Defaults to 100 results. |
| get_sourceC | Read the Source of a Script/LocalScript/ModuleScript by ref, if readable. |
| get_by_pathA | Resolve a dotted instance path (e.g. game.Workspace.Part) to a node with a ref. |
| set_propertyA | Set a property on an instance by ref. The value is coerced to the property's declared Roblox type when known. |
| fire_remoteC | Fire a RemoteEvent (FireServer) with the given arguments. |
| invoke_remoteB | Invoke a RemoteFunction (InvokeServer) with the given arguments and return its result. |
| remote_spy_startB | Start logging outgoing remote traffic. Returns an error if the executor lacks the required hooks. |
| remote_spy_stopA | Stop logging remote traffic. |
| remote_spy_dumpB | Return the remote traffic captured since the spy started. |
| run_luauB | Execute arbitrary Luau in the Roblox client and return captured output plus a best-effort serialized return value. Power tool. |
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 14 tools
Each tool targets a distinct operation: path resolution, status, hierarchy traversal, property access, search, source reading, property mutation, remote event/function interaction, remote traffic monitoring, and script execution. No two tools appear to do the same thing.
Most tools follow a verb_noun pattern (get_children, set_property, fire_remote), but there are inconsistencies: remote_spy_* uses a noun prefix, search is a bare verb, and dex_status combines a product prefix with a status noun. The conventions are readable but not uniform.
14 tools is well within the ideal 3-15 range and each tool serves a distinct purpose in the Roblox debugging/exploitation domain. The count feels appropriate and not bloated.
The surface covers core workflows: traversal, property access/mutation, source reading, remote communication (fire/ignore/spy), and arbitrary script execution. Missing instance creation/deletion, but for a debugging tool this is a minor gap easily covered by run_luau.