本文介绍了 MCP(Model Context Protocol)大模型上下文协议的概念,对比了 MCP 协议和 Function Call 的区别,并通过 Python SDK 示例介绍了相关使用方式。
1. 什么是 MCP?
近期,Anthropic 提出了 MCP 协议。MCP 全称为 Model Context Protocol,翻译过来是大模型上下文协议。这个协议主要为 AI 大模型和外部工具(比如让 AI 去查询信息,或者让 AI 操作本地文件)之间的交互提供了一个统一的处理协议。我们常用的 USB Type-C 接口统一了 USB 接口的样式,MCP 协议就好比 AI 大模型中的 USB-C,统一了大模型与工具的对接方式。
MCP 协议采用了 C/S 架构,也就是服务端、客户端架构,能支持在客户端设备上调用远程 Server 提供的服务,同时也支持 stdio 流式传输模式,也就是在客户端本地启动 MCP 服务端。只需要在配置文件中新增 MCP 服务端,就能用上这个 MCP 服务器提供的各种工具,大大提高了大模型使用外部工具的便捷性。

MCP 是开源协议,能让所有 AI 厂商、AI 工具都将 MCP 集成到自己的客户端中,从而扩大 MCP 的可用面。毕竟只有用的人越多,协议才能不断发展,不断变得更好。
2. 了解 function call
在 MCP 没有出来之前,我们的 AI Agent 开发如果想调用外部工具需要针对不同的 AI 大模型 SDK 编写不同的代码,其中最为常用的是 OpenAI 提供的 Function Call 处理逻辑。
2.1. function call demo
2.1.1. 配置工具,AI 提供参数
当我们调用 OpenAI Chat Completions 接口时,可以通过 tools 参数传入可供使用的外部工具。这个工具的调用中就包含了工具的作用,工具需要传入的参数,以及参数的释义。其中 tool_choice 字段设置为 auto 代表让大模型自动选择 tools,设置为 none 时不会调用外部工具。
{
"tool_choice": "auto",
"messages": [
{
"role": "system",
"content": "你是一个天气查询助手"
},
{
"role": "user"


