深入理解 MCP 协议:与 Function Call 的区别及 Python 实战
什么是 MCP?
官网参考:https://modelcontextprotocol.io/introduction
2025 年,Anthropic 提出了 MCP(Model Context Protocol)协议,中文译为'大模型上下文协议'。它的核心目标是为 AI 大模型与外部工具之间的交互提供一个统一的处理标准。这就好比 USB Type-C 统一了物理接口,MCP 旨在统一大模型调用各种工具的方式。
MCP 采用 C/S 架构(客户端/服务端),支持客户端设备调用远程 Server 提供的服务,同时也支持 stdio 流式传输模式,即可以在客户端本地启动 MCP 服务端。只需在配置文件中注册 MCP 服务端,就能让大模型便捷地使用服务器提供的各类工具。
![架构图示意]
作为开源协议,MCP 鼓励所有 AI 厂商和工具将其集成到客户端中。生态越丰富,协议的生命力就越强。
了解 Function Call
在 MCP 普及之前,AI Agent 开发若要调用外部工具,往往需要针对不同的模型 SDK 编写定制化代码。最典型的便是 OpenAI 提供的 Function Call 机制。
Function Call 原理演示
1. 配置工具与参数
调用 OpenAI Chat Completions 接口时,可通过 tools 参数传入外部工具定义。这包含了工具描述、所需参数及其说明。其中 tool_choice 设为 auto 允许模型自动选择工具,设为 none 则禁止调用。
{
"tool_choice": "auto",
"messages": [
{ "role": "system", "content": "你是一个天气查询助手" },
{ "role": "user", "content": "帮我查询上海的天气" }
],
"tools":


