微信扫码
添加专属顾问
我要投稿
MCP协议如何革新AI Agent生态?一文读懂这一标准化通信协议的核心架构与应用场景。 核心内容: 1. AI Agent的核心能力与MCP协议的诞生背景 2. MCP协议的客户端-服务端架构与工作原理 3. 本地与远程MCP Server的典型应用场景
了解MCP之前,我们先来回顾一下AI Agent,需要具备什么样的能力,达到什么样的智能程度,才可以称为一个Agent。
AI Agent 是能主动解决问题的智能程序,核心在于 感知→决策→行动→学习 的闭环。未来它会像水电一样渗透到所有数字场景中,成为每个人的“智能伙伴”。
上图可简单划分为 Agent = LLM + 规划技能 + 记忆 + 工具使用,其中 LLM 扮演了 Agent 的“大脑”,在这个 系统中提供推理、规划等能力。过多关于AI Agent概念就不过多介绍,读者可以关注公众号之前的文章。
2024年11月底 Anthropic(Claude提供商)提出了MCP协议,并在Claude 客户端支持了MCP。
MCP协议,全称为“Model Context Protocol”,提供了一种将LLM连接到不同数据源(resource)和工具(tool)的标准化方法,旨在统一大模型与外部数据源和工具之间的沟通通信协议。
MCP 大概的工作方式:MCP Host,比如 Claude Desktop、Cursor 这些工具,在内部实现了 MCP Client,然后MCP Client 通过标准的 MCP 协议和 MCP Server 进行交互,由各种三方开发者提供的 MCP Server 负责实现各种和三方资源交互的逻辑,比如访问数据库、浏览器、本地文件,最终再通过 标准的 MCP 协议返回给 MCP Client,最终在 MCP Host 上展示。
MCP 采用客户端-服务端架构,以下是 MCP 官方展示的架构:
MCP的Server一般由各大厂商按照规范提供,这样不同的MCP Client可以进行调用,这里列举一些MCP服务:
由于MCP Server比较多,国内国外的都有,这里就不一一列举,可以访问如下链接自行查看:
如上图所示,一次基于MCP的调用,一共有6个核心的步骤,假设我们的需求是:
调用步骤解析:
第一步:用户向AI Agent提问“现在几点了?”,此时AI Agent就是MCP Client,它会把用户的问题和处理时间的MCP Server以及MCP Tool的信息一起发送给LLM。
第二步:LLM拿到信息后开始推理,基于用户的问题和MCP Server的信息,选出解决用户问题最合适的MCP Server和MCP Tool,然后返回给AI Agent(MCP Client)。
LLM返回给AI Agent的信息是:“你可以使用time这个MCP Server里的get_current_time这个MCP Tool,它可以解决用户的问题”。
第三步:AI Agent(MCP Client)现在知道应该使用哪个MCP Server里的哪个MCP Tool了,直接调用该MCP Tool,获取结果。
调用名称为time的MCP Server里的get_current_time MCP Tool。
第四步:Time MCP Server返回结果(当前的时间)给AI Agent(MCP Client)。
第五步:AI Agent(MCP Client)把用户的问题和从Time MCP Server处拿到的结果再一次给了LLM,目的是让LLM结合问题和答案再规整一下内容。
第六步:LLM把整理后的内容返回给AI Agent(MCP Client),最后AI Agent(MCP Client)再原封不动地返回给用户。
在MCP的整个调用过程中有一个非常关键之处就是MCP Server 以及 MCP Tool 的信息。从第一步、第二步可以看出,这个信息非常关键,是它让LLM知道了该如何解决用户的问题,这个信息就是MCP中最重要的System Prompt,本质上就是优化提示词。
在MCP出现之前,如果要让大模型调用外部服务,需要获取各个外部服务的API的描述信息,如入参说明, 使用场景等,把用户的原始问题和工具的描述信息拼接成Prompt,发送给大模型。
用户想查询北京飞往上海的航班信息和天气情况,传统做法需要以下步骤:
{
"name": "flight_search",
"description": "查询航班信息",
"parameters": {
"departure_city": "出发城市",
"arrival_city": "到达城市",
"date": "出发日期(YYYY-MM-DD)"
}
}
天气查询API:
{
"name": "weather_query",
"description": "查询城市天气",
"parameters": {
"city": "城市名称",
"date": "查询日期(YYYY-MM-DD)"
}
}
用户问题:帮我查下明天北京飞上海的航班,还有上海的天气
可用工具:
1. flight_search:查询航班信息
参数:
- departure_city:出发城市
- arrival_city:到达城市
- date:出发日期(YYYY-MM-DD)
2. weather_query:查询城市天气
参数:
- city:城市名称
- date:查询日期(YYYY-MM-DD)
请分析用户需求,选择需要调用的工具,并输出符合工具要求的参数JSON。
3.大模型输出大模型输出,模型会返回类似这样的结构化请求:
{
"flight_search": {
"departure_city": "北京",
"arrival_city": "上海",
"date": "2023-11-20"
},
"weather_query": {
"city": "上海",
"date": "2023-11-20"
}
}
4.开发者处理,需要写代码将这个JSON分别发送给对应的API,然后再把结果整合后返回给用户。
这种方式的痛点:
为了解决上面查询航班和天气的问题,我们直接搜索对对应的使用MCP工具,如下:
将MCP服务集成到自己的大模型应用开发平台,或者是自己的AI Agent应用中,只需将一些配置参数,大模型即可自行调用对应的MCP工具来获取结果,就不需要自行拼接prompt,组装数据,如下是集成对应的MCP服务:
{
"mcpServers": {
"variflight": {
"command": "npx",
"args": [
"-y",
"@variflight-ai/variflight-mcp"
],
"env": {
"VARIFLIGHT_API_KEY": "your_api_key_here"
}
}
}
}
然后再自己的大模型应用或者Agent中配置调用即可,大模型会根据你的输入和工具的描述,智能调用工具,如下图所示:
如图所示,左边的提示词并没有指定调用天气查询的接口,或者是指定调用的具体方法和参数,根据天气MCP的配置,大模型会自动调用对应的MCP工具,返回正确的结果,这就是MCP比function calling的优势之处。
以下是一个虚构的简化使用场景,用于方便理解工具能力:
例如,在Agent中引入对应的支付MCP,即可实现定制需求,提供报价,快速交易变现的场景。
让我们在回顾一下MCP的整个概念和流程:
用户提问 → LLM通过MCP Client生成工具调用请求 → MCP Server路由到目标工具 → 工具返回结果 → LLM整合结果并回复用户
MCP宗旨:统一大模型与外部服务的智能桥梁
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-06-13
Dinox Agent:超越工作流,迎接你的私人 AI 助理
2025-06-13
大模型_搭建工作流(百炼)
2025-06-13
告别手动绘图!基于AI的Smart Mermaid自动可视化图表工具搭建与使用指南
2025-06-13
Ollama最新版本神功能:AI思维链随你控制
2025-06-13
探索未来产品形态 - AI Agent 产品设计思考
2025-06-12
AI Agent的概念、自主程度和抽象层次
2025-06-12
文档解析PP-StructureV3:PDF秒变高质量Markdown文件
2025-06-12
别再被MCP协议绕晕!一文搞懂连接流程与核心架构
2025-05-29
2025-03-20
2025-03-21
2025-03-16
2025-03-16
2025-04-11
2025-03-20
2025-03-19
2025-03-20
2025-03-19
2025-06-12
2025-06-12
2025-06-12
2025-06-12
2025-06-12
2025-06-12
2025-06-12
2025-06-11