在 LLM(大语言模型)驱动的应用开发中,如何让 AI 有效地“获取数据”并“执行动作”是核心挑战。目前,开发者面前有两条主要路径:传统的 Skill (函数调用) 和新兴的 MCP (模型上下文协议) 。本文将从定义、场景对比及实战案例出发,带你深度拆解这两者的异同。
一、 定义:点对点的“插件” vs. 标准化的“协议”
1. Skill (Function Calling) —— 传统的“特遣队”
Skill 是 AI 应用中常见的接口调用方式。开发者为 AI 定义一组特定的 API 函数(如 get_weather 或 query_database),模型根据用户的意图决定调用哪个函数并传入参数。
-
•
本质:硬编码的、点对点的功能实现。
-
•
特点:高度受控,但每个 Skill 都需要独立开发和维护。
2. MCP (Model Context Protocol) —— 现代的“通用接口”
MCP 是由 Anthropic 发起的一项开放协议。它不再关注具体的业务逻辑,而是提供了一个标准框架,让 AI 能够像操作文件系统一样,直接挂载各种数据源(如 Google Drive、Slack、本地数据库)。
-
•
本质:一种“插拔式”的连接标准。
-
•
特点:生态通用性强,一次实现,全平台(如 Claude、Cursor 等)通用。
二、 核心差异对比
| 维度 | Skill (Function Calling) | MCP (Model Context Protocol) |
|---|---|---|
| 协作模式 | 主从模式:开发者决定 AI 能用什么。 | 生态模式:AI 在协议框架下自由探索数据。 |
| 开发成本 | 高:每个新功能都要写代码适配。 | 低:通过现成的 Server 快速接入成熟数据源。 |
| 运行环境 | 主要是 云端(SaaS 应用内部)。 | 极佳的 本地能力(访问本地文件、代码库)。 |
| 灵活性 | 较低:参数和逻辑相对固定。 | 极高:AI 具有“上下文发现”能力,自主性更强。 |
三、 实战场景分析:以 VChart 图表渲染为例
假设你有一个需求:让 AI 获取数据并生成 JSON 传给 VChart 进行界面渲染。
场景 A:数据在你的私有业务系统内(选择 Skill)
如果数据需要经过复杂的业务逻辑计算(比如计算某个用户的信用评分,涉及多个内部微服务),或者你正在开发一个面向最终用户的 Web App。
-
•
优势:安全性高,调用链路清晰,符合标准的后端开发规范。
场景 B:数据在数据库、本地文件或第三方平台(选择 MCP)
如果你需要 AI 灵活地分析 Excel、数据库或 GitHub 提交记录,并将其可视化。
-
•
优势:你可以直接挂载一个
Postgres-MCP。AI 可以自行编写 SQL 提取数据,并根据结果动态调整 VChart 的图表类型(如根据数据分布自动选择柱状图或散点图)。
四、 潜在风险:如果完全放弃 MCP 会怎样?
虽然 Skill 能够完成所有任务,但完全排斥 MCP 可能会导致以下问题:
**维护陷阱**:随着连接的数据源增多,你的代码库将充斥着大量重复的 API 适配代码,维护成本呈指数级增长。
**生态孤立**:目前的 AI IDE(如 Cursor, Windsurf)和主流 Agent 框架正在全面标准化 MCP。不使用 MCP 意味着你的工具无法无缝接入这些强大的生产力生态。
**认知局限**:Skill 通常是“被动触发”的。而 MCP 允许 AI 感知整个数据环境的上下文(Context Discovery),这种从“点”到“面”的提升是 Skill 难以企及的。
五、 总结与建议
Skill 与 MCP 并非替代关系,而是互补关系:
-
•
什么时候用 MCP? 当你需要快速连接多样化的数据源、进行本地开发,或者希望你的工具能被其他 AI 客户端调用时,MCP 是首选。
-
•
什么时候用 Skill? 当你需要严格控制业务逻辑、构建面向 C 端用户的闭源产品,或处理极度敏感的计算逻辑时,Skill 更稳健。
下步行动: 如果你手头有现成的数据库或大量本地文档,不妨尝试搭建一个 MCP Server。只需几行代码,你就能让 AI 拥有“上帝视角”来直接操控这些数据,而无需再为每一个查询编写繁琐的 API 接口。