b站学习链接
MCP基础:MCP终极指南 - 从原理到实战,带你深入掌握MCP(基础篇)_哔哩哔哩_bilibili
MCP进阶:MCP终极指南 - 带你深入掌握MCP(进阶篇)_哔哩哔哩_bilibili
MCP与Function Calling关系:MCP 与 Function Calling 到底什么关系,以及为什么我认为大部分人的观点都是错误的_哔哩哔哩_bilibili
先导:
Function Calling传统方案:预定义工具链导致灵活性差,错误传播风险高
MCP突破:
- 动态上下文感知路由(Context-Aware Routing)
- 工具并行调用机制(Parallel Tool Invocation)
- 自修复工作流(Self-Correcting Pipeline)
Function Calling
- 定义:模型主动调用预定义的外部函数来获取信息或执行操作
Function Calling是指大模型直接调用预定义函数的能力,允许模型生成请求参数并整合结果。例如,模型可以通过Function Calling查询天气或执行简单的数学计算。它的本质是“代码级工具”,通常与模型绑定部署。
示例代码:
# 示例:使用Function Calling查询天气
functions = [
{
"name": "get_current_weather",
"description": "获取指定城市的天气",
"parameters": {
"type": "object",
"properties": {"location": {"type": "string"}},
"required": ["location"]
}
}
]
MCP
- 定义:Model Context Protocol,模型上下文协议,用于模型与多个上下文源进行结构化交互
MCP Server就像一个工具箱,里面装满了各种工具(如爬虫、数据库查询),但它不会主动使用这些工具,而是等待别人来挑选。
MCP协议规定的内容仅限于红色圈出来的环节的交互,即函数的注册与使用
MCP与模型交互无直接关系

MCP Server配置文件示例

关系
两种技术不是替代关系,而是互补关系。在实际应用中,可以结合使用。
职责分离:MCP负责"知道什么",Function Calling负责"做什么"
黄色框内是MCP部分,蓝色框内是Function Calling部分

对比:
| 技术特征 | Function Calling | MCP |
| 架构模式 | 点对点直接调用 | 协议化网络架构 |
| 连接方式 | 每次调用建立新连接 | 预建立持久连接 |
| 数据传输 | 简单参数和返回值 | 结构化上下文对象 |
| 状态管理 | 无状态 | 有状态,支持缓存 |
| 发现机制 | 需要预定义函数列表 | 动态发现可用资源 |
1207

被折叠的 条评论
为什么被折叠?



