本期是 Skills 生态观察的第 2 轮单件深拆。对象不是社区新货,而是官方架子上的元老:
anthropics/skills仓库 example-skills 集里的 mcp-builder。它和前面拆过的 skill-creator 属于同一类「造东西的 Skill」——skill-creator 教 Claude 写 SKILL.md,mcp-builder 教 Claude 写 MCP 服务器。换句话说,它不是一件工具,而是生产工具的机床。本文素材来自本地实际安装的官方插件包原文(anthropic-agent-skills 插件内的 SKILL.md 全文逐段精读),核心发现有三:一是它的渐进式披露做得近乎教科书级,主文件只放流程、细节全数下沉;二是它在 Phase 4 要求 Claude「出卷人先做题」,给产出的服务器配十道可验证的评测题;三是它通篇在给模型灌输一个价值观——工具的用户是 LLM,不是人。
mcp-builder 的包结构不复杂,但每一件都有明确岗位:
| 文件 | 岗位 | 何时被加载 |
|---|---|---|
| SKILL.md | 四阶段流程主控 | 触发即入上下文 |
| reference/mcp_best_practices.md | MCP 设计军规 | Phase 1 调研时 |
| reference/python_mcp_server.md | Python/FastMCP 实现指南 | Phase 2 选 Python 时 |
| reference/node_mcp_server.md | TypeScript 实现指南 | Phase 2 选 TS 时 |
| reference/evaluation.md | 评测题出题规范 | Phase 4 出卷时 |
| 评测脚本 | 跑评测用 | Phase 4 收尾时 |
主文件开篇第一句话就值回票价:
"Create MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. The quality of an MCP server is measured by how well it enables LLMs to accomplish real-world tasks."
前半句是功能定义,后半句是质量定义——「一个 MCP 服务器好不好,取决于它能让 LLM 把真实任务完成到什么程度」。注意主语:衡量标准落在 LLM 能不能干活 上,而不是「API 覆盖全不全」「代码优雅不优雅」。这个立场句是整篇 SKILL.md 的公理,后面所有设计原则都是从它推出来的定理。写 Skill 的读者可以先抄走这一招:开篇别写功能列表,先写一句价值观,让模型后面每一步都有裁判依据。
SKILL.md 的 Process 部分是一条刚性的四阶段流水线,用 emoji 章节符做了视觉分节(🚀 高层工作流、📋 最佳实践、🐍 Python、⚡ TypeScript、✅ 评测——五个 emoji 各守一个入口,扫一眼就知道往哪跳):
flowchart TD
A["触发:用户要建MCP服务器"] --> B["Phase 1 调研与规划"]
B --> B1["读MCP最佳实践"]
B --> B2["自导航抓协议文档"]
B1 --> C["Phase 2 实现"]
B2 --> C
C --> C1["搭项目骨架"]
C --> C2["写工具schema与注解"]
C1 --> D["Phase 3 审查与测试"]
C2 --> D
D --> D1["编译验证"]
D --> D2["Inspector 实测"]
D1 --> E["Phase 4 出十道评测题"]
D2 --> E
E --> F["自问自答验证后交付"]
四个阶段各自的目标一句话:Phase 1 想清楚给谁用,Phase 2 把工具长出来,Phase 3 证明它能跑,Phase 4 证明 LLM 真用得好。 最后一阶段是同类 Skill 里罕见的环节,后面单独拆。
Phase 1.1「Understand Modern MCP Design」给出四条原则,每条都值得抄进自己的提示词里:
github_create_issue、github_list_repos。前缀即命名空间,模型检索时靠前缀聚类。Phase 1.2 没有把 MCP 协议规范打包进 Skill(那会让包膨胀且过期),而是写了三行「导航指令」:先抓 https://modelcontextprotocol.io/sitemap.xml 拿目录,再给目标页加 .md 后缀拿 Markdown 纯文本。也就是说,它把「查文档」本身做成了 Skill 内的可执行流程——模型每次触发都会拉到最新版规范,永不腐烂。这是「引用外部真相而非内置副本」的模式,任何写长期生效 Skill 的人都该抄。
框架选型上它明确站队:语言推荐 TypeScript,理由写了三条——SDK 质量高、MCPB 等执行环境兼容性好,以及最诚实的一条:「AI 模型很擅长生成 TypeScript 代码」,因为 TS 生态大、静态类型、lint 工具齐全。传输层推荐:远程服务器用 Streamable HTTP 的无状态 JSON 模式(好扩展好维护,回避有状态会话),本地服务器用 stdio。这三条理由的写法有个细节:它不是说「TS 更好」,而是说「为什么模型写 TS 更顺」——选型理由是为执行者(模型)定制的,不是为人定制的。
Phase 2 把「实现」拆成骨架、基础设施、工具三层。基础设施四件套:带鉴权的 API client、错误处理助手、响应格式化(JSON/Markdown 双格式)、分页支持——注意这四件全部服务于「模型好消化」,没有一件服务于「人好读」。
单个工具的规格书是最值得细看的部分,它分五栏:
outputSchema,响应里用 structuredContent 返回结构化数据——这样客户端不用从文本里猜答案;| 注解 | 含义 | 谁在消费它 |
|---|---|---|
readOnlyHint |
是否只读 | 客户端据此决定要不要弹审批框 |
destructiveHint |
是否有破坏性 | 高危操作前置确认 |
idempotentHint |
重复调用是否安全 | 重试逻辑的依据 |
openWorldHint |
是否与外部实体交互 | 沙箱与网络策略参考 |
四个 hint 全是「hint」——协议不强制为真,但 Skill 要求老老实实填。这里的设计哲学是:工具自己声明风险等级,把安全决策留给调用方,而不是在工具内部写死拦截。
Phase 3 是常规工程自检:DRY、错误处理一致、类型全覆盖,TS 跑 npm run build,Python 跑 python -m py_compile,然后统一用 MCP Inspector(npx @modelcontextprotocol/inspector)实测。这部分任何一个正经的工程 Skill 都会有,不赘述。
Phase 4 才是这件 Skill 的护城河。 它要求给做好的服务器出十道评测题,而且先甩出一段和主文件开篇呼应的立场——评测的目的是「测试 LLM 能否有效地用你的 MCP 服务器回答真实、复杂的问题」。出题流程四步:列工具、只读探索数据、生成十道题、自己把每道题做一遍验证答案。
题目有六条硬标准,每条都在防一种翻车:
| 标准 | 防的是什么翻车 |
|---|---|
| Independent | 题目之间不能有依赖,防止上一题挂了全线崩 |
| Read-only | 只允许非破坏性操作,防止评测毁数据 |
| Complex | 必须多次调用工具,防「一问一答」假评测 |
| Realistic | 得是人类真会问的问题,防出偏题怪题 |
| Verifiable | 答案唯一、可字符串比对,防评分靠感觉 |
| Stable | 答案不随时间变,防题库过期 |
输出是规定的 XML 格式(qa_pair 包 question/answer),Skill 里内置的示例题很能说明出题口味:问的是「查找用动物代号命名的 AI 模型发布讨论,其中一只『斑点野猫』要确定 ASL-X 格式的安全等级,X 是几?」——答案是 3(ASL-3)。这道题要多跳检索、跨文档拼接才能答,且答案是一个可精确比对的字符。「出卷人先做题」是整个 Phase 4 的灵魂:模型必须先用自己造的工具把答案亲手做出来,才有资格把题入库。这相当于给交付物加了一道「自证可用」的关卡,成本只是十次工具调用。
把五份文档的加载时机连起来看,会发现主文件的「薄」是精心设计的:
flowchart TD
S["SKILL.md 主控文件"] -->|Phase 1 按需| R1["mcp最佳实践"]
S -->|Phase 2 按需| R2["Python 实现指南"]
S -->|Phase 2 按需| R3["TS 实现指南"]
S -->|Phase 4 按需| R4["评测出题规范"]
S -->|运行时在线抓| W1["TS SDK 文档"]
S -->|运行时在线抓| W2["Python SDK 文档"]
S -->|运行时在线抓| W3["modelcontextprotocol.io"]
触发时真正进上下文的只有主控文件:流程、裁决原则、加载指令。四份 reference 各自绑定一个阶段,选了 Python 就永远不加载 TS 指南,没到 Phase 4 就不碰评测规范。SDK 文档干脆内置都不内置,运行时直接从 GitHub raw 地址拉。这笔账算下来:触发成本极小,膨胀风险为零,内容永不过期。代价是运行时依赖网络——离线环境下协议文档和 SDK 文档两条腿会断,这是它唯一的结构性软肋。
mcp-builder 这个名字本身就是触发词:动宾结构的 builder,和 artifacts-builder、skill-creator 同一构词法,模型看到「帮我做一个 XX 的 MCP server」「把我们的 API 包成 MCP」这类请求时,语义直接命中。它的 Overview 首句把 MCP、servers、LLMs、tools 几个关键词全部锁进第一句话,等于把触发匹配面拉满。边界同样清晰:用户只是想用某个现成 MCP 服务器时,请求里没有「造/建/build」的语义,不会误触发——「造工具」和「用工具」两个场景被名字切干净了。这也是官方示例集反复示范的一个命名纪律:Skill 名字用动词收尾,把触发边界写进名字里。
适合装的三种人: - 要给自己的 SaaS、内部系统、数据库包一层 MCP 接口的开发者; - 想系统学 MCP 规范的人——把它当一份「会走流程的规范导读」用,比裸读 spec 快; - 在做 Agent 平台、需要批量产出工具接入的团队。
不适合 / 要留心的三种情况: - 只想消费现成 MCP 服务器的用户,这是造车 Skill 不是用车 Skill; - 零代码用户:产出的 TypeScript/Python 项目要本地 Node 或 Python 环境、要跑构建,纯小白拿到的是一堆报错; - 生产部署前必须人工过一遍代码和安全审计——Skill 自己都说了「不确定时优先全面覆盖」,全面暴露 API 的工具集直接上生产,权限面需要人把关。
| 维度 | 权重 | 得分 | 依据 |
|---|---|---|---|
| 功能完整度 | 25% | ★★★★★ | 调研、实现、测试、评测全链路闭环,罕见地管到「交付后可验证」 |
| 设计质量 | 25% | ★★★★★ | 渐进披露、立场句开篇、自导航文档、自评测,四个模式皆可进教材 |
| 实战效果 | 20% | ★★★★☆ | 官方出品、流程完备,但产物质量仍取决于宿主模型执行力,需人收尾 |
| 上手难度 | 15% | ★★★★☆ | 装上即用、触发词清晰,扣一星在产出物需要 Node/Python 环境 |
| 社区活跃度 | 15% | ★★★★☆ | 官方 example-skills 门面件,随 anthropics/skills 仓库持续维护 |
| 加权总分 | 100% | 4.5 / 5 | 设计维度近乎满分的天花板件,短板全在「生成的代码仍需人拍板」 |
不管你写不写 MCP,这五个模式都能直接搬进你自己的 SKILL.md:
# 方式一:从官方仓库手动安装
git clone https://github.com/anthropics/skills.git
cd skills
find . -type d -name "mcp-builder" # 定位目录(不同版本层级可能调整)
cp -r <定位到的路径> ~/.claude/skills/mcp-builder
# 方式二:官方插件包一键带入(mcp-builder 随 example-skills 全家桶分发)
# 在 Claude Code 内运行 /plugin ,安装 anthropic-agent-skills 插件包
装好后直接对话触发:「帮我把 Notion API 封装成一个 MCP 服务器」「给我们的内部系统写个 MCP server,要有分页和错误处理」——含「造/建/build MCP」语义的请求即可命中。
npx @modelcontextprotocol/inspector)[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
