1. 什么是 MCP?
MCP 全称为 Model Context Protocol,即大模型上下文协议。它的核心目标是为 AI 大模型与外部工具之间的交互提供一个统一的处理标准。这就好比 USB-C 接口统一了物理连接方式,MCP 协议旨在统一大模型与各类工具的对接规范。
MCP 采用了 C/S 架构,支持客户端调用远程 Server 提供的服务,同时也支持 stdio 流式传输模式,允许在客户端本地启动 MCP 服务端。只需在配置文件中注册 MCP 服务端,即可利用其提供的各种工具能力,显著提升了大模型调用外部资源的便捷性。
作为一个开源协议,MCP 鼓励所有 AI 厂商和工具将其集成到客户端中。用户基数越大,协议迭代越快,生态也就越完善。
2. 了解 Function Call
在 MCP 普及之前,开发 AI Agent 调用外部工具通常需要针对不同的大模型 SDK 编写适配代码。其中最为成熟且广泛使用的方案是 OpenAI 提供的 Function Call 机制。
2.1. Function Call 实战演示
2.1.1. 配置工具与参数生成
调用 Chat Completions 接口时,可以通过 tools 参数传入外部工具的定义。这包括工具的描述、所需参数及其类型。tool_choice 字段控制模型是否自动选择工具:设为 auto 表示自动选择,设为 none 则禁止调用。
import openai
import json
def main():
# 初始化客户端,base_url 可根据实际服务商调整
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.example.com/v1"
)
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名"
}
},
"required": ["city"]
}
}
}]
res = client.chat.completions.create(
model="Qwen/Qwen2.5-32B-Instruct",
messages=[
{: , : },
{: , : }
],
tools=tools,
tool_choice=
)
(, res.choices[].message.content)
(, res.choices[].message.tool_calls)
(, res.choices[].message.to_dict())


