
这才是MCP 爆火的原因!
现在很多人让大模型调用外部工具,最常见的做法就是 Function Calling。
乍一看,能调起来没问题。但真要接多个服务、跑一个完整流程,Function Calling 就显得太粗糙了——定义繁琐、结构不统一、模型换一个就得重写一遍。
本质上,它解决的只是“能不能调用”,但没解决“怎么标准、高效地调用”。
而 MCP 出现,就是为了解决这个“工程化不成体系”的问题。
我认为 Function Calling 更像是“你教模型怎么用某个函数”;而 MCP,是“你把这些函数变成服务,模型自然知道怎么用”。
MCP像是给你写的工具函数装了一个“USB标准口”,以后不管哪个模型来,都能直接插上用。
一、什么是 MCP?
MCP(Model Context Protocol)是一套协议,专门让大模型更稳、更方便地调用外部服务。
它不是工具、不是框架,而是像 HTTP、SQL 一样的“语言规范”,
让大模型在面对不同的工具时,说话有标准,调用有格式,接入有规矩。
我们先明确一点:MCP 不会帮你写代码,你该写服务还是得写服务。
那 MCP 到底解决了啥?
很多人一听 MCP 就头大,总觉得它是某种框架或者平台,但其实本质非常简单。
场景设定:调用一个“查天气”的工具
我们希望:大模型收到一句自然语言,比如“请帮我查一下北京今天的天气”,就能触发一个查天气的工具,返回结果。
写法一:传统 Function Calling 写法(OpenAI 风格)
你得自己写一个函数,并且注册到模型里,同时描述这个函数:
{
"name": "get_weather",
"description": "获取指定城市的天气",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "查询天气的城市名"
}
},
"required": ["city"]
}
}
然后你在代码里写这个函数:
def get_weather(city):
# 调用真实的天气 API
return f"{city} 今天多云,最高温 26°C"
整个流程:
你注册函数描述
用户问话 → 模型判断要用这个函数 → 填参 → 调用 → 返回
这样的问题:
- 函数定义和调用分开写,靠自己绑定;
- 函数描述得自己写一遍;
- 多个服务无法统一管理;
- 不能“自动注册、自动识别”,全部靠人工维护;
- 接入多种服务,写法冗余、难复用。
写法二:使用 MCP 协议 + MCP SDK 实现
第一步:你写一个“天气服务”的 MCP Server(可以用 Flask)
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("/invoke", methods=["POST"])
def handle():
req = request.get_json()
city = req["params"]["city"]
result = f"{city} 今天多云,最高温 26°C"
return jsonify({
"status": "ok",
"result": result
})
注意,这个服务只要实现了 /invoke 接口,格式遵循 MCP 协议,就可以被任意支持 MCP 的模型接入。
第二步:模型那边(Client)用 MCP SDK 发请求
from mcp import MCPClient
client = MCPClient("http://your-mcp-server-url")
response = client.invoke(
tool="weather", # 工具名
params={"city": "北京"}
)
print(response["result"])
关键点在这儿:
- MCP 定义了一套【工具格式、参数结构、通信协议】;
- 工具只要部署成 MCP Server,就能自动接入;
- 模型这边只要用 MCP Client 发请求,就能统一对接任何符合协议的工具。
总结一下
我们可以这样理解:
HTTP 是浏览器和服务器之间说话的协议;
SQL 是你和数据库之间说话的协议;
MCP 是大模型和外部工具之间说话的协议。
有了 HTTP,网页才能统一访问后端服务,不用每个页面自己发明新格式;
有了 MCP,大模型也能统一调用你写的工具,不用每个模型手动绑接口、拼参数、猜格式。
它不是要替你写业务代码,
而是让模型知道:“你要想用我这个函数,得按照 MCP 的方式来交流。”
三、最后几点感悟
MCP 本质上不是“新能力”,而是把原本凌乱的工具接入方式,变成了一套大家都能理解、能协作的规范。
它不会让大模型变聪明,但它会让模型调用外部服务这件事,更稳、更标准、更能规模化落地。
这可能不是最酷炫的技术方向,但却是让大模型真正走向业务系统的一步关键工程基础。
不管你做的是 Agent、RAG、还是企业内智能系统,理解 MCP、会用 MCP,会是你构建长期可维护系统的底座能力之一。
本文转载自大圣数据星球,作者:大圣
