内容
# 技能管理服务器
一个小而快的 **MCP 服务器** (以及库),为LLM智能体提供持久的知识库,包含代码片段和操作指南。
## 存储内容
`skills-mcp` 存储两种类型的条目(“技能”):
- **代码片段** (`kind: code`) — 任何编程语言的可重用代码(Python、Rust、Bash 等)。
- **操作指南** (`kind: howto`) — 自然语言的逐步说明,LLM 智能体可以记录和重放(例如“运行此工具,然后对每个结果执行此操作…”)。
技能以磁盘上的 JSON 文件形式持久保存(默认:`~/.skills-mcp/skills.json`),并且可以全文搜索。
## 适用对象
- **LLM 智能体** ,希望在不同会话中积累和重用学习模式。
- **自动化管道** ,需要一个简单、可审计的知识存储。
- **开发者** ,希望为其 AI 助手提供长期记忆,以便存储操作指南和代码片段。
## MCP 工具
所有工具均使用下划线分隔的名称,不带点。
| 工具 | 描述 |
|------|-------------|
| `skills_create_skill` | 创建新的代码片段或操作指南 |
| `skills_get_skill` | 按 ID 或名称检索技能 |
| `skills_update_skill` | 更新现有技能的任意字段 |
| `skills_delete_skill` | 永久删除技能 |
| `skills_list_skills` | 列出所有技能,可选按类别/标签筛选 |
| `skills_search_skills` | 跨所有字段进行全文搜索 |
## 快速开始
```bash
# 构建
cargo build --release
# 在标准输入/输出模式下运行(适用于 VS Code / 本地 MCP 客户端)
./target/release/skills-mcp serve --mode stdio
# 作为 WebSocket 服务器运行
./target/release/skills-mcp serve --mode websocket --host 0.0.0.0 --port 8080
# 自定义数据库位置
./target/release/skills-mcp serve --mode stdio --db-path ~/my-skills.json
# 或
SKILLS_MCP_DB_PATH=~/my-skills.json ./target/release/skills-mcp serve --mode stdio
```
## 关键组件
- `src/main.rs` — 命令行界面入口点和 JSON-RPC 消息循环。
- `src/server.rs` — MCP 协议调度(初始化、工具调度、关闭)。
- `src/tools.rs` — 工具模式(MCP JSON)和操作模块调度。
- `src/db.rs` — JSON 文件支持的内存存储(`SkillDb`、`Skill`、`SkillKind`)。
- `src/operations/` — 每个 CRUD 操作一个模块,每个模块都是 `SkillDb` 的薄包装。
- `src/transport.rs` — 标准输入/输出和 WebSocket 传输(自动检测换行符与 Content-Length 分帧)。
- `src/error.rs` — 集中式错误类型。
## 构建要求
- Rust 工具链(版本 2024,MSRV ≥ 1.85)
- `cargo`
参见 `AGENTS.md` 以获取编码约定、扩展说明和面向智能体的文档。