MCP 协议简介
2025 年,Anthropic 提出了 MCP(Model Context Protocol),即大模型上下文协议。它的核心目标是统一 AI 大模型与外部工具之间的交互方式。这就好比 USB-C 接口统一了物理连接标准,MCP 旨在解决大模型接入不同工具时的碎片化问题。
MCP 采用 C/S 架构,支持客户端调用远程服务,也支持本地启动服务端(stdio 模式)。只需在配置文件中注册 MCP 服务端,即可让大模型直接调用各类工具,大幅提升了 Agent 开发的便捷性。
Function Call 回顾
在 MCP 普及之前,开发 AI Agent 调用外部工具通常需要针对不同模型的 SDK 编写特定逻辑,最典型的就是 OpenAI 的 Function Call。这种方式虽然有效,但缺乏统一标准,迁移成本高。
Function Call 示例
以 OpenAI Chat Completions 接口为例,我们可以通过 tools 参数传入外部工具定义。工具描述包含名称、功能说明及参数结构。tool_choice 设为 auto 时,模型会自动判断是否调用工具;设为 none 则禁止调用。
import openai
import json
def main():
client = openai.OpenAI(
api_key="your_api_key_here",
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": "system", "content": "你是一个天气查询助手"},
{"role": , : }
],
tools=tools,
tool_choice=
)
(, res.choices[].message.content)
(, res.choices[].message.tool_calls)


