使用说明
技能经理
使用Claude Code CLI集成管理Claude MCP技能的可视化web界面。
项目概述
该项目提供了一个基于浏览器的UI,用于管理MCP(模型上下文协议)服务器中的技能。技能是基于降价的指令集,克劳德可以按需加载以获得专业知识。
建筑
┌─────────────────────────────────────────────────────────────────┐
│ Skills Manager │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────┐ ┌──────────────────────────┐ │
│ │ Claude Desktop │ │ Browser UI │ │
│ │ (MCP Client) │ │ skills-manager.html │ │
│ └────────┬─────────┘ └────────────┬─────────────┘ │
│ │ │ │
│ │ stdio/MCP │ HTTP REST │
│ │ │ │
│ ┌────────▼─────────┐ ┌────────────▼─────────────┐ │
│ │ server.py │ │ skills_manager_api.py │ │
│ │ (MCP Server) │ │ (Flask API :5050) │ │
│ └────────┬─────────┘ └────────────┬─────────────┘ │
│ │ │ │
│ └────────────┬───────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ skills/ │ │
│ │ (folder) │ │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
文件结构
skills-mcp/
├── server.py # MCP server (FastMCP) - connects to Claude Desktop
├── skills_manager_api.py # Flask HTTP API server (port 5050)
├── skills_manager_app.py # Standalone all-in-one app (for .exe build)
├── skills-manager.html # Web UI (single-file, Tailwind + Lucide)
├── requirements.txt # Python dependencies
├── build.bat # Windows build script for .exe
├── skills/ # Skills directory
│ ├── my-skill/
│ │ ├── SKILL.md # Main skill content
│ │ ├── _meta.json # Metadata (tags, description)
│ │ ├── scripts/ # Optional helper scripts
│ │ └── references/ # Optional reference docs
│ └── another-skill/
│ └── ...
└── dist/ # Built executable + assets
├── SkillsManager.exe
├── skills-manager.html
└── README.md
设置
先决条件
- Python 3.10+
- Node.js(可选,用于Claude Code CLI)
- Claude Code CLI(可选,用于AI功能)
安装
cd skills-mcp
pip install -r requirements.txt
运行API服务器
python skills_manager_api.py
打开时间:http://localhost:5050
运行MCP服务器(适用于Claude Desktop)
当Claude Desktop启动时,MCP服务器会自动运行(在Claude_Desktop_config.json中配置)。
手动测试:
python server.py
日常技能目录审核
回购提供了一个自动审查系统,每天对每项技能进行评分
表面改进机会。看 reports/ 最新的输出。
它的作用
- 通过1(确定性,每次运行): 结构缺陷——文件缺失,
描述漂移
_meta.jsonSKILL.md正面,破损 参考文献,未知depends_on目标、超大SKILL.md文件、精简 无资产技能、重复的子技能触发、过时的评论。 - 第2关(每次跑动一项技能): 技能内容审计
last_reviewed_at是最古老的。运行确定性量规(描述 区别与标签簇兄弟、库版本提及、资产 丰富性、交叉引用),提出relevance_tier(A/B/C/D),以及 可选地调用Claude CLI以获取LLM辅助的量规。 - 通过3(每周): 目录级审查——兄弟姐妹描述重叠, 路由器的必要性,标签集群漂移与上周的快照,来源 分布。
在本地运行
# Add the audit metadata fields once (idempotent):
python scripts/backfill_audit_meta.py
# Daily run (writes reports/YYYY-MM-DD.md):
python scripts/run_daily_audit.py
# With weekly Pass 3 + the LLM rubric:
python scripts/run_daily_audit.py --weekly --use-llm
GitHub操作工作流 .github/workflows/skills-audit.yml 运行
每日06:30 UTC进行审核,并提交结果报告。周一跑步
也执行Pass 3。
添加到的元数据字段 _meta.json
| 字段 | 类型 | 含义 |
|---|---|---|
last_reviewed_at |
ISO日期或空 | Pass 2上次审核此技能的时间 |
review_score |
int 0–100或null | 独特性+资产丰富性+新鲜度+交叉引用的组合 |
relevance_tier |
“A”/“B”/“C”/“D”/null | A=不可替代,B=修剪和保持,C=与基本模型输出冗余,D=过时 |
技能管理器UI将这些显示为过滤器下拉列表和每张卡的徽章。
发展
要编辑的关键文件
| 文件 | 目的 |
|---|---|
skills-manager.html |
前端用户界面(vanilla JS、Tailwind CSS、Lucide图标) |
skills_manager_api.py |
后端REST API(Flask) |
server.py |
用于Claude Desktop集成的MCP服务器 |
skills_manager_app.py |
独立应用程序(结合API+用于.exe的启动器) |
API终点
| 方法 | 端点 | 描述 |
|---|---|---|
| 得到 | /api/skills |
列出所有技能 |
| 得到 | /api/skills/<name> |
获取技能详细信息 |
| 职位 | /api/skills |
创造新技能 |
| PUT | /api/skills/<name> |
更新技能 |
| 删除 | /api/skills/<name> |
删除技能 |
| 职位 | /api/import/folder |
从文件夹路径导入技能 |
| 职位 | /api/import/json |
通过JSON导入文件 |
| 得到 | /api/browse?path= |
浏览文件系统 |
| 得到 | /api/claude/status |
检查Claude CLI的可用性 |
| 职位 | /api/claude/run |
用提示运行Claude |
| 职位 | /api/claude/generate-skill |
用AI生成技能 |
前端结构
UI是一个内嵌CSS和JavaScript的HTML文件:
- 情态动词:导入、文件夹浏览器、文件上传、生成、查看、Claude控制台
- 国家:
skills[],selectedFolderPath,browsePathCache{}等等。 - 关键功能:
browsePath(path)-导航文件系统importSelectedFolder()-将文件夹复制到技能/uploadFiles()-上传文件作为新技能generateSkill()-人工智能技能生成runConsoleCommand()-执行Claude提示
构建可执行文件
# Windows
build.bat
# Or manually
pip install pyinstaller
python -m PyInstaller --onefile --name "SkillsManager" --console ^
--add-data "skills-manager.html;." skills_manager_app.py
输出: dist/SkillsManager.exe
技能格式
SKILL.md结构
---
name: skill-name
description: When Claude should use this skill
---
# Skill Name
## Overview
What this skill helps with.
## When to Use
- Trigger condition 1
- Trigger condition 2
## Quick Start
\`\`\`code
Example usage
\`\`\`
## Best Practices
- Practice 1
- Practice 2
## Examples
Practical examples here.
_meta.json结构
{
"name": "skill-name",
"description": "One-line description",
"tags": ["tag1", "tag2"],
"sub_skills": [],
"source": "imported"
}
Claude桌面配置
地点: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"skills": {
"command": "python",
"args": ["C:/Users/<YOUR_USERNAME>/skills-mcp/server.py"]
}
}
}
MCP工具(适用于Claude)
MCP服务器向Claude公开了这些工具:
| 工具 | 说明 |
|---|---|
list_skills() |
列出所有可用技能 |
get_skill(name) |
加载技能的skill.md内容 |
search_skills(query) |
按元数据搜索技能 |
search_content(query) |
所有技能的全文搜索 |
get_skills_batch([...]) |
一次加载多种技能 |
reload_index() |
刷新技能指数 |
validate_skills() |
检查技能完整性 |
已知问题/待办事项
- []文件夹浏览器在初始加载时不显示驱动器号(从根驱动器开始)
- []覆盖现有技能前无需确认
- []文件上传不会从拖放中保留文件夹结构
- []Claude控制台输出没有语法高亮显示
- []没有版本控制或备份技能
技术栈
- 后端:Python 3.11、Flask、Flask CORS、FastMCP
- 前端:香草JS、顺风CSS(CDN)、Lucide Icons(CDN)
- 构建:PyInstaller
- 协议:MCP(模型上下文协议)
