Roblox Studio MCP Server 是一个强大的 MCP(模型上下文协议)服务器,它使 AI 助手能够全面访问 Roblox Studio 项目。借助 18 种专业的 AI 工具,包括用于批量编辑的批量操作功能,用户可以探索游戏架构、分析脚本、调试问题并深入理解复杂的 Roblox 项目。
Claude Code 用户:
claude mcp add robloxstudio -- npx -y robloxstudio-mcp
其他 MCP 客户端(如 Claude Desktop 等):
{
"mcpServers": {
"robloxstudio-mcp": {
"command": "npx",
"args": ["-y", "robloxstudio-mcp"],
"description": "Advanced Roblox Studio integration for AI assistants"
}
}
}
MCP 服务器需要一个配套的 Roblox Studio 插件,你可以通过以下方式进行安装:
Roblox 创作者商店(最简单 ⭐):
手动下载:
%LOCALAPPDATA%/Roblox/Plugins 文件夹中。高级设置:
安装完成后:
这是一个将 Roblox Studio 与 AI 助手连接起来的双组件系统:
%%{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 环境"]
AI["🤖 AI 助手
Claude Code/Desktop"]
MCP["📡 MCP 服务器
Node.js + TypeScript"]
end
subgraph COMM_LAYER ["🔗 通信层"]
HTTP["🌐 HTTP 桥接
localhost:3002"]
QUEUE["📋 请求队列
UUID 跟踪"]
end
subgraph STUDIO_ENV ["🎮 Roblox Studio 环境"]
PLUGIN["🎮 工作室插件
Luau 脚本"]
STUDIO["🎯 Roblox Studio
API 与数据"]
end
subgraph TOOLS ["🛠️ 18 种 AI 工具"]
FILE["📁 文件系统
树状结构、搜索"]
CONTEXT["🎯 工作室上下文
服务、对象"]
PROPS["🔍 属性
获取、设置、批量操作"]
CREATE["🏗️ 对象创建
单个、批量、属性设置"]
PROJECT["🏢 项目分析
智能结构"]
end
AI -->|stdio| MCP
MCP -->|HTTP POST| HTTP
HTTP -->|队列请求| QUEUE
PLUGIN -->|每 500ms 轮询一次| HTTP
HTTP -->|待处理工作| PLUGIN
PLUGIN -->|执行 API| STUDIO
STUDIO -->|返回数据| PLUGIN
PLUGIN -->|HTTP 响应| HTTP
HTTP -->|解析承诺| MCP
MCP -->|工具结果| AI
MCP -.->|暴露| FILE
MCP -.->|暴露| CONTEXT
MCP -.->|暴露| PROPS
MCP -.->|暴露| CREATE
MCP -.->|暴露| 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
get_file_tree:获取包含脚本、模型和文件夹的完整项目层次结构。search_files:按名称、类型或内容模式查找文件。get_place_info:获取地点 ID、名称、游戏设置和工作区信息。get_services:获取所有 Roblox 服务及其子项数量。search_objects:按名称、类或属性查找实例。get_instance_properties:获取任何对象的完整属性转储。get_instance_children:获取带有元数据(脚本、GUI 类型等)的子对象。search_by_property:查找具有特定属性值的对象。get_class_info:获取 Roblox 类的可用属性/方法。set_property:设置任何 Roblox 实例的属性。mass_set_property:🆕 新增! 一次性为多个实例设置相同的属性。mass_get_property:🆕 新增! 一次性从多个实例获取相同的属性。create_object:创建一个新的 Roblox 对象实例(基本操作)。create_object_with_properties:🆕 新增! 创建带有初始属性的对象。mass_create_objects:🆕 新增! 一次性创建多个对象(基本操作)。mass_create_objects_with_properties:🆕 新增! 创建多个带有属性的对象。delete_object:删除一个 Roblox 对象实例。get_project_structure:🔥 增强版! 具有改进的深度控制功能的智能层次结构(建议深度为 5 - 10)。⚠️ 注意:之前的工具如
get_file_content、get_file_properties、get_selection、get_dependencies和validate_references已被移除。建议使用 Rojo/Argon 工作流或文件系统读取以获得更好的性能。
示例用例:
// 将工作区中的所有部件设置为红色
mass_set_property(["game.Workspace.Part1", "game.Workspace.Part2"], "BrickColor", "Really red")
// 创建 10 个带有属性的部件
mass_create_objects_with_properties([
{className: "Part", parent: "game.Workspace", name: "RedPart", properties: {BrickColor: "Really red"}},
{className: "Part", parent: "game.Workspace", name: "BluePart", properties: {BrickColor: "Really blue"}}
])
get_project_structure("game.ServerStorage", maxDepth = 5)scriptsOnly = true 用于代码分析。// 获取服务概述
get_project_structure()
// 探索武器文件夹
get_project_structure("game.ServerStorage.Weapons", maxDepth = 2)
// 查找所有 Sound 对象
search_by_property("ClassName", "Sound")
// 检查脚本依赖项
get_dependencies("game.ServerScriptService.MainScript")
// 查找损坏的引用
validate_references()
// 获取 UI 组件详细信息
get_instance_properties("game.StarterGui.MainMenu.SettingsFrame")
npm run dev # 带有热重载的开发服务器
npm run build # 生产构建
npm start # 运行构建后的服务器
npm run lint # ESLint 代码质量检查
npm run typecheck # TypeScript 验证
%%{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 助手
participant MCP as 📡 MCP 服务器
participant HTTP as 🌐 HTTP 桥接
participant PLUGIN as 🎮 工作室插件
participant STUDIO as 🎯 Roblox Studio
Note over AI,STUDIO: 🚀 工具请求流程
AI->>+MCP: 调用工具(例如,get_file_tree)
MCP->>+HTTP: 使用 UUID 对请求进行排队
HTTP->>HTTP: 存储在待处理请求映射中
HTTP-->>-MCP: 请求已排队 ✅
Note over PLUGIN: 🔄 每 500ms 轮询一次
PLUGIN->>+HTTP: GET /poll
HTTP->>-PLUGIN: 返回待处理请求 + UUID
PLUGIN->>+STUDIO: 执行 Studio API
Note over STUDIO: 🎯 game.ServerStorage
📋 Selection:Get()
🔍 实例属性
STUDIO->>-PLUGIN: 返回 Studio 数据 📊
PLUGIN->>+HTTP: POST /response 并附带 UUID + 数据
HTTP->>-MCP: 使用数据解析承诺
MCP->>-AI: 返回工具结果 🎉
Note over AI,STUDIO: ⚠️ 错误处理
alt 请求超时(30 秒)
HTTP->>MCP: 因超时而拒绝承诺 ⏰
MCP->>AI: 返回错误消息 ❌
end
alt 插件断开连接
PLUGIN->>HTTP: 连接丢失 🔌
HTTP->>HTTP: 指数退避重试 🔄
Note over PLUGIN: 状态:“等待服务器...” ⏳
end
特性:
环境变量:
MCP_SERVER_PORT:MCP 服务器端口(默认:标准输入输出)。HTTP_SERVER_PORT:HTTP 桥接端口(默认:3002)。PLUGIN_POLL_INTERVAL:插件轮询频率(默认:500 毫秒)。REQUEST_TIMEOUT:请求超时时间(默认:30000 毫秒)。Studio 设置:
mass_set_property - 批量属性修改。mass_get_property - 批量属性读取。create_object_with_properties - 带有初始属性的对象创建。mass_create_objects - 批量对象创建。mass_create_objects_with_properties - 带有属性的批量创建。get_project_structure 改进了深度参数文档。get_file_content、get_file_properties、get_selection、get_dependencies、validate_references(建议使用 Rojo/Argon 工作流代替)。set_property 工具,用于实例修改。create_object 和 delete_object 工具。本项目采用 MIT 许可证,你可以自由地将其用于商业和个人项目!