MCP会取代Function Calling吗?深度解析两大技术的底层逻辑与开发者抉择
Function Calling
Function Calling在大模型中的作用:
- 扩展模型能力: 大模型本身无法直接操作外部系统(如数据库、计算工具),但通过调用预设函数,可以完成:实时数据获取(天气、股价、新闻)、复杂计算(数学运算、代码执行)、操作外部系统(发送邮件、控制智能设备);
- 结构化输出: 模型可将用户自然语言请求转化为结构化参数,传递给函数。例如:用户说“明天北京天气如何?” → 模型调用 get_weather(location=“北京”, date=“2025-05-06”);
- 动态决策流程: 模型可根据上下文决定是否(何时)调用函数,甚至链式调用多个函数(如先查天气,再推荐穿搭);
Function Call是大模型与真实世界交互的“桥梁” ,从语言理解 => 具体行动
Function Calling、MCP、Skills的区别:
| 维度 | Function Calling(2023) | MCP(2024) | Skills(2025) |
|---|---|---|---|
| 定位 | 模型厂商私有接口(如OpenAI, Qwen) | 开放协议(类似 HTTP/USB-C) | 私有接口调用、单模型深度适配 |
| 扩展性 | 需为每个模型单独适配 | 一次开发,多模型兼容 | 多模型分拆适配、通用接口封装 |
| 复杂性 | 适合简单、单次调用任务 | 支持多轮对话、复杂上下文管理 | 单轮任务拆解、多轮任务编排 |
| 生态依赖 | 依赖特定模型(如 GPT-4) | 跨模型、跨平台(如 Claude、Cursor) | 单生态绑定、跨生态工具集成 |
| 安全性 | 依赖云端 API 密钥 | 支持本地化数据控制 | 云端密钥管理、本地数据管控 |
| Skills是增强版渐进式的Function Calling。 |
- 先看元数据yaml;
- 再看指导说明书,加载完整的SKILL.md。
简单、原子化任务使用Function Calling会更方便:
- 查询天气 get_weather(city=“北京”);
- 计算数学公式 calculate(expression=“3+5”);
- 发送单条通知 send_email(to = " user @example.com ");
优势:
- 开发快捷: 无需配置 MCP Server,直接通过模型 API 调用预定义函数。
- 低延迟: 单次请求-响应,无需协议层开销。
- 高安全性保障: 代码需以明文形式完整留存于本地项目,全程封闭存储,杜绝外部查看的可能,筑牢数据安全防线。
MCP 可能成为主流,但 Function Calling 作为底层能力仍将存在
案例:门票助手
这是一个智能门票助手机器人,主要功能包括:
- 提供门票订单查询服务
- 支持SQL查询工具,可对门票订单数据进行查询分析
- 支持终端交互(TUI)和图形界面(GUI)两种模式
- 基于Qwen Agent框架开发
系统架构流程图:

业务运行流程图:

核心代码:

页面展示图:

MCP
Model Context Protocol (MCP) 是由 Anthropic 公司于 2024 年 11 月推出的一种开放协议标准,目的在于标准化LLM 与外部数据源、工具及服务之间的交互方式。MCP 被广泛类比为“AI 领域的 USB-C 接口”。

MCP与Function Calling的区别:
| 类别 | MCP | Function Calling |
|---|---|---|
| 性质 | 协议 | 功能 |
| 范围 | 通用(多数据源、多功能) | 特定场景(单一数据源或功能) |
| 目标 | 统一接口,实现互操作 | 扩展模型能力 |
| 实现 | 基于标准协议 | 依赖于特定模型实现 |
| 开发复杂度 | 低:通过统一协议实现多源兼容 | 高:需要为每个任务单独开发函数 |
| 复用性 | 高:一次开发,可多场景使用 | 低:函数通常为特定任务设计 |
| 灵活性 | 高:支持动态适配和扩展 | 低:功能扩展需要额外开发 |
| 常见场景 | 复杂场景,如跨平台数据访问与整合 | 简单任务,如天气查询、商品推荐等 |
也可以把MCP理解成线上版的Function Calling,通过API远程调用方法,得到相应的结果。
核心概念
架构与组件:
MCP 采用 客户端-服务器(Client-Server)架构,主要包括以下核心组件:
- MCP Host: 运行 AI 模型的环境,如 Claude Desktop、Cursor IDE 等。
- MCP Client: 嵌入在 Host 中的组件,负责发起请求并与 MCP Server 通信。
- MCP Server: 轻量级服务,提供特定功能(如数据查询、API 调用等),供 AI 模型调用。
核心功能:
MCP 提供三种关键能力:
- Resources(知识扩展): 提供结构化数据(如数据库、文档)以增强 AI 的上下文理解。
- Tools(工具调用): 允许 AI 执行外部操作(如发送邮件、查询 GitHub、调用智能合约等)。
- Prompts(提示模板): 预定义的指令模板,优化 AI 的任务执行。
案例:旅游攻略MCP
在 高德开放平台 内创建应用

添加应用的key:

添加成功后,如下所示:

在Cursor内找到设置MCP入口

在MCP入口添加MCP代码:

在 魔搭社区 的MCP广场找到高德地图MCP


Stdio:Std是标准,io是输入输出,合在一起是标准的输入输出。
复制Stdio代码到 Cursor - MCP内:

添加成功后,会显示是否连接正常,连接成功的情况下,可以看到工具列表:

通过Cursor 验证高德MCP: 用高德MCP,做上海一天旅游攻略

把高德MCP接入到项目中:

MCP SDK
Python MCP SDK:
pip install mcp -i https://pypi.tuna.tsinghua.edu.cn/simple
- 创建 MCP Server: 提供标准化的 API,供 AI 模型调用外部功能(如文件操作、数据库查询等)。
- 注册工具(Tools): 通过 @mcp.tool() 装饰器,将 Python 函数暴露给 AI 模型使用。
- 安全交互: 支持权限控制,确保 AI 不会越权访问敏感数据。
- 跨平台兼容: 支持与 OpenAI、Anthropic Claude 等 LLM 集成。
FastMCP 是 Python MCP SDK中的轻量级服务器框架:
- 简单易用: 仅需几行代码即可启动 MCP Server。
- 支持多种传输方式: 如 stdio(标准输入输出)、HTTP 等。
- 自动工具发现: 通过 @mcp.tool() 注解自动注册函数,供 AI 调用
MCP的应用场景:
- 发邮件
- 桌面管理
- 私有知识管理
- 系统的对接
MCP Inspector
专为MCP Server设计的开源调试工具,目的在于测试和优化 MCP Server的功能。
MCP Inspector的核心功能
- 服务器连接管理: 支持本地和远程 MCP 服务器连接,可配置不同的传输方式(如 STDIO 或 HTTP+SSE)。允许传递环境变量和命令行参数,方便调试不同运行环境下的服务器。提供执行历史记录(History),方便回溯工具调用过程。
- 服务浏览与调用: 提供可视化界面(默认访问 http : //localhost:5173),展示 MCP服务器提供的工具(Tools)、资源(Resources)、提示(Prompts)等服务。开发者可以直接在 UI 中调用工具并查看执行记录,例如测试计算器工具的加法运算并实时观察返回结果。
UV工具
在MCP协议中,uv工具常用于启动和管理MCP服务器。例如,在配置MCP服务器时,可以通过uv命令指定运行的Python脚本。
以下是一个典型的MCP服务器配置示例:
{
"mcpServers": {
"example-server": {
"name": "example-server",
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"/path/to/your/project",
"run",
"main.py"
]
}
}
}
在这个配置中,uv被用来运行main.py脚本,从而启动MCP服务器
案例:桌面TXT统计器
搭建一个桌面TXT文件数量统计器,使用FastMCP
- 功能1:count_desktop_txt_files,统计桌面上 .txt 文件的数量;
- 功能2:list_desktop_txt_files,获取桌面上所有 .txt 文件的列表;

使用agent框架来使用mcp sdk:

展示样式:

可以把写好的MCP提交到 MCP 广场 · 魔搭社区,只要MCP审核通过后,可以让其他人使用:


更多推荐


所有评论(0)