Roblox MCP Server

Roblox MCP Server

Bridges AI assistants with Roblox game environments in real-time via a Lua client and WebSocket connection. Enables AI tools like Claude to navigate instances, execute scripts, monitor remote events, and interact with the Roblox API through natural language.

Category
Visit Server

README

Roblox MCP Server

A Model Context Protocol (MCP) server that bridges AI assistants with Roblox via a Lua client. This enables AI tools like Claude to interact with the Roblox game environment in real-time.

Overview

This project consists of two components:

  1. MCP Server (src/index.ts) - A Node.js server that implements the MCP protocol and communicates with AI clients
  2. Lua Client (client.lua) - A Lua script that runs inside Roblox via a script executor and connects to the MCP server via WebSocket

Prerequisites

  • Node.js v18 or higher
  • npm or yarn
  • A Roblox script executor with WebSocket support (e.g., Synapse X, KRNL, Fluxus, Solara)

Installation

1. Clone and Install Dependencies

cd mcp
npm install

2. Build the Server

npm run build

This compiles the TypeScript source to JavaScript in the build/ directory.

Configuration

MCP Client Configuration (Claude Desktop, etc.)

Add the following to your MCP client configuration file:

Claude Desktop (Windows)

Location: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "roblox": {
      "command": "node",
      "args": ["C:/path/to/mcp/build/index.js"]
    }
  }
}

Claude Desktop (macOS)

Location: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "roblox": {
      "command": "node",
      "args": ["/path/to/mcp/build/index.js"]
    }
  }
}

WebSocket Port

The server listens on port 8888 by default. You can modify this in src/index.ts if needed.

Usage

Step 1: Start the MCP Server

The MCP server starts automatically when your AI client (like Claude Desktop) initializes it. Alternatively, for testing:

npm start

Step 2: Connect the Lua Client

  1. Open Roblox and join a game
  2. Open your script executor
  3. Copy the contents of client.lua and execute it

The client will automatically:

  • Connect to the WebSocket server at ws://localhost:8888
  • Forward game logs to the MCP server
  • Handle commands from the AI assistant
  • Auto-reconnect if disconnected

Tip: Add client.lua to your executor's autoexec folder for automatic connection on startup.

Available Tools

The MCP server exposes the following tools that AI assistants can use:

Instance Navigation

Tool Description
get_children Get children of an instance (default: game)
find_instances Search for instances by name pattern or ClassName
get_properties Get properties and attributes of an instance
get_hidden_properties Get hidden/internal properties using executor functions

Script Operations

Tool Description
read_script Read/decompile the source code of a script
execute_script Execute Lua code in the Roblox context

Remote Spy

Tool Description
remote_spy_start Start monitoring RemoteEvent/RemoteFunction calls
remote_spy_stop Stop the remote spy
remote_spy_get_logs Get collected remote spy logs
fire_remote Fire a RemoteEvent or invoke a RemoteFunction

Advanced/Debug

Tool Description
getgc_find Search Lua garbage collector for functions/tables
get_connections Get all connections on an event/signal
get_upvalues Get upvalues of a function

Tool Examples

Get Children of Workspace

Use get_children with path "game.Workspace"

Find All Parts

Use find_instances with query "" and className "Part"

Read a Script

Use read_script with path "game.ReplicatedStorage.SomeModule"

Execute Code

Use execute_script with code "print(game.Players.LocalPlayer.Name)"

Monitor Remotes

1. Use remote_spy_start (optionally with filter "Shop")
2. Play the game normally
3. Use remote_spy_get_logs to see captured calls
4. Use remote_spy_stop when done

Fire a Remote

Use fire_remote with path "game.ReplicatedStorage.MyRemote" and args ["hello", 123]

Executor Compatibility

The Lua client checks for WebSocket support from various executors:

  • ✅ Synapse X (syn.websocket)
  • ✅ KRNL (WebSocket)
  • ✅ Fluxus (fluxus.websocket)
  • ✅ Solara (WebSocket)
  • ✅ Any executor with global WebSocket

Some advanced features require additional executor functions:

Feature Required Function
Script decompilation decompile()
Remote spy hookmetamethod()
GC search getgc(), getinfo()
Get connections getconnections()
Get upvalues getupvalues()
Hidden properties gethiddenproperty()

Development

Run in Development Mode

npm run dev

Build

npm run build

Project Structure

mcp/
├── src/
│   └── index.ts      # MCP server source
├── build/
│   └── index.js      # Compiled server
├── client.lua        # Roblox Lua client
├── package.json
├── tsconfig.json
└── README.md

Troubleshooting

"No Lua client connected"

  • Make sure you've executed client.lua in your Roblox executor
  • Check that the WebSocket port (8888) is not blocked by firewall
  • Verify your executor supports WebSocket

"Port 8888 is already in use"

Another instance of the server is running. Kill it or restart your computer.

"WebSocket not supported on this executor"

Your executor doesn't have WebSocket support. Try a different executor.

Connection drops frequently

The client auto-reconnects after 5 seconds. If issues persist, check your network or executor stability.

Security Notice

⚠️ This tool is intended for educational and development purposes only. Using script executors may violate Roblox's Terms of Service and could result in account termination.

License

ISC

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured