1.概述如果说大模型的推理能力决定了“它有多聪明”那么 MCP 决定了它到底能不能在真实世界里把事做完。这篇文章不是简单介绍一个新名词而是试图回答一个很多工程师心里都在问的问题Claude 的 Skills 和 MCP到底解决了什么为什么它看起来比传统的 Tool / Function Calling 更“重”2.内容2.1 从一个真实问题说起先说一个很常见的场景。你让一个大模型帮你做一件事“帮我查一下这个用户的资料、最近 30 天的订单然后给出运营建议。”如果你做过相关系统第一反应一定是要查用户表要查订单表要聚合数据要分析结果而传统 LLM 的做法往往是用 Prompt 告诉模型“假装你查了数据库”或者用 Function Calling 勉强调用一两个接口或者在外部代码里硬写流程问题是这些方式都存在明显短板Prompt 是假能力Function Calling 是半自动外部流程是模型被动执行Claude 的 Skill MCP试图从底层解决这个问题。2.2 什么是 Claude Skills先把误解说清楚很多人第一次听到 Skill会下意识理解为“哦就是 Tool。”但实际上 Claude Skills 和传统 Tool 并不是一个层级的东西。1.直观理解一下Tool“这是一个函数你可以调用。”Skills“这是一个你被允许使用的能力边界我已经帮你定义好了输入、输出和规则。”2.Skill 更像什么像一个系统 API 类型系统 权限边界的组合体3.一个 Skill 至少包含什么一个完整的 Claude Skill通常包含能力名称Name能力描述给模型看的输入参数结构JSON Schema输出结果结构JSON Schema实际执行逻辑运行在 Skill Server 中也就是说Skill 本身是“声明式”的模型并不关心你是 Python、Java 还是 Rust 实现的。2.3 MCPModel Context Protocol到底是什么先给一个不那么官方的定义MCP 是一套让大模型“安全、可控地使用外部能力并把结果纳入推理过程”的协议。注意关键词不是“调用”而是安全可控纳入推理这三点恰恰是很多 Tool 方案做不到的。1.MCP 解决的核心不是“怎么调函数”而是这几个问题模型怎么知道有哪些能力可以用模型怎么理解这些能力能干嘛模型怎么保证参数不会乱传执行结果怎么回到上下文继续推理整个过程怎么被人类治理MCP 是在解决“模型与现实系统之间的协议问题”。2.4 整体架构Claude 是大脑MCP 是神经系统先看一张整体结构图关键点在这里Claude 不直接接触数据库Claude 不直接发 HTTP 请求Claude 只和 MCP “说话”这就像大脑不会直接控制肌肉纤维而是通过神经系统发信号。2.5 一次完整的 MCP 调用流程我们把一次完整调用拆开来看。1.场景用户说“帮我查一下 testexample.com 这个用户的信息。”1️⃣ Claude 先做什么Claude 首先做的是 语义判断这是一个“查用户”的请求当前上下文里有没有能完成这件事的 Skill如果 MCP Client 注册过类似get_user_by_emailClaude 就会继续。2️⃣ Claude 生成 MCP 调用结构化不是自然语言而是类似这样的结构化请求{ tool: get_user_by_email, arguments: { email: testexample.com } }这一步非常重要模型已经从“生成文本”切换成“生成结构化意图”。3️⃣ MCP Client 做校验MCP Client 会检查Skill 是否存在参数是否符合 Schema是否有权限调用不通过直接拦截。4️⃣ Skill Server 执行真实逻辑比如查数据库调内部 API读取文件5️⃣ 返回结构化结果{ id: u_123, name: Alice, email: testexample.com, level: VIP }6️⃣ Claude 把结果“吃”回上下文注意这里不是“展示给用户”而是作为新上下文继续推理。Claude 可能会接着分析、对比、总结最后才生成自然语言回复。2.6 一个最小可运行的 MCP Skill 示例下面这个示例非常简单但已经具备 MCP 的完整形态。from mcp.server import Server server Server(user_service) server.tool() def get_user_by_email(email: str) - dict: Query user information by email if email testexample.com: return { id: u_123, name: Alice, email: email, level: VIP } return {} server.run()你会发现没有 prompt没有 AI 逻辑只是纯能力定义但 Claude 会自动理解什么时候用它怎么用用完之后怎么继续思考2.7 为什么 MCP 对 Agent 特别重要如果你做过 Agent一定踩过这些坑流程写死状态难维护一步失败全盘崩能力越多越混乱MCP 的好处在于Agent 不需要提前写死流程模型可以动态规划。一个典型 Agent 行为用户需求 “帮我分析这个用户最近的消费情况并给出建议。”Claude 可能会调用 get_user_profile调用 search_orders汇总数据给出分析和建议你不需要写 if/else 流程。2.8 MCP 和 Function Calling 的本质区别很多人会问“这和 OpenAI 的 Function Calling 有什么区别”简单说一句Function Calling 是能力点MCP 是能力体系。2.9 在真实工程中如何用好 MCP一些经验之谈Skill 设计建议一个 Skill 只做一件事输入输出一定要稳定不要返回自然语言错误也要结构化不要做的事情把业务逻辑写进 Prompt一个 Skill 干五六件事让模型自己拼 SQL让 Skill 返回“分析结论”2.10 我对 MCP 的一个判断站在工程视角我认为MCP 是目前最接近“大模型操作系统接口”的设计之一。它做的不是让模型“更聪明”而是让模型更可靠更可控更像一个真正能落地的系统组件3.总结如果你只是做 DemoMCP 可能显得有点“重”。但如果你在做的是企业级 AI 助手AI 编程系统多 Agent 自动化平台那 MCP 不是“可选项”而是迟早要走到的那一步。