一、AI工具调用的痛点与MCP的诞生背景
在人工智能(AI)技术高速渗透各行各业的当下,大语言模型(LLM)如GPT-4、Claude 3、Gemini Pro已从“实验性技术”转变为日常工作中的核心生产力工具——无论是写报告、编代码,还是做数据分析,LLM都能提供高效支持。但这些强大的模型始终存在一个核心短板:无法自主访问外部工具与实时动态数据。
比如你问AI:“帮我查一下今天上海虹桥机场到北京大兴机场的最晚航班是否准点”,它只能基于训练数据里的“机场航班规律”给出模糊回复(如“晚间航班常受天气影响”),却无法调用航司API获取实时准点信息;当你需要“根据本月公司销售Excel表生成环比分析图”时,AI也无法直接读取本地文件,只能依赖你手动复制粘贴表格数据——这种“数据割裂”“工具孤立”的问题,严重限制了LLM的实际应用价值。
为解决这一困境,开发者们尝试了多种技术路径,但每种方案都存在明显局限:
- Function Calling(函数调用):允许模型调用预设API(如天气查询接口),但需手动配置每一个API的参数格式(如城市编码、日期格式),非技术用户难以操作,且新增工具时需重新开发适配逻辑;
- Plugins(插件):针对特定场景开发专用工具(如浏览器插件查网页、Office插件处理文档),但插件间存在“平台壁垒”——Chrome浏览器的网页解析插件无法直接在Excel中使用,形成“工具孤岛”;
- Agents(智能体):通过多工具组合完成复杂任务(如“查天气→订机票→发通知”),但依赖复杂的流程编排代码,企业若想对接自有系统(如CRM),需组建专业开发团队,门槛极高。
这些方案虽能缓解部分问题,却始终缺乏一套统一、可复用、低门槛的标准协议——就像没有通用插座时,不同国家的电器只能用专属插线板,既麻烦又低效。
MCP(Model Context Protocol,模型上下文协议)正是为解决这一“标准缺失”问题而生。由Anthropic(Claude的研发公司)牵头提出,它不仅是一套通信规范,更像是AI世界的“通用连接框架”:无论你用的是Claude、LLaMA还是国产LLM,无论需要对接的是本地文件、云端API还是企业数据库,只要遵循MCP标准,就能实现“即插即用”的工具调用,彻底打破LLM的能力边界。
二、MCP:AI世界的“通用连接框架”
MCP本质是一套开放的标准化协议,明确了AI模型载体(Host)、工具提供方(Server)、用户交互界面(Client)三者之间的通信规则与协作逻辑。其核心目标可概括为:
让AI像人类使用电脑一样灵活——打开“浏览器”查信息、用“Excel”处理数据、借“邮件”发通知,无需关心这些工具的底层原理,只需通过统一入口调用即可。
如果说原有的工具调用方案是“定制化的数据线”,那MCP就是“通用USB-C接口”——既能插充电头,也能连U盘、接显示器;同时它还像互联网的“TCP/IP协议”,无论底层是5G还是光纤,都能统一传输数据,让不同设备顺畅沟通。
MCP的运行依赖三大核心角色,三者协同构成完整的“AI工具调用生态”,缺一不可:
2.1 Host(宿主环境):AI的“中枢调度中心”
定义:Host是LLM的“运行载体”,负责管理MCP协议的全流程通信——从接收用户需求,到判断是否需要调用工具,再到对接Server并整合结果,最终将信息反馈给AI模型。简单说,Host就是AI与工具之间的“翻译官”和“调度员”。
典型案例:Claude官方桌面客户端、VS Code的AI编程插件(如Cursor)、企业自建的AI客服后端系统。
Host的核心职责:
- 加载并管理所有已接入的MCP Server(工具),实时更新“可用工具列表”;
- 分析用户需求(结合历史对话上下文),判断是否需要调用外部工具(如“查航班”需调用航司Server,“写总结”可直接用模型能力);
- 通过MCP协议向Server发送请求,并验证用户权限(如企业内部的CRM Server仅允许员工调用);
- 缓存常用工具的调用结果(如近期查询过的城市天气),减少重复请求,提升响应速度;
- 将Server返回的结构化数据(如JSON格式的航班信息)“翻译”成AI能理解的语言,供模型生成回答。
实例:当你在Cursor(VS Code插件,Host)中输入“帮我查一下Python读取Excel的最新库”,Host会先判断“最新库”需要实时数据,随即对接“Python生态查询Server”,获取“openpyxl 3.1.2为当前主流版本”的信息后,再传递给LLM生成代码示例。
2.2 Server(工具服务器):能力的“具体实现者”
定义:Server是“工具功能的封装载体”——它将具体工具的逻辑(如调用天气API、读取PDF、查询物流)打包成标准化接口,通过MCP协议向Host暴露,让AI无需了解底层技术,即可直接调用。
典型案例:Anthropic官方提供的“文件系统Server”(允许AI读写本地文件)、社区开发的“GitHub代码查询Server”、企业定制的“客户订单查询Server”(对接内部CRM系统)、第三方开发的“顺丰物流查询Server”。
Server的核心职责:
- 封装工具的核心逻辑(如调用OpenWeatherMap API、解析PDF文本、查询MySQL数据库);
- 按照MCP标准定义“工具说明书”——包括工具名称(如
getLogistics
)、输入参数(如“快递单号:字符串”)、输出格式(如“物流状态:待签收,预计送达时间:2024-06-01”); - 接收Host的请求,执行操作并返回结构化结果(避免AI处理非结构化数据时出错);
- 管理自身安全策略(如IP白名单、API密钥验证),防止未授权访问(如企业Server仅允许内网Host调用)。
实例:一个“顺丰物流查询Server”会预先封装顺丰开放平台的API逻辑。当Host发送请求(参数:快递单号=SF123456789),Server会自动携带API密钥调用顺丰接口,获取“2024-05-28 14:30:快递已到达北京分拣中心”的信息,再以JSON格式返回给Host。
2.3 Client(用户交互层):需求的“发起与展示窗口”
定义:Client是用户与AI交互的“直接界面”——负责收集用户的自然语言需求(或指令),传递给Host,同时将AI与工具协作的结果(如“已调用物流工具,结果显示…”)以易懂的形式展示给用户。
典型案例:Claude桌面端的聊天窗口、手机端的AI助手APP(如Anthropic Mobile)、企业客服系统的AI对话界面、教育场景的AI答疑网页。
Client的核心职责:
- 接收用户输入(如文字、语音转文字,甚至上传文件(如“帮我分析这份CSV”));
- 将需求与上下文(如历史对话、上传的文件ID)打包传递给Host;
- 实时展示工具调用进度(如“正在读取PDF文件…30%”),避免用户等待时困惑;
- 格式化展示最终结果(如将表格数据生成可视化图表,将物流信息整理成时间线)。
实例:你在手机端AI助手APP(Client)上传了一份“2024年4月销售数据.csv”,并输入“帮我计算各区域销售额占比”。Client会将文件ID和需求传给Host,Host调用“CSV分析Server”处理数据后,再通过Client以“饼图+文字总结”的形式展示结果。
2.4 三者协作流程(以“查快递物流”为例)
为更清晰理解MCP的工作逻辑,我们以“查询快递单号SF123456789的最新物流”为例,拆解完整协作流程:
- 用户发起需求:在手机AI助手APP(Client)中输入“帮我查一下SF123456789的物流状态”,并点击发送;
- Host接收与分析:Host(AI助手后端)接收到请求后,结合上下文判断“物流查询需实时数据,需调用外部工具”,随即检查已加载的Server列表,匹配到“顺丰物流MCP Server”;
- 权限验证与请求发送:Host验证当前用户已登录(具备调用物流Server的权限),通过MCP协议向Server发送请求,参数为
{快递单号: "SF123456789", 查询类型: "最新状态"}
; - Server执行与返回:顺丰物流Server接收请求后,调用顺丰开放平台API,获取最新物流数据(“2024-05-28 16:40:快递已派送,预计1小时内送达”),并以JSON格式返回给Host;
- AI整合与生成回答:Host将结构化数据传递给LLM,模型将其整理为自然语言:“您的快递(SF123456789)当前状态为‘派送中’,预计2024-05-28 17:40前送达,派件员电话:138XXXX1234”;
- Client展示结果:AI助手APP(Client)将回答以“文字+物流时间线”的形式展示给用户,同时提供“联系派件员”的快捷按钮(基于Server返回的派件员信息)。
整个过程对用户完全“无感知”——你无需知道背后调用了顺丰API、用了什么协议,只需像平时聊天一样提问,MCP已在底层完成了“需求分析→工具匹配→数据调用→结果整合”的全流程。
三、MCP的通信原理:如何实现“标准化连接”
MCP能让不同角色顺畅协作,核心依赖两大技术标准:SSE(Server-Sent Events,服务器发送事件) 和JSON-RPC(远程过程调用协议)。前者负责“实时单向数据推送”,后者负责“结构化请求与响应”,二者结合实现高效、可靠的双向交互。
3.1 核心技术:SSE与JSON-RPC的分工
(1)SSE:实时单向数据流,解决“状态同步”问题
SSE是一种基于HTTP的轻量级协议,允许Server主动向Host推送数据(无需Host反复“询问”),就像“订阅报纸”——你订阅后,报社定期把报纸送到家,无需你每天去报社问。
在MCP中,SSE主要用于两个场景:
- Host→Server:初始化配置推送:当Host加载Server时,通过SSE向Server发送初始化信息(如用户ID、权限等级、环境变量(如“是否允许读取本地文件”)),确保Server按规则提供服务;
- Server→Host:实时状态推送:当工具调用耗时较长(如解析100MB的PDF),Server通过SSE向Host推送进度(如“解析进度:50%,预计剩余10秒”),再由Host同步给Client展示;若工具出现异常(如API调用失败),Server也能通过SSE实时推送错误信息(如“顺丰API暂时不可用,将重试”)。
为何不用WebSocket?:WebSocket虽支持双向通信,但需额外配置端口、处理断线重连的复杂逻辑,且在企业内网环境中可能被防火墙拦截。而SSE基于HTTP协议,兼容性更强(所有浏览器、服务器都支持),部署成本更低——对多数工具调用场景(如查天气、查物流),“SSE单向推送+HTTP POST请求”已足够满足需求。
(2)JSON-RPC:结构化请求协议,解决“指令统一”问题
JSON-RPC是一种基于JSON的轻量级远程调用协议,定义了Host与Server之间“请求-响应”的格式标准——就像统一的“指令语言”,确保Host说的话Server能听懂,Server返回的结果Host能解析。
在MCP中,JSON-RPC的核心作用是:
- 标准化请求格式:Host向Server发送的请求必须包含
method
(调用的工具方法,如getLogistics
)、params
(输入参数,如快递单号)、id
(请求唯一标识,用于匹配响应); - 标准化响应格式:Server返回的响应需包含
result
(成功时的结构化数据,如物流信息)或error
(失败时的错误信息,如“快递单号无效”),以及对应的id
(与请求ID一致)。
实例:Host调用顺丰物流Server的JSON-RPC请求格式如下:
{
"jsonrpc": "2.0",
"method": "getLogistics",
"params": {
"waybillNo": "SF123456789",
"queryType": "latest"
},
"id": "req-20240528164001"
}
Server返回的成功响应格式如下:
{
"jsonrpc": "2.0",
"result": {
"waybillNo": "SF123456789",
"status": "delivering",
"latestTime": "2024-05-28 16:40",
"latestDesc": "快递已派送,预计1小时内送达",
"courierPhone": "138XXXX1234"
},
"id": "req-20240528164001"
}
3.2 MCP的“请求-响应”全流程
MCP的通信过程可分为“工具注册”和“实时调用”两个阶段,确保工具能被AI快速发现、正确调用:
(1)工具注册阶段:让Host“认识”Server
当Host启动时,会自动扫描已配置的MCP Server,并触发“工具注册”流程:
- Server向Host发送“工具清单”(Tool Definitions),包含所有支持的工具方法、参数格式、功能描述(如“
getWeather
:查询城市天气,参数:city(城市名,必填)、date(日期,可选,默认当天)”); - Host将“工具清单”存入本地缓存,并传递给LLM——让模型知道“有哪些工具可用,该怎么用”(如“若用户问天气,可调用
getWeather
工具,需传入城市名”); - Host与Server建立SSE长连接,用于后续状态同步(如进度推送、错误通知)。
(2)实时调用阶段:完成用户需求
当用户发起需要工具的需求时,Host与Server通过JSON-RPC完成交互:
- Host接收Client的需求,LLM生成“工具调用计划”(如“调用
getLogistics
工具,参数为SF123456789”); - Host将“工具调用计划”转换为JSON-RPC请求,通过HTTP POST发送给Server;
- Server接收请求,验证参数合法性(如“快递单号是否为顺丰格式”),执行核心逻辑(如调用顺丰API);
- 若调用耗时较长,Server通过SSE向Host推送进度(如“查询中…70%”);
- Server执行完成后,通过JSON-RPC返回结构化结果(或错误信息);
- Host将结果传递给LLM,模型生成自然语言回答,再通过Client展示给用户。
3.3 MCP核心接口清单(含新增场景示例)
MCP定义了一套通用接口,覆盖“工具调用、资源访问、提示模板”等核心场景,以下是关键接口的说明(补充了实际应用场景,便于理解):
Request Method | 发起方 | 响应方 | 核心描述 | 实际应用场景示例 |
---|---|---|---|---|
initialized | Client | Server | 初始化会话,传递用户身份、权限等基础信息 | 用户登录AI助手后,Client向“CRM Server”发送initialized 请求,传递员工工号用于权限验证 |
tools-list | Client | Server | 请求Server返回所有可用工具清单,供AI判断是否调用 | Host启动时,向“文件系统Server”发送tools-list ,获取“readFile(读文件)、writeFile(写文件)”清单 |
tools/call | Client | Server | 调用Server中的指定工具,传递具体参数 | 用户查询快递时,Host向“物流Server”发送tools/call ,参数为{waybillNo: "SF123456789"} |
resources/list | Client | Server | 请求Server返回可访问的资源列表(如文件、知识库) | Host向“企业知识库Server”发送resources/list ,获取“2024产品手册、客户服务规范”列表 |
resources/read | Client | Server | 读取指定资源的内容,无需重复调用工具 | AI生成产品介绍时,Host向“知识库Server”发送resources/read ,读取“2024产品手册”内容 |
resources/subscribe | Client | Server | 订阅资源变化,资源更新时Server主动推送通知 | 电商AI助手向“库存Server”发送resources/subscribe ,订阅“iPhone 15”库存,低于10件时推送提醒 |
prompts/list | Client | Server | 请求Server返回预定义的提示模板清单,规范AI行为 | Host向“客服Server”发送prompts/list ,获取“投诉处理模板、售后咨询模板”清单 |
prompts/get | Client | Server | 获取指定提示模板的内容,引导AI按标准流程处理任务 | 处理客户投诉时,Host向“客服Server”发送prompts/get ,获取“先致歉→再核实→最后给出方案”的模板 |
roots/list | Server | Client | Server向Client返回可访问的文件系统根节点(如允许访问的文件夹) | “文件系统Server”向Client发送roots/list ,返回“桌面/文档、D盘/工作文件”等可访问目录 |
sampling/create | Server | Client | 启用Server的AI生成能力(如模型微调、批量生成内容) | 企业向“营销Server”发送sampling/create ,启用“批量生成产品宣传文案”的AI能力 |
四、MCP的关键能力:三大核心资源赋能AI
MCP不仅是“通信协议”,更通过定义“Tools(工具)、Resources(资源)、Prompts(提示模板)”三大核心资源,让AI能更高效、更安全、更合规地完成任务——这三大资源就像AI的“工具箱、资料库、说明书”,缺一不可。
4.1 Tools(工具):AI的“可执行原子能力”
Tools是MCP中最基础的“能力单元”——每个Tool对应一个具体的可执行操作(如调用API、读写文件、分析数据),且需按MCP标准“自我描述”,让AI能快速理解并调用。
Tools的三大核心特性(新增细节补充):
- 声明式定义,降低AI理解成本:Server需详细描述Tool的“功能、参数、输出”,甚至包含“错误处理说明”(如“若快递单号无效,返回错误码1001”)。例如一个“批量导出CRM数据的Tool”定义如下:
- 方法名:
batchExportCRM
- 参数:
{startDate: 字符串(开始日期,必填), endDate: 字符串(结束日期,必填), format: 字符串(导出格式,可选,默认Excel)}
- 输出:
{fileUrl: 字符串(文件下载链接), recordCount: 数字(导出数据条数)}
- 错误说明:
{code: 1002, msg: "日期格式错误,需为YYYY-MM-DD"}
- 方法名:
- 动态发现与组合,支持复杂任务:AI可通过Host获取所有可用Tools,并自主组合调用。例如“生成月度销售报告”任务,AI会自动组合:
readCRMData(读CRM数据)→ analyzeSales(分析销售)→ generateExcel(生成表格)→ sendEmail(发送邮件)
四个Tools,无需人工干预; - 细粒度权限控制,保障安全:Tools支持按“用户角色”设置权限(如“普通员工只能读CRM数据,管理员可导出数据”),还能限制操作范围(如“readFile Tool仅允许访问‘工作文档’文件夹,禁止访问系统盘”),避免AI滥用工具导致数据泄露。
应用实例:企业AI财务助手的“发票核验Tool”——员工上传发票图片后,Tool自动调用OCR接口识别发票信息,再对接税务系统API核验发票真伪,最后返回“核验结果+税额计算”,整个过程无需财务人员手动操作。
4.2 Resources(资源):AI的“高效上下文库”
Resources是MCP中“可直接访问的静态/半静态数据”——无需实时调用工具,AI可直接引用Resources中的数据,就像人类随时翻阅“笔记本”,无需每次都查字典。
Resources的三大典型类型(新增实时更新资源):
- 本地/云端文件资源:如项目README、Excel表格、PDF报告等,通过“文件系统Server”暴露给AI。例如AI生成项目代码时,可直接读取Resources中的“项目架构文档”,确保代码符合架构要求;
- 企业知识库资源:如产品手册、客服规范、内部Wiki等,通过“知识库Server”索引存储。例如客服AI回答用户问题时,可直接引用Resources中的“2024产品保修政策”,避免生成错误信息;
- 实时更新资源:如行业动态、库存数据、汇率等,通过“实时数据Server”定期更新。例如外贸AI助手的“汇率Resource”,每小时同步央行汇率数据,AI生成报价单时可直接引用最新汇率,无需反复调用汇率API。
核心优势:相比每次调用工具获取数据,Resources能显著提升AI响应速度(减少API调用耗时),同时降低工具依赖风险(如API故障时,可临时使用Resources中的缓存数据)。例如“查询公司产品价格”时,AI直接读取Resources中的“2024产品价目表”,响应时间从1-2秒缩短至0.1秒。
4.3 Prompts(提示模板):AI的“标准化行为指南”
Prompts是MCP中“预定义的指令框架”——通过标准化的模板,引导AI以固定逻辑完成任务,避免模型“自由发挥”导致的行为失控或结果不一致。
Prompts的三大核心价值(新增多场景模板示例):
- 统一任务流程,减少操作失误:针对重复任务,Prompts定义固定流程。例如“用户咨询退换货”的Prompts模板:“1. 先调用‘查询订单Tool’确认用户订单状态;2. 若订单已签收且在7天内,告知退换货政策;3. 若超出7天,说明无法退换的原因;4. 所有回答末尾添加‘如有疑问请拨打400-XXX-XXXX’”;
- 简化多工具编排,降低开发门槛:非技术人员可通过Prompts定义多工具协作逻辑,无需编写代码。例如“月度销售通知”的Prompts模板:“1. 每月1日调用‘CRM数据Tool’导出上月销售数据;2. 调用‘数据分析Tool’生成销售环比报告;3. 调用‘邮件Tool’将报告发送给销售总监(邮箱:director@xxx.com)”;
- 保障企业合规,规避风险:Prompts可强制AI遵守企业规则或法律法规。例如“涉及用户隐私的回答”模板:“所有包含用户手机号、地址的回答,需隐藏中间4位(如手机号138****1234),并添加‘本信息仅用于服务,请勿泄露’的隐私声明”;“多语言适配”模板:“若用户用非中文提问,先调用‘翻译Tool’将问题转为中文,处理后再调用‘翻译Tool’转回用户语言,确保回答准确且符合当地语言习惯”。
应用实例:某银行AI客服的“贷款咨询Prompts模板”——要求AI必须先调用“用户资质查询Tool”确认用户是否符合贷款条件,再根据资质结果推荐对应产品,且所有回答需包含“贷款有风险,借款需谨慎”的提示,确保符合金融监管要求。
通过Tools、Resources、Prompts的协同,MCP不仅解决了LLM“无法调用工具”的基础问题,更让AI能像“专业员工”一样——有工具可用、有资料可查、有规范可依,真正从“文本生成工具”升级为“全流程生产力助手”。
那么,如何系统的去学习大模型LLM?
作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。
所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。
由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
为什么要学习大模型?
我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。
👉大模型学习指南+路线汇总👈
我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
👉①.基础篇👈
基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
👉②.进阶篇👈
接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
👉③.实战篇👈
实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
👉④.福利篇👈
最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!