插件系统
概述
ClawHub 是 OpenClaw 的官方 Skill 注册表,类似于 npm 之于 Node.js、PyPI 之于 Python。所有通过 openclaw skills install 安装的技能都来自 ClawHub。
ClawHub 现状
截至目前,ClawHub 上共有 13,729 个注册技能。经社区精选(awesome-openclaw-skills 筛选)后,推荐技能约 5,494 个。被排除的 6,940 个技能中:垃圾账号 4,065 个、重复/相似 1,040 个、低质量描述 851 个、加密货币/金融 611 个、恶意技能 373 个。
安装与管理命令
搜索技能
# 关键词搜索
openclaw skills search "browser automation"
# 按分类浏览
openclaw skills search --category "开发工具"安装技能
# 安装到用户目录(全局生效)
openclaw skills install <skill-name>
# 安装到当前项目(仅项目生效)
openclaw skills install <skill-name> --project查看已安装技能
openclaw skills list卸载技能
openclaw skills uninstall <skill-name>更新技能
# 更新单个技能
openclaw skills update <skill-name>
# 更新所有技能
openclaw skills update --all精选技能分类 Top 10
根据 awesome-openclaw-skills 精选列表(5,494 个技能,30 个分类):
| 排名 | 分类 | 精选数量 | 代表技能 |
|---|---|---|---|
| 1 | 编程 Agent & IDE | 1,222 | 0g-compute、academic-research、active-maintenance |
| 2 | Web & 前端开发 | 938 | agent-analytics、agent-chat、agent-hq |
| 3 | DevOps & 云 | 409 | agent-sovereign-stack、agentic-devops |
| 4 | 搜索 & 研究 | 350 | academic-search、knowledge-base |
| 5 | 浏览器 & 自动化 | 335 | agent-browser、agent-device |
| 6 | 生产力 & 任务 | 206 | calendar、todo-manager |
| 7 | AI & LLM 集成 | 197 | 多模型调度、prompt 模板 |
| 8 | CLI 工具 | 186 | 终端增强、脚本辅助 |
| 9 | Git & GitHub | 170 | agent-commons、azure-devops |
| 10 | 图片 & 视频生成 | 169 | ai-video-gen、canva-connect |
安全警告
务必审查源码再安装
ClawHub 生态中存在安全风险。ClawHavoc 事件已经证明,恶意技能可以窃取你的 API Key、读取本地文件甚至执行任意代码。
安装第三方技能前,请务必:
- 查看源码 --- 检查
SKILL.md和scripts/目录中的脚本内容 - 检查下载量和评分 --- 优先选择高下载量、有评分的技能
- 参考精选列表 --- 使用 awesome-openclaw-skills 中经过社区审核的技能
- 关注权限声明 --- 留意技能要求的
tools和env字段
安全扫描工具
| 工具 | 说明 |
|---|---|
| Snyk Skill Security Scanner | 自动扫描技能代码中的已知漏洞和不安全模式 |
| Agent Trust Hub(GenDigital) | 第三方信任评估,评级 Agent 技能的安全等级 |
| VirusTotal 集成 | OpenClaw 与 VirusTotal 合作,在 ClawHub 页面直接展示安全扫描报告 |
安全实践建议
# 安装前先查看技能详情
openclaw skills info <skill-name>
# 安装后审查源码
ls ~/.openclaw/skills/<skill-name>/
cat ~/.openclaw/skills/<skill-name>/SKILL.md精选列表更可靠
awesome-openclaw-skills 列表中的技能经过社区筛选,但仍然是「精选但未审计」(curated, not audited)。技能维护者可能随时更新代码,安装后仍需关注更新内容。
发布技能到 ClawHub
将你的 Skill 分享给社区:
# 登录 ClawHub
openclaw clawhub login
# 发布技能
openclaw clawhub publish ./my-skill发布要求:
SKILL.md必须包含完整的 frontmatter 元数据- 需要有
README.md说明文档 - 不得包含硬编码的密钥或敏感信息
- 必须声明所需的工具和环境变量
MCP 集成(外部服务接入)
MCP(Model Context Protocol)是 AI 世界的 USB 接口。不管什么外部服务——数据库、搜索引擎、文件系统——只要支持 MCP 协议,就能用同一种方式接到你的 Agent 上。
核心概念
MCP 不属于 OpenClaw,但 OpenClaw(以及其他 AI 产品)都可以通过 MCP 接外部服务。理解这个定位就不会犯两个常见错误:
- 不会把 MCP 和 Agent 的内置工具混淆——Agent 本身就能 read/write/exec,不需要 MCP
- 不会以为 MCP 只能在 OpenClaw 里用——MCP 是通用协议,不绑定任何产品
架构链路
Agent → mcporter (桥梁) → MCP Server → 外部服务- mcporter 是 OpenClaw 内置的 MCP 中间件,通过 skill 集成进来——Agent 在对话中遇到需要调用 MCP 工具的场景,会自动走 mcporter
- MCP Server 是具体的外部服务封装,比如文件系统、数据库
- 配置文件在
config/mcporter.json,每个 workspace 有自己的配置
mcporter.json 配置语法
{
"mcpServers": {
"server-name": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-xxx"],
"env": {
"API_KEY": "${API_KEY}"
}
}
}
}字段说明:
- mcpServers — 顶层容器,放所有要接的 Server
- server-name — 你给 Server 起的名字,后面
mcporter call server-name tool-name要用它 - command — 启动命令。大部分 MCP Server 是 npm 包用
npx,少数 Python 包用uvx - args — 参数数组。
-y是 npx 自动确认安装,后面跟包名,再后面跟 Server 自己的参数 - env — 环境变量对象,可选。需要 API key 的 Server 在这里传
环境变量替换
${VAR_NAME} 在 Server 启动时被替换成系统环境变量的值。比如 shell 里 export EXA_API_KEY=xxx,配置里写 "${EXA_API_KEY}" 就会变成 xxx。变量不存在的话 Server 拿到空值,大概率启动失败。
多配置源合并
mcporter 会合并项目级(workspace 下的 config/mcporter.json)和全局级配置。项目级优先,同名 Server 用项目级覆盖全局级。
手把手教程:接文件系统
filesystem MCP Server 是最好的入门案例——不需要 API key,纯本地跑。
步骤 1:准备测试目录
mkdir -p /tmp/mcp-test
echo "hello from mcp" > /tmp/mcp-test/test.txt步骤 2:编辑配置文件
在你的 workspace 下编辑 config/mcporter.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp/mcp-test"]
}
}
}最后那个 /tmp/mcp-test 是安全边界——限制 Server 只能读写这个目录下的文件。
步骤 3:验证配置
mcporter list看到 filesystem Server 和它暴露的工具(read_file、write_file、list_directory 等)就说明成功了。第一次跑会比较慢——npx 要先下载 npm 包,可能等 10-30 秒。
步骤 4:测试调用
# 读文件
mcporter call filesystem read_file path=/tmp/mcp-test/test.txt
# 列目录
mcporter call filesystem list_directory path=/tmp/mcp-test
# 写文件
mcporter call filesystem write_file path=/tmp/mcp-test/new.txt content="written by mcp"mcporter call 参数格式
注意参数是 key=value,不是 --key value,也不是 --key=value。这是 mcporter 自己的语法,和大部分 CLI 工具的习惯不一样。
步骤 5:在 Agent 对话中使用
配好之后直接跟 Agent 说自然语言就行:
帮我用 MCP 文件系统工具读取 /tmp/mcp-test/test.txt 的内容Agent 会自动走 mcporter skill → mcporter call → filesystem Server → 返回结果。你不需要告诉它具体命令——mcporter skill 已经教会它了。
mcporter 命令参考
| 命令 | 作用 | 什么时候用 |
|---|---|---|
mcporter list | 查看已配置的 Server 和可用工具列表 | 配置完之后第一步——确认 Server 加载成功 |
mcporter call | 调用具体的工具,参数用 key=value 格式 | 核心命令,实际干活用这个 |
mcporter auth | OAuth 认证管理 | 需要登录的服务(GitHub、Google 等) |
mcporter emit-ts | 生成 TypeScript 类型定义 | 开发调试用,看某个 Server 暴露了哪些工具和参数类型 |
mcporter daemon | 管理后台持久连接 | 让 Server 保持运行,避免每次调用都重新启动 |
mcporter config | 管理 Server 配置 | 查看和修改配置 |
勘误
有些早期资料提到 mcporter describe 命令——这个命令不存在。查看 Server 工具用 mcporter list,看 TypeScript 类型定义用 mcporter emit-ts。
MCP Server 生态
modelcontextprotocol 组织维护的官方 Server,质量有保障:
| Server | 包名 | 功能 | API key |
|---|---|---|---|
| filesystem | server-filesystem | 本地文件读写,目录白名单 | 不需要 |
| postgres | server-postgres | PostgreSQL 查询和操作 | 不需要(需连接串) |
| sqlite | server-sqlite | SQLite 数据库查询 | 不需要 |
| brave-search | server-brave-search | Brave 搜索引擎 | 需要 |
| puppeteer | server-puppeteer | 浏览器自动化和截图 | 不需要 |
| memory | server-memory | 持久化记忆存储 | 不需要 |
| exa | server-exa | Exa 语义搜索 | 需要 |
包名前缀统一是 @modelcontextprotocol/。官方大概 10 个,社区 100+ 个。
选择建议
- 优先官方 — 文档完善、持续维护。社区 Server 质量参差不齐
- 入门先跑本地 — filesystem 和 sqlite 不需要 API key,装完就能跑
- 不要贪多 — 配 3-5 个就够了,Server 越多 Agent 的工具列表越长,反而影响选择准确率
什么时候该用 MCP
该用的场景:
- 需要接外部 API(搜索引擎、数据库)
- 需要标准化多个外部服务的调用方式
- 需要安全隔离(filesystem Server 的目录白名单比直接 exec 更安全)
别用的场景:
- 简单的文件读写——Agent 自带 read/write 工具
- 简单的网页访问——Agent Reach 或 web_fetch 更直接
- 只用一次的操作——配 MCP 的成本大于操作本身的成本
不要为了用 MCP 而用 MCP。选对工具比统一工具更重要。
Skill + Hook + MCP 三件套对比
三者不是互斥关系,是 Agent 增强体系的三个层面:
| 维度 | Skill | Hook | MCP |
|---|---|---|---|
| 给 Agent 加什么 | 知识 | 反射弧 | 外设 |
| 一句话定义 | 把知识注入 context | 事件触发自动执行代码 | 标准化协议连接外部服务 |
| 组成文件 | SKILL.md | HOOK.md + handler.ts | config/mcporter.json |
| 触发方式 | 用户消息匹配触发词 | 系统事件自动触发 | Agent 按需调用 |
| LLM 参与度 | 高——读取后自己决定 | 无——代码绕过 LLM 直接跑 | 中——LLM 决定何时调用 |
| 适合做什么 | 知识注入、风格约束、操作指引 | 自动化流程、事件响应 | 接数据库、搜索、外部 API |
Skill 管知道什么,Hook 管自动做什么,MCP 管能做什么。
组合技例子:用 Skill 告诉 Agent 搜索任务优先走 exa MCP,用 Hook 在新 session 时自动检查外部服务连接状态,用 MCP 提供实际搜索能力。三层各司其职。