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 后面才是实际业务能力。

MCP 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 提供的搜索工具,也可以使用本地工具。

对应教程

参考资料

  • 国内: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 方向)
实习一面
查看原面经 →
讲一讲RAG、MCP、Agent的概念。
MCP解决的是什么问题?

拼多多

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

收录题集

15 份

Agent与工具调用

阿东玩 AI · AgentGuide · 4 条原题

查看题集 →
展开其余 1 条原题

Agent 与自主系统

AMIT SHEKHAR · ai-engineering-interview-questions · 1 条原题

查看题集 →

AIGC时代AI Agent基础

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

编码Agent与AgentOS工程

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

MCP与A2A协议

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →
展开剩余 10 份题集

阿里巴巴问答汇编

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

百度高频面试题

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

腾讯问答汇编

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

AI 智能体与大模型应用开发面试题库

didilili · ai-agents-from-zero · 2 条原题

查看题集 →

Agent 面试题

Guide · JavaGuide · 1 条原题

查看题集 →

Agent 机制与项目追问

Guide · JavaGuide · 2 条原题

查看题集 →

模型接口与评测问答

Guide · JavaGuide · 1 条原题

查看题集 →

Agent开发面试题

摸鱼酱mio · 个人整理 · 1 条原题

查看题集 →

LLM 工具调用面试题

小林 Coding · 个人整理 · 1 条原题

查看题集 →

OpenClaw 教程面试题

Onefly · zero2Agent · 2 条原题

查看题集 →

相关题目

4 题