open-skills

Forever17/open-skills
2 Stars 192 次浏览 Forever17 更新于 2026-08-23

Open Skills 是一个基于模型上下文协议(MCP)的安全、标准化且“复制粘贴”兼容的代理技能运行时。它旨在使任何支持 MCP 的 AI 应用程序能够快速访问流行的技能功能并安全地执行复杂任务,解决依赖地狱和安全风险问题。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "open-skills": {
      "args": [
        "open-skills-mcp",
        "--skills-dir",
        "E:\\Your_Projects\\skills",
        "--work-dir",
        "E:\\Your_Projects\\workspace"
      ],
      "command": "uvx",
      "env": {
        "S3_ACCESS_KEY": "your_key",
        "S3_BUCKET": "your_bucket",
        "S3_CUSTOM_DOMAIN": "https://***.com",
        "S3_ENDPOINT": "https://***.com",
        "S3_REGION": "default",
        "S3_SECRET_KEY": "your_secret"
      }
    }
  }
}

服务介绍

即插即用, 安全隔离, "Agent Skills"通用模块

License
Python Version
MCP Status
Docker

English | 简体中文


"Open Skills" 是为了解决 Claude code 的 Skills 功能在各种差异化环境中可能出现的脚本运行失败等依赖地狱,以及直接在本机运行社区未知 Skill 代码带来的安全隐患。我将 Anthropic 强大的 Skills 协议完美复刻为即插即用的 MCP 模式,并将其封装在一个安全、隔离、开箱即用的 Docker 沙盒中,让你在任何支持 MCP 的 AI 应用中都能畅享 Skills 的强大。

🚀 核心使命 (Mission)

Open Skills 不是某一个"技能",而是一个真正的"Agent Skills"通用模块

在 Anthropic 发布 Claude Code 后,其强大的 "Skills" 扩展机制令人印象深刻。但目前 Skills 仅能在部分AI工具中使用。Open Skills 的诞生,旨在打破这一围墙,它将 Anthropic 的 Skills 协议复刻为通用的 MCP (Model Context Protocol) 服务。

这意味着:你现在可以在 Trae, Windsurf 等 AI coding 工具或任何支持 MCP 的无工作区环境的AI应用中,直接加载和运行社区丰富的 Skills 资源,并享受到企业级的 Docker 沙盒隔离保护。

🆚 对比 (Claude Code vs Open Skills)

功能特性 Claude Code (官方 CLI) Open Skills (MCP Server)
定位 官方终端 Agent 工具 通用 MCP 协议扩展服务
适用环境 仅限部分宣布支持的AI工具 任何支持 MCP 的工具 (NoteGen, Windsurf, etc)
Skills 来源 官方/本地 Skills 文件夹 完美兼容官方 Skills 结构 (Copy-Paste)
运行环境 本机直接运行 (存在风险) Docker 隔离沙盒 (绝对安全)
依赖管理 需本机 pip/npm install 沙盒预装 + 临时安装 (不污染本机)
上下文加载 渐进式 (元数据 -> 完整内容) 渐进式 (manage_skills: list -> inspect)

🛠️ 工作原理 (How it works)

Open Skills 并不是简单地"执行脚本",而是完整复刻了 Agent Skills 的生命周期:

  1. 能力感知 (Discovery): 通过 manage_skills 工具读取 Skill 头部元数据,Agent 仅凭极小的 Token 消耗即可知道"我有能力做什么"。
  2. 按需加载 (Progressive Loading): 当 Agent 决定使用某项技能时,再次调用 manage_skills 获取完整 SOP (Standard Operating Procedure) 和脚本说明,这与官方的 "Progressive Disclosure" 机制异曲同工。
  3. 依案执行 (Execution): 这里的 Skill 文档 (SKILL.md) 本身就是一份高质量的执行计划 (Plan),Agent 在 Docker 沙盒中严格按照文档步骤调用 execute_command 完成任务。

这种设计完美解决了两大痛点:

  1. 依赖地狱: 不再需要为每个脚本配置复杂的 Python 环境,或者 agent 因为运行失败给你的本机安装大量不明依赖包,沙盒里预装了必要依赖并给予 agent 临时安装依赖包的权限,净化你的本机环境。
  2. 安全隐患: 彻底杜绝 AI 修改系统文件或执行恶意代码的风险,沙盒环境挂载你的 /skills (只读)目录和工作区 /share (读写)目录,恶意代码运行在沙箱环境中,无法修改和读取本机工作区之外的重要文件。

✨ 核心特性 (Features)

特性 说明
📦 开箱即用 (Out of the Box) Copy-Paste 兼容性。直接复制 anthropics/skills 的文件夹或者社区 Skill ,无需修改一行代码即可运行。智能适配层会自动处理路径映射。
🛡️ 沙盒隔离 (Sandbox Security) 所有代码均运行在用后即焚的Docker 容器中。Agent 只能访问挂载到本机的 /skills 和 /share 目录,宿主机系统绝对安全。
🔋 全能环境 (Batteries Included) 预装 Python, Node , Pandas, Numpy, LibreOffice 等主流依赖。告别 pip install 的烦恼,专注于任务本身。

🔐 安全与架构设计 (Architecture & Design)

Open Skills 在安全性与易用性之间做了精心的平衡设计:

1. Agent 权限模型 (The Agent Model)

Agent 在容器内以 agent (uid=1000) 用户身份运行,而非 Root。

  • 权限边界: 剥夺了破坏系统(如 apt-get, rm -rf /bin)的能力,但保留了所有创造性工作(代码读写、脚本执行、pip/npm install)的权限。
  • 文件所有权: agent 用户通过 Docker 挂载机制拥有 /share 工作区的完全读写权,确保 Agent 生成的文件在宿主机上也是普通用户权限,不会出现 "root user only" 的文件锁死问题。

2. 智能 Node.js 环境 (Smart Node Setup)

为了解决 "Agent 想装包但没权限" 的经典死锁,我们采用了 Environment Injection 设计:

  • 无感知安装: 配置 NPM_CONFIG_PREFIX="/share/.npm-global",当 Agent 执行 npm install package 时,包会被自动安装到它有写权限的 /share 下。Agent 以为它在装全局包,实际上它在装用户包——Zero Config, Zero Error

📂 目录与架构

open-skills/
├── open_skills/               # [Core] 核心逻辑包
│   ├── cli.py                 # MCP Server 入口
│   ├── sandbox.py             # Docker 容器管理器
│   ├── Dockerfile             # 全能镜像定义
│   └── skills/                # 技能库 (仅开发环境需要放在这里,UVX安装用参数挂载任意目录)
├── docs/                      # [Docs] 文档与指南
│   ├── EN/                    # 英文文档
│   └── ZH/                    # 中文文档
├── README.md                  # 英文文档
├── README_zh.md               # 中文文档
└── LICENSE                    # MIT 开源协议

🛠️ 工具集 (Toolbox)

连接 Open Skills MCP 服务后,您的 Agent 将获得以下超能力:

  • 📚 manage_skills: 技能向导。采用 渐进式加载 机制:首先读取所有 Skills 的头部描述让 Agent 快速感知能力边界 (list),选定后再读取完整文档作为执行 SOP (inspect)。Skill 文档本身即是高质量 Plan,无需额外的规划模式。
  • 💻 execute_command: 执行引擎。在安全容器内运行 Bash 命令(Python, Node, Shell 等)。
  • 📂 read_file / write_file: 文件操作。在工作区安全地读写文件(read_file 支持分页防止 Context 溢出)。
  • 🧱 append_file: 大文件追加。专用于解决 LLM 输出 Token 限制,支持分块写入超大文件。
  • ☁️ upload_to_s3 / download_from_s3: 云端传输。配置 .env 后即可实现 agent 自动执行文件与 S3 的互传。
  • 👀 list_directory: 环境感知。在工作区安全地列出目录内容,非 IDE 环境需要。

💡 最佳实践

让 Agent 适应沙盒环境

由于彻底摘离了 Skills 的系统级运行环境并重新设计了沙盒运行机制,我建议在你的 Agent Prompt 中加入一段 Prompt 秘籍 ,帮助它更好的掌握 skills 和沙盒环境。(可选,感觉 MCP 服务效果不佳时启用)

Agent 指南(MD) > 将这段提示词插入你原本的 System Prompt 中。

这能解决:

  1. 空间感知: 明确 /share 对应当前目录。
  2. 标准流程: 强制执行 "查文档 -> 写代码 -> 跑测试" 的 SOP。
  3. 权限自信: 赋予 Agent 敢于在沙盒内执行命令的信心。

⚠️ 关于"元技能" (Meta-Skills)

请在沙盒环境测试后再进行转移 skill-creator 等让 AI 自己写Skill的工具生成的 Skill ,需要你手动从工作区转移至 /skills 目录。

  • 风险: AI生成的脚本具有不确定性,直接在本机运行可能会产生风险。
  • 建议: 人工审查代码,AI 执行操作

⚡ 快速开始 (Quick Start)

1. 准备工作 (Prerequisites)

本项目核心运行在安全隔离的 Docker 沙盒中,因此是必选步骤:

  1. 安装 Docker Desktop 并启动。

    v0.2.2 更新: 支持 惰性连接 (Lazy Connection)。你可以在不启动 Docker 的情况下启动 MCP 服务(进入离线模式),仅在 Agent 真正执行任务时才需要连接 Docker。这将解决 IDE 因服务启动失败而崩溃的问题。

  2. 准备镜像(二选一):

    • 选项 A:直接拉取 (推荐)

      docker pull forever17/open-skills:latest
      
    • 选项 B:手动构建 (开发者)

      手动修改 Dockerfile ,预装你最常用的依赖包,然后重新构建镜像。

      # 在源码目录下执行
      docker build -t open-skills:latest open_skills/
      

2. 配置 (Configuration)

我们强烈推荐使用 uvx (无需手动安装 Python 环境) 直接运行。

🚀 推荐配置 (via uvx)

在您的 mcp_config.json (VS Code) 或任意支持 MCP 协议的AI工具中添加:

{
  "mcpServers": {
    "open-skills": {
      "command": "uvx",
      "args": [
        "open-skills-mcp",
        "--skills-dir", "E:\\Your_Projects\\skills",  // [必选] 挂载本地 Skills 目录
        "--work-dir", "E:\\Your_Projects\\workspace"      // [必选] 指定工作区目录
      ],
      "env": {
        // [可选] 如果需要 S3 功能
        "S3_BUCKET": "your_bucket",
        "S3_REGION": "default",
        "S3_ENDPOINT": "https://***.com",
        "S3_CUSTOM_DOMAIN": "https://***.com",
        "S3_ACCESS_KEY": "your_key",
        "S3_SECRET_KEY": "your_secret"
      }
    }
  }
}

注意:

  • 必须配置这两个参数:"--skills-dir" 挂载本地 Skills 目录(任意位置)必选,"--work-dir" 手动指定你的工作区目录(与你IDE的工作区一致)必选

  • 已知限制: 使用 "uvx" 方式运行时,IDE 关闭可能无法正确传递退出信号,导致 Docker 容器残留。更换工作区时,必须手动清理容器 "docker rm -f open-skills-sandbox" 或在 Docker Desktop 中点击删除。重启客户端后会自动重新创建容器。

  • IDE任务模式: 建议不要使用 Planning、Task、Spec 等 Agent 任务模式,这些模式会强制定义任务流程,Skills 需要严格按照 SKILL.md 执行,SKILL.md 就是需要严格遵守的 Plan,不需要被二次定义,这也是在 Claude code 中 Agent 偶尔会不按照 SKILL.md 的流程执行任务的元凶。


如果您是开发者,希望通过源码运行或调试:

运行模式 (Running Modes)

模式 A: SSE (推荐用于开发调试)

启动 HTTP 服务:

uvicorn open_skills.cli:mcp.sse_app --port 8000

SSE 客户端配置:

{
  "mcpServers": {
    "open-skills": {
      "serverUrl": "http://localhost:8000/sse"
    }
  }
}

模式 B: Stdio (本地源码运行)

如果不使用 uvx,而是直接运行源码:

安装 (Install)
git clone https://github.com/justForever17/open-skills.git
cd open-skills
pip install -e .

Windows:

{
  "mcpServers": {
    "open-skills": {
      "command": "python",
      "args": ["-m", "open_skills.cli"],
      "cwd": "E:\\Projects\\open-skills" // 源码目录
    }
  }
}

macOS / Linux:

{
  "mcpServers": {
    "open-skills": {
      "command": "python3",
      "args": ["-m", "open_skills.cli"],
      "cwd": "/path/to/open-skills"
    }
  }
}

📄 开源协议 (License)

本项目基于 MIT License 开源。

💖 赞助 (Sponsorship)

维护开源项目不易,如果您觉得 open-skills 对您有帮助,欢迎请作者喝杯咖啡!

平台 链接 支付方式
爱发电 (Afdian) Afdian 微信, 支付宝

相关 MCP 服务