PixelLab Hub MCP 参考文档
多账号集成的 PixelLab MCP 代理。工具语义对齐官方 MCP,底层用本站 provider_keys 池调度。线上端点
| 项 | 值 |
|---|---|
| 本文档 URL | https://dotforge.eu.cc/docs/mcp-hub |
| 原始 Markdown | https://dotforge.eu.cc/docs/mcp-hub.md |
| API 域名 | https://api.dotforge.eu.cc |
| MCP URL(Streamable HTTP) | https://api.dotforge.eu.cc/mcp |
| 旧版 SSE URL | https://api.dotforge.eu.cc/sse |
| Web | https://dotforge.eu.cc |
| 官方工具说明 | https://api.pixellab.ai/mcp/docs |
1. 与官方 MCP 的差异(必读)
| 点 | 官方 | Hub(本项目) |
|---|---|---|
| 入口 | https://api.pixellab.ai/mcp | 本站 /mcp |
| 鉴权 | PixelLab 账号 API token | 管理员专用 plmcp_…(mcp_api_keys) |
| 上游 key | 单账号 | 多账号 KeySelector + 资源粘性 |
| 工具范围 | 全量(含 tileset/UI/chat/sandbox 等) | v1 仅角色 + 动画 + 物件(+ agent_help) |
list_* | 该官方账号下全部资源 | 仅本 Hub 创建并登记的资源 |
| 本站 credits | 无 | 不扣;消耗的是上游 PixelLab 额度 |
| 下载链接 | 官方 UUID 直链 | 仍为官方 download URL(UUID 即密钥) |
非目标(v1):tileset / isometric / UI / chat / sandbox;普通用户 MCP;自动同步官方网页创建的资源。
2. 接入配置
2.1 签发 MCP Key(管理员)
需本站 admin 会话:
curl -sS -X POST "https://api.dotforge.eu.cc/api/v1/admin/mcp-keys" \
-H "Authorization: Bearer <SESSION_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"name":"cursor-laptop"}'响应含 token(plmcp_…)仅此一次。另有:
GET /api/v1/admin/mcp-keys— 列表(无明文)POST /api/v1/admin/mcp-keys/{id}/revoke— 吊销
2.2 OpenCode
{
"mcp": {
"pixellab-hub": {
"type": "remote",
"url": "https://api.dotforge.eu.cc/mcp",
"enabled": true,
"oauth": false,
"headers": {
"Authorization": "Bearer plmcp_YOUR_TOKEN"
},
"timeout": 120000
}
}
}校验:opencode mcp list → pixellab-hub connected。
2.3 Cursor / Claude Desktop 等
{
"mcpServers": {
"pixellab-hub": {
"url": "https://api.dotforge.eu.cc/mcp",
"transport": "http",
"headers": {
"Authorization": "Bearer plmcp_YOUR_TOKEN"
}
}
}
}工具名可能带前缀(如 mcp__pixellab-hub__create_character),以客户端实际为准。
2.4 传输兼容性
- 优先使用
/mcp和http/streamable-http传输。初始化响应会返回Mcp-Session-Id,后续请求需复用该 session。 - 只支持旧 HTTP+SSE 传输的客户端使用
/sse和sse传输。首次 GET 会返回event: endpoint,客户端随后向该 endpoint POST JSON-RPC。 - WorkBuddy 5.3 系列可继续配置
/mcp;服务端会识别其旧 SSE 握手。其他旧客户端应显式配置/sse,不要依赖 User-Agent 兼容。 - 两个 URL 均使用同一个
Authorization: Bearer plmcp_…,且都不是上游https://api.pixellab.ai/mcp。
3. 核心机制
3.1 非阻塞
创建类工具立即返回 id,后台生成(约 2–5 分钟)。用 get_* 查状态;完成后用官方 download URL。
3.2 账号调度
| 请求类型 | Key 选择 | 额度刷新(本站缓存) |
|---|---|---|
新建 create_* 等 | KeySelector.Acquire(① 从未用过 ② 剩余额度高 ③ 跨 UTC 日空号重检) | 主路径最多约 12 次 balance 探测;空号冷却到次日 00:00 UTC(+2m);跨日后最多约 3 次重检;Release 会刷 |
tools/list | 临时 Acquire | 会刷;401/429 会 disable/cooldown |
| sticky 后续(get/animate/delete/tags…) | mcp_resources 固定创建时账号 | 不换号;上游 402/429/额度文案会 NoteOutcome(cooldown / disable) |
list_characters / list_objects | 本地表 | 不访问上游 |
不做「整条 MCP 连接绑死一个账号」。同一资源的后续调用必须落在创建账号(官方资源按账号隔离)。
均匀性:先从未用过,再按剩余额度。已知空额冷却到 下一个 UTC 0 点(PixelLab 日额度重置;另 +2 分钟宽限),跨日后再 GetBalance。中途充值可点管理台「刷新余额」立刻清冷却。
可观测:API 日志 mcp tool=… mode=acquire|sticky provider_key=… outcome=…;管理台 /admin/keys 顶部「密钥池健康」与 GET /api/v1/admin/keys/health。
3.3 资源登记
创建成功后写入 mcp_resources(resource_id → provider_key_id)。 未知 id 的 sticky 调用返回 resource_not_found(不 fan-out 猜账号)。
3.4 推荐工作流
1. create_character(...) → character_id
2. animate_character(character_id, template_animation_id="walking") # 可立刻排队
3. get_character(character_id) → 进度 / 完成后的旋转图与下载链4. v1 工具清单
角色与动画
| 工具 | 说明 |
|---|---|
create_character | 创建角色(standard / pro / v3) |
create_character_state | 同一角色变体(服装/姿态等,保持身份) |
animate_character | 排队动画(template / v3 / pro) |
get_character | 状态、旋转、动画、下载 |
list_characters | 本地登记列表 |
delete_character | 删除角色 |
update_character_tags | 替换标签 |
delete_animation | 删角色或物件上的动画 |
物件
| 工具 | 说明 |
|---|---|
create_map_object | 地图物件(透明底,可 inpaint) |
create_1_direction_object | 单方向物件(可能多候选 review) |
create_8_direction_object | 八方向物件 |
get_map_object / get_object | 查询 |
list_objects | 本地登记列表 |
animate_object | 物件动画 |
create_object_state | 物件变体 |
select_object_frames | review 中选帧成独立物件 |
dismiss_review | 丢弃 review |
delete_object | 删除物件 |
update_object_tags | 替换标签 |
其它
| 工具 | 说明 |
|---|---|
agent_help | 用法问答(几乎不耗生成额度) |
不暴露:create_topdown_tileset、sidescroller/isometric、UI、chat、sandbox、agent_feedback 等。
参数细节与官方一致,见:https://api.pixellab.ai/mcp/docs 下文只列高频用法与 Hub 注意点。
5. 高频工具用法
create_character
create_character(
description="brave knight with shining armor",
name="Knight",
n_directions=8, # 4 或 8;pro/v3 常固定 8
size=48, # standard/pro 最大 128;v3 最大 256
mode="standard", # standard | pro | v3
outline="single color black outline",
shading="basic shading",
detail="medium detail",
view="low top-down"
)- v3 + `reference_image_base64`:把已有南向角色图转成 8 向(不要用
create_8_direction_object做人形角色)。 - quadruped:
body_type="quadruped"且template为bear|cat|dog|horse|lion。
animate_character
# 模板(便宜,1 gen/方向)
animate_character(
character_id="<uuid>",
template_animation_id="walking",
action_description="walking proudly" # 可选
)
# 自定义 v3(无 template 时默认)
animate_character(
character_id="<uuid>",
action_description="casting a fire spell",
mode="v3",
frame_count=8
)- pro 自定义:先
confirm_cost=false看价,用户确认后再true。 - 模板模式可在角色仍 processing 时排队;v3/pro 建议等 completed。
create_*_object / review
create_1_direction_object:多候选时status=review→get_object→select_object_frames或dismiss_review。- 人形角色请用
create_character,不要用 8 向 object 管线。
list_*(Hub 特有)
- 只显示经本 MCP 创建的 id。
- 本地
status可能仍为processing,以get_*为准(v1 不强制 get 回写 list 状态)。
6. 错误与运维
| 现象 | 含义 | 处理 |
|---|---|---|
401 无效 MCP API Key | token 错/吊销/过期/非 admin | 重签或检查 Bearer |
tool_not_allowed | 非 v1 白名单 | 换官方 MCP 或等 Hub 扩白名单 |
no_provider_key / provider_keys_busy / provider_quota_exhausted | 池无可用 key | 管理后台检查密钥与额度 |
resource_not_found | sticky id 未登记 | 必须用本 Hub 创建的 id;勿手填他站 id |
upstream_error | 官方侧失败 | 重试;查上游额度/限流 |
404 MCP session not found | session 无效、过期或属于另一把 key | 重新 initialize,不要复用旧 session |
406 Not Acceptable | 现代客户端未同时接受 JSON 与 SSE,或 GET 不接受 SSE | 使用标准 MCP SDK 请求头 |
415 Unsupported Media Type | POST 不是 application/json | 设置 Content-Type: application/json |
GET /mcp 返回 405 | 无 session 的现代独立 SSE GET 不受支持 | 先 POST initialize;旧 SSE 客户端改用 /sse |
环境变量:
| 变量 | 默认 |
|---|---|
MCP_ENABLED | true(false 时 /mcp 404) |
MCP_UPSTREAM_URL | https://api.pixellab.ai/mcp |
限流:IP + MCP key 约 120/min(可调)。
审计:mcp_key.create / mcp_key.revoke。
7. 安全注意
plmcp_与官方 PixelLab token 同等敏感,勿提交仓库。- 仅 admin 可签发与调用。
- 吊销立即生效。
- 下载 URL 含 UUID 即可访问(与官方一致),分享即授权。
8. 相关文档
- 设计:
docs/superpowers/specs/2026-07-24-mcp-hub-design.md - 实现计划:
docs/superpowers/plans/2026-07-24-mcp-hub.md - 生产运维:
docs/ops/production.md - 官方 MCP:https://api.pixellab.ai/mcp/docs
- 官方 REST v2:https://api.pixellab.ai/v2/llms.txt