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每个工具处理程序都要经过:
wrapTool(logger.ts)--记录(tool_name, input_hash, latency_ms, result_status)将JSON转换为stderr。Stdout是为MCP协议本身保留的。rateLimiter.acquire()(rate-limiter.ts)-每个API键在500 req/min共享的开放云上限下的paces调用。当存储桶已满80%以上时,向stderr发出警告。makeApiRequest(api-client.ts)--添加x-api-key,应用超时,将结构化API错误解析为可人工读取的消息,这些消息命名了403上缺失的作用域。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服务器变成了一个可以采取行动的差距分析 上。
______________________________________________________________________
许可证
麻省理工学院——见 许可证.
