实践:从MCP到Skill

引言

如果有mcp了,是否还要skill?这是个很有意思的问题。我们来拆解一下“把 MCP 实现成 Skill”这个想法,看看它能带来什么价值,以及是否值得做。

先理清概念:MCP 和 Skill 的关系

  • MCP (Model Context Protocol) 是一个让 AI 助手(如 Claude Code)能动态调用外部工具的协议。

  • Skill 在 Claude 生态中通常指一套封装好的指令、脚本或知识库,可以让 AI 完成一个更高级、更完整的任务(比如“代码审查”、“生成单元测试”等)。

简单理解:MCP 提供的是“原子能力”(工具),Skill 封装的是“场景化工作流”(怎么用这些工具)。

现在有这么一款工具:llmapi-mcp,它是一个专为 Claude Code 设计的 MCP 服务器,能让 AI 能够直接分析你本地的代码项目。这个服务器为 Claude Code 提供了以下 6 个核心工具:

工具名称 功能 应用场景 CLI 示例(CMD)
project_map 生成项目结构概览,包含目录树、关键文件和语言统计等。 让 AI 快速了解项目全貌和主要使用的技术栈。 llmapi-mcp --call project_map "{\"depth\":3,\"focus\":\"src\",\"include_stats\":true}"
file_context 提取文件的摘要信息,如函数和类的签名,可节省 70-90% 的上下文令牌。 需要分析大文件时,避免上下文窗口被撑爆。 llmapi-mcp --call file_context "{\"file_path\":\"src/main.js\",\"detail\":\"outline\"}"
llmapi-mcp --call file_context "{\"file_path\":\"src/api.py\",\"detail\":\"summary\"}"
lint_check 对更改过的文件运行代码检查和类型检查。 AI 在帮你修改代码后,可以自动检查是否引入了新的语法或格式问题。 llmapi-mcp --call lint_check "{\"files\":[\"src/api.js\",\"src/utils.ts\"]}"
run_tests 智能运行测试,只执行与更改文件相关的测试用例。 大幅节省测试时间,让 AI 能快速验证代码变更的正确性。 llmapi-mcp --call run_tests "{\"files\":[\"src/api.js\"]}"
dep_graph 分析文件的导入/依赖关系,明确它引入了什么,以及谁依赖了它。 在进行重构或分析模块影响范围时非常有用。 llmapi-mcp --call dep_graph "{\"file_path\":\"src/api.js\"}"
quality_report 生成一份代码质量报告,包含修改统计和检查摘要。 用于代码审查前,提供一份客观的质量快照。 llmapi-mcp --call quality_report "{}"

使用前需启动服务:llmapi-mcp --serve
停止服务:llmapi-mcp --stop

它的核心思路是零配置、自动检测。对于 Node.js、Python、Rust、Go 等项目,它能自动识别并使用对应的工具(如 ESLint、ruff、cargo clippy 等),然后以 MCP 工具的形式提供给你的 AI 助手调用。你只需要打开(或创建)Claude Code 的 MCP 设置文件 ~/.claude/settings.json,将以下配置添加进去:

{
   
   
  "mcpServers": {
   
   
    "llmapi": {
   
   
      "command": "npx",
      "args": ["-y", "@llmapi/mcp-supervisor"]
    }
  }
}

安装目录:C:/Users/xxx/AppData/Roaming/npm/node_modules/llmapi-mcp/dist/tools

配置保存后,下次与 Claude Code 对话时,直接说“帮我跑一下 lint”就行,AI 会自动调用对应工具来分析你的代码了。如果你在 Claude Code 中已经配置好了 MCP,那么再加一层 Skill 属于多余,意义不大 。但是如果是以下情况,有些场景就会非常有意义:

场景 理由
你想在 Claude Pro(网页版)或 API 里使用 网页版不支持 MCP,但支持自定义 Skill(通过上传指令文件)。你可以写一个 Skill,让 Claude 通过执行命令行来调用 llmapi-mcp(例如用 npx @llmapi/mcp-supervisor 的某个子命令)。
你想把多个 MCP 工具串成一个自动化流程 比如:project_map → 识别修改的文件 → lint_check → 如果有错误 → 调用 file_context 获取相关代码 → 自动修复 → 再跑 run_tests。这个工作流可以写成一个 Skill,一键触发。
你想给非技术用户(或新手)提供极简入口 封装成"代码质量体检"Skill,用户不需要知道 MCP、npm、npx 等概念,只需要说"帮我检查项目健康度"。
你想跨平台复用(比如同时用在 Cursor、Windsurf 等) 如果这些平台都支持 MCP,那直接配置 MCP 更通用。但如果它们只支持 Skill(比如自定义 Prompt + 脚本),那封装一下就有用。

llmapi-mcp Skill 设计

1. 整体架构图

+---------------------------------------------------------------------+
|                              llmapi-mcp                              |
+---------------------------------------------------------------------+
|  输入:用户请求(触发词:代码质量/检查项目/自动化流程等)            |
|  工具:@llmapi/mcp-supervisor (Node.js MCP服务器)                   |
|  输出:质量报告 + 自动化流程执行结果                                 |
+---------------------------------------------------------------------+
                                    |
          +-------------------------+-------------------------+
          |                         |                         |
          v                         v                         v
+----------------+      +----------------+      +----------------+
|   触发词识别    |      |   触发词库      |      |   版本管理      |
|  25+ 触发关键词 |      | 质量体检 等    |      |  v1.0.0         |
+----------------+      +----------------+      +----------------+

2. 核心执行流程(状态机)

+---------------------------------------------------------------------+
|                           执行流程状态机                             |
+---------------------------------------------------------------------+
|                                                                      |
|   +----------+    +----------+    +----------+    +----------+     |
|   | 阶段1    |--->| 阶段2    |--->| 阶段3    |--->| 阶段4    |     |
|   | 环境检查  |    | 项目检测  |    | 执行工具  |    | 输出报告 |     |
|   +----------+    +----------+    +----------+    +----------+     |
|                                                                      |
+---------------------------------------------------------------------+

3. 各阶段详细实现逻辑

阶段1:环境检查

+---------------------------------------------------------------------+
| 1. 环境检查                                                            |
+---------------------------------------------------------------------+
|                                                                      |
|   检查项目:                                                            |
|   +--------------------------------------------------------------+   |
|   | 检查项              | 说明                      | 工具         |   |
|   +--------------------------------------------------------------+   |
|   | Node.js版本        | >= 18.0.0                 | node -v      |   |
|   | Git                | 已安装                    | git --version|   |
|   | llmapi-mcp         | 检查是否已安装            | npm list     |   |
|   +--------------------------------------------------------------+   |
|                                                                      |
|   逻辑流程:                                                           |
|   +-----------------+                                                |
|   | 检查 Node.js    |                                                |
|   | 版本            |                                                |
|   +--------+--------+                                                |
|            |                                                        |
|      +-----+-----+                                                  |
|      v           v                                                  |
|   满足要求     不满足要求                                            |
|      |           |                                                  |
|      v           v                                                  |
|   继续检查     提示安装                                              |
|                                                                      |
+---------------------------------------------------------------------+

实现要点:

  • 使用 child_process.execSync() 调用系统命令
  • 检测版本是否满足最低要求
  • 提供安装指引

阶段2:项目检测

+---------------------------------------------------------------------+
| 2. 项目检测                                                            |
+---------------------------------------------------------------------+
|                                                                      |
|   自动检测项目类型:                                                   |
|   +--------------------------------------------------------------+   |
|   | 项目类型      | 标识文件            | 自动检测工具             |   |
|   +--------------------------------------------------------------+   |
|   | Node.js      | package.json        | ESLint/Biome, Jest/Vitest/Mocha, tsc |   |
|   | Python       | pyproject.toml      | ruff/flake8, pytest, mypy |   |
|   | Rust         | Cargo.toml          | cargo clippy, cargo check, cargo test |   |
|   | Go           | go.mod              | go vet, go test           |   |
|   +--------------------------------------------------------------+   |
|                                                                      |
|   支持的MCP工具 (6个核心工具):                                        |
|   +--------------------------------------------------------------+   |
|   | 工具名称        | 功能                           | 应用场景           |   |
|   +--------------------------------------------------------------+   |
|   | project_map    | 生成项目结构概览               | 快速了解项目全貌   |   |
|   | file_context   | 提取文件摘要信息               | 分析大文件,节省上下文 |   |
|   | lint_check     | 运行代码检查和类型检查         | 自动检查代码问题   |   |
|   | run_tests      | 智能运行相关测试               | 快速验证代码变更   |   |
|   | dep_graph      | 分析导入/依赖关系              | 重构和影响分析     |   |
|   | quality_report | 生成代码质量报告               | 代码审查前质量快照 |   |
|   +--------------------------------------------------------------+   |
|                                                                      |
|   自定义配置 (.llmapi-mcp.json):                                     |
|   +--------------------------------------------------------------+   |
|   | {                                                              |   |
|   |   "linter": { "command": "npm", "args": ["run", "lint:custom"] }, |   |
|   |   "testRunner": { "command": "npm", "args": ["run", "test:unit"] }  |   |
|   | }                                                              |   |
|   +--------------------------------------------------------------+   |
|                                                                      |
+---------------------------------------------------------------------+

阶段3:执行工具

+---------------------------------------------------------------------+
| 3. 执行工具                                                            |
+---------------------------------------------------------------------+
|                                                                      |
|   工具执行模式:                                                        |
|   +--------------------------------------------------------------+   |
|   | 模式              | 说明                                  |   |
|   +--------------------------------------------------------------+   |
|   | 单工具模式        | 单独执行某个工具                       |   |
|   | 工作流模式        | 串接多个工具形成自动化流程              |   |
|   | 体检模式         | 一键执行全面检查(极简入口)            |   |
|   +--------------------------------------------------------------+   |
|                                                                      |
|   工作流示例:                                                          |
|   +--------------------------------------------------------------+   |
|   | project_map --> 识别修改的文件 --> lint_check -->            |   |
|   | 如果有错误 --> file_context --> 自动修复 --> run_tests       |   |
|   +--------------------------------------------------------------+   |
|                                                                      |
|   执行命令:                                                            |
|   +--------------------------------------------------------------+   |
|   | # 单工具执行                                                     |   |
|   | npx llmapi-mcp project_map                                     |   |
|   | npx llmapi-mcp lint_check                                      |   |
|   | npx llmapi-mcp run_tests                                       |   |
|   |                                                                   |   |
|   | # 执行工作流                                                     |   |
|   | npx llmapi-mcp workflow --name code-review                     |   |
|   |                                                                   |   |
|   | # 代码质量体检(极简入口)                                        |   |
|   | npx llmapi-mcp health-check                                    |   |
|   +--------------------------------------------------------------+   |
|                                                                      |
|   工具执行流程:                                                        |
|   +--------------------------------------------------------------+   |
|   | 1. lint_check: 检查代码是否有lint错误                          |   |
|   |    - ESLLint/Biome (Node.js)                                   |   |
|   |    - ruff/flake8 (Python)                                      |   |
|   |    - cargo clippy (Rust)                                       |   |
|   |                                                                   |   |
|   | 2. run_tests: 智能运行相关测试                                  |   |
|   |    - Jest/Vitest/Mocha (Node.js)                                |   |
|   |    - pytest (Python)                                           |   |
|   |    - cargo test (Rust)                                         |   |
|   |                                                                   |   |
|   | 3. dep_graph: 分析依赖关系                                      |   |
|   |    - 展示文件引入了什么                                         |   |
|   |    - 展示谁依赖了这个文件                                       |   |
|   |                                                                   |   |
|   | 4. quality_report: 生成质量报告                                 |   |
|   |    - 修改统计                                                   |   |
|   |    - 检查摘要                                                   |   |
|   +--------------------------------------------------------------+   |
|                                                                      |
+---------------------------------------------------------------------+

阶段4:输出报告

+---------------------------------------------------------------------+
| 4. 输出报告                                                            |
+---------------------------------------------------------------------+
|                                                                      |
|   报告结构:                                                            |
|   +--------------------------------------------------------------+   |
|   | # 代码质量报告                                                   |   |
|   |                                                                   |   |
|   | ## 项目概况                                                      |   |
|   | - 项目类型: Node.js                                             |   |
|   | - 技术栈: JavaScript, TypeScript                                |   |
|   | - 目录结构: 12个主要目录                                         |   |
|   |                                                                   |   |
|   | ## 修改统计                                                      |   |
|   | | 文件类型    | 修改数量 |                                        |   |
|   | |------------|----------|                                        |   |
|   | | .js         | 15       |                                        |   |
|   | | .ts         | 8        |                                        |   |
|   | | .json       | 3        |                                        |   |
|   |                                                                   |   |
|   | ## Lint检查结果                                                  |   |
|   | - 总问题数: 23                                                  |   |
|   | - 错误: 5                                                       |   |
|   | - 警告: 10                                                      |   |
|   | - 提示: 8                                                       |   |
|   |                                                                   |   |
|   | ## 测试结果                                                      |   |
|   | - 执行测试: 45                                                  |   |
|   | - 通过: 42                                                      |   |
|   | - 失败: 3                                                       |   |
|   |                                                                   |   |
|   | ## 质量建议                                                      |   |
|   | 1. src/utils/auth.js:123 - 空指针检查建议                       |   |
|   | 2. src/api/user.js:45 - 建议使用async/await                     |   |
|   +--------------------------------------------------------------+   |
|                                                                      |
|   输出路径: .llmapi-mcp/report_<timestamp>.md                         |
|                                                                      |
+---------------------------------------------------------------------+

4. 关键数据结构

4.1 触发词列表

trigger:
  - 代码质量 / 检查代码质量 / 质量报告
  - 项目健康 / 项目体检 / 代码体检
  - 检查项目 / 项目检查 / 扫描项目
  - lint检查 / 代码检查 / 代码扫描
  - 运行测试 / 执行测试 / 测试验证
  - 依赖分析 / 分析依赖 / 依赖关系
  - 项目结构 / 目录结构 / 项目概览
  - 代码审查 / 审查代码 / review
  - 自动化流程 / 工作流 / 一键检查

4.2 项目检测结果

{
   
   
  "project_type": "nodejs",
  "config_file": "package.json",
  "detected": {
   
   
    "linter": "ESLint",
    "test_runner": "Jest",
    "type_checker": "TypeScript"
  },
  "files_changed": 26,
  "languages": [
    {
   
   "name": "TypeScript", "percentage": 65},
    {
   
   "name": "JavaScript", "percentage": 25},
    {
   
   "name": "JSON", "percentage": 10}
  ]
}

4.3 工具执行结果

{
   
   
  "lint_check": {
   
   
    "status": "completed",
    "errors": 5,
    "warnings": 10,
    "infos": 8,
    "files": [
      {
   
   "file": "src/utils/auth.js", "line": 123, "severity": "error", "message": "Unused variable"}
    ]
  },
  "run_tests": {
   
   
    "status": "completed",
    "total": 45,
    "passed": 42,
    "failed": 3,
    "duration": "12.3s"
  },
  "dep_graph": {
   
   
    "imports": ["lodash", "express", "./utils"],
    "imported_by": ["src/api/user.js", "src/api/order.js"]
  },
  "quality_report": {
   
   
    "summary": "代码质量良好,建议修复3个错误",
    "score": 85
  }
}

5. 流程决策表

输入条件 执行路径 说明
用户说"代码质量体检" 体检模式 一键执行全面检查
用户说"lint检查" lint_check 只执行代码检查
用户说"运行测试" run_tests 只执行测试
用户说"依赖分析" dep_graph 分析依赖关系
用户说"项目结构" project_map 生成项目概览
用户说"质量报告" quality_report 生成质量报告

6. 核心设计原则

原则 实现
零配置自动检测 自动识别项目类型和技术栈
极简入口 "代码质量体检"一句话完成全面检查
工作流串联 多个工具串成自动化流程
多语言支持 Node.js/Python/Rust/Go
安全 API Key等敏感信息支持环境变量

7. 与外部组件交互

+---------------------------------------------------------------------+
|                           组件交互图                                 |
+---------------------------------------------------------------------+
|                                                                      |
|   llmapi-mcp                                                          |
|          |                                                          |
|          +--->  Node.js/npm              (运行时环境)               |
|          |         |                                              |
|          |         +--->  package.json   (项目检测)                |
|          |         +--->  ESLint/Jest    (Node.js工具)             |
|          |         +--->  ruff/pytest    (Python工具)              |
|          |         +--->  cargo/go       (Rust/Go工具)             |
|          |                                                          |
|          +--->  Claude Code            (LLM客户端)                 |
|          |         |                                              |
|          |         +--->  自动调用MCP工具                           |
|          |                                                          |
|          +--->  .llmapi-mcp.json       (自定义配置)                 |
|          |                                                          |
|          +--->  用户                      (交互确认)                |
|                                                                      |
+---------------------------------------------------------------------+

8. Skill 配置信息

字段 值
name llmapi-mcp
version 1.0.0
allowed_tools Read, Write, Edit, Glob, Grep, Bash, task
输出目录 .llmapi-mcp/

9. 技术实现要点

9.1 项目自动检测

// 项目类型检测
const PROJECT_DETECTORS = {
   
   
  'nodejs': {
   
   
    'indicator': 'package.json',
    'linter': ['ESLint', 'Biome'],
    'test_runner': ['Jest', 'Vitest', 'Mocha'],
    'type_checker': 'TypeScript'
  },
  'python': {
   
   
    'indicator': 'pyproject.toml',
    'linter': ['ruff', 'flake8'],
    'test_runner': 'pytest',
    'type_checker': 'mypy'
  },
  'rust': {
   
   
    'indicator': 'Cargo.toml',
    'linter': 'cargo clippy',
    'test_runner': 'cargo test',
    'type_checker': 'cargo check'
  },
  'go': {
   
   
    'indicator': 'go.mod',
    'linter': 'go vet',
    'test_runner': 'go test',
    'type_checker': 'go build'
  }
};

9.2 工作流执行

// 工作流定义
const WORKFLOWS = {
   
   
  'code-review': [
    {
   
   'tool': 'project_map', 'description': '生成项目概览'},
    {
   
   'tool': 'lint_check', 'description': '检查代码问题'},
    {
   
   'tool': 'run_tests', 'description': '运行相关测试'},
    {
   
   'tool': 'quality_report', 'description': '生成质量报告'}
  ],
  'quick-fix': [
    {
   
   'tool': 'lint_check', 'description': '检查代码问题'},
    {
   
   'tool': 'file_context', 'description': '获取错误相关代码'},
    {
   
   'tool': 'auto_fix', 'description': '自动修复'},
    {
   
   'tool': 'run_tests', 'description': '验证修复'}
  ]
};

9.3 质量体检实现

# 代码质量体检 - 一键执行
npx llmapi-mcp health-check

# 等价于执行以下工具:
# 1. project_map - 了解项目结构
# 2. lint_check - 检查代码问题
# 3. run_tests - 验证代码正确性  
# 4. quality_report - 生成综合报告

10. 使用场景示例

场景1: 代码质量体检(非技术用户)

用户: "帮我检查项目健康度"

Skill执行:
1. 自动检测项目类型(Node.js)
2. 自动调用 lint_check + run_tests
3. 生成质量报告

用户看到: "您的代码质量得分 85 分,建议修复 3 个错误"

场景2: 开发者工作流

用户: "检查最近修改的代码有没有问题"

Skill执行:
1. 调用 git diff 获取修改文件
2. 对修改文件执行 lint_check
3. 运行与修改文件相关的测试
4. 生成质量报告

场景3: 自动化流程

用户: "跑一下完整的代码审查流程"

Skill执行:
1. project_map - 生成项目概览
2. lint_check - 检查代码问题
3. 如果有错误: file_context - 获取相关代码
4. 自动修复
5. run_tests - 验证修复
6. quality_report - 生成最终报告

这样便设计了一个智能化代码质量分析与自动化工作流工具,通过零配置自动检测、多工具串联、极简入口设计,让任何用户都能轻松获得专业的代码质量分析和自动化流程能力。

llmapi-mcp Skill 实现

├── SKILL.md                              # Skill 定义文件(已完成)
├── README.md
├── scripts\
│   ├── init.py                           # 环境初始化脚本
│   ├── main.py                           # 主执行逻辑(整合各模块)
│   ├── project_detector.py               # 项目检测模块
│   └── mcp_executor.py                   # 工具执行模块
└── references\                           # 参考文档目录

SKILL.md - Skill 定义文件

---
name: llmapi-mcp
version: 1.0.0
description: 智能化代码质量分析与自动化工作流工具。通过零配置自动检测、多工具串联、极简入口设计,让任何用户都能轻松获得专业的代码质量分析。支持6个核心MCP工具:project_map、file_context、lint_check、run_tests、dep_graph、quality_report。
trigger:
  - 代码质量
  - 检查代码质量
  - 质量报告
  - 项目健康
  - 项目体检
  - 代码体检
  - 检查项目
  - 项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

造夢先森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值