mcpField
R
roblox-studio-mcp

roblox-studio-mcp

本地服务
github.com/Justice219开发工具237 周前更新

关于 roblox-studio-mcp

roblox-studio-mcp 是一个 MCP 服务,可让编码助手检查和编辑 Roblox Studio 的 DataModel。其 14 个工具通过本地 HTTP 桥接和 Studio 插件运行,写入操作可在 Studio 中撤销。

主要功能

  1. 01读取 DataModel 层级与属性
  2. 02搜索实例并查看服务
  3. 03创建、编辑、移动、克隆和删除实例
  4. 04管理 Studio 选择项
  5. 05在插件上下文中执行 Luau
  6. 06通过 ChangeHistoryService 撤销写入

适用场景

  1. 01检查 Roblox 游戏的层级和属性
  2. 02通过助手工作流创建或修改实例
  3. 03按类名或名称模式查找实例
  4. 04在 Studio 插件中运行可信 Luau 代码

MCP 相关

该服务通过 MCP stdio 向 MCP 客户端提供 14 个工具,并经由绑定到 localhost 的 HTTP 桥接与 Roblox Studio 插件通信。插件对 DataModel 执行命令并返回结果。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"justice219-roblox-studio": {
"command": "npx",
"args": [
"-y",
"@jamesworkbenchcrm/roblox-studio-mcp"
],
"env": {
"MCP_BRIDGE_PORT": "<MCP_BRIDGE_PORT>"
}
}
}
}
启动命令npx -y @jamesworkbenchcrm/roblox-studio-mcp
需要配置的环境变量
MCP_BRIDGE_PORTHTTP bridge port for Studio plugin communication

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@jamesworkbenchcrm/roblox-studio-mcp1.0.1

工具

14

收录的工具列表 · 更新于 2 周前

参数类型必填说明
pathstring是实例的点号表示法路径(例如 "game.Workspace"、"game.ServerStorage.Items")
maxDepthnumber否遍历的最大深度(默认:不限制)

详细介绍

Roblox Studio MCP Bridge

一种 模型上下文协议(MCP) 服务,可将 Claude Code 等 AI 编码助手直接连接到 Roblox Studio。可在终端中读取、创建、修改和删除 DataModel 中的实例。

工作原理

Claude Code (MCP Client)
        |
   MCP Server (stdio)
        |
   HTTP Bridge (localhost:3001)
        |
   Studio Plugin (polls every 200ms)
        |
   Roblox Studio DataModel

该桥接分为两部分:

  1. MCP 服务端(TypeScript)——在本地运行,通过 MCP 经由 stdio 提供 14 个工具,并在 localhost:3001 提供 HTTP API
  2. Studio 插件(Luau)——轮询 HTTP API 获取命令,针对 DataModel 执行命令并返回结果

所有写入操作都通过 ChangeHistoryService 封装,因此可以在 Studio 中使用 Ctrl+Z 撤销每项更改。

可用工具

工具类型描述
get_descendants读取获取所有后代及其路径,可选 maxDepth
get_children读取获取实例的直接子级
get_properties读取获取实例的序列化属性
find_instances读取按 className 和/或 namePattern 搜索
get_services读取列出所有 DataModel 服务
get_selection读取获取 Studio 中当前选中的实例
create_instance写入使用指定属性创建新 Instance
set_properties写入修改现有实例的属性
delete_instance写入销毁实例(支持撤销)
clone_instance写入将实例克隆到新的父级
move_instance写入更改实例的父级
set_selection写入设置 Studio 中的选区
insert_service写入通过 game:GetService() 插入服务
execute_luau写入在插件上下文中执行任意 Luau 代码

路径使用以 game 开头的点号表示法,例如 game.Workspace.SpawnLocation。

前置条件

  • Node.js 18+
  • Roblox Studio
  • Rojo 7+(aftman 或独立安装)

安装

1. 克隆仓库
git clone https://github.com/Justice219/roblox-studio-mcp.git
cd roblox-studio-mcp
2. 安装依赖并构建
npm install
npm run build

也可以直接从 npm 安装:

npm install -g @jamesworkbenchcrm/roblox-studio-mcp
3. 构建并安装 Studio 插件

使用 Rojo:

rojo build plugin.project.json -o MCPBridge.rbxmx

然后将插件文件复制到 Roblox 插件文件夹:

操作系统路径
macOS~/Documents/Roblox/Plugins/MCPBridge.rbxmx
Windows%LOCALAPPDATA%\Roblox\Plugins\MCPBridge.rbxmx

也可以直接构建到插件文件夹:

# macOS
rojo build plugin.project.json -o ~/Documents/Roblox/Plugins/MCPBridge.rbxmx

# Windows
rojo build plugin.project.json -o "%LOCALAPPDATA%\Roblox\Plugins\MCPBridge.rbxmx"
4. 在 Studio 中启用 HttpService

打开 Roblox Studio,然后依次选择:

Home → Game Settings → Security → Allow HTTP Requests → ON

插件需要此设置才能与本地 MCP 服务通信。

5. 配置 MCP 客户端

将服务添加到 MCP 客户端配置中。

Claude Code(~/.claude/settings.json):

{
  "mcpServers": {
    "roblox-studio": {
      "command": "node",
      "args": ["/absolute/path/to/roblox-studio-mcp/dist/index.js"]
    }
  }
}

Claude Desktop(claude_desktop_config.json):

{
  "mcpServers": {
    "roblox-studio": {
      "command": "node",
      "args": ["/absolute/path/to/roblox-studio-mcp/dist/index.js"]
    }
  }
}

将 /absolute/path/to/ 替换为克隆仓库的实际路径。

6. 重启 Studio 和 MCP 客户端
  • 重启 Roblox Studio(或重新加载插件)——工具栏中应会出现“MCP Bridge”按钮
  • 重启 Claude Code/MCP 客户端
  • 连接成功后,插件状态小组件会显示一个绿色圆点

使用方法

连接后,AI 助手即可直接操作 Studio:

"Create a Part named SpawnPad in Workspace at position 0, 5, 0"
"Get all children of ServerScriptService"
"Find all instances with className RemoteEvent"
"Set the BrickColor of game.Workspace.SpawnPad to Bright green"

助手会使用 MCP 工具读取 DataModel、创建实例、设置属性等,所有更改都会实时反映在 Studio 中,并且完全支持撤销。

配置

环境变量默认值描述
MCP_BRIDGE_PORT3001HTTP 桥接端口
MCP_BRIDGE_PORT=4000 npm start

开发

# Watch mode — recompiles on file changes
npm run dev

# Type-check without emitting
npm run typecheck

# Build
npm run build

# Start the server
npm start

架构

src/
├── index.ts           # Entry point — wires up all components
├── types.ts           # Interfaces, constants, command type definitions
├── mcp-server.ts      # MCP tool definitions (14 tools with Zod validation)
├── http-bridge.ts     # Express HTTP server (poll/result/heartbeat endpoints)
└── command-queue.ts   # In-memory command queue with timeout management

plugin/
├── init.server.luau   # Plugin entry point — polling loop, UI, toolbar
└── modules/
    ├── CommandRouter.luau  # Dispatches commands to handlers
    ├── HttpClient.luau     # HTTP requests to the bridge
    ├── PathResolver.luau   # Dot-notation path ↔ Instance resolution
    └── Serializer.luau     # Roblox type ↔ JSON serialization

安全

  • HTTP 桥接仅绑定到 127.0.0.1——绝不会暴露到网络
  • 写入操作通过 ChangeHistoryService 封装,以支持撤销
  • 命令在 30 秒后超时
  • 连接需要每 10 秒发送一次心跳
  • execute_luau 会在插件上下文中执行代码,且没有沙箱保护——仅对可信输入使用

支持的 Roblox 类型

序列化器支持以下类型的双向转换:

Vector3 · Vector2 · CFrame · Color3 · BrickColor · UDim · UDim2 · Rect · NumberSequence · ColorSequence · NumberRange · Enum · Instance · Font · PhysicalProperties · Ray

所有类型都使用 { _type: "TypeName", ... } JSON 格式,以实现无损往返转换。

故障排除

插件显示红点 /“已断开连接”

  • 确保 MCP 服务正在运行(npm start)
  • 检查 Studio 中是否已启用 HttpService
  • 确认端口匹配(默认值为 3001)

Claude Code 中出现“插件未连接”错误

  • 打开 Studio,检查 MCP Bridge 工具栏按钮是否已启用
  • 插件会在加载时自动启动——尝试重新加载插件
  • 检查 Studio 的 Output 窗口是否有错误消息

端口已被占用

  • 可能有另一个实例正在运行。结束该实例或使用其他端口:
    MCP_BRIDGE_PORT=4000 npm start
    

npm

npm install -g @jamesworkbenchcrm/roblox-studio-mcp

https://www.npmjs.com/package/@jamesworkbenchcrm/roblox-studio-mcp

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。