安全扫描
OpenClaw
安全
medium confidence该技能的指令和要求与其目的(通过托管 API 渲染 Excalidraw 图表)相符。它不需要凭据或安装,但会将图表数据发送到第三方端点,因此避免发送敏感内容。
评估建议
该技能似乎正在做它所声称的:通过托管 API 构建和渲染 Excalidraw 图表,并返回 PNG 图像和编辑 URL。主要警告:图表 JSON(包括形状内的任何文本)将上传到第三方主机 https://excalidraw-mcp.up.railway.app(不是官方 Excalidraw 服务)。不要使用此技能创建包含机密、私有架构、凭据或保密数据的图表。如果需要更强的隐私,请请求使用官方/外部审查的 API 或自托管渲染器,或者先使用非敏感样本图表进行测试。...详细分析 ▾
✓ 用途与能力
名称/描述(渲染 Excalidraw 图表为 PNG)与 SKILL.md 匹配:指令将图表元素 JSON 发送到渲染 API,并返回 PNG 和编辑 URL。无不相关的二进制文件、环境变量或安装请求。
ℹ 指令范围
运行时指令仅限于:向 https://excalidraw-mcp.up.railway.app/api/render 发送 JSON,解码 base64 PNG 到 /tmp/diagram.png,并返回/发送编辑 URL。它们不读取任意本地文件或请求不相关的凭据。注意:该技能将传输完整的图表有效负载到外部第三方服务(包括您在形状中输入的任何文本),并指示写入文件到 /tmp。
✓ 安装机制
没有安装规范或代码文件(仅指令)。这是最低的安装风险 — 除了它请求创建的 /tmp/diagram.png 之外,技能本身不会将任何内容写入磁盘。
ℹ 凭证需求
该技能不请求环境变量或凭据,这是合理的。然而,因为它将图表内容发送到外部第三方端点(托管在 railway.app 上,而不是官方 excalidraw.com 域),请谨慎:图表可能包含将被披露给该服务的敏感信息。
✓ 持久化与权限
该技能不请求持久存在,不修改其他技能或系统设置,并使用默认调用设置。没有请求高级权限或始终开启的行为。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/3/3
excalidraw-canvas 初始发布:- 通过 API 创建和渲染 Excalidraw 图表为 PNG 图像。- 支持基本形状(矩形、椭圆、菱形)、文本、箭头、线和自由绘制。- 每次渲染返回 PNG 图像和可编辑的 Excalidraw 链接。- 包含详细文档和使用示例。
● 无害
安装命令 点击复制
官方npx clawhub@latest install excalidraw-canvas
镜像加速npx clawhub@latest install excalidraw-canvas --registry https://cn.clawhub-mirror.com
技能文档
渲染图表或任何绘图为 PNG 通过托管 API。始终检查元素或箭头的坐标。
渲染
RESULT=$(curl -s -m 60 -X POST https://excalidraw-mcp.up.railway.app/api/render \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"elements": [...]}')
# 保存 PNG
echo "$RESULT" | python3 -c "import json,sys,base64; d=json.load(sys.stdin); open('/tmp/diagram.png','wb').write(base64.b64decode(d['png']))"
# 获取编辑 URL
echo "$RESULT" | python3 -c "import json,sys; print(json.load(sys.stdin)['editUrl'])"
响应:{"success": true, "png": "", "editUrl": "https://..../canvas/render-xxxxx"}
始终返回 PNG 图像和可编辑的 Excalidraw 链接。元素类型
所有可用类型:rectangle、ellipse、diamond、text、arrow、line、freedraw形状(rectangle、ellipse、diamond)
{"type":"rectangle","x":100,"y":100,"width":200,"height":80,"bg":"#a5d8ff","label":"My Box"}
{"type":"ellipse","x":100,"y":100,"width":150,"height":100,"bg":"#b2f2bb","label":"Node"}
{"type":"diamond","x":100,"y":100,"width":140,"height":100,"bg":"#ffec99","label":"Decision?"}
x、y— 位置width、height— 大小bg— 任意十六进制填充颜色stroke— 边框颜色(默认#1e1e1e)label— 形状内居中的文本
文本
{"type":"text","x":100,"y":50,"text":"Title","fontSize":28}
箭头与线
{"type":"arrow","x":300,"y":140,"points":[[0,0],[150,0]]}
{"type":"line","x":0,"y":200,"points":[[0,0],[800,0]]}
点相对于 x、y。水平:[[0,0],[150,0]],垂直:[[0,0],[0,100]],弯曲:[[0,0],[0,50],[100,50]]。自由绘制
{"type":"freedraw","x":100,"y":100,"points":[[0,0],[5,3],[10,8],[20,15]]}
自由路径 — 相对于位置的 [x,y] 点数组。完整示例
RESULT=$(curl -s -m 60 -X POST https://excalidraw-mcp.up.railway.app/api/render \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"elements": [
{"type":"text","x":250,"y":20,"text":"System Design","fontSize":28},
{"type":"rectangle","x":50,"y":80,"width":180,"height":70,"bg":"#a5d8ff","label":"Frontend"},
{"type":"rectangle","x":300,"y":80,"width":180,"height":70,"bg":"#b2f2bb","label":"API"},
{"type":"rectangle","x":550,"y":80,"width":180,"height":70,"bg":"#ffec99","label":"Database"},
{"type":"arrow","x":230,"y":115,"points":[[0,0],[70,0]]},
{"type":"arrow","x":480,"y":115,"points":[[0,0],[70,0]]}
]}')
echo "$RESULT" | python3 -c "import json,sys,base64; d=json.load(sys.stdin); open('/tmp/diagram.png','wb').write(base64.b64decode(d['png'])); print(d['editUrl'])"
发送到用户
``message(action="send", filePath="/tmp/diagram.png", caption="✏️ 编辑:{editUrl}")
``
始终包含编辑 URL,以便用户可以调整图表。数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制