USER GUIDE · 01

让外部工具
控制你的世界

Developer 功能把浏览器中的世界连接到本机脚本、自动化工具和 AI 客户端。你不需要修改游戏代码,只需要运行示例服务并粘贴对应地址。

第一次配置约 5 分钟需要 Node.js 18+ 与本地项目;示例只使用 Node.js 内置模块
01

从哪里打开

  1. 1
    登录 3D World Builder。
  2. 2
    点击底部工具栏的终端图标 Developer settings。
  3. 3
    使用 API keys、Outbound webhook URL 和 Inbound SSE relay URL。
  4. 4
    需要示例命令时,点击工具栏的 Integrations 图标。
02

先选择你要做的事

OUT

接收世界变化

当用户放置、删除或重置内容时,把事件发送到你的本地服务。

使用 Webhook
IN

从外部控制世界

从终端发送命令,在指定坐标放置树木、房屋或清空世界。

使用 SSE Relay
AI

连接 AI 工具

把世界操作暴露成 MCP 工具,供支持 MCP 的 AI 客户端调用。

使用 MCP Bridge
03

接收世界变化:Webhook

先生成一个不可猜测的 Receiver Token,并妥善保存输出:

openssl rand -hex 24

下方的 receiver-token 只是占位符,请全部替换为刚生成的值。

打开终端,在项目根目录运行:

TINYWORLD_RECEIVER_TOKEN='receiver-token' \
node plugins/examples/webhook-receiver.js

然后在 Developer 中填写并保存:

Outbound webhook URLhttp://localhost:8787/webhook

回到编辑器放置或删除物体。查看收到的事件:

curl -H 'Authorization: Bearer receiver-token' \
http://localhost:8787/events

成功标志:终端或 /events 返回包含 cell.set 等事件的 JSON。

04

从外部控制世界:SSE Relay

再次运行 openssl rand -hex 24,生成一个与 Receiver Token 不同的 Relay Token。下方的 matching-relay-token 只是占位符。

启动带 Token 的本地 Relay:

TINYWORLD_RELAY_TOKEN='matching-relay-token' \
node plugins/examples/sse-command-relay.js

在 Developer 中填写并保存:

Inbound SSE relay URLhttp://localhost:8788/sse?token=matching-relay-token

保持浏览器页面打开,再开一个终端发送命令:

TINYWORLD_RELAY_TOKEN='matching-relay-token' \
node plugins/examples/send-command.js place \
  --x 2 --z 2 --kind tree --terrain grass

成功标志:世界的坐标 (2, 2) 出现一棵树。

05

连接 AI 客户端:MCP Bridge

先完成 SSE Relay 配置,并保持浏览器编辑器标签页打开。如果 AI 还需要读取编辑事件,再启动 Webhook Receiver。随后把以下配置加入支持 MCP 的客户端,并把脚本路径改成你的真实绝对路径:

{
  "mcpServers": {
    "metaworldos-world-builder": {
      "command": "node",
      "args": ["/你的绝对路径/novelhub-drama/plugins/examples/mcp-stdio-bridge.js"],
      "env": {
        "TINYWORLD_RELAY_URL": "http://localhost:8788/command",
        "TINYWORLD_WEBHOOK_URL": "http://localhost:8787",
        "TINYWORLD_RELAY_TOKEN": "matching-relay-token",
        "TINYWORLD_RECEIVER_TOKEN": "receiver-token"
      }
    }
  }
}

如果只需要控制世界、不需要读取 Webhook 事件,可以删除 TINYWORLD_WEBHOOK_URL 和 TINYWORLD_RECEIVER_TOKEN。保存配置后,按照你的 MCP 客户端说明重新加载服务器配置。

成功标志:AI 客户端能列出 tinyworld_* 工具,并能在浏览器世界中执行操作。

06

安全与常见错误

401 · Relay
检查浏览器 SSE URL、CLI 和 MCP 的 TINYWORLD_RELAY_TOKEN 是否与 Relay 启动时的值一致。它只用于 :8788/sse 和 :8788/command。
401 · Receiver
检查读取 :8787/events、:8787/latest 的 Bearer Token,以及 MCP 的 TINYWORLD_RECEIVER_TOKEN。不要把它与 Relay Token 混用。
404 Not Found
确认服务已启动且路径正确:写入 Webhook 用 :8787/webhook,读取用 :8787/events,浏览器 SSE 用 :8788/sse?token=...,CLI/MCP 命令用 :8788/command。
浏览器没有变化
确认 Relay 终端仍在运行,Developer 中已经点击 Save,并保持当前编辑器标签页打开。
CORS 错误
示例默认只允许 http://localhost:3000。其他地址需在启动 Relay/Receiver 时设置,例如 TINYWORLD_ALLOWED_ORIGIN='http://127.0.0.1:3000' ...,值必须是编辑器的协议、主机和端口;修改后重启服务。