TeamAgent Canvas MCP

AIcare MCP connector – tool definition quality and endpoint health on Glama

数字员工「岗位」能力 MCP Server · 让任何 AI Agent 直接开岗、改配置、跑动作、看会话与数据、往画布推屏

streamable-httpstdio 马甲 (npm)MCP 2025-06-18Bearer 鉴权

服务端点

远程端点: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

拿 Key:开放平台自助获取

👉 开发者入口: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。

工具(18)

工具作用
list_templates列出可开岗的数字员工模板(templateId / 名称 / 说明 / 是否可开通)
list_my_staff列出我名下的数字员工岗位(slug / 名称 / 模板 / 画布链接)——后续按岗位操作都用这里的 slug
open_canvas为岗位生成画布链接 + 会话 ID(用户需要"看得见的界面"时用)
get_staff_config读岗位配置:人设 / 服务流程 / 推广配置 / 商品来源 / contextMode / 布局
patch_staff_config局部修改岗位配置(只传要改的字段,不会覆盖其它配置):人设 / 服务流程 / 主推 / 画布外观与文案 / 是否推荐商品 / 用哪些知识库
hire_staff按模板开一个新的数字员工岗位,可同时配上知识库;返回 slug 和画布链接
list_kbs列出我名下已发布的知识库,以及每个岗位各配了哪些库
read_kb读一个知识库:页面清单,或某一页的原文(更新前先读回来)
publish_kb把一套整理好的 Markdown 发布成知识库(整库替换),可顺手配给某个岗位
set_staff_kbs设定一个岗位用哪些知识库
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)

知识库:给数字员工喂知识

数字员工回答业务问题时照着知识库来:岗位配了库,访客问到时它先查库再答,并把依据的那一页显示在画布上;库里没有的,它会直说没有。

知识库由 Agent 整理、发布到主人名下,岗位再勾选用哪些库(可以多个)。原始资料留在 Agent 自己那里,平台只收整理好的文章。

步骤怎么做
1. 整理把资料整理成一套 Markdown:wiki/index.md 是总目录(每篇一行:链接 + 一句摘要 + 更新日期),其余是 wiki/<主题>/<文章>.md,一个概念一篇,标题用访客会问的说法。数字、日期、引文照原始资料逐字写。
2. 发布publish_kb:库名 + 全部页面 + checked: true(自检通过)。同名再发是整库替换,更新前先 read_kb 把现有页面读回来。
3. 配给岗位set_staff_kbs,或发布时带上 slug,或开岗时 hire_staff 直接带 kbs。模板 kb-assistant(知识库问答员)就是为这个准备的。

发布等于公开。岗位是匿名访客都能聊的,库里写了什么访客就能问出什么:个人隐私、客户资料、令牌、内部运维内容不要放。平台会拦身份证号和令牌,其余靠发布方自检。上限:200 个文件、单个 64KB、合计 2MB。

AICare 门(/api/mcp/aicare)

同一把 Key,第二个端点:https://agent.avatargaia.top/api/mcp/aicare(streamable-http,必须带 Key)。AI 健康检测 7 个工具:aicare_list_kinds(免费)/ aicare_detect(2 credits,异步:返回 job_id,用 aicare_get_job 取结果,通常 60–120 秒)/ aicare_detect_history / aicare_get_job / aicare_get_detection(免费);旧名 aicare_tongue_diagnose / aicare_tongue_history 仍可用。

检测结果自带给人看的报告页:reportUrl(签名链接 30 天有效)/ embedUrl(加 &embed=1,可 iframe 嵌入)。22 类检测已开放 13 类,先调 aicare_list_kinds 看 status=live 的类型和拍照要求。计费规则:AICare 出具报告即计费(含"照片不合格"的结论);参数错、类型未开放、素材下不下来、上游故障或超时不计费。健康评估与康护建议,不构成医疗诊断。

SOP 市场(岗位 aicare-sop,任何 Key 都能调,全部免费):list_sops 列已上架服务包 → get_sop 看详情与流程节点 → sop_order_link 拿跳到 AICare 小程序的下单链接。购买与使用在 AICare 小程序内完成。

康护链动作(aicare-care)

机构可调用的康护事件动作,费用单位:credits。

动作费用说明
preflight / resolve_user / list_checks免费对象档案、手机查用户、检测记录
gen_report5触发康护分析报告
care_analysis / care_goals免费读分析、读目标
gen_care_plan5生成健康管理方案(含任务安排),周计划后台异步
care_plan免费读方案 + 周计划 + SOP 模板
gen_care_stages3生成康护阶段与监测指标
care_stages免费读阶段与指标

两条口径:① 这些动作只有机构自己的 Key(岗位主人)能调,陌生 Key 返回 403;② 读和生成是分开的动作,先 gen_* 再读,读免费。

调用入口:MCP canvas_action(slug="aicare-care", action="preflight"|"gen_report"|..., params:{…});REST 等价 POST /api/canvas/staff/aicare-care/action body {action, params}。

人类入口与能力目录:agent.avatargaia.top/aicare/developers | 机器可读:GET /api/dev/catalog?category=健康康护

客户端配置

两种写法等价(推荐环境变量写法,与开放平台页一致;--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":{}}}'
🔐 权限说明:本 Server 以 token 归属的账号为界 —— 用谁的 ta_/dk_,就只能看到/操作该账号名下的岗位与会话,跨账号不可见。

龙虾学院 · Agent 进修

大模型需要训练,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 条原则 ✅;匿名调用被拒 ✅

相关链接