MCP 的本质与作用是什么?
未标记
询问 AI
考查重点:能力发现与标准化通信。MCP把工具、资源和提示的发现与调用标准化;Host协调Client连接Server,由Server接入实际工具或数据,再把结果交回应用和模型
本题目录
参考答案
核心回答
MCP,全称 Model Context Protocol,是 AI 应用接入外部工具和数据的开放通信协议。它统一能力描述、发现、调用和结果返回,让同一套外部能力能够被不同 AI 应用复用,减少重复适配。
三者的职责分别是:Tool Calling 让模型表达“调用哪个工具、传什么参数”;MCP 规定应用怎样发现外部能力、发送请求并取得结果;Agent 根据任务目标和返回结果决定下一步。
例如把天气查询封装为 MCP Server 后,聊天应用和编程 IDE 都可以通过各自的 MCP Client 获取工具说明、发送城市参数并接收天气结果。模型再根据结果回答用户,或继续处理信息缺失的问题。
MCP 统一的是接入方式,不负责规划任务,也不保证调用正确。应用和服务端仍要检查参数、权限和执行结果;工具也可以由程序直接触发,不必每次都经过模型。
用天气服务说明它到底连接了什么
假设天气能力要同时提供给一个聊天应用和一个编程 IDE。直接集成时,两边可能各自维护工具说明、参数转换和调用代码;封装为 MCP Server 后,共同的发现和调用约定由协议承担,天气查询仍由服务端实现。
这里有三个角色:
- Host: 用户使用的聊天应用或 IDE,管理模型交互、工具可见范围和执行策略。
- Client: Host 内的通信组件,向某个 Server 请求能力列表、发送调用并接收结果。
- Server: 提供天气能力的程序,收到请求后执行查询或转交业务 API;可以运行在本机,也可以在远端。
下面把三者的位置与消息方向画出来:Client 在 Host 内,Server 后面才是实际业务能力。
图示按教程第 20 章 §5.1的角色关系重绘。“发现与调用”概括两类交互,不表示每次调用都重新获取能力列表。
用户输入“查北京现在的天气”后,主要链路如下:
Client 用 tools/list 获取工具名称、说明和 inputSchema
→ Host 把允许使用的工具适配给模型
→ 模型提出 get_weather 和城市参数
→ Host 检查请求,Client 用 tools/call 发给 Server
→ Server 校验输入和权限,执行天气查询
→ 结果返回 Host,模型据此回答或处理失败
inputSchema 是参数结构说明,例如城市字段的类型和必填要求。如果服务返回城市不明确,Agent 可以补问;如果凭证失效,就应处理配置问题。协议让反馈有统一的传递方式,具体选择仍由应用和模型完成。
Server 还可以暴露 Resources 和 Prompts。三者分别对应“执行动作”“提供可读取内容”“提供可复用提示模板”:天气查询适合作为 Tool,已有文档可作为 Resource,报告写作模板可作为 Prompt。资源如何进入上下文通常由应用组织,提示模板通常由用户选择,不是三类能力都自动交给模型执行。
Server 可以只提供其中一类能力,Host 也可能只支持部分能力。例如某宿主能调用天气 Tool,却未实现 Prompt 的选择界面,两者并不矛盾。接入时要核对双方支持的协议版本、传输和具体能力,不能把“支持 MCP”理解为所有功能都自动可用。
它通过什么方式通信?
MCP 使用 JSON-RPC 消息。标准传输包括 stdio 和 Streamable HTTP:stdio 常用于本地子进程,通过标准输入输出通信;Streamable HTTP 向 MCP 端点发 HTTP 请求,响应可以是 JSON,也可以是 SSE 流。
SSE 是一种传输流式消息的机制,收到进度事件也不等于收到了模型逐 token 生成的文本。教程中的 transport="sse" 是旧 HTTP+SSE 兼容示例,与 Streamable HTTP 使用 SSE 返回流是两回事。接入时应核对两端实际支持的协议;本文按 2026-07-28 规范解释,课程 SDK 1.x 示例的初始化方式不作为所有版本的共同前提。
追问
不用 MCP,能不能让模型调用天气 API?
可以,应用直接把天气 API 封装成工具即可。一个应用只有几个固定内部接口时,直接集成可能更简单;多个宿主要复用相同能力,或要接入现有 MCP 生态时,标准协议更有价值。MCP Server 可以部署成适配层,但 MCP 本身是协议,不是某个现成中间件产品。
接入标准协议后,为什么还可能不可靠?
统一了请求格式,仍要检查城市是否正确、数据是否完整、调用者是否有权限。HTTP 接入有对应的认证授权规范,业务系统还要落实具体资源和操作的权限。Host 控制可用工具和必要确认,Server 做输入校验、访问控制与限流。返回内容也可能不可信,不能把工具结果里的文字直接升级成系统指令。另外,业务失败可以通过工具结果的 isError 表达,不能把收到 JSON-RPC result 简单等同于业务成功。
MCP 和 Skills 可以互相替代吗?
不能。MCP 解决怎么接入能力;Skills 把某类任务的方法、规则和配套资料组织起来,供宿主按需加载。例如研究报告 Skill 说明先核对来源再整理报告,执行时可以使用 MCP 提供的搜索工具,也可以使用本地工具。
对应教程
- MCP 模型上下文协议:1.1~1.2、3.2、5.1~5.3:接入痛点、角色、三类能力与传输。
- Tools 工具调用:2.2~2.4:与模型侧调用意图和结果反馈对照。
参考资料
- 国内:WeThinkIn:MCP 与 A2A 协议高频考点“Tools、Resources、Prompts 有什么区别?”——借鉴对 Tools、Resources、Prompts 的比较,说明它们的用途与宿主使用方式;发现过程以本文注明的协议版本为准。
- 国内:JavaGuide:MCP 和 Function Calling、Agent 的关系:参考接入复用与职责划分的讲解,解释 MCP 与 Function Calling、Agent 的关系;涉及握手的旧版描述需按实际协议版本区分。
- 国内:AgentScope:MCP:借鉴客户端获取工具、注册工具集和发起调用的示例,说明正文中框架如何接入 MCP;框架会话管理与协议级会话分别处理。
- 国外:MCP:Architecture overview:依据本文所用版本的架构文档,说明宿主、客户端与服务端的角色,以及能力、传输和发现机制如何配合。
- 国外:MCP:Tools:依据工具规范说明发现与调用流程,并补充参数约束、业务错误反馈和调用各方的安全职责。
协议版本:2026-07-28。
相关面经
30 篇九方智投
Agent 开发工程师Plan模式 如何调用工具 MCP原理
百度
AI 测试开发工程师mcp服务有什么作用
字节跳动
Agent 全栈开发工程师MCP 算不算中间件?
万兴科技
Android 客户端开发工程师(AI 方向)拼多多
Agent 应用开发工程师MCP是什么,为什么项目没有选用MCP选择自己封装?Skill与MCP核心区别?
展开剩余 25 篇面经
阿里巴巴
大模型应用开发工程师(RAG 方向)你理解 MCP 相比于之前没有 MCP 的时代,解决了什么问题?
蚂蚁集团
Agent 开发工程师MCP是什么?它主要解决Agent开发中的什么问题?
要务科技
AI 应用开发工程师对 MCP 的理解?
快手
后端开发工程师(AI 应用)a2a和mcp
阿里巴巴
AI 应用开发工程师mcp
宁波银行
大模型应用开发工程师(RAG 方向)MCP
深信服
Agent 开发MCP主要是对接数据库吗?
拼多多
AI Agent你的项目有用过 mcp 吗,能介绍一下吗
百度
后端开发为什么需要 MCP?
华为
Agent 应用开发工程师6 解释RAG, SKILL, MCP。(差不多说对了)
哔哩哔哩(B站)
多屏客户端开发工程师mcp 本质是什么
字节跳动
全栈开发工程师(Agent)agent怎么去判断是否需要调用工具,MCP协议解决了什么问题?怎么解决的?
字节跳动
了解 A2A 和 MCP 协议吗?
转转
后端开发b. 你了解MCP和Skill吗?
快手
聊聊你对MCP的理解。
字节跳动
后端开发工程师(AI)mcp,rag是什么,用来干什么?
滴滴
Agent 应用开发工程师MCP是什么?
中兴
AI 应用 / Agent 开发mcp和skill
美团
后端开发了解 MCP 吗?那 Function call 呢?
腾讯混元
后台开发mcp框架有了解过吗?
米哈游
AI 应用 / Agent 开发mcp
美团
测试开发工程师mcp
蚂蚁国际
AI 应用 / Agent 开发简要的介绍一下engine、sub engine、skill、mcp这几个概念,他们的用途是什么?在代码开发过程中分别用来解决什么问题?
四维图新
什么是MCP服务。
字节跳动
Agent 开发工程师mcp
收录题集
Agent与工具调用
Agent与工具调用综合 请介绍Agent相关概念: 「京东、字节跳动、百度、百度文心、美团、腾讯、腾讯混元、蚂蚁集团、阿里巴巴」
Agent综合理解与设计 「京东、字节Seed、字节跳动、美团、腾讯、腾讯混元、蚂蚁集团、阿里巴巴」
MCP原理、动态路由、与Function Call/Skill对比:
展开其余 1 条原题
「腾讯、蚂蚁集团、阿里巴巴」








