Roblox Studio MCP Server
Enables AI assistants to interact directly with Roblox Studio to explore project hierarchies, edit scripts, and perform bulk object manipulations through over 37 specialized tools. This enhanced fork features long polling for near-instant responses and improved support for script editing and attribute management.
README
Roblox Studio MCP Server (Enhanced Fork)
Fork of boshyxd/robloxstudio-mcp — the original MCP server for Roblox Studio created by @boshyxd.
This fork (
v2.0.0) adds significant improvements: long polling instead of 500ms interval polling, 16 new tools, Vector3 property fix, enhanced activity logger with copy/export, and a battle-tested plugin for complex Roblox projects.
MCP server for AI-powered Roblox Studio integration. 37+ specialized tools for exploring projects, editing scripts, manipulating attributes/tags, and performing bulk operations.
<a href="https://glama.ai/mcp/servers/@boshyxd/robloxstudio-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@boshyxd/robloxstudio-mcp/badge" alt="Roblox Studio Server MCP server" /> </a>
What's new in this fork
| Feature | Original | This Fork |
|---|---|---|
| Polling | 500ms interval polling | Long polling (instant response) |
| Tools | 37 tools | 37+ tools + 16 new ones |
| Vector3 properties | Broken on mass operations | Fixed ({"X":n,"Y":n,"Z":n} format) |
| Activity logger | None | Full UI logger with copy/export |
| Plugin UI | Basic status | Enhanced status + activity panel |
Quick Start
For Claude Code users:
claude mcp add robloxstudio -- npx -y robloxstudio-mcp
For other MCP clients (Claude Desktop, etc.):
{
"mcpServers": {
"robloxstudio-mcp": {
"command": "npx",
"args": ["-y", "robloxstudio-mcp"],
"description": "Advanced Roblox Studio integration for AI assistants"
}
}
}
Install NPM Package
npm i robloxstudio-mcp
<details>
<summary>Note for native Windows users</summary>
If you encounter issues, you may need to run it through cmd. Update your configuration like this:
{
"mcpServers": {
"robloxstudio-mcp": {
"command": "cmd",
"args": ["/c", "npx", "-y", "robloxstudio-mcp@latest"]
}
}
}
</details>
Studio Plugin Setup (Required)
The MCP server requires a companion Roblox Studio plugin:
- Download MCPPlugin.rbxmx
- Save to your
%LOCALAPPDATA%/Roblox/Pluginsfolder
After installation:
- Enable "Allow HTTP Requests" in Game Settings > Security
- Click the "MCP Server" button in the Plugins toolbar
- Status should show "Connected" when working
Architecture Overview
Dual-component system bridging Roblox Studio with AI assistants:
%%{init: {'theme':'dark', 'themeVariables': {'primaryColor':'#2d3748', 'primaryTextColor':'#ffffff', 'primaryBorderColor':'#4a5568', 'lineColor':'#718096', 'sectionBkgColor':'#1a202c', 'altSectionBkgColor':'#2d3748', 'gridColor':'#4a5568', 'secondaryColor':'#2b6cb0', 'tertiaryColor':'#319795'}}}%%
graph TB
subgraph AI_ENV ["AI Environment"]
AI["AI Assistant<br/>Claude Code/Desktop"]
MCP["MCP Server<br/>Node.js + TypeScript"]
end
subgraph COMM_LAYER ["Communication Layer"]
HTTP["HTTP Bridge<br/>localhost:3002"]
QUEUE["Request Queue<br/>UUID tracking"]
end
subgraph STUDIO_ENV ["Roblox Studio Environment"]
PLUGIN["Studio Plugin<br/>Luau Script"]
STUDIO["Roblox Studio<br/>APIs & Data"]
end
subgraph TOOLS ["37+ AI Tools"]
FILE["File System<br/>Trees, Search"]
CONTEXT["Studio Context<br/>Services, Objects"]
PROPS["Properties<br/>Get, Set, Mass Ops"]
CREATE["Object Creation<br/>Single, Mass, Properties"]
PROJECT["Project Analysis<br/>Smart Structure"]
end
AI -->|stdio| MCP
MCP -->|HTTP POST| HTTP
HTTP -->|Queue Request| QUEUE
PLUGIN -->|Poll every 500ms| HTTP
HTTP -->|Pending Work| PLUGIN
PLUGIN -->|Execute APIs| STUDIO
STUDIO -->|Return Data| PLUGIN
PLUGIN -->|HTTP Response| HTTP
HTTP -->|Resolve Promise| MCP
MCP -->|Tool Result| AI
MCP -.->|Exposes| FILE
MCP -.->|Exposes| CONTEXT
MCP -.->|Exposes| PROPS
MCP -.->|Exposes| CREATE
MCP -.->|Exposes| PROJECT
classDef aiStyle fill:#1e40af,stroke:#3b82f6,stroke-width:2px,color:#ffffff
classDef mcpStyle fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:#ffffff
classDef httpStyle fill:#ea580c,stroke:#f97316,stroke-width:2px,color:#ffffff
classDef pluginStyle fill:#059669,stroke:#10b981,stroke-width:2px,color:#ffffff
classDef studioStyle fill:#dc2626,stroke:#ef4444,stroke-width:2px,color:#ffffff
classDef toolStyle fill:#0891b2,stroke:#06b6d4,stroke-width:2px,color:#ffffff
class AI aiStyle
class MCP mcpStyle
class HTTP,QUEUE httpStyle
class PLUGIN pluginStyle
class STUDIO studioStyle
class FILE,CONTEXT,PROPS,CREATE,PROJECT toolStyle
Key Components:
- MCP Server (Node.js/TypeScript) - Exposes 37+ tools via stdio and HTTP
- HTTP Bridge - Request/response queue on localhost:3002
- Studio Plugin (Luau) - Polls server and executes API calls
- Full HTTP API - All tools available via both stdio MCP and HTTP endpoints
37+ AI Tools
File System Tools
get_file_tree- Complete project hierarchy with scripts, models, folderssearch_files- Find files by name, type, or content patterns
Studio Context Tools
get_place_info- Place ID, name, game settings, workspace infoget_services- All Roblox services and their child countssearch_objects- Find instances by name, class, or propertiesget_selection- Get currently selected objects in Studio
Instance & Property Tools
get_instance_properties- Complete property dump for any objectget_instance_children- Child objects with metadatasearch_by_property- Find objects with specific property valuesget_class_info- Available properties/methods for Roblox classes
Property Modification Tools
set_property- Set a property on any Roblox instancemass_set_property- Set the same property on multiple instancesmass_get_property- Get the same property from multiple instancesset_calculated_property- Set properties using mathematical formulasset_relative_property- Modify properties relative to current values
Object Creation & Manipulation Tools
create_object- Create a new Roblox object instancecreate_object_with_properties- Create objects with initial propertiesmass_create_objects- Create multiple objects at oncemass_create_objects_with_properties- Create multiple objects with propertiesdelete_object- Delete a Roblox object instancesmart_duplicate- Duplicate with naming patterns, position offsets, property variationsmass_duplicate- Perform multiple smart duplications at once
Script Editing Tools (v1.9.0)
get_script_source- Read script source code with line numbersset_script_source- Replace entire script sourceedit_script_lines- Replace specific lines without rewriting entire scriptinsert_script_lines- Insert new lines at specific positionsdelete_script_lines- Delete specific lines from scripts
Attribute Tools (v1.9.0)
get_attribute- Get a single attribute valueset_attribute- Set an attribute (supports Vector3, Color3, etc.)get_attributes- Get all attributes on an instancedelete_attribute- Remove an attribute
Tag Tools (CollectionService) (v1.9.0)
get_tags- Get all tags on an instanceadd_tag- Add a tag to an instanceremove_tag- Remove a tag from an instanceget_tagged- Find all instances with a specific tag
Project Analysis Tools
get_project_structure- Smart hierarchy with depth control (recommended: 5-10)
AI-Optimized Features
Mass Operations (v1.3.0)
- Bulk property editing
- Mass object creation
- Batch property reading
- Atomic undo/redo operations
// Example: Set multiple parts to red
mass_set_property(["game.Workspace.Part1", "game.Workspace.Part2"], "BrickColor", "Really red")
Smart Project Structure
- Service overview with child counts
- Path-based exploration:
get_project_structure("game.ServerStorage", maxDepth=5) - Script-only filtering for code analysis
- Intelligent grouping for large folders
- Recommended maxDepth=5-10
Rich Metadata
- Script status tracking
- GUI intelligence
- Performance optimized
Development & Testing
Commands
npm run dev # Development server with hot reload
npm run build # Production build
npm start # Run built server
npm run lint # ESLint code quality
npm run typecheck # TypeScript validation
npm test # Run Jest unit tests
npm run test:e2e # Run Lune E2E tests (requires server running)
npm run test:all # Run all tests
Testing
- Jest Unit Tests - 32 tests covering bridge service, HTTP server, and integration
- Lune E2E Tests - 30 tests verifying all HTTP endpoints work correctly
- Tests ensure full feature parity between stdio MCP and HTTP modes
Plugin Development
- Live reload
- Robust error handling
- Debug logging
- Visual status indicators
Communication Protocol
%%{init: {'theme':'dark', 'themeVariables': {'primaryColor':'#2d3748', 'primaryTextColor':'#ffffff', 'primaryBorderColor':'#4a5568', 'lineColor':'#10b981', 'sectionBkgColor':'#1a202c', 'altSectionBkgColor':'#2d3748', 'gridColor':'#4a5568', 'secondaryColor':'#3b82f6', 'tertiaryColor':'#8b5cf6', 'background':'#1a202c', 'mainBkg':'#2d3748', 'secondBkg':'#374151', 'tertiaryColor':'#6366f1'}}}%%
sequenceDiagram
participant AI as AI Assistant
participant MCP as MCP Server
participant HTTP as HTTP Bridge
participant PLUGIN as Studio Plugin
participant STUDIO as Roblox Studio
Note over AI,STUDIO: Tool Request Flow
AI->>+MCP: Call tool (e.g., get_file_tree)
MCP->>+HTTP: Queue request with UUID
HTTP->>HTTP: Store in pending requests map
HTTP-->>-MCP: Request queued
Note over PLUGIN: Polling every 500ms
PLUGIN->>+HTTP: GET /poll
HTTP->>-PLUGIN: Return pending request + UUID
PLUGIN->>+STUDIO: Execute Studio APIs
Note over STUDIO: game.ServerStorage<br/>Selection:Get()<br/>Instance properties
STUDIO->>-PLUGIN: Return Studio data
PLUGIN->>+HTTP: POST /response with UUID + data
HTTP->>-MCP: Resolve promise with data
MCP->>-AI: Return tool result
Note over AI,STUDIO: Error Handling
alt Request Timeout (30s)
HTTP->>MCP: Reject promise with timeout
MCP->>AI: Return error message
end
alt Plugin Disconnected
PLUGIN->>HTTP: Connection lost
HTTP->>HTTP: Exponential backoff retry
Note over PLUGIN: Status: "Waiting for server..."
end
Features:
- 30-second timeouts with exponential backoff
- Automatic retries
- Response limiting
- Request deduplication
Example Usage
// Get service overview
get_project_structure()
// Explore weapons folder
get_project_structure("game.ServerStorage.Weapons", maxDepth=2)
// Find all Sound objects
search_by_property("ClassName", "Sound")
// Check script dependencies
get_dependencies("game.ServerScriptService.MainScript")
// Find broken references
validate_references()
// Get UI component details
get_instance_properties("game.StarterGui.MainMenu.SettingsFrame")
Configuration
Environment Variables:
MCP_SERVER_PORT- MCP server port (default: stdio)HTTP_SERVER_PORT- HTTP bridge port (default: 3002)PLUGIN_POLL_INTERVAL- Plugin poll frequency (default: 500ms)REQUEST_TIMEOUT- Request timeout (default: 30000ms)
Studio Settings:
- Allow HTTP Requests (Game Settings > Security)
- HttpService.HttpEnabled = true
- Plugin activated via toolbar button
License
MIT License - Feel free to use in commercial and personal projects!
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。