YippieBlox MCP服务器
一个MCP(模型上下文协议)服务器,连接AI编码助手,如 克劳德代码 随着 Roblox工作室它允许AI代理执行Luau代码、管理撤销检查点、控制播放测试、模拟输入、捕获屏幕截图和流式日志——所有这些都可以在Studio中完成。
建筑
Claude Code (AI client)
│ MCP over STDIO (JSON-RPC 2.0)
▼
┌────────────────────────────┐
│ Rust MCP Server │
│ • stdin/stdout ↔ MCP │
│ • localhost HTTP bridge │
└────────────────────────────┘
│ HTTP on 127.0.0.1:3334
▼
┌────────────────────────────┐
│ Roblox Studio Plugin │
│ • Polls for tool requests │
│ • Executes inside Studio │
│ • Pushes results back │
└────────────────────────────┘先决条件
- Roblox工作室 --已安装并能够打开场所
快速开始
1.下载服务器二进制+插件
从下载最新版本 ****:
| 平台 | 文件 |
|---|---|
| macOS(苹果硅) | yippieblox-mcp-server-macos-arm64.tar.gz |
| macOS(英特尔) | yippieblox-mcp-server-macos-x64.tar.gz |
| Linux(x64) | yippieblox-mcp-server-linux-x64.tar.gz |
| Windows(x64) | yippieblox-mcp-server-windows-x64.zip |
| 工作室插件 | YippieBlox.rbxmx |
提取服务器二进制文件并将其放置在PATH中的某个位置,或者为MCP配置记录其位置。
Build from source instead
需要 防锈工具链.
# Build the server
cd server && cargo build --release
# Binary is at server/target/release/roblox-studio-yippieblox-mcp-server
# Build the plugin
cd plugin && ./build_plugin.sh2.安装Studio插件
复制 YippieBlox.rbxmx 到您的Studio插件目录:
macOS:
cp YippieBlox.rbxmx ~/Documents/Roblox/Plugins/YippieBlox.rbxmxWindows(PowerShell):
Copy-Item YippieBlox.rbxmx "$env:LOCALAPPDATA\Roblox\Plugins\YippieBlox.rbxmx"3.在Studio中启用HTTP请求
- 在Roblox工作室开一个地方
- 首选 游戏设置 → 安全
- 启用 允许HTTP请求
4.启动服务器
# With a specific token:
YIPPIE_TOKEN=mysecrettoken ./server/target/release/roblox-studio-yippieblox-mcp-server
# Or let the server generate a random token (printed to stderr):
./server/target/release/roblox-studio-yippieblox-mcp-server5.连接插件
- 在Studio中,打开 YippieBlox MCP dock小部件(出现在底部)
- 设置服务器URL(默认值:
http://localhost:3334) - 从服务器输出粘贴身份验证令牌
- 点击 连接
6.连接您的AI客户端
克劳德代码(CLI)
从项目目录运行以下命令:
claude mcp add roblox-studio-yippieblox \
--env YIPPIE_TOKEN=mysecrettoken \
--env YIPPIE_PORT=3334 \
-- /absolute/path/to/server/target/release/roblox-studio-yippieblox-mcp-server --stdio或者手动添加到项目的 .mcp.json (或 ~/.claude.json 全球):
{
"mcpServers": {
"roblox-studio-yippieblox": {
"command": "/absolute/path/to/server/target/release/roblox-studio-yippieblox-mcp-server",
"args": ["--stdio"],
"env": {
"YIPPIE_TOKEN": "mysecrettoken",
"YIPPIE_PORT": "3334"
}
}
}
}然后重新启动Claude Code。这 studio-* 工具将可用。
克劳德桌面
打开 设置→ 开发者→ 编辑配置,或直接编辑配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
添加以下内容:
{
"mcpServers": {
"roblox-studio-yippieblox": {
"command": "/absolute/path/to/server/target/release/roblox-studio-yippieblox-mcp-server",
"args": ["--stdio"],
"env": {
"YIPPIE_TOKEN": "mysecrettoken",
"YIPPIE_PORT": "3334"
}
}
}
}保存后重新启动Claude Desktop。这 studio-* 工具将出现在工具选择器中。
配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
YIPPIE_PORT | 3334 | HTTP网桥端口 |
YIPPIE_TOKEN | (自动生成) | 身份验证的承载令牌 |
YIPPIE_CAPTURE_DIR | .roblox-captures/ | 截图保存目录 |
MCP工具
所有工具的名称间隔如下 studio-*。有关完整描述、参数模式和使用示例,请参阅 improve_tool_descriptions.md.
脚本执行
| 工具 | 何时使用 |
|---|---|
studio-run_script | 处决卢 仅限编辑模式 要修改位置,请检查DataModel,或创建/修改实例。在游戏测试期间不工作。 |
studio-test_script | 在一个 现场游戏测试 测试游戏逻辑、玩家、物理、运行时行为。自动启动播放测试,捕获日志/错误,停止播放测试,返回结果。 |
我该用哪一个? 使用 run_script 更改位置文件(添加零件、编辑属性、检查树)。使用 test_script 测试事物在运行时的行为(游戏逻辑、玩家交互、物理)。
检查点管理(撤消/重做)
| 工具 | 说明 |
|---|---|
studio-checkpoint_begin | 开始跟踪更改。返回a checkpointId --保存它 |
studio-checkpoint_end | 使用提交更改 checkpointId 从一开始。 |
studio-checkpoint_undo | 撤消最近提交的检查点。 |
典型工作流程: checkpoint_begin → run_script (进行更改)→ checkpoint_end → checkpoint_undo (如果需要)。
播放测试控制
| 工具 | 说明 |
|---|---|
studio-playtest_play | 启动播放模式(F5)——客户端+服务器,玩家角色生成。virtualuser/NPC工具需要。 |
studio-playtest_run | 开始运行模式(F8)--仅限服务器,无播放器。仅服务器测试更快。 |
studio-playtest_stop | 停止任何活动的播放测试并返回编辑模式。 |
studio-status | 检查连接状态以及播放测试是否处于活动状态。 |
日志流
| 工具 | 说明 |
|---|---|
studio-logs_subscribe | 开始捕获print()、错误和警告。打电话之前 logs_get. |
studio-logs_get | 获取缓冲日志条目。需要主动订阅。 |
studio-logs_unsubscribe | 停止捕获并清除缓冲区。完成后总是打电话。 |
玩家控制(仅限游戏模式)
这些工具需要主动的播放模式播放测试(studio-playtest_play).
| 工具 | 说明 |
|---|---|
studio-virtualuser_key | 按住/松开键(W/A/S/D、空格、Shift)以移动玩家角色。钥匙在释放之前一直保持不变。 |
studio-virtualuser_mouse_button | 从角色进行光线投射,以检测世界对象/与世界对象交互。报告命中信息。 |
studio-virtualuser_move_mouse | 设置玩家角色的朝向(水平旋转)。 |
NPC控制(仅限播放模式)
| 工具 | 说明 |
|---|---|
studio-npc_driver_start | 开始使用Humanoid控制任何模型。返回a driverId. |
studio-npc_driver_command | 发送命令: move_to, jump, wait, set_walkspeed, look_at.使用 driverId. |
studio-npc_driver_stop | 停止控制NPC并释放驱动器。 |
禁用工具
这些已注册,但 不起作用的 由于Roblox API的限制。不要使用它们。
| 工具 | 原因 |
|---|---|
studio-capture_screenshot | CaptureService返回无法提取为文件的rbxtemp://内容ID |
studio-capture_video_start/stop | CaptureService不公开视频录制API |
捕获文件夹
屏幕截图保存到捕获目录(默认: .roblox-captures/ 在工作目录中)。一 index.json 文件使用元数据跟踪所有捕获。
Claude Code读取捕获文件,您必须在权限中分配捕获文件夹。使用 /permissions 在Claude Code中添加捕获目录路径。代理不应请求广泛的文件系统访问权限,而应仅请求特定的捕获文件夹。
如果捕获文件夹在仓库之外(例如。 ~/Pictures/RobloxCaptures/),在macOS上,操作系统级文件夹访问可能需要用户批准。
冒烟测试
设置后,验证一切正常:
1. Start the Rust server
2. Open Studio, install plugin, connect with token
3. From Claude Code (or any MCP client), run these tool calls:
studio-status
→ Should show connected: true
studio-logs_subscribe({ includeHistory: true })
→ Should return ok with log history
studio-run_script({ code: "print('Hello from MCP!') return 42" })
→ Should return value: "42" and the print appears in Studio Output
studio-checkpoint_begin({ name: "Test checkpoint" })
studio-run_script({ code: "local p = Instance.new('Part', workspace) p.Name = 'MCPTestPart'" })
studio-checkpoint_end({ checkpointId: "" })
studio-checkpoint_undo({})
→ MCPTestPart should disappear from workspace
studio-test_script({ code: "print('Hello from playtest!') return workspace:GetChildren()" })
→ Should return success: true, value, and captured logs
studio-playtest_run({})
→ Studio should enter Run mode (F8)
studio-playtest_stop({})
→ Studio should return to Edit mode
studio-logs_unsubscribe({})安全说明
- HTTP网桥绑定到
127.0.0.1仅 --无法从网络访问它 - A. 持有者令牌 所有网桥端点都需要(除了
/health) - 切勿公开暴露桥口 --它仅设计用于本地主机通信
- 服务器仅将文件写入配置的捕获目录
- 身份验证令牌不应提交到版本控制中——使用环境变量
调试CLI
A. mcpctl 包含用于调试的辅助二进制文件:
# Check server health
cargo run --bin mcpctl -- health
# Show connection status
YIPPIE_TOKEN=mysecrettoken cargo run --bin mcpctl -- status
# List captures
cargo run --bin mcpctl -- captures --dir .roblox-captures项目结构
/CLAUDE.md Project instructions for AI agents
/README.md This file
/improve_tool_descriptions.md Source of truth for MCP tool descriptions
/server/
Cargo.toml Rust dependencies
src/
main.rs Entry point
mcp_stdio.rs MCP JSON-RPC over stdin/stdout
bridge_http.rs HTTP bridge for plugin
state.rs Shared state
config.rs Configuration
types.rs All data types
captures.rs Capture file management
bin/mcpctl.rs Debug CLI
/plugin/
build_plugin.sh Builds YippieBlox.rbxmx from source
YippieBlox/ Plugin source (Luau modules)
init.server.lua Plugin entry point
bridge.lua HTTP bridge client
tools/ Tool handler modules
ui/ Widget and command trace
util/ Ring buffer, helpers