跳到主要内容

MCP 与渲染设备

每个 Session 自带两个 MCP 服务器——一个挂接技能中心,一个挂接 GPU 渲染设备。只要 Session 有云端密钥,它们就会自动接好,客户端不需要额外安装任何东西。

技能中心 MCP​

服务器传输方式职责
xiaohe-hubHTTP → https://skills-hub.xiaohe.team/mcp技能目录:发现、获取内容
xiaohe-execstdio(本地)在本机执行技能脚本

xiaohe-hub 提供 xiaohe_get_skill、xiaohe_list_skills 以及媒体工具(xiaohe_tts、xiaohe_stt、xiaohe_generate_image)。xiaohe-exec 在本机运行 xiaohe_skill_exec(skill, script, argv),因此技能脚本可以读写你的文件、调用你的工具——技能中心本身绝不在你的机器上执行代码。

渲染设备 MCP​

xiaohe-render 服务器把一台 GPU 工作站变成可调度的渲染设备:上传 .blend、排队渲染、轮询状态、下载结果——全程走 MCP,不再需要 scp 或远程桌面。

工具用途
render_list_devicesGPU 标签、在线状态、排队任务数
render_upload内联上传场景(≤ 8 MiB;更大的场景走 POST /render/uploads)
render_submit提交任务:engine、samples、resolution、frame、format
render_status状态、时间戳、错误、产物
render_list_jobs最近任务,可按状态过滤
render_cancel取消排队或运行中的任务
render_artifacts产物列表,附短时签名下载链接

在 Session 里的典型流程:

render_list_devices → 选一台设备
render_upload → 拿到 upload_id
render_submit → 拿到 job_id
render_status → 轮询直到 succeeded
render_artifacts → 下载 PNG/EXR

渲染参数是白名单(engine ∈ CYCLES/EEVEE,samples ≤ 4096,resolution 在 16–8192 之间,format ∈ PNG/JPEG/OPEN_EXR),其余字段一律拒绝。worker 以 --factory-startup --disable-autoexec 启动 Blender,因此 .blend 里的启动脚本不会被执行。

谁能使用​

渲染面的一切能力都是默认拒绝。授权来自 accounts 的 entitlement 加上 Hub 上的本地策略文件(/etc/xiaohe/mcp-policy.json);deny 永远优先。没有授权的密钥看到的是空工具列表——服务器保持沉默,而不是大声报错。设备级授权(device.render.<id>)决定一把密钥可以向哪些机器提交任务。

接入一台设备​

一台机器只需运行出站 worker 即可加入——不需要改防火墙、不需要开端口。在设备上安装(Windows,无需管理员):

# 在 xiaohe-agent 仓库的 apps/render-worker/ 目录下
powershell -ExecutionPolicy Bypass -File install.ps1 `
-WorkerToken "xh_wrk_..." -DeviceId "my-gpu-box"

worker 主动轮询 Hub,用本机 Blender 一次渲染一个任务,并把产物传回。吊销一台设备:把它的令牌从 Hub 的 XIAOHE_RENDER_DEVICE_TOKENS 中删掉并重启 Hub 即可。