2026年,AI编程工具已经不再是“能不能写代码”的问题,而是“能不能按你的方式写代码”。本文将带你从零开发一个完整的MCP Skill,让Claude Code具备智能需求分析能力。
一、从“能写代码”到“会写代码”:一个真实踩坑故事
三周前,我把团队的一个新功能模块直接交给Claude Code来写。需求说清楚了,上下文给足了,然后我去泡了杯茶。回来看到Claude告诉我“已完成”——代码看起来很整洁,跑起来也没报错。我打了个勾,推上去了。
两天后,QA测试发现了5个边界case没处理,其中一个在高并发下会导致数据丢失。
复盘的时候我发现:Claude没有骗我,它确实完成了我“说的”需求。但它没有质疑需求、没有问边界条件、没有主动写防护测试——因为我没有让它这么做。
这就是Skills存在的意义。
Skills不是给Claude更强的模型能力,而是给它一套工作方法论。它让Claude在开始写代码之前先想清楚,在“完成”之前先验证,在调试之前先系统化定位问题。
根据Anthropic官方文档(2026年5月7日更新),Skills是Claude Code的扩展机制,让Claude能够“用正确的方法、最新的工具、可重复的流程来完成特定任务”。
本文将手把手带你开发一个智能需求分析Skill,让Claude Code在动手写代码之前,先完成一套完整的需求澄清、边界识别和方案评估流程。
二、Claude Code + MCP + Skills:三层架构拆解
在动手之前,先理解Claude Code的扩展体系。根据2026年1月的技术分析,Claude Code的扩展能力分为五个层次:
| 类型 | 用途 | Token成本 | 最佳场景 |
|---|---|---|---|
| Skills | 传授流程知识 | 30-50 token/个 | 领域专业知识 |
| MCP | 连接外部工具 | 可变(可达50k+) | 外部集成 |
| Plugins | 打包和分享 | 内容总和 | 团队标准化 |
| Hooks | 自动化操作 | 极小 | 工作流触发 |
| Slash Commands | 快捷指令 | 极小 | 高频操作 |
核心认知:Skills教Claude“怎么做”,MCP让Claude“能做什么”。
2.1 MCP:AI Agent的“USB协议”
MCP(Model Context Protocol)是Anthropic在2024年推出的开放标准,用于连接AI应用与外部系统和数据。
打个比方:MCP就是AI Agent世界的USB协议。在USB出现之前,键盘用PS/2接口,打印机用并口,鼠标用串口——每个外设一种线。USB统一了这一切。MCP做的是同一件事:GitHub有GitHub的API,Jira有Jira的API,Slack有Slack的SDK——MCP统一了接入方式。
根据Claude Code源码分析(2026年4月),Claude Code围绕MCP协议搭建了一套完整生态系统:多层级配置、7种传输方式、自动重连、OAuth认证、Elicitation双向交互。
截至2026年,MCP生态系统已经显著成熟,MCP CLI v0.3.0引入了增强的连接池、工具过滤能力和精简的三子命令架构。
2.2 Skills:渐进式披露的“专家操作手册”
Skills是Anthropic在2025年12月为Claude Code推出的能力扩展机制。目前,Claude Code、Codex、GitHub、VS Code、Cursor、Codebuddy等主流AI编程工具都对这个标准做了兼容。
Skills的核心设计理念是“渐进式披露”(Progressive Disclosure):
- 元数据扫描:Claude只加载Skill的名称和描述(约30-50 token)
- 相关性匹配:如果Skill匹配当前任务,才加载完整指令
- 资源按需加载:脚本和文件只在执行时加载
这意味着你可以安装100+ Skills而不影响上下文窗口。Claude按需加载,需要什么加载什么。
根据Anthropic工程博客(2025年10月16日),Skills被定位为“可移植的‘know-how’层”,Agent决定何时以及如何调用它们。
2.3 为什么需要“智能需求分析Skill”?
在AI辅助开发中,最常见的问题不是“代码写不出来”,而是**“代码写偏了”**。
模型的训练数据更新速度,往往赶不上框架和SDK的迭代速度。更关键的是,模型倾向于直接给出答案,而不是先澄清问题。
一个智能需求分析Skill的价值在于:
- 强制需求澄清:在写代码之前,先让Claude列出需求中的模糊点和假设
- 边界条件识别:主动识别可能被忽略的边界case和异常场景
- 多方案对比:给出至少2-3种实现路径及其权衡
- 风险前置暴露:在投入编码之前暴露潜在的技术风险和依赖
三、架构设计:一个完整的需求分析Skill应该长什么样
3.1 Skill的目录结构
根据Claude Code官方规范,一个Skill就是一个文件夹,核心是SKILL.md文件:
~/.claude/skills/requirement-analysis/ ├── SKILL.md # Skill的核心定义(必需) ├── templates/ │ ├── requirement-template.md # 需求文档模板 │ └── risk-checklist.md # 风险检查清单 ├── scripts/ │ └── parse_requirements.py # 可选:辅助解析脚本 └── resources/ └── examples/ # 示例需求文档3.2 SKILL.md的核心结构
SKILL.md包含YAML frontmatter和Markdown指令两部分:
--- name: requirement-analysis version: 1.0.0 description: | 智能需求分析Skill。在开始编码前,对需求进行系统化分析: 澄清模糊点、识别边界条件、评估技术方案、暴露潜在风险。 tags: - analysis - requirements - planning - design author: your-team-name --- # 智能需求分析 Skill ## 触发条件 当用户提出以下类型的请求时,自动激活本Skill: - "帮我实现一个..." - "我需要开发..." - "写一个...的功能" - 任何涉及新功能开发或功能修改的请求 ## 分析流程 ### 第一阶段:需求澄清(Brainstorming) **目标**:在动手之前,先理解问题的本质。 执行以下步骤: 1. 用一句话复述用户的核心需求 2. 列出3个关键问题需要用户确认 3. 识别需求中的隐含假设 4. 标注需求中的模糊表述 **输出格式**:需求理解确认
- 我理解您需要:[一句话总结]
- 需要您确认的3个问题:
- …
- …
- …
- 我的假设:
- …
- 需要澄清的模糊点:
- …
### 第二阶段:边界条件识别 **目标**:找出容易被忽略的边界case。 系统化检查以下维度: - 输入边界:空值、极值、特殊字符、超长输入 - 状态边界:初始状态、中间状态、终态、异常状态 - 并发边界:竞态条件、死锁、幂等性 - 依赖边界:外部服务不可用、超时、降级 - 权限边界:未认证、未授权、越权 **输出格式**:边界条件清单
| 类别 | 边界条件 | 风险等级 | 处理建议 |
|---|---|---|---|
| 输入 | … | 高/中/低 | … |
### 第三阶段:技术方案评估 **目标**:给出至少2种实现路径并对比。 对于每个方案,评估: - 实现复杂度(1-5) - 维护成本(1-5) - 性能影响(1-5) - 依赖引入 - 团队熟悉度 **输出格式**:技术方案对比
方案A:[名称]
- 实现复杂度:⭐️⭐️⭐️
- 优点:…
- 缺点:…
- 适用场景:…
方案B:[名称]
…
推荐方案:[A/B]
理由:…
### 第四阶段:风险暴露 **目标**:在编码前暴露潜在风险。 检查清单: - [ ] 是否涉及敏感数据处理? - [ ] 是否引入新的外部依赖? - [ ] 是否影响现有功能? - [ ] 是否需要数据库迁移? - [ ] 是否有性能瓶颈风险? - [ ] 是否有安全漏洞风险? ### 第五阶段:输出分析报告 整合以上四个阶段的输出,生成一份完整的**需求分析报告**,供用户确认后再开始编码。3.3 架构设计要点:为什么要这样设计?
渐进式披露原则:上述SKILL.md虽然内容详尽,但Claude在加载时只读取metadata(name和description),约30-50 token。只有当用户提出“帮我实现一个功能”时,Claude才会根据description匹配并加载完整指令。
模板与脚本分离:将模板和脚本放在独立目录,Skill本身只定义流程。这样便于版本管理和复用——同一个流程可以配合不同的模板使用。
强制输出结构化:要求Claude按固定格式输出分析结果,确保每次分析的质量一致性。
四、实战开发:从零到一构建需求分析Skill
4.1 环境准备
第一步:安装Claude Code CLI
npminstall-g@anthropic-ai/claude-code claude--version# 应显示 >= 2.0.70截至2026年5月,Claude Code最新版本为v2.1.142,Fast模式默认使用Opus 4.7。建议升级到最新版本以获得完整的MCP和Skills支持。
第二步:创建Skills目录
# macOS/Linuxmkdir-p~/.claude/skills# Windowsmkdir%APPDATA%\claude-code\skills根据官方文档(2026年5月7日更新),Claude Code会从~/.claude/skills目录自动发现Skills。
第三步:创建Skill目录和文件
cd~/.claude/skillsmkdir-prequirement-analysis/{templates,scripts,resources/examples}touchrequirement-analysis/SKILL.md4.2 编写SKILL.md
将上一节设计的SKILL.md内容写入文件。这里有几个关键技巧:
技巧1:description要精准
Claude根据description匹配Skill,所以要包含足够的关键词:
description:|智能需求分析Skill。在开始编码前,对需求进行系统化分析: 澄清模糊点、识别边界条件、评估技术方案、暴露潜在风险。 适用于:新功能开发、功能修改、架构设计、技术选型。技巧2:指令要具体、可执行
不要写“分析需求”,要写具体的步骤和输出格式。Claude需要明确的指引。
技巧3:包含示例
在SKILL.md中加入输入输出示例,让Claude理解期望的输出格式。
4.3 添加辅助模板
创建templates/requirement-template.md:
# 需求分析报告 ## 1. 需求概述 [一句话描述] ## 2. 需求澄清 ### 2.1 核心问题 [3个关键问题] ### 2.2 隐含假设 [列出假设] ### 2.3 模糊点 [列出需要澄清的模糊点] ## 3. 边界条件 | 类别 | 条件 | 风险 | 处理 | |------|------|------|------| ## 4. 技术方案 ### 方案对比 | 维度 | 方案A | 方案B | |------|-------|-------| ### 推荐方案 [推荐及理由] ## 5. 风险评估 [风险清单] ## 6. 下一步行动 [确认后开始编码]4.4 测试Skill
手动触发测试:
在Claude Code中输入:
使用requirement-analysis Skill分析以下需求: “我需要一个用户登录功能,支持邮箱和手机号两种方式”自动触发测试:
直接说“帮我实现一个用户登录功能”,观察Claude是否自动激活Skill。
验证Skill是否被识别:
有哪些可用的Skill?如果配置正确,requirement-analysis应该出现在列表中。
4.5 集成MCP工具:让Skill“手眼通天”
纯指令的Skill只能让Claude“知道怎么做”,但有了MCP,Skill就能让Claude“真正做到”。
以需求分析为例,我们可以集成以下MCP工具:
4.5.1 集成Context7 MCP:动态读取最新文档
Context7 MCP可以让Claude实时查询最新的官方文档,避免使用过时的API。
配置~/.claude/settings.json:
{"mcpServers":{"context7":{"command":"npx","args":["-y","@context7/mcp-server"]}}}在SKILL.md的技术方案评估阶段,加入:
**使用Context7查询相关技术的最新文档**: - 如果方案涉及特定框架/库,先查询其最新API文档 - 确认方案中使用的API版本是否仍然有效 - 记录文档中的最佳实践建议4.5.2 集成GitHub MCP:分析代码库现状
GitHub MCP让Claude能够读取issues、管理PR、触发CI/CD。
在需求分析中,可以:
- 查询是否有相关的issue或讨论
- 分析代码库中类似的实现模式
- 识别需要修改的模块
4.5.3 集成Sequential Thinking MCP:复杂推理
Sequential Thinking MCP是2026年值得关注的一个工具,它让Claude能够进行显式、可检查的推理。
在需求分析中,对于复杂决策(如技术选型、架构设计),可以调用Sequential Thinking进行多步推理,并将推理过程呈现给用户审查。
4.6 完整工作流示意
用户:“帮我实现一个xx功能” ↓ Claude扫描Skills → 匹配到requirement-analysis ↓ 加载SKILL.md完整指令 ↓ 第一阶段:需求澄清 → 输出3个关键问题 ↓ 用户回答 → 进入第二阶段 ↓ 第二阶段:边界识别 → 调用Context7查询相关文档 ↓ 第三阶段:方案评估 → 调用GitHub MCP分析代码库 ↓ 第四阶段:风险评估 → 输出风险清单 ↓ 输出完整需求分析报告 ↓ 用户确认 → 开始编码五、安全风险:MCP不是“免检产品”
2026年,MCP生态快速扩张的同时,安全问题也浮出水面。任何在生产环境使用Claude Code的团队,都必须正视这些风险。
5.1 MCP OAuth Token劫持攻击
2026年4月,Mitiga Labs的研究人员发现了一种针对Claude Code MCP的中间人攻击。
攻击原理:
- 攻击者通过恶意npm包的postinstall脚本,静默重写
~/.claude.json - 将MCP流量重定向到攻击者控制的代理
- 当开发者连接或重连MCP集成时,Claude Code执行完整的OAuth流程
- 攻击者截获OAuth bearer token
- 攻击者获得对Jira、Confluence、GitHub等平台的持久访问权限
Mitiga于2026年4月10日向Anthropic报告了该问题。Anthropic于4月11日确认,4月12日回应称该问题“超出范围”,理由是用户的事先同意是攻击的先决条件。没有计划发布补丁。
这意味着什么?MCP的安全责任在用户和开发者,不在Anthropic。
5.2 恶意MCP服务器配置导致RCE
2026年5月,安全研究人员发现,所有主流AI编码CLI(Claude Code、Gemini CLI、Cursor CLI、Copilot CLI)都可能自动执行项目定义的MCP服务器。
当用户接受文件夹信任提示时(所有工具默认选择“Yes/Trust”),项目中的恶意MCP服务器配置会被自动执行。
GHSA-8Q5R-MMJF-575Q漏洞详细说明了:恶意PR中的MCP服务器配置可实现远程代码执行和密钥泄露。
5.3 企业安全实践建议
根据2026年5月的企业落地观察,以下是关键建议:
1. 对MCP工具做三级分类:
| 级别 | 类型 | 示例 |
|---|---|---|
| 只读 | 文档、issue、PR、日志 | 安全风险低 |
| 受控写 | 创建分支、提交MR、更新工单 | 需审批 |
| 高风险 | 生产数据库、云资源变更、密钥系统 | 禁止或二次确认 |
2. 启用MCP网关:2026年4月的OX Security关于STDIO RCE的公告,推动行业向HTTP传输和网关集中执行转移。MCP网关可以拦截所有发现和调用,附加span属性,在执行策略和护栏检查后转发。
3. 记录审计日志:
- 模型名称和版本(如Claude 4.7、GPT-5.5)
- 输入/输出/cache token
- MCP工具调用次数和失败原因
- Shell命令、退出码、耗时
- 文件改动范围
4. 使用worktree隔离:
Claude Code v2.1.133新增了worktree.baseRef,允许选择从origin/或本地HEAD创建worktree。建议默认使用临时分支或隔离worktree,避免Agent直接修改主工作区。
5. 注意Plan mode的边界:v2.1.136修复了Plan mode在某些allow rule下没有正确阻止文件写入的问题。企业如果依赖“先计划、后执行”的审批流程,应确认版本已更新并做本地验证。
5.4 微软披露的GitHub Action漏洞
2026年6月,微软通过HackerOne披露了一个Claude Code GitHub Action漏洞。该漏洞可能让攻击者通过提示注入从开发管线窃取凭据。
Anthropic于2026年5月5日使用Claude Code v2.1.128修补了该漏洞,通过阻止访问runner环境中的敏感系统文件。
安全启示:保持Claude Code更新到最新版本是最基本的安全实践。v2.1.128还修复了MCP工具结果丢弃图片、MCP服务器启动失败自动重试等问题。
六、竞品对比:Claude Code的Skill生态处于什么位置?
截至2026年6月,AI编程工具市场已经形成了清晰的格局。
6.1 主流工具对比
| 维度 | Claude Code | Cursor | Windsurf | GitHub Copilot |
|---|---|---|---|---|
| 形态 | 终端CLI | VS Code Fork | VS Code Fork | IDE插件 |
| 模型 | Opus 4.7 (默认) | 多模型 | 多模型 | GPT-4.5+ |
| SWE-bench Pro | 80.8% | ~60% | ~55% | ~50% |
| MCP支持 | ✅ 原生 | ✅ | ✅ | ✅ |
| Skills支持 | ✅ 原生 | ✅ 兼容 | ✅ 兼容 | ❌ |
| 工具数量上限 | ~50个可靠 | ~40个 | 100个 | N/A |
| 月活 | - | 500万+ | - | 数千万 |
6.2 Skills的跨平台优势
Skills目前已在多个平台得到支持:
- Claude Code:原生支持
- Codex CLI:兼容
- Gemini CLI:兼容
- Cursor:通过MCP兼容
- VS Code:通过MCP兼容
- Codebuddy:兼容
这意味着你开发的Skill可以在多个AI编程工具上复用。同一个SKILL.md文件,在Claude Code、Cursor、Codex中都能工作。
6.3 模型能力对比
2026年5月,Claude Code v2.1.142将Fast模式默认模型从Opus 4.6升级到Opus 4.7。根据SWE-bench Pro测试,Claude Code以80.8%登顶能力榜首。
相比之下:
- Cursor 3月活突破500万,用户体验最优
- GitHub Copilot凭借微软生态稳扎企业市场
- Windsurf被OpenAI于2025年6月以30亿美元收购
6.4 选择建议
如果你需要:
- 深度推理和复杂代码理解→ Claude Code(Opus 4.7 + 200K上下文)
- IDE内无缝体验→ Cursor
- 预算有限/免费额度→ Windsurf
- 企业标准化和微软生态→ GitHub Copilot
对于Skill开发:Claude Code是首选,因为它是Skills的“发源地”,支持最完整。但得益于跨平台兼容性,你的Skill可以在任何支持MCP的工具上运行。
七、生态工具:2026年值得关注的MCP生态
7.1 MCP CLI v0.3.0
2026年1月发布的MCP CLI v0.3.0带来了架构重构:
- 三子命令架构:
info(查看服务器信息)、grep(搜索工具)、call(调用工具) - 连接池守护进程:减少重复连接开销
- 工具过滤:按需筛选工具,减少token消耗
# 查看MCP服务器信息mcp info github# 搜索工具mcpgrepgithub"create.*issue"# 调用工具mcp call github create_issue--params'{"title":"..."}'7.2 Skills-Creator:用AI生成Skill
2026年1月,Anthropic发布了Skills-Creator——一个构建Skill的Skill。
你只需要用自然语言描述想要的Skill,Skills-Creator会自动生成:
- 完整的SKILL.md(含正确的frontmatter)
- 参数验证schema
- 使用示例和返回类型定义
- 可选的manifest.json
对于团队来说,这意味着交付10个自定义Skill的时间,只相当于以前交付1个。
# 安装Skills-Creatorgitclone https://github.com/anthropics/skills.gitcdskills/skills/skill-creatornpminstall&&npmrun build配置~/.config/claude-code/config.json:
{"mcpServers":{"skills-creator":{"command":"node","args":["/path/to/skills-creator/dist/index.js"],"env":{"SKILLS_OUTPUT_DIR":"~/claude-skills"}}}}然后在Claude Code中说:
创建一个Skill,用于分析Python项目的依赖关系和版本冲突Skills-Creator会帮你生成完整的Skill。
7.3 phoenix-skills:远程Skills加载
phoenix-skills(2026年3月发布)通过MCP将Claude Code连接到远程Skills:
- 创建
.mcp.json配置Claude Code连接到Phoenix Skills MCP服务器 - 创建
CLAUDE.md指导Claude加载项目Skills - 无需安装,通过
npx直接运行
7.4 claude-mem-lite:持久化记忆
2026年6月发布的claude-mem-lite是基于MCP的轻量级持久化记忆插件:
- 自动捕获编码会话中的决策、修复和上下文
- 通过FTS5 + TF-IDF混合检索召回
- 跨会话记忆,让Claude“记住”之前的讨论
对于需求分析Skill来说,这意味着Claude可以记住之前分析过的需求,避免重复问同样的问题。
八、MCP网关:企业级部署的关键组件
8.1 为什么需要MCP网关?
当一个团队有多个MCP服务器(GitHub、数据库、Jira、Slack等),每个开发者都需要单独配置——这是不可扩展的。
MCP网关作为一个中间层:
- Claude Code只连接到一个网关端点
- 网关将请求路由到各个MCP服务器
- 网关处理认证、授权、审计和成本控制
8.2 MCP网关的四大价值
1. Token成本降低
一个MCP网关可以通过四个杠杆降低Claude Code的MCP token成本,其中一个(编译工具执行)在508个工具、16个MCP服务器的测试中实现了92.8%的减少。
2. 统一安全策略
2026年4月的OX Security STDIO RCE公告推动行业向HTTP传输和网关集中执行转移。在网关层面可以:
- 统一执行OAuth认证
- 实施工具调用审计
- 阻断高风险操作
- 执行最小权限原则
3. 模型网关集成
企业不会永远只用一个模型。复杂设计用Claude 4.7,测试生成用GPT-5.5,低成本批处理用更便宜的模型。
Claude Code的model configuration支持ANTHROPIC_BASE_URL,并可通过CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1从兼容gateway的/v1/models发现模型。
4. 工具数量管理
如前所述,MCP Server工具数量过多会导致静默失效。网关可以做工具聚合和过滤,只暴露Claude当前需要的工具。
8.3 MCP网关配置示例
在~/.claude/mcp.json中配置网关:
{"mcpServers":{"gateway":{"command":"npx","args":["-y","@your-org/mcp-gateway"],"env":{"GATEWAY_URL":"https://mcp-gateway.your-company.com","API_KEY":"${GATEWAY_API_KEY}"}}}}网关负责将请求路由到各个后端MCP服务器,并附加正确的凭证。
九、总结与展望
9.1 核心要点回顾
Skills是Claude Code的方法论层:不是让模型更聪明,而是让模型更“守规矩”。通过渐进式披露设计,100+ Skills也不会撑爆上下文。
MCP是连接层:让Claude Code能访问GitHub、数据库、API等外部系统。MCP + Skills = 能力 + 流程。
需求分析Skill的核心流程:需求澄清→边界识别→方案评估→风险暴露→输出报告。让Claude在写代码之前先想清楚。
安全不可忽视:2026年已出现多起MCP相关的安全事件——OAuth Token劫持、恶意MCP配置导致RCE、GitHub Action凭证泄露。企业必须建立MCP治理体系。
Skills跨平台:同一个SKILL.md可以在Claude Code、Cursor、Codex、Gemini CLI等多个工具上运行。
生态工具加速开发:Skills-Creator可以用自然语言生成Skill;MCP CLI v0.3.0提供统一的工具管理;MCP网关解决企业级部署的认证、授权和成本问题。
9.2 实践建议
个人开发者:
- 从1-2个高价值Skill开始,比如需求分析和代码审查
- 用Skills-Creator快速生成Skill骨架,再手工优化
- 加入2-3个MCP服务器(GitHub、Filesystem、Context7)
- 关注Claude Code的版本更新——v2.1.128修复了多个关键问题
企业团队:
- 建立MCP三级分类体系(只读/受控写/高风险)
- 部署MCP网关统一认证、审计和成本控制
- 配置worktree隔离,避免Agent直接修改主工作区
- 记录完整的审计日志(模型版本、token消耗、工具调用、shell命令)
- 不要依赖单一模型——通过模型网关支持多模型路由
9.3 趋势判断
2026年下半年,AI编程工具竞争将进入“流程竞争”阶段——不是比谁能写更多代码,而是比谁能按正确的方式写代码。
Skills作为“流程标准化”的核心载体,将成为区分AI编程工具的关键维度。而MCP作为“能力连接”的开放标准,将决定生态的广度和深度。
下一个值得关注的领域:Skill的市场化和商业化。正如Anthropic的Skills-Creator所示,Skill的创建正在从“手写YAML”变成“自然语言描述”。当创建Skill的门槛降到足够低,Skill的分发、发现和交易就会成为新的生态机会。
本文所有技术信息均基于2026年1月至6月期间公开发布的技术文档、安全公告和社区讨论。主要参考来源包括:Anthropic官方文档和GitHub仓库、Claude Code Changelog、Mitiga Labs安全报告、OX Security公告、SWE-bench Pro测试结果等。建议读者在实际开发中查阅最新的官方文档以获取更新信息。