数字员工「岗位」能力 MCP Server · 让任何 AI Agent 直接开岗、改配置、跑动作、看会话与数据、往画布推屏
远程端点:https://agent.avatargaia.top/api/mcp/canvas(streamable-http)
stdio 马甲:npx -y @avatargaia/canvas-mcp --url https://agent.avatargaia.top/api/mcp/canvas --token <ta_|dk_>
鉴权:Authorization: Bearer <API_KEY>(ta_ 平台 token / dk_ 开发者 Key)
服务标识:teamagent-canvas 0.3.0 · 官方 MCP Registry:io.github.AvatarGaia/canvas-mcp
👉 开发者入口:https://agent.avatargaia.top/developers —— 登录/注册/“只要一把 Key”三个入口,含控制台(余额 / 用量 / Key 新建撤销 / 名下岗位)、接入指南与计费说明。
🤖 机器可读自描述(Agent 自发现用):GET /api/dev —— 返回端点 / 配额 / scope / 计费 / 错误码(公开 JSON)。
外部 / 本地 Agent 一分钟拿 Key(无需 TeamAgent 账号):
curl -X POST https://agent.avatargaia.top/api/dev/register \
-H "Content-Type: application/json" \
-d '{"name":"我的Agent","email":"me@example.com","purpose":"接入 Canvas MCP"}'
# 返回即含明文 dk_ Key(只显示一次)+ 20 credits + 接入信息
🟢 三层接入:匿名沙箱(不带 Key 也能连:模板清单 / 动作清单 / 开画布 / 免费匿名动作;每 IP 每天 50 次)→ dk_ Key(注册即得 20 credits,scope 默认 read + action)→ ta_ 账号令牌(登录后生成,权限全量,岗位与余额就是账号本人的)。
⬆️ 升级:用同一邮箱到 /register 注册正式账号即可认领 —— 之前的 Key 与余额保留,scope 升为全部。
🏢 自建岗位(M3.5):外部开发者不只能跑沙箱,还能开自己的岗位 —— POST /api/dev/staff {templateId, name?}(每人最多 3 个,slug 形如 dev-xxx)· GET /api/dev/staff 看状态与到期 · POST /api/dev/staff/<slug>/renew 续费(99 token 顺延 30 天)· DELETE /api/dev/staff?slug= 删除。
定价:注册送 20 · 3 天免费试岗 · 之后 99 token/月;计费档 platform-credits(对话与动作从你自己余额扣,无需云端 Agent)。到期或余额 0 → 对话与付费动作返 402(带续费地址),免费动作不受影响。
💬 对话接口(页面/嵌入端用):POST /api/canvas/chat,body { "tenant": "<slug>", "sessionId": "cs_xxx", "message": "..." };会话用 MCP open_canvas 生成,对话按轮计费。
🧹 自助注销:DELETE /api/dev/account —— 仅限自助注册的影子账号,会级联删除全部 Key 与开放平台岗位、释放邮箱(正式账号会被 400 拒绝,需到网页设置操作)。
💳 计费:单位统一 credits;付费动作成功才扣、失败不扣;同键当日重复调用命中缓存不重复扣。定价与错误码(401/402/403/429)见 开放平台页 或 GET /api/dev。
| 工具 | 作用 |
|---|---|
list_templates | 列出可开岗的数字员工模板(templateId / 名称 / 说明 / 是否可开通) |
list_my_staff | 列出我名下的数字员工岗位(slug / 名称 / 模板 / 画布链接)——后续按岗位操作都用这里的 slug |
open_canvas | 为岗位生成画布链接 + 会话 ID(用户需要"看得见的界面"时用) |
get_staff_config | 读岗位配置:人设 / 服务流程 / 推广配置 / 商品来源 / contextMode / 布局 |
patch_staff_config | 局部修改岗位配置(只传要改的字段,不会覆盖其它配置) |
list_actions | 列出该岗位能做的动作:id / 标题 / 说明 / 费用 / credits / 参数 JSON Schema |
canvas_action | 执行岗位动作(如 AICare 的 preflight / list_checks / gen_report / run_detection / resolve_user) |
get_job | 按 job_id 查长任务:queued / running / done(带结果) / failed(带人话错误) |
get_stats | 岗位一段时间汇总:会话数 / 真人对话轮数 / 埋点数 / 动作调用数 / tokens / 按日曲线 |
list_sessions | 岗位的访客会话列表(宿主用户搜索 / 时间范围 / 分页) |
get_session_log | 单会话完整流水:用户消息 / AI 回复(含 tokens)/ 埋点 / 动作调用 / 推屏 |
query_events | 跨会话按类型拉事件:chat_user / chat_assistant / track / action_call / page_open / push |
push_screen | 把内容推到某个画布会话的屏上(会话 ID 来自 open_canvas 或 list_sessions) |
两种写法等价(推荐环境变量写法,与开放平台页一致;--url 缺省即官方端点):
{
"mcpServers": {
"teamagent-canvas": {
"command": "npx",
"args": ["-y", "@avatargaia/canvas-mcp"],
"env": { "CANVAS_MCP_TOKEN": "${CANVAS_API_KEY}" }
}
}
}
// 也可显式给端点 / 用远程直连:
{
"mcpServers": {
"teamagent-canvas": {
"type": "streamable-http",
"url": "https://agent.avatargaia.top/api/mcp/canvas",
"headers": { "Authorization": "Bearer ${CANVAS_API_KEY}" }
}
}
}
# 握手
curl -X POST https://agent.avatargaia.top/api/mcp/canvas \
-H "Authorization: Bearer $CANVAS_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"demo","version":"1"}}}'
# 列出工具
curl -X POST https://agent.avatargaia.top/api/mcp/canvas \
-H "Authorization: Bearer $CANVAS_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# 我有哪些岗位
curl -X POST https://agent.avatargaia.top/api/mcp/canvas \
-H "Authorization: Bearer $CANVAS_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"list_my_staff","arguments":{}}}'
ta_/dk_,就只能看到/操作该账号名下的岗位与会话,跨账号不可见。大模型需要训练,Agent 需要教育。学院开放公共岗位 gaia-academy(模板 gaia-course),动作标 public: true —— 任何持有效 Key 的调用方都能跑,不需要拥有该岗位;学员身份取调用方 Key 的用户(非 public 动作对非归属方仍 403)。
三步拿原则:
① canvas_action("gaia-academy", "search_courses", {keyword?:"作战台"}) → 找课(只列面向 Agent、已审核、公开的课)
② canvas_action("gaia-academy", "start_exam", {courseId}) → 报名 + 拿题(答案已剥离)
③ canvas_action("gaia-academy", "submit_exam", {enrollmentId, answers:[{questionId, answer}]})
→ 交卷即出结果:客观题自动判分,主观题由系统 LLM 按参考答案自动批改(每题带一句缺什么要点的反馈);通过立即毕业 + 原则下发
④ canvas_action("gaia-academy", "get_principle", {enrollmentId}) → 领原则(coreInsight + keyPrinciples + 禁止项 + 清单)
辅助:my_enrollments(我的报名/成绩)· grade_exam(讲师复核/覆盖系统评分);人类课主观题仍由讲师批。Agent 课不卡人工队列 —— 交卷即拿结果与原则。
实测(2026-09-13):search_courses → start_exam(4 题、无答案泄露)→ submit_exam 100/100 graduated → get_principle 拿到 4 条原则 ✅;匿名调用被拒 ✅
io.github.AvatarGaia/canvas-mcp(status: active)