最近,MCP频繁出现在大家的视野里,好多朋友都来问我,MCP到底是什么?今天,咱们就从大模型的角度出发,深入聊聊MCP的核心原理以及它在实际中的应用。
大模型的“短板”
如今的大模型就像一个拥有文本推理和生成能力的“智慧大脑”。当我们向它提出问题时,它会依据之前学习到的海量知识进行推理,然后给出答案。但大模型有个明显的缺陷:要是不联网,它就只能依靠训练数据来“思考”,没办法获取最新的实时信息,也处理不了不断变化的新情况。
比如说,我们问大模型“现在几点了?”或者“当下的天气怎么样?”在没有联网的状态下,大模型根本没办法准确回答。它不像我们人类,可以随时查看最新消息,只能凭借以前学到的内容进行推测。这一点,相信大家在使用大模型的时候都有所体会。
为了帮大模型补上这块“短板”,让它能突破自身知识储备的限制,人们发明了一种很实用的工具——Function Calling(函数调用)。它就像是给大模型搭建了一座通向外部世界的“信息桥梁”。借助Function Calling,大模型能够调用外部的API接口,和数据库、网络服务、各种应用程序等进行数据交互,这样就能获取到实时信息,解决更多复杂的问题。

实现Function Calling的步骤
就拿大家常用的天气查询功能来说,想要让大模型能够查询实时天气,就得编写一个Function Calling函数,这个过程主要有以下几个关键步骤:
挑选合适的天气查询API:市面上有不少不错的天气查询API,像OpenWeatherMap、WeatherAPI、和风天气等,它们能提供全球各个地方的天气数据,我们可以根据实际需求选择。
定义函数参数:这个Function Calling函数需要明确输入参数和输出参数。输入参数可以是城市名称、经纬度这些信息,输出参数则是我们想要知道的温度、湿度、天气状况等天气信息。
编写函数并连接API:把编写好的函数和选定的天气API连接起来,这样函数就能从API获取最新的天气数据,然后再把这些数据返回给大模型,大模型就能依据这些实时数据进行分析和回答了。

下面是一段用Python实现天气查询Function Calling的示例代码:
代码块 import requests import json import datetime def get_weather(city): api_key = "9922**********************2704" url = f"https://api.weatherapi.com/v1/current.json?key={api_key}&q={city}&aqi=no" response = requests.get(url) if response.status_code == 200: data = response.json() # print(json.dumps(data, indent=2, ensure_ascii=False)) # 获取当前日期 today = datetime.datetime.now() date_str = today.strftime("%Y年%m月%d日") weather_info = { "date": date_str, "location": data["location"]["name"],
为了更好的阅读体验,来飞书看吧:
https://ycnwp5kb84tn.feishu.cn/docx/B673dCzNZo8bz0xXfpZcFtB1nGb
Comments on "一文读懂MCP:大模型拓展新利器(附服务端Demo源码) " :