将Roblox Studio连接到AI编码编辑器(如Cursor、Windsurf、Claude等)通过模型上下文协议(MCP),使AI辅助游戏开发在您的Roblox Studio环境中成为可能。
该项目由两个主要部分组成:
roblox_mcp_plugin/src/Plugin.server.lua)。它轮询本地Python服务器获取命令,在Studio上下文中执行这些命令(操纵实例、读取属性、执行Luau),并将结果和Studio日志返回给服务器。这允许通过MCP连接的AI代理理解并与其实时Roblox Studio会话进行交互。
1. 先决条件:
uv 包管理器(安装uv)。强烈推荐用于更快的依赖管理。2. 克隆仓库:
git clone https://github.com/majidmanzarpour/vibe-blocks-mcp
cd vibe-blocks-mcp
3. 安装依赖:
使用uv(推荐):
uv pip sync pyproject.toml
或者使用pip:
pip install -r requirements.lock # 或者根据需要从pyproject.toml创建requirements.txt
4. 配置环境(可选 - 用于云功能):
cp .env.example .env
.env文件:
"YOUR_API_KEY_HERE"替换为您的Roblox API密钥。ROBLOX_UNIVERSE_ID的0替换为您自己的宇宙ID。ROBLOX_PLACE_ID的0替换为目标地点ID。.env文件。 服务器仍然可以运行,但与云相关的工具将返回错误。5. 在Roblox Studio中安装伴随插件:
roblox_mcp_plugin目录并运行:
rojo build default.project.json --output VibeBlocksMCP_Companion.rbxm
这将创建一个VibeBlocksMCP_Companion.rbxm文件,或者您可以使用仓库中提供的文件。%LOCALAPPDATA%\Roblox\Plugins~/Documents/Roblox/Plugins(您可能需要在Finder中使用Cmd+Shift+G并粘贴路径导航到那里,或者点击Roblox Studio中的插件文件夹)。VibeBlocksMCP_Companion.rbxm文件移动或复制到此插件文件夹中。http://localhost:8000/plugin_command。如果您更改了服务器端口,您需要更新Lua脚本顶部的SERVER_URL变量(roblox_mcp_plugin/src/Plugin.server.lua)并重新构建插件。6. 运行Python服务器:
chmod +x server.sh
./server.sh
uvicorn(如有必要),并在日志中显示正在http://localhost:8000运行。7. 从MCP客户端连接(例如,Cursor):
文件 > 设置 > MCP(或Mac上的代码 > 设置 > MCP)。http://localhost:8000/sse(确保包含末尾的/sse)。{
"mcpServers": {
"Vibe Blocks MCP": {
"url": "http://localhost:8000/sse"
}
}
}
一旦服务器运行,插件安装在Studio中,并且您的MCP客户端已连接,您可以通过AI与您的Studio会话进行交互。
向代理(如果您的客户端需要提及工具,例如list_children)发出指令,请求其执行操作。
示例提示:
print(game:GetService('Lighting').ClockTime)”ClockTime属性设置为14。”(工具要么直接与Studio插件交互,要么与Roblox Open Cloud API交互)
Studio插件工具(实时交互):
get_property:从Studio中的对象检索特定属性的值。list_children:检索Studio中对象的直接子项。find_instances:根据类名或名称在指定根内查找实例。create_instance:在Studio中创建一个新的实例(部件、模型、脚本等)。delete_instance:从Studio场景中删除对象。set_property:在Studio中的对象上设置特定属性(使用JSON字符串作为值)。set_primary_part:设置模型的PrimaryPart属性。move_instance:将对象(模型或基本部件)移动到Studio中的新位置。clone_instance:在Studio中克隆现有对象。create_script:在Studio中创建一个新的脚本或局部脚本实例,带有提供的代码。edit_script:编辑Studio中现有脚本或局部脚本的源代码。delete_script:删除Studio中的现有脚本或局部脚本实例。set_environment:在Studio中设置环境服务(光照或地形)的属性。spawn_npc:在Studio中生成NPC,通过插入资产ID的模型或克隆现有模板模型。play_animation:在目标对象的人形或动画控制器上加载并播放动画。execute_luau_in_studio:通过插件在LIVE Studio会话中执行任意Luau脚本,并捕获输出/返回值/错误。modify_children:找到匹配可选过滤条件(名称/类)的直接子项,并在其上设置指定属性。get_studio_logs:通过插件从Roblox Studio输出窗口检索最近的日志。Open Cloud API工具(可选 - 需要.env设置):
execute_luau_in_cloud:通过Roblox Cloud API执行任意Luau脚本(在单独的云环境中运行,而不是实时Studio)。list_datastores_in_cloud:通过Cloud API列出标准数据存储。get_datastore_value_in_cloud:通过Cloud API从标准数据存储中获取条目的值。set_datastore_value_in_cloud:通过Cloud API在标准数据存储中设置条目的值。delete_datastore_value_in_cloud 通过Cloud API从标准数据存储中删除条目。upload_asset_via_cloud:通过Cloud API从本地系统上传文件作为新的Roblox资产。publish_place_via_cloud:通过Cloud API发布指定地点。get_asset_details_via_cloud:(未实现)通过Cloud API获取特定资产的详细信息。list_user_assets_via_cloud:(未实现)通过Cloud API列出认证用户拥有的资产。send_chat_via_cloud:通过Cloud API(执行Luau)发送消息到游戏中聊天。teleport_player_via_cloud:通过Cloud API(执行Luau)传送玩家。内部/排队工具:
queue_studio_command:(低级)为Studio插件排队单个原始命令字典。queue_studio_command_batch:(低级)为Studio插件排队一批原始命令字典。uv。检查终端中的错误消息。确保已安装依赖项(uv pip sync pyproject.toml)。SERVER_URL是否与服务器地址和端口匹配(默认http://localhost:8000/plugin_command)。检查Studio的输出窗口中的插件脚本错误。http://localhost:8000/sse)输入正确。.env文件。确保您的API密钥具有尝试使用的特定云API所需的权限。