Roblox云服务管理工具

一个封装Roblox开放云服务的MCP服务器,为AI代理提供类型化工具,用于管理游戏体验、执行Luau脚本、读写数据存储等。

  • by kevinswint
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 kevinswint/roblox-opencloud-mcp-server

使用说明

Roblox开放云MCP服务器

一个生产形状MCP(模型上下文协议)服务器,它封装了 公共Roblox Open Cloud表面作为AI代理的键入工具。用它 管理体验、无头运行Luau、读写数据存储 和内存商店,运送货币化产品,处理审核, 从Claude Code内部发送体验通知等, Claude Desktop、Cursor或任何兼容MCP的客户端。

v0.1.1 — 96工具 穿过 18个域名. 搭配战略 限制.md 那张地图 Open Cloud表面的程序差距。服务器是 对于告诉你你的事情很有用 不能 从Roblox外面做 尽你所能。


快速入门(5分钟)

# 1. Clone and build
git clone https://github.com/kevinswint/roblox-opencloud-mcp-server.git
cd roblox-opencloud-mcp-server
npm install
npm run build

# 2. Create an API key at
#    https://create.roblox.com/dashboard/credentials
#    with the scopes you need (see "Scopes" below)

# 3. Register with Claude Code (stdio transport)
claude mcp add roblox-opencloud-mcp \
  -e ROBLOX_API_KEY=your_key_here \
  -- node "$(pwd)/dist/index.js"

# 4. Verify — lists every registered tool
npm run list-tools

现在,您应该可以向Claude Code询问以下问题:

“从中提取用户12345的最后5个数据存储条目 UserProgress 存储在宇宙123456中。”

无需手动点击Creator Hub即可实现。

看 演示.md 对于11个端到端代理流,您可以复制粘贴。


运输方式

标准 (默认,建议用于本地桌面客户端):

ROBLOX_API_KEY=your_key node dist/index.js

超文本传输协议 (用于远程多客户端访问):

TRANSPORT=http ROBLOX_API_KEY=your_key PORT=3000 node dist/index.js
# Server listens on http://localhost:3000/mcp
# Health check: http://localhost:3000/health

两种模式均由官方提供动力 @modelcontextprotocol/sdk — 没有定制运输。通过翻转来交换它们 TRANSPORT.


配置

环境变量 必需 默认 目的
ROBLOX_API_KEY ✅ — 从创建者中心打开云API密钥
TRANSPORT stdio stdio 或 http
PORT 3000 仅在以下情况下使用 TRANSPORT=http

工具索引(96个工具)

跑 npm run list-tools 从源重新生成此列表 真相。下面是手动分组视图。

卢执行(2)

工具 它做什么
roblox_execute_luau 针对某个地点提交Luau脚本并返回任务路径
roblox_get_luau_task 轮询Luau任务,直到 COMPLETE 并读取其输出

数据存储(7)

工具 它做什么
roblox_list_data_stores 列出宇宙中的所有数据存储
roblox_list_data_store_entries 列出商店中的条目(密钥)
roblox_get_data_store_entry 按键读取单个条目
roblox_set_data_store_entry 创建或更新条目
roblox_delete_data_store_entry 删除条目
roblox_increment_data_store_entry 原子添加到数字条目中
roblox_list_data_store_entry_revisions 列出以前的修订版本以供审核/回滚

有序数据存储(6)

工具 它做什么
roblox_list_ordered_data_store_entries 按值排序的列表条目
roblox_get_ordered_data_store_entry 读取单个有序条目
roblox_create_ordered_data_store_entry 创建新的订单条目
roblox_update_ordered_data_store_entry 更新已排序条目的值
roblox_increment_ordered_data_store_entry 原子碰撞一个数值
roblox_delete_ordered_data_store_entry 删除已排序的条目

存储器(10)

工具 它做什么
roblox_memory_store_queue_add 使用可选优先级+到期时间对项目进行排队
roblox_memory_store_queue_read 使用不可见窗口取消项目队列
roblox_memory_store_queue_discard 丢弃以前读取的项目
roblox_list_memory_store_sorted_map_items 列出排序后的地图条目
roblox_get_memory_store_sorted_map_item 获取一个已排序的地图条目
roblox_create_memory_store_sorted_map_item 创建新的排序地图条目
roblox_update_memory_store_sorted_map_item 更新现有的已排序地图条目
roblox_delete_memory_store_sorted_map_item 删除已排序的地图条目
roblox_flush_memory_store 清空整个内存存储(异步操作)
roblox_get_memory_store_operation 轮询内存存储中长时间运行的操作

消息传递(1)

工具 它做什么
roblox_publish_message 使用Messaging v2发布到主题(v1回退)

体验与场所管理(5)

工具 它做什么
roblox_get_universe 读取体验元数据
roblox_update_universe 补丁体验设置(名称、可见性、语音等)
roblox_restart_servers 强制重新启动所有正在运行的服务器
roblox_get_place 读取地点元数据
roblox_update_place 补丁位置设置

货币化——开发者产品和游戏通行证(8)

工具 它做什么
roblox_list_developer_products 列出宇宙中的所有开发人员产品
roblox_create_developer_product 创建新的开发人员产品
roblox_get_developer_product 阅读一个开发者产品
roblox_update_developer_product 更新开发人员产品(价格、名称、描述)
roblox_list_game_passes 列出所有游戏通行证
roblox_create_game_pass 创建新的游戏通行证
roblox_get_game_pass 阅读一张游戏通行证
roblox_update_game_pass 更新游戏通行证(价格、名称、描述、待售)

创造者商店产品(2)

工具 它做什么
roblox_get_creator_store_product 阅读Creator Store产品
roblox_update_creator_store_product 更新元数据或基础价格

配置(佐治亚州2026年3月10日)(8)

工具 它做什么
roblox_get_config 读取当前发布的配置
roblox_get_config_draft 阅读未发表的草稿
roblox_update_config_draft 将部分数据合并到草稿中
roblox_replace_config_draft 覆盖整个草稿
roblox_delete_config_draft 放弃草稿
roblox_publish_config 发布当前草稿
roblox_list_config_revisions 列出修订历史记录
roblox_restore_config_revision 将以前的版本还原为当前版本

宇宙秘密(5)

工具 它做什么
roblox_list_secrets 列出宇宙的秘密
roblox_get_secret_public_key 获取宇宙的加密公钥
roblox_create_secret 创建新密码(使用LibSodium密封盒自动加密)
roblox_update_secret 旋转一个秘密值(使用LibSodium密封盒自动加密)
roblox_delete_secret 删除机密

适度——用户限制(4)

工具 它做什么
roblox_list_user_restrictions 列出宇宙中的所有禁令
roblox_get_user_restriction 获取一个用户的禁令详细信息
roblox_update_user_restriction 禁止、取消禁止或延长限制
roblox_list_user_restriction_logs 限制更改的审核日志

资产(10)

工具 它做什么
roblox_upload_asset 上传新资产(多部分)
roblox_get_asset 获取资产元数据
roblox_update_asset 更新元数据或交换文件内容
roblox_list_asset_versions 列出以前的资产版本
roblox_get_asset_version 阅读一个资产版本
roblox_rollback_asset_version 恢复到以前的版本
roblox_archive_asset 从创建者中心隐藏资产
roblox_restore_asset 取消隐藏资产的归档
roblox_get_asset_operation 轮询长时间运行的上传操作
roblox_get_user_asset_quota 读取用户的资产上传配额

团体(9)

工具 它做什么
roblox_get_group 读取组元数据
roblox_list_group_memberships 列出成员
roblox_list_group_roles 列出角色
roblox_get_group_role 获取角色详细信息
roblox_list_group_join_requests 待处理的加入请求
roblox_accept_group_join_request 接受加入请求
roblox_decline_group_join_request 拒绝加入请求
roblox_update_group_membership_role 更改成员的角色
roblox_get_group_shout 阅读群喊

用户和库存(4)

工具 它做什么
roblox_get_user 读取用户资料
roblox_generate_user_thumbnail 启动头像缩略图生成
roblox_get_user_thumbnail_operation 轮询缩略图操作
roblox_list_user_inventory 列出用户的库存项目(可过滤)

徽章(6)

工具 它做什么
roblox_get_badge 读取徽章元数据+统计数据
roblox_list_universe_badges 列出宇宙徽章
roblox_list_user_badges 列出用户拥有的徽章
roblox_get_badge_awarded_date 当用户获得特定徽章时
roblox_get_universe_badge_quota 剩余免费徽章配额
roblox_update_badge 更新徽章元数据(旧版PATCH)

缩略图(5)

工具 它做什么
roblox_get_user_headshots 批量头像头像
roblox_get_game_icons 批量体验图标
roblox_get_asset_thumbnails 批处理资产缩略图
roblox_get_group_icons 批处理组图标
roblox_batch_get_thumbnails 混合型批量请求

通知(1)

工具 它做什么
roblox_send_user_notification 通过模板发送体验通知

生成型人工智能(3)

工具 它做什么
roblox_generate_speech_asset 文本转语音→ 音频资产(异步操作)
roblox_translate_text 将文本翻译成一个或多个语言环境
roblox_get_generative_operation 轮询生成式AI操作

范围

使用实际需要的作用域配置API密钥。服务器 报告一个结构化错误,该错误指向 403 所以你可以毫无猜测地做出反应。

域 范围
卢执行 universe.place.luau-execution-session:read, universe.place.luau-execution-session:write
数据存储(标准) universe-datastores.objects:list/read/create/update/delete, universe-datastores.versions:list, universe-datastores.control:list/delete/snapshot
有序数据存储 universe.ordered-data-store.scope.entry:read, universe.ordered-data-store.scope.entry:write
内存存储 universe.memory-store.queue:read/write, universe.memory-store.sorted-map:read/write
消息传递 universe.messaging-service:publish
宇宙/地方 universe:read, universe:write
开发者产品 universe.developer-product:read, universe.developer-product:write
游戏通行证 universe.game-pass:read, universe.game-pass:write
创作者商店 creator-store-product:read, creator-store-product:write
配置 universe.creator-configs:read, universe.creator-configs:write
宇宙秘密 universe.secrets:list/read/write/delete
用户限制 universe.user-restriction:read, universe.user-restriction:write
资产 asset:read, asset:write
团体 group:read, group:write
用户/库存 user.inventory-item:read,可选 user.advanced:read, user.social:read
徽章(传统) legacy-universe.badge:manage-and-spend-robux, legacy-universe.badge:write
缩略图 无 (公共端点)
通知 user.user-notification:write
生成型人工智能(语音) universe:write, asset:read, asset:write
生成型人工智能(翻译) universe:write

建筑

src/
├── index.ts                  — Server init, transport setup, tool registration
├── constants.ts              — API base URLs, limits, timeouts
├── types.ts                  — Shared response-shape interfaces
├── schemas/
│   └── common.ts             — Shared Zod schemas (universe_id, pagination, etc.)
├── services/
│   ├── api-client.ts         — HTTP client, auth, rate-limited requests, error mapping
│   ├── rate-limiter.ts       — Token-bucket, 500 req/min shared ceiling per API key
│   └── logger.ts             — Structured JSON-per-line stderr logging
├── scripts/
│   └── list-tools.ts         — Discovery harness (`npm run list-tools`)
└── tools/
    ├── luau-execution.ts
    ├── data-stores.ts
    ├── ordered-data-stores.ts
    ├── memory-stores.ts
    ├── messaging.ts
    ├── universes.ts
    ├── monetization.ts
    ├── creator-store.ts
    ├── config.ts
    ├── secrets.ts
    ├── user-restrictions.ts
    ├── assets.ts
    ├── groups.ts
    ├── users.ts
    ├── badges.ts
    ├── thumbnails.ts
    ├── notifications.ts
    └── generative-ai.ts

每个工具处理程序都要经过:

  1. wrapTool (logger.ts)--记录 (tool_name, input_hash, latency_ms, result_status) 将JSON转换为stderr。Stdout是为MCP协议本身保留的。
  2. rateLimiter.acquire() (rate-limiter.ts)-每个API键在500 req/min共享的开放云上限下的paces调用。当存储桶已满80%以上时,向stderr发出警告。
  3. makeApiRequest (api-client.ts)--添加 x-api-key,应用超时,将结构化API错误解析为可人工读取的消息,这些消息命名了403上缺失的作用域。
  4. truncateResponse --将标记文本响应限制在25000个字符以内,这样MCP客户端就不会被巨大的DataStore blob阻塞。使用 response_format="json" 在需要原始数据时绕过。

故障排除

Error: ROBLOX_API_KEY environment variable is required 在启动服务器之前设置env var。使用Claude Code,使用 claude mcp add ... -- env ROBLOX_API_KEY=....

403 Forbidden: missing scope "..." API键没有工具所需的作用域。打开 create.roblox.com/dashboard/credentials, 编辑密钥,添加作用域,保存,然后重试。

429 Too Many Requests 尽管进行了内部起搏,但仍超过了心率限制上限。这通常 意味着另一个进程正在使用相同的API密钥。检查你的 服务器日志记录速率限制警告行,并记录速度减慢或 提供第二把钥匙。

大型响应被截断 服务器将降价响应限制在25000个字符以内以保护 MCP客户端。通过 response_format="json" 绕过盖子。

Luau执行任务卡住 PROCESSING Luau Execution API仍然是测试版。检查创建者中心→ 账户 设置→ Beta功能→ “开放云Luau执行”已启用 所属用户/组。看 限制.md.


什么没包

看 限制.md 查看Open Cloud的完整地图 该服务器故意不包装(仅cookie API, 测试版不稳定,Creator Hub的长尾功能没有 公共程序界面)。该文件是 这个项目——它将MCP服务器变成了一个可以采取行动的差距分析 上。


许可证

麻省理工学院——见 许可证.