{"_id":"@avatargaia/canvas-mcp","_rev":"5-4fbff8e6250fce7fd5c62b89a1e7863b","name":"@avatargaia/canvas-mcp","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@avatargaia/canvas-mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","teamagent","canvas","stdioshim"],"author":{"url":"Octopus","name":"八爪","email":"octopus@arplus.top"},"license":"MIT","_id":"@avatargaia/canvas-mcp@0.1.0","maintainers":[{"name":"aurora.zhangjy","email":"aurora.zhangjy@gmail.com"},{"name":"octopus-arplus","email":"octopus@arplus.top"}],"homepage":"https://github.com/AvatarGaia/canvas-mcp#readme","bugs":{"url":"https://github.com/AvatarGaia/canvas-mcp/issues"},"bin":{"canvas-mcp":"bin/canvas-mcp.js"},"dist":{"shasum":"aaf0ae255ee099700d228886baeb3db64b507ceb","tarball":"https://registry.npmjs.org/@avatargaia/canvas-mcp/-/canvas-mcp-0.1.0.tgz","fileCount":4,"integrity":"sha512-F0YS5FJ6kNcGp2QXas/AKXltzeF+ulwHybh4BQAKjhAYkkrnNA1KMsUogkyeUE0j06vdOjgmb9qN1q455422Iw==","signatures":[{"sig":"MEYCIQDvFe9J+50rKih+uDVbRttz5m5aF/pWi4/R04r5ugCdiwIhAJHgue9lY9+l5y7tb0ZNS3nLVrhWpknc/LjmXdMSJHgu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7958},"type":"commonjs","engines":{"node":">=18"},"_npmUser":{"name":"octopus-arplus","email":"octopus@arplus.top"},"repository":{"url":"git+https://github.com/AvatarGaia/canvas-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"stdio 马甲：把仅支持 stdio 的 MCP 客户端接到 TeamAgent Canvas MCP（streamable-http）上","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canvas-mcp_0.1.0_1789193715968_0.3250516077481522","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@avatargaia/canvas-mcp","version":"0.1.1","keywords":["mcp","model-context-protocol","teamagent","canvas","stdioshim"],"author":{"url":"Octopus","name":"八爪","email":"octopus@arplus.top"},"license":"MIT","_id":"@avatargaia/canvas-mcp@0.1.1","maintainers":[{"name":"aurora.zhangjy","email":"aurora.zhangjy@gmail.com"},{"name":"octopus-arplus","email":"octopus@arplus.top"}],"homepage":"https://github.com/AvatarGaia/canvas-mcp#readme","bugs":{"url":"https://github.com/AvatarGaia/canvas-mcp/issues"},"bin":{"canvas-mcp":"bin/canvas-mcp.js"},"dist":{"shasum":"a174718c6393b5d4fd9b56341201e5b0c8ff6e3f","tarball":"https://registry.npmjs.org/@avatargaia/canvas-mcp/-/canvas-mcp-0.1.1.tgz","fileCount":4,"integrity":"sha512-tx1OcyZL1IBtE3sCOlxvESXufbnfa9CUtHKxmaZ9qDhqP/5IPIOloGyDFhaNR60D4RvVxJ5cMX2Sfk5XoKhtVw==","signatures":[{"sig":"MEYCIQDCYoswUst3Mjvy5+Jd4ZIK3ho3ovapQ0A3kgTgGW4RmQIhAKIC8BdLEw3rMyjvvKywO/tm8NcOMgYcKmlfxMQvAwbr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8010},"type":"commonjs","engines":{"node":">=18"},"mcpName":"io.github.AvatarGaia/canvas-mcp","_npmUser":{"name":"octopus-arplus","email":"octopus@arplus.top"},"repository":{"url":"git+https://github.com/AvatarGaia/canvas-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"stdio 马甲：把仅支持 stdio 的 MCP 客户端接到 TeamAgent Canvas MCP（streamable-http）上","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canvas-mcp_0.1.1_1789200422122_0.08356019306475648","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@avatargaia/canvas-mcp","version":"0.1.2","keywords":["mcp","model-context-protocol","teamagent","canvas","stdioshim","gaia"],"author":{"url":"Octopus","name":"八爪","email":"octopus@arplus.top"},"license":"MIT","_id":"@avatargaia/canvas-mcp@0.1.2","maintainers":[{"name":"aurora.zhangjy","email":"aurora.zhangjy@gmail.com"},{"name":"octopus-arplus","email":"octopus@arplus.top"}],"homepage":"https://agent.avatargaia.top/mcp/canvas.html","bugs":{"url":"https://github.com/AvatarGaia/canvas-mcp/issues"},"bin":{"canvas-mcp":"bin/canvas-mcp.js"},"dist":{"shasum":"4ed96668fec1a0518c058a874a52b4b2ccab071e","tarball":"https://registry.npmjs.org/@avatargaia/canvas-mcp/-/canvas-mcp-0.1.2.tgz","fileCount":4,"integrity":"sha512-1tZHB4w8j9aHIHsG8r6G8SBfg5IOGlqZ8dMDIx6pecQb/gmE/0L83RPGLnr3bS26QqYoChytOSCYaD8Zrj5LAg==","signatures":[{"sig":"MEYCIQCL3f3Yoeefzbv9ELh8DhvohGE4cNfhKjDSc01uogXnFQIhAN/JPcpdKkUCPLNY4qk7aZ3eZo4/adnMtSNnh75piIy+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@avatargaia%2fcanvas-mcp@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8891},"type":"commonjs","engines":{"node":">=18"},"gitHead":"b9fbd7cf8520cfe870a6d0c99aa466815493309d","mcpName":"io.github.AvatarGaia/canvas-mcp","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ba4f920d-6ea3-4f3a-af18-cd55a78deec9"}},"repository":{"url":"git+https://github.com/AvatarGaia/canvas-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"stdio 马甲：把仅支持 stdio 的 MCP 客户端接到 TeamAgent Canvas MCP（streamable-http）上","directories":{},"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canvas-mcp_0.1.2_1789241083244_0.72110887921278","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@avatargaia/canvas-mcp","version":"0.1.3","keywords":["mcp","model-context-protocol","teamagent","canvas","stdioshim","gaia"],"author":{"url":"Octopus","name":"八爪","email":"octopus@arplus.top"},"license":"MIT","_id":"@avatargaia/canvas-mcp@0.1.3","maintainers":[{"name":"aurora.zhangjy","email":"aurora.zhangjy@gmail.com"},{"name":"octopus-arplus","email":"octopus@arplus.top"}],"homepage":"https://agent.avatargaia.top/mcp/canvas.html","bugs":{"url":"https://github.com/AvatarGaia/canvas-mcp/issues"},"bin":{"canvas-mcp":"bin/canvas-mcp.js"},"dist":{"shasum":"95ad0d4f3accd9b7f2f556c676eb1a52f4ed826b","tarball":"https://registry.npmjs.org/@avatargaia/canvas-mcp/-/canvas-mcp-0.1.3.tgz","fileCount":6,"integrity":"sha512-93/qUcZfniI8TY0mzBAYsNW4PPyg75cK/myDHQAyyCNoG++xMbXMKmgJW3ux0XsABpqKyTZ9lBzWAtd6kkZV7A==","signatures":[{"sig":"MEYCIQCw8YL/vAk3OGT8uEhzM0VyYCCjoB7YZpx0VgVrwgCeyAIhAIwOoOTLGhVjdfdl1CNo5u25CyUhJMuQczXKob3o4crv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCEy0dDbcwPF4cExRIg7HPBgdpXR0wJgtPYkSjrSGy1RAIgO63UVSxskW/aHz8Vwn8p9CMAHOknmbm58JfZL21kqQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@avatargaia%2fcanvas-mcp@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56554},"type":"commonjs","engines":{"node":">=18"},"gitHead":"d037f25685ff74077a7359f222b4ddf699460537","mcpName":"io.github.AvatarGaia/canvas-mcp","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ba4f920d-6ea3-4f3a-af18-cd55a78deec9"}},"repository":{"url":"git+https://github.com/AvatarGaia/canvas-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"stdio 马甲：把仅支持 stdio 的 MCP 客户端接到 TeamAgent Canvas MCP（streamable-http）上","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canvas-mcp_0.1.3_1790622488135_0.33757860119281746","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"_id":"@avatargaia/canvas-mcp@0.1.4","bin":{"canvas-mcp":"bin/canvas-mcp.js"},"bugs":{"url":"https://github.com/AvatarGaia/canvas-mcp/issues"},"dist":{"shasum":"dcf59b1b7dafb2826036f0aab4b9a0af0137c94d","tarball":"https://registry.npmjs.org/@avatargaia/canvas-mcp/-/canvas-mcp-0.1.4.tgz","fileCount":6,"integrity":"sha512-CO3rwe6chc95K4OnwbK1N0NEJiIIxW7PY0F7yLXRQbOup9ncoqFetc0OZDtIRMcSzA1qAJKBWdmQrcTP/3B4CQ==","signatures":[{"sig":"MEUCIQCiZGusYik28jNFfD2khCBT8Tle/j6ijtivjxmUsBfUNQIgeeszuxqRFG4RU+eFHocQ2VPrNH/jgHFD/HokRKwvNGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFdButcUQ+E7ndNyjmkKsxmg8ajIfy95FjSZfnpbpjpXAiEAjBTtbJPj8Cj9ST30YXMoMgluXW2DhUkwlQvf+aenkQo="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@avatargaia%2fcanvas-mcp@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57999},"name":"@avatargaia/canvas-mcp","type":"commonjs","author":{"url":"Octopus","name":"八爪","email":"octopus@arplus.top"},"engines":{"node":">=18"},"gitHead":"3d348e548cee39b28e799a4683e3df89724d182e","license":"MIT","mcpName":"io.github.AvatarGaia/canvas-mcp","version":"0.1.4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"ba4f920d-6ea3-4f3a-af18-cd55a78deec9"}},"homepage":"https://agent.avatargaia.top/mcp/canvas.html","keywords":["mcp","model-context-protocol","teamagent","canvas","stdioshim","gaia"],"repository":{"url":"git+https://github.com/AvatarGaia/canvas-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"stdio 马甲：把仅支持 stdio 的 MCP 客户端接到 TeamAgent Canvas MCP（streamable-http，服务端 0.4.0 / 91 工具）上","directories":{},"maintainers":[{"name":"aurora.zhangjy","email":"aurora.zhangjy@gmail.com"},{"name":"octopus-arplus","email":"octopus@arplus.top"}],"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/canvas-mcp_0.1.4_1791023705772_0.9707476070467649"}}},"time":{"created":"2026-09-12T06:15:15.783Z","modified":"2026-10-03T10:35:06.256Z","0.1.0":"2026-09-12T06:15:16.104Z","0.1.1":"2026-09-12T08:07:02.268Z","0.1.2":"2026-09-12T19:24:43.366Z","0.1.3":"2026-09-28T19:08:08.226Z","0.1.4":"2026-10-03T10:35:05.864Z"},"bugs":{"url":"https://github.com/AvatarGaia/canvas-mcp/issues"},"author":{"url":"Octopus","name":"八爪","email":"octopus@arplus.top"},"license":"MIT","homepage":"https://agent.avatargaia.top/mcp/canvas.html","keywords":["mcp","model-context-protocol","teamagent","canvas","stdioshim","gaia"],"repository":{"url":"git+https://github.com/AvatarGaia/canvas-mcp.git","type":"git"},"description":"stdio 马甲：把仅支持 stdio 的 MCP 客户端接到 TeamAgent Canvas MCP（streamable-http，服务端 0.4.0 / 91 工具）上","maintainers":[{"name":"aurora.zhangjy","email":"aurora.zhangjy@gmail.com"},{"name":"octopus-arplus","email":"octopus@arplus.top"}],"readme":"# @avatargaia/canvas-mcp\n\n**stdio 马甲**：让只支持 stdio 的 MCP 客户端（Claude Desktop / Cursor / Cline / 各类本地 Agent）接入 TeamAgent 的 MCP 服务器（`streamable-http`）。\n纯转调，无状态、不缓存、不改写请求。\n\n两个门，同一把 Key：\n\n| 门 | 端点 | 工具 | 鉴权 |\n|---|---|---|---|\n| Canvas | `https://agent.avatargaia.top/api/mcp/canvas` | **91 个**（岗位类 18 + 协作类 73），服务端 0.4.0 | **可不带 Key**：匿名沙箱开放免费工具；带 `dk_`/`ta_` 解锁全部 |\n| AICare | `https://agent.avatargaia.top/api/mcp/aicare` | 7 个（AI 健康检测 13 类：舌苔/面部/指甲…） | 必须带 Key，按次计费 |\n\n自动安装说明（给 Agent 读）：[`llms-install.md`](./llms-install.md) ｜ 隐私政策与支持：https://agent.avatargaia.top/privacy\n\n## 用\n\n```bash\nCANVAS_MCP_URL=https://agent.avatargaia.top/api/mcp/canvas \\\nCANVAS_MCP_TOKEN=ta_xxxxxxxx \\\nnpx -y @avatargaia/canvas-mcp\n```\n\n客户端配置（Claude Desktop `claude_desktop_config.json` 为例）：\n\n```json\n{\n  \"mcpServers\": {\n    \"teamagent-canvas\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@avatargaia/canvas-mcp\", \"--token\", \"dk_xxxxxxxx\"]\n    }\n  }\n}\n```\n\n## 环境变量\n\n| 变量 | 必填 | 说明 |\n|---|---|---|\n| `CANVAS_MCP_TOKEN` | 否 | `dk_`（开发者 Key）或 `ta_`（平台令牌）；不带 = 匿名沙箱，只能用免费工具 |\n| `CANVAS_MCP_URL` | 否 | 默认 Canvas 门；AICare 门填 `https://agent.avatargaia.top/api/mcp/aicare`；自建部署时改这里 |\n| `CANVAS_MCP_KEY` | 否 | `CANVAS_MCP_TOKEN` 的别名 |\n\n## 给数字员工喂知识（v0.4.0 起）\n\n岗位可以配知识库：访客问到时，数字员工**先查库再答**，并把依据的那一页显示在画布上；库里没有的，它会直说没有。\n\n| 工具 | 作用 |\n|---|---|\n| `list_kbs` | 我名下的知识库 + 每个岗位配了哪些库 |\n| `read_kb` | 库的页面清单，或某一页原文 |\n| `publish_kb` | 发布一套 wiki（整库替换，可顺手配给岗位）；`checked` 不为 `true` 不发 |\n| `set_staff_kbs` | 设定岗位用哪些库 |\n| `hire_staff` | 按模板开岗，可带 `kbs` |\n\n三步：**整理**（一套 Markdown，`wiki/index.md` 总目录 + `wiki/<主题>/<文章>.md`，一个概念一篇，数字日期照原文写）→ **发布**（`publish_kb`，库名 + 全部页面 + `checked: true`，同名再发是整库替换）→ **配给岗位**（`set_staff_kbs`，或发布时带 `slug`，或 `hire_staff` 直接带 `kbs`）。\n\n> ⚠️ **发布等于公开**：岗位是匿名访客都能聊的，库里写了什么访客就能问出什么。个人隐私、客户资料、令牌、内部运维内容不要放。上限：200 个文件 / 单个 64KB / 合计 2MB。\n\n## 行为\n\n- stdin/stdout 逐行 JSON-RPC 2.0；通知（无 `id`）不回包\n- 上游 HTTP 错误**原样透传**成 JSON-RPC error（`401: Missing Authorization header` / `402: …` / `429: …`），客户端能看见真正原因\n- 上游返回 SSE 或 JSON 都能解析（取最后一条 `data:`）\n- stdin 关闭后等所有在途请求落地再退出\n\n## 验证记录（2026-10-03）\n\n```\ninitialize   ✅ serverInfo teamagent-canvas 0.4.0\ntools/list   ✅ 91 个工具\npublish_kb   ✅ checked:false 被拦下；checked:true 发布成功\nhire_staff   ✅ 开岗并同时配知识库，返回里带 kbs\nset_staff_kbs ✅ 正向成功；跨账号岗位返回 404（越权被拒）\n匿名调用      ✅ {\"error\":{\"code\":-32000,\"message\":\"401: Missing Authorization header\"}}\n```\n\n（早期 0.3.0 的 stdio 马甲验证：initialize / tools/list / tools/call / 无令牌 401 / mcporter 接入，均通过。）\n\n## 拿 Key（自助，30 秒）\n\n外部 / 本地 Agent 无需 TeamAgent 账号：\n\n```bash\ncurl -X POST https://agent.avatargaia.top/api/dev/register \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"my-agent\",\"email\":\"you@example.com\"}'\n# → 返回 dk_ Key（只显示一次）+ 20 credits + 接入信息\n```\n\n- 开发者入口（控制台 / 计费 / 错误码）：https://agent.avatargaia.top/developers\n- 机器可读自描述（Agent 自发现首选）：`GET https://agent.avatargaia.top/api/dev`\n\n## 工具注解\n\n每个工具都带 MCP `annotations`（`readOnlyHint` / `destructiveHint` / `idempotentHint` / `openWorldHint`），付费工具在描述里写明 credit 数，客户端可据此做二次确认。\n\n## 收录\n\n- 官方 MCP Registry：`io.github.AvatarGaia/canvas-mcp`\n- 接入文档：https://agent.avatargaia.top/mcp/canvas.html ｜ LLM 索引：/llms.txt\n","readmeFilename":"README.md"}