什么是 MCP?
官网:https://modelcontextprotocol.io/introduction
2025 年,Anthropic 提出了 MCP(Model Context Protocol)协议。简单来说,它是大模型与外部工具交互的统一标准。就像 USB-C 统一了物理接口一样,MCP 试图统一 AI 与大模型的对接方式,让 AI 能更便捷地查询信息或操作本地文件。
MCP 采用 C/S 架构,支持客户端调用远程 Server 服务,也支持 stdio 流式传输模式,即可以在本地启动 MCP 服务端。只需在配置文件中添加 MCP 服务端,就能直接利用其提供的工具能力,大幅降低了集成门槛。
作为开源协议,MCP 鼓励所有 AI 厂商和工具方进行集成。生态越丰富,协议的生命力就越强,这也是推动大模型应用落地的关键一步。
回顾 Function Call
在 MCP 普及之前,开发 AI Agent 调用外部工具通常需要针对不同的 SDK 编写适配代码,其中 OpenAI 的 Function Call 是最常见的方案。
1. 配置工具与参数生成
调用 Chat Completions 接口时,通过 tools 参数传入外部工具定义。这包含了工具的功能描述、所需参数及其说明。tool_choice 设为 auto 时,大模型会自动判断是否需要调用工具;设为 none 则禁止调用。
import openai
import json
def main():
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.siliconflow.cn/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=[
{"role": , : },
{: , : }
],
tools=tools,
tool_choice=
)
(, res.choices[].message.content)
(, res.choices[].message.tool_calls)
(, res.choices[].message.to_dict())
__name__ == :
main()


