简单理解MCP:AI如何使用工具
简单理解MCP:AI如何使用工具(以天气/新闻服务为例)
你是否注意到人工智能(AI)助手正变得越来越智能?它们不再仅仅是聊天,还能执行实际操作,比如查询天气、在线搜索,甚至预订会议。这通常涉及到使用外部的“工具”(如API或函数)。
但是,一个AI(比如驱动你最喜欢的聊天应用的那个)是如何可靠地连接并使用由不同开发者创建的各种工具呢?这就是模型上下文协议 (Model content Protocol, MCP) 发挥作用的地方。
MCP解决的问题
想象一下,你试图将来自不同国家的电器插头插入你家的墙上插座——你需要各种转换器,因为它们的插头标准各不相同!类似地,不同的AI模型和不同的工具提供者可能有各自独特的“沟通”方式。将它们连接起来可能会变得混乱和复杂。
MCP就像一个通用适配器或一种标准语言。它定义了一套通用的规则,规定了AI模型、你使用的应用程序(客户端)以及工具提供者(MCP服务器)应该如何交互。
认识参与者
为了理解工作流程,让我们明确各个角色:
- AI (大语言模型 - LLM): 这是“大脑”(比如来自OpenAI、Anthropic、Google等的模型)。它理解你的请求,并决定是否需要工具来回答。
- MCP 服务器 (MCP Server): 这是“工具箱提供者”。它是一个提供一个或多个工具的服务。在我们的例子中,想象一个“天气与新闻服务”,它提供获取天气预报和新闻头条的工具。
- 客户端 (Client): 这是你正在交互的应用程序(例如,一个特殊的聊天界面、一个编码助手)。它充当中间人,将你和AI连接到MCP服务器(工具箱)。重要的是,通常是你(或应用程序开发者)告诉客户端应该连接到哪个(或哪些)MCP服务器。 AI不决定使用哪个服务器,只决定使用已连接服务器上的哪个工具。
MCP 工作流程:分步详解(以天气/新闻为例)
让我们来看看当你通过客户端应用向AI助手提问时,事情是如何运作的,比如问:“明天伦敦的天气怎么样?还有,最新的头条新闻是什么?”
第1步:客户端连接到MCP服务器
- 首先,你正在使用的客户端应用程序需要与你(或应用程序)指定的“天气与新闻服务”MCP服务器建立连接。
- 可以想象成: 把你的应用程序插入天气与新闻服务指定的端口。MCP定义了如何安全可靠地建立这种连接。
第2步:客户端发现可用工具
- 一旦连接成功,客户端会询问MCP服务器:“嘿,你提供哪些工具?”
- 服务器会按照MCP标准回复一个列表。这个列表包含:
- 工具名称(例如,
get_weather_forecast
,get_latest_news
)。 - 描述(例如,“为指定城市提供天气预报”,“获取当前热门新闻头条”)。
- 所需输入(例如,
get_weather_forecast
需要一个city
名称)。
- 工具名称(例如,
- 可以想象成: 阅读机器上按钮的标签,看看每个按钮是干什么用的。
第3步:客户端为AI准备请求
- 你在客户端应用中输入你的请求:“明天伦敦的天气怎么样?还有,最新的头条新闻是什么?”
- 客户端接收你的请求,并将其与从天气与新闻服务器收到的可用工具列表(来自第2步)打包在一起。它将这个完整的包裹发送给AI (LLM)。
第4步:AI决定是否以及如何使用工具
- AI分析你的请求(“伦敦天气”、“头条新闻”)。
- 它查看可用的工具(
get_weather_forecast
,get_latest_news
)及其描述。 - 它判断:
- “要回答天气部分,我需要
get_weather_forecast
工具,并且city
输入应该是’伦敦’。” - “要回答新闻部分,我需要
get_latest_news
工具(这个可能不需要特定输入)。”
- “要回答天气部分,我需要
- 然后,AI将指令发送回客户端,大致意思是:“请使用
get_weather_forecast
工具,参数city=伦敦
,并使用get_latest_news
工具。” MCP标准化了AI传达这个决定的方式。
第5步:客户端通过MCP执行工具
- 客户端收到来自AI的指令。
- 然后,它使用标准的MCP格式 (
call_tool
) 向天气与新闻MCP服务器发出正式请求:- “运行
get_weather_forecast
,输入city='伦敦'
。” - “运行
get_latest_news
。”
- “运行
- 可以想象成: 客户端按照AI的指示按下了机器上的特定按钮。
第6步:MCP服务器运行工具并返回结果
- 天气与新闻服务器收到
call_tool
请求。 - 它运行其内部逻辑(例如,调用其天气API合作伙伴、查询其新闻数据库)。
- 它收集结果(伦敦的天气预报详情、新闻标题列表)。
- 它将这些结果再次按照MCP标准打包,发送回客户端。
第7步:AI生成最终回答
- 客户端从服务器收到工具执行的结果(例如,原始天气数据、新闻文章片段)。
- 它将这些结果发送回AI (LLM)。
- AI结合原始问题和工具结果,为你生成一个最终的、易于理解的回答:
“好的,伦敦明天的天气预报是部分多云,最高气温18℃。最新的头条新闻包括…”
为什么MCP很重要?
MCP看起来可能有很多来回传递,但它的价值是巨大的:
- 标准化 (Standardization): 大家都说同一种语言。客户端、服务器和LLM都知道如何相互沟通。
- 互操作性 (Interoperability): 你可以轻松地更换不同的AI模型或添加新的工具服务器,而无需从头开始重建一切。一个为使用MCP而构建的客户端理论上可以与任何兼容MCP的服务器对话。
- 简化开发 (Simplicity for Developers): 虽然涉及一些步骤,但拥有一个标准使得开发者能够更容易地构建可以可靠协作的客户端和服务器。
本质上,MCP充当了关键的管道和线路,使得AI生态系统的不同部分能够顺畅连接和协作,从而实现了我们在现代AI应用中看到的复杂的工具使用能力。它帮助AI从简单的聊天,进化到能够真正做事情的阶段。