Roblox Studio MCP Server
Bridges AI assistants to Roblox Studio with 51 tools for exploring, editing, and automating game development, all locally via HTTP polling.
README
Roblox Studio MCP Server
Bridge AI assistants to Roblox Studio — 51 tools for exploring, editing, and automating your game.
Works with Claude Code, Claude Desktop, Cursor, Gemini, Codex, and any MCP-compatible client.
What It Does
An MCP (Model Context Protocol) server that gives AI full access to your Roblox Studio session. Explore game hierarchies, read and edit scripts, manipulate properties, create instances, build terrain, run playtests — all locally via HTTP polling. No external servers, no data collection.
Quick Start
1. Install the Studio Plugin
Option A — Creator Store (easiest): Install from Roblox Creator Store
Option B — Manual:
Download MCPPlugin.rbxmx from Releases and drop it into your Plugins folder:
- Windows:
%LOCALAPPDATA%/Roblox/Plugins/ - macOS:
~/Documents/Roblox/Plugins/
2. Enable HTTP Requests
Game Settings > Security > Allow HTTP Requests = ON
3. Connect Your AI
Claude Code:
claude mcp add robloxstudio -- npx -y robloxstudio-mcp@latest
Codex:
codex mcp add robloxstudio -- npx -y robloxstudio-mcp@latest
Gemini:
gemini mcp add robloxstudio npx --trust -- -y robloxstudio-mcp@latest
<details> <summary>Claude Desktop, Cursor, Windsurf, or other MCP clients</summary>
Add to your MCP config file:
{
"mcpServers": {
"robloxstudio-mcp": {
"command": "npx",
"args": ["-y", "robloxstudio-mcp@latest"]
}
}
}
Windows users — if you encounter issues, wrap with cmd:
{
"mcpServers": {
"robloxstudio-mcp": {
"command": "cmd",
"args": ["/c", "npx", "-y", "robloxstudio-mcp@latest"]
}
}
}
</details>
Plugin shows "Connected" when ready.
51 Tools
Exploration & Queries (10)
| Tool | Description |
|---|---|
get_file_tree |
Browse instance hierarchy as a tree |
search_files |
Search instances by name, class, or script content |
get_place_info |
Get place ID, name, and game settings |
get_services |
List available Roblox services |
search_objects |
Find instances by name, class, or property |
search_by_property |
Find instances with specific property values |
get_instance_properties |
Get all properties of an instance |
get_instance_children |
List children with class types |
get_class_info |
Get available properties/methods for a class |
get_project_structure |
Full hierarchy with configurable depth |
Instance Management (8)
| Tool | Description |
|---|---|
create_object |
Create a new instance |
create_object_with_properties |
Create instance with initial properties |
mass_create_objects |
Bulk create instances |
mass_create_objects_with_properties |
Bulk create with properties |
delete_object |
Delete an instance |
smart_duplicate |
Duplicate with naming, positioning, property variations |
mass_duplicate |
Multiple duplication operations at once |
reparent_instance |
Move instance to a new parent (no delete/recreate) |
Cloning & Assets (2)
| Tool | Description |
|---|---|
clone_instance |
Deep copy an instance to a different parent |
insert_asset |
Insert a Roblox asset by ID (models, meshes, images) |
Properties (5)
| Tool | Description |
|---|---|
set_property |
Set any property on an instance |
mass_set_property |
Set same property on multiple instances |
mass_get_property |
Read same property from multiple instances |
set_calculated_property |
Set properties via math formulas |
set_relative_property |
Modify properties relative to current values |
Scripts (6)
| Tool | Description |
|---|---|
get_script_source |
Read script source (supports line ranges) |
set_script_source |
Replace entire script source |
edit_script_lines |
Replace specific lines |
insert_script_lines |
Insert lines at a position |
delete_script_lines |
Delete specific lines |
search_replace_scripts |
Find/replace text across all scripts |
UI Building (1)
| Tool | Description |
|---|---|
create_ui |
Batch-create UI elements with proper UDim2 sizing |
Terrain (4)
| Tool | Description |
|---|---|
fill_terrain |
Fill rectangular region with terrain material |
fill_terrain_sphere |
Fill spherical region with material |
clear_terrain |
Clear terrain (region or all) |
get_terrain_materials |
List available terrain materials |
Attributes & Tags (8)
| Tool | Description |
|---|---|
get_attribute / set_attribute |
Read/write instance attributes |
get_attributes |
Get all attributes on an instance |
delete_attribute |
Remove an attribute |
get_tags / add_tag / remove_tag |
Manage CollectionService tags |
get_tagged |
Find all instances with a specific tag |
Undo/Redo (2)
| Tool | Description |
|---|---|
undo |
Undo last action (Ctrl+Z) |
redo |
Redo last undone action (Ctrl+Y) |
Code Execution & Playtest (5)
| Tool | Description |
|---|---|
execute_luau |
Run arbitrary Luau code in Studio |
get_selection |
Get currently selected objects |
start_playtest |
Start play/run session with log capture |
stop_playtest |
Stop session and return output |
get_playtest_output |
Poll logs without stopping |
Architecture
AI Assistant <--stdio--> MCP Server (Node.js)
<--HTTP--> Bridge (Express on port 58741)
<--polling--> Studio Plugin (roblox-ts)
<--API--> Roblox Studio
- Stateless HTTP bridge with UUID-tracked requests
- 500ms polling — reliable, no WebSocket complexity
- 30-second timeouts per request
- ChangeHistoryService integration — every mutation creates an undo waypoint
- All local — nothing leaves your machine
Development
npm install # Install dependencies
npm run build:all # Build server + plugin
npm run dev # Dev mode with tsx
npm test # Run tests
npm run build:plugin # Rebuild Studio plugin only
Troubleshooting
| Issue | Fix |
|---|---|
| Plugin missing from toolbar | Verify .rbxmx is in Plugins folder, restart Studio |
| HTTP 403 errors | Enable "Allow HTTP Requests" in Game Settings > Security |
| Plugin shows "Disconnected" | Normal until MCP server is running — start your AI client |
| Connection timeout | Check firewall isn't blocking localhost:58741 |
License
MIT
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.