vibe3d_help
查参数契约:给 tool(+op) 返回该 op 的参数字段/必填/枚举/错误码与示例;不给 tool 则列出全部工具与 op
optool
io.github.vibebytes由 GitHub 帳號 vibebytes 發布v0.2.14更新於 Nov 4, 2026
通過 MCP 編輯和渲染 3D 場景:房間、節點、材質、相機和快照。
AI 翻譯由 AI 模型根據下方的原文描述翻譯,可能有誤。
Edit and render 3D scenes over MCP: rooms, nodes, materials, cameras, and snapshots.
vibe3d 的本機 MCP 服務;無需登入;STDIO;17 個工具。
暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
參照 儲存庫 中的啟動說明。
vibe3d is an MCP server for building and rendering 3D scenes. One command starts the protocol server, which launches the local daemon for you.
Requires Node.js >= 20 (same as the MCP TypeScript SDK v2). Licensed under Apache-2.0.
[vibe3D and Blender discussion group]
vibe3D + Blender discussion group
The daemon listens on loopback only (127.0.0.1 / localhost).
Client config:
GUI apps (Cursor, Claude Desktop) often do not load interactive shell config (~/.zshrc, nvm hooks, etc.). A wrapper like bash -lc "nvm use …" usually fails on macOS: login bash does not load zsh’s nvm. Do not put version-manager wrappers in MCP config.
Keep @latest in the config: without a version tag npx reuses its cache and never picks up new releases, even after you reload the MCP server. A newer MCP also restarts an older local daemon on start.
Make the default node / npx on the PATH those apps actually use >= 20, then use the JSON above:
node is already 20+; or~/.volta/bin). nvm alias default 20 alone does not fix Cursor if nvm is only sourced in zsh.Use the default JSON above in .cursor/mcp.json or the user MCP config. If status stays Error, open MCP Output — a Node < 20 message means fix the default Node on the GUI PATH (options above), not the MCP JSON shape.
Same JSON in claude_desktop_config.json.
When the MCP process starts and finds a local daemon of a different version, it stops that daemon (SIGTERM, data is flushed) and starts a matching one. Restarting the MCP therefore picks up an upgraded daemon. Rooms live only in daemon memory unless it runs with --persist (VIBE3D_PERSIST=1), so restarting a non-persistent daemon discards its rooms. --url remote daemons are never touched.
Rendering uses a system Chrome, Chromium, or Edge. The package does not download a browser. Without one, scene editing still works and vibe3d_status reports that rendering is unavailable.
The vibe3d command line and MCP share one capability spec. Field names are camelCase. The CLI shows them in kebab-case, so rotateStep is --rotate-step and withinBBox is --within-bbox.
Comma-separated text splits into the field's array or tuple: --tags a,b, --offset 1,0,0. A command that has both width and height also accepts --size 1280x720. Objects take JSON, or @file.
vibe3d help <command> prints the same descriptions as vibe3d_help. An unknown flag is an error.
The server exposes a small set of grouped tools. Each call passes op, for example vibe3d_room with op: "create". This keeps tools/list small. Unknown tool names come back as tool errors (isError) so the model can correct itself. Long renders and exports are jobs: poll vibe3d_job.
One MCP process keeps one default room. While it has seen a single room, room tools may omit room_id; results marked "implicit" used that default. Once the process has seen a second room (or several chats share it), calls without room_id are rejected and list the candidates. Pass the room_id returned by your own create call on every call. An explicit room_id routes only that call and never changes the default. vibe3d_room {op:"use"} pins the default room when you know only one chat is active.
This prints the Node version, daemon health, Chrome discovery, schema file, and version match. It does not start an MCP session.
See CONTRIBUTING.md. From this repository, with Node 20+:
pnpm install may ask to reinstall node_modules from scratch. CI=true accepts that prompt.
Security reports: SECURITY.md.
來源:README.md,提交 b6509b3
查参数契约:给 tool(+op) 返回该 op 的参数字段/必填/枚举/错误码与示例;不给 tool 则列出全部工具与 op
optool[status] 能力探测:渲染器是否就绪、能否出 ID 通道、快照上限与载荷上限|含 id-pass 支持;渲染或导入前先查一次
無需輸入參數。
[room] 房间:建 / 列 / 切绑定 / 看摘要 / 关 / 时间线|op: [read] list use get timeline;[write] create close|必填见 params 描述,字段见 vibe3d_help {tool, op}
op必填paramsroom_id[scene] 场景:取整份 / 摘要 / 查询节点 / 统计 / 拾取 / 体检 / 撤销重做 / 差分 / 导入导出 / 检查点 / 当前选中|op: [read] get summary query stats pick validate diff export checkpoints selection;[write] undo redo import checkpoint restore|必填见 params 描述,字段见 vibe3d_help {tool, op}|import 是整场景替换,仅用于初始化或回滚
op必填paramsroom_id[node] 节点:建 / 改 / 删 / 克隆 / 读 / 换父 / 批量变换 / 阵列 / 吸附 / 编组 / 合并烘焙 / 按画面框拟合 / 导入模型|op: [read] get;[write] create update delete clone reparent transform array attach group merge fit_screen import|必填见 params 描述,字段见 vibe3d_help {tool, op}|create 平铺传 kind+shape+size,material 可省略(自动建)
op必填paramsroom_id[material] 材质:按预设建 / 局部改 / 贴图与 UV / 批量指派|op: create patch map assign|必填见 params 描述,字段见 vibe3d_help {tool, op}|create 收 {preset},id 由服务端生成;preset 任意描述词都收(如 matte-white 会归一到 concrete + 浅色),原名回读在 preset/presetNote;patch 用 baseColor(也接受 color 别名)/metalness/roughness/emissive/opacity
op必填paramsroom_id[stage] 舞台与环境:预设/曝光/后处理/三渲二;雾、背景、环境光、HDRI|op: set env|必填见 params 描述,字段见 vibe3d_help {tool, op}|set/env 的字段平铺在顶层(勿包成 stage:{…}):env 传 background/ambient/fog,颜色 [r,g,b,a],fog 是对象 {near,far}、关雾传 false
op必填paramsroom_id[animation] 程序化动画:定义轨道 / 播放 / 停止 / 清除 / 批量摆姿势 / 人形步态|op: define play stop clear pose gait|必填见 params 描述,字段见 vibe3d_help {tool, op}
op必填paramsroom_id[fx] 特效:粒子或光柱,建 / 删|op: create delete|必填见 params 描述,字段见 vibe3d_help {tool, op}|id 由服务端生成,不要复用已有 id
op必填paramsroom_id[mesh] 网格构造:布尔 / 管体 / 背板 / 车削 / 有机体 / 倒角 / 树 / 人体 / 贴花|op: boolean tube backdrop lathe organic bevel tree mannequin decal|必填见 params 描述,字段见 vibe3d_help {tool, op}|decal 用真字形/图片;color 用 [r,g,b,a] 或 '#RRGGBB'
op必填paramsroom_id[asset] 资产:解析 glTF / 上传贴图模型 / 列表 / 删除|op: [read] inspect list;[write] put delete|必填见 params 描述,字段见 vibe3d_help {tool, op}
op必填paramsroom_id[camera] 机位:设置 / 保存命名机位 / 删除 / 像素投影与反投影|op: [read] project unproject;[write] set save delete|必填见 params 描述,字段见 vibe3d_help {tool, op}|set 平铺 p/target/fov,勿包成 camera:{…};save 用命名机位
op必填paramsroom_id[render] 渲染:快照 / 多视角 / 单资产特写 / 像素取色 / ID 通道 / 序列帧|op: snapshot views node pick assert id_pass sequence video|必填见 params 描述,字段见 vibe3d_help {tool, op}|snapshot / views 前先 vibe3d_status 探能力
op必填paramsroom_id[export_glb] 导出 GLB(任务制,用 vibe3d_job 查进度)|拿到 jobId 后轮询 vibe3d_job.get 到 state=done(失败看 error)
includeroom_idnode_ids[job] 导出任务:查询 / 列表 / 取消|op: [read] get list;[write] cancel|必填见 params 描述,字段见 vibe3d_help {tool, op}
op必填paramsroom_id[open_editor] 打开房间编辑器(默认弹窗)|返回 url 与 hint;open:false 只回链接
openfocusreuseroom_id[apply_ops] 原子批量 op(仅用于跨节点依赖;日常请用专用工具)|嵌套载荷包在同名字段 {op:"node.create",node:{…}} / {op:"env.set",env:{…}},不能平铺到 op 顶层(会校验失败);ops 传数组不是 JSON 字符串。逐条操作请用专用工具
ops必填room_id已滿足適用檢查項的 90%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
npx -y @vibebyte/vibe3d-mcp@latest{ "mcpServers": { "vibe3d": { "command": "npx", "args": ["-y", "@vibebyte/vibe3d-mcp@latest"] } }}claude mcp add vibe3d -- npx -y @vibebyte/vibe3d-mcp@latest{ "servers": { "vibe3d": { "command": "npx", "args": ["-y", "@vibebyte/vibe3d-mcp@latest"] } }}npx @modelcontextprotocol/inspector --cli npx -y @vibebyte/vibe3d-mcp@latest --method tools/listvibe3d node create r1 --shape box --size 1,2,3vibe3d scene query r1 --material m_aaaaaaaa --parent rootvibe3d anim gait r1 @runner --style runnpx -y @vibebyte/vibe3d-mcp@latest --doctor --jsonCI=true pnpm installpnpm --filter @vibebyte/vibe3d-editor buildpnpm --filter @vibebyte/vibe3d-daemon buildpnpm --filter @vibebyte/vibe3d-mcp build