1. 什么是 MCP?
近期,Anthropic 推出了 MCP(Model Context Protocol)协议。简单来说,这是大模型上下文协议,旨在为 AI 大模型和外部工具(比如查询信息、操作本地文件)之间的交互提供一个统一标准。如果把 USB-C 接口统一了物理连接方式,那么 MCP 协议就是统一了大模型与工具的对接逻辑。
MCP 采用 C/S 架构(客户端/服务端),支持在客户端调用远程 Server 服务,也支持 stdio 流式传输模式(即在客户端本地启动 MCP 服务端)。只需在配置文件中注册 MCP 服务端,就能让大模型直接调用该服务器提供的各种工具,极大提升了集成效率。
![MCP 架构图示:展示客户端与服务端通过协议进行通信的示意图]
作为开源协议,MCP 鼓励所有 AI 厂商和工具将其集成到客户端中。生态越丰富,协议的生命力就越强。
2. 回顾 Function Call
在 MCP 普及之前,AI Agent 开发若要调用外部工具,往往需要针对不同的 SDK 编写适配代码。其中 OpenAI 提出的 Function Call 是最经典的实现方案。
2.1. Function Call 实战演示
2.1.1. 配置工具,由 AI 生成参数
调用 Chat Completions 接口时,通过 tools 参数传入外部工具定义。这包含了工具的作用、所需参数及其释义。
tool_choice="auto":让大模型自动决定是否调用工具。tool_choice="none":禁止调用外部工具。
import openai
import json
def main():
# 初始化客户端,这里以硅基流动为例,实际使用请替换为对应 API Key
client = openai.OpenAI(
api_key="xxxxx",
base_url="https://api.siliconflow.cn/v1"
)
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名"}
},
: []
}
}
}]
res = client.chat.completions.create(
model=,
messages=[{
: ,
:
}, {
: ,
:
}],
tools=tools,
tool_choice=
)
(, res.choices[].message.content)
(, res.choices[].message.tool_calls)
(, res.choices[].message.to_dict())
__name__ == :
main()


