深入理解 MCP 协议:与 Function Call 的区别及实战使用
一、MCP 协议是什么?
Model Context Protocol(简称 MCP)是大模型上下文协议。它的核心目标是为 AI 大模型和外部工具之间的交互提供一个统一的处理标准。
想象一下,USB Type-C 接口统一了各种设备的连接方式;MCP 协议在 AI 领域扮演的角色类似于此。它让大模型能够标准化地查询信息、操作本地文件或调用远程服务,不再需要为每个工具单独编写适配代码。
MCP 采用 C/S(客户端/服务端)架构。这意味着你可以在客户端设备上调用远程 Server 提供的服务,同时也支持 stdio 流式传输模式,即在客户端本地启动 MCP 服务端。你只需要在配置文件中新增 MCP 服务端,就能利用其提供的各种工具,大大提升了大模型使用外部工具的便捷性。
![架构图示意]
作为开源协议,MCP 鼓励所有 AI 厂商和工具开发者将其集成到客户端中。只有生态足够庞大,协议才能持续演进,变得更好用。
二、回顾 Function Call 机制
在 MCP 普及之前,AI Agent 开发若要调用外部工具,通常需要针对不同的 AI 大模型 SDK 编写特定的适配代码。其中最为经典且广泛使用的便是 OpenAI 提出的 Function Calling 逻辑。
1. 基础流程演示
配置工具与参数提取
当我们调用 Chat Completions 接口时,可以通过 tools 参数传入可供使用的外部工具定义。这个定义包含了工具的作用描述、所需参数及其类型说明。其中 tool_choice 字段控制模型的决策行为:设置为 auto 代表让大模型自动选择是否调用工具,设置为 none 则强制不调用。
请求体示例如下:
{
"tool_choice": "auto",
"messages": [
{
"role": "system",
"content": "你是一个天气查询助手"
},
{
"role": "user",
"content": "帮我查询上海的天气"
}
],
"tools":


