面试被问MCP?看这一篇文章就行了

简介: MCP(模型上下文协议)是由Anthropic推出的开源标准,旨在统一AI与外部工具、数据源及系统的交互方式。它通过Tools(执行操作)、Resources(安全读取数据)和Prompts(复用提示模板)三大能力,实现跨厂商、跨环境的标准化连接,支撑可感知上下文的智能体开发。(239字)

Anthropic 对 MCP(Model Context Protocol)的定义是:

“A new standard for connecting AI assistants to the systems where data lives, including content repositories, business tools, and development environments.”

其定位与愿景也十分明确:

• 定位:一个协作式开源项目和生态系统。

• 目标:帮助前沿模型产生更好、更相关的回答,让 AI 在不同工具和数据集之间移动时能保持上下文,最终实现可感知上下文的 AI(context-aware AI)。

• 理念:让创新变得可访问、透明、植根于协作——像 Block 的 CTO 所说,把 AI 连接到真实世界应用,将人从机械性工作中解放出来,专心创造。

很多人会自然联想到 Function Calling,但二者完全不在一个维度。Function Calling 是 LLM 调用外部工具的一种具体机制,而 MCP 是 Agent 与数据系统之间的标准通信协议及实现体系。MCP 中的工具调用当然可以基于 Function Calling 来完成,但它在系统层面做了标准化抽象。因此,MCP 是构建在 Function Calling 之上的系统级协议。

一、为什么需要 MCP?——从 Function Calling 的痛点切入(以模型调用为例)

我们来看一个典型的 Function Calling 流程:

  1. 注入工具 Schema:开发者将工具定义(JSON Schema)放入 API 请求的 tools 参数。
  2. 模型返回调用:模型输出 tool_calls,包含函数名和参数。
  3. 外部执行:开发者手动解析,并调用本地或远程函数。
  4. 结果回传:将结果包装为 role=tool 的消息,再次请求模型。

这种模式的突出问题:

• 厂商绑定:工具 Schema 与 LLM 提供商强绑定。同样是 get_weather,OpenAI 的格式和 Anthropic 的格式在结构和字段命名上完全不同(例如 OpenAI 使用 type 和 parameters,而 Anthropic 使用 input_schema)。

• 无执行标准:工具实际怎么调用,完全由开发者硬编码,没有标准化的接口。

• 功能简陋:一次调用只返回一个结果,不支持进度、取消或流式输出。

当工具越来越多、数据源五花八门时,这种“每次临时贴 Schema + 手工调度”的方式会迅速失控。

二、MCP 的 Tools 如何标准化工具调用?

MCP 提供了一套标准的工具调用流程,将“描述”与“执行”解耦:

  1. 工具发现(前置)
    MCP Client 与 Server 握手时,通过 tools/list 获取完整的工具列表和 JSON Schema。工具描述不再随请求发送,而是独立存储在 Server 端。
  2. 模型决策
    Host(如 Claude Desktop)将 MCP 工具与本地功能合并,通过 LLM 的 Function Calling 机制让模型决定调用哪个工具。
  3. Host 转换为 MCP 调用
    模型选定工具后,Host 不再直接调用函数,而是通过 MCP Client 发送标准 JSON-RPC 请求,包含 method: tools/call 以及对应的参数。
  4. Server 执行并返回
    MCP Server 处理实际逻辑并以 JSON-RPC 格式返回结果内容。
  5. 结果回传 LLM
    Host 将结果转为模型能理解的 tool 消息,继续对话。

你可能问:既然各厂商的 Schema 不同,MCP 不还是需要一个适配层吗?

没错,适配层仍然需要,但 MCP 把问题大大简化了。对比一下普通 Function Calling 与 MCP:

【工具描述格式】

普通:随厂商而异的 JSON Schema 方言。

MCP:统一 Tool 类型,基于标准 JSON Schema,字段固定。

【工具存储】

普通:随请求临时发送。

MCP:独立 Server 存储,由 tools/list 获取。

【工具调用协议】

普通:无标准,开发者自行实现 HTTP/gRPC/本地调用。

MCP:标准 JSON-RPC 方法 tools/call。

【工具执行环境】

普通:与 Agent 代码耦合。

MCP:独立进程、跨语言、跨机器运行。

【高级特性】

普通:无(或厂商专有)。

MCP:进度通知、取消、流式返回等(协议原生支持)。

没有 MCP 时,适配层不仅要处理格式转换,还得操心:工具在哪里执行?如何发现新工具?调用时的网络、超时、重试、认证怎么做?

有了 MCP,所有“外围事务”都被标准化。适配层只需专注格式转换,其余均由协议保证。这个转换层完全可以做成一个通用库,一劳永逸。

三、远不止 Tools:Resources 和 Prompts 带来的能力跃升

MCP 的核心不只是标准化了函数调用,它定义了三种能力基元,将 AI 与外界的交互从“单一动作”扩展到“知识获取、流程复用、动态协商”。

  1. Resources(资源)——为模型提供标准化的“传感器”
    Function Calling 要读取数据必须单独写一个函数,且每次调用都要计为一次 action,也无法主动推送变更。MCP 的 Resources 将数据源抽象为可发现的 URI:
    • 资源发现:通过 resources/list 浏览所有可用资源,支持 URI 模板动态匹配。
    • 只读语义:协议保证资源读取无副作用,Host 可安全地自动拉取,无需用户每次确认。
    • 实时订阅:Client 可订阅资源,资源变化时 Server 主动推送通知,模型被动感知数据更新。
    • 多内容类型:支持文本和二进制,省去编码协商。
    这相当于为 AI 装上了一套标准化的传感器总线,能动态发现并订阅外部世界的变化。
  2. Prompts(提示模板)——可复用的“认知流程”固件
    如果你想重复使用一套复杂的提示流程,传统做法只能每次手动拷贝。MCP 的 Prompts 让提示模板成为可发现、可参数化、可管理的资源:
    • 模板发现:prompts/list 列出所有可用的思维框架。
    • 动态填充:通过 prompts/get 传入参数,Server 返回填好的完整提示。
    • 多角色支持:模板能返回 user、assistant 等混合角色消息,引导复杂交互。
    • 版本管理:Server 更新模板后,Client 可收到变更通知,提示升级无需改代码。
    这好比为模型预置了可插拔的“思考程序”,实现了认知流程的复用与迭代。

【能力全景对比】

• 能力范围:普通 Function Calling 仅可执行函数;MCP 可执行操作 + 只读数据 + 提示模板。

• 发现机制:普通无发现机制,需预先注册;MCP 动态 list 查询,支持变更通知。

• 传输协议:普通为厂商自有格式;MCP 为标准 JSON-RPC over stdio / HTTP。

• 安全模型:普通靠 Token 校验;MCP 支持 OAuth 2.1、人在回路、细粒度授权。

• 资源管理:普通无;MCP 支持订阅/推送、URI 模板、内容协商。

• 长时间任务:普通不支持;MCP 支持进度通知与取消操作。

• 提示复用:普通无;MCP 支持参数化模板、多角色输出、动态生成。

四、MCP 的核心角色:Host、Client、Server

明确 Host、Client 和 Server 的分工,是理解 MCP 如何解耦 Agent 与工具的关键。

【Host】

• 职责:AI 应用本身,负责接收用户输入、维护 LLM 对话、整合上下文。它通过 MCP Client 调用能力,不直接访问 Server。

• 典型形态:Claude Desktop、IDE 插件、自研 Agent 等。

【Client】

• 职责:MCP 协议的代理层,作为 Host 与 Server 之间的翻译器。负责建立连接、发送请求、处理响应并返回给 Host。

• 典型形态:各种编程语言的 MCP SDK。

【Server】

• 职责:独立进程,对外暴露 Tools、Resources、Prompts 等具体能力。Server 只遵循协议执行请求,不关心是谁在调用。

• 典型形态:本地文件系统 Server、数据库 Server、云端函数计算 Server。

一次典型交互的生命周期:

连接建立 -> 能力协商(获取可用列表) -> 模型决策(LLM 决定调用哪个工具) -> 能力调用(通过 Client 发送标准请求) -> 结果回传 -> 资源订阅(可选)。

这种“决策与执行分离”让工具和数据的提供方可以独立演进,真正做到了“一次编写,处处使用”。

五、MCP 的安全模型:从“裸奔调用”到企业级护城河

MCP 从协议层就内建了一整套安全机制:

  1. 传输层安全:使用 HTTP 传输时强制建议 HTTPS 加密;本地 stdio 传输由操作系统进程隔离保障。
  2. 认证体系:推荐使用 OAuth 2.1 机制,基于 Token 鉴权,且 Token 可以限定读写等作用域。
  3. 细粒度授权与“人在回路”:
    • 工具白名单:Host 可过滤工具列表,只允许模型调用特定子集。
    • 读写分离:Resources 协议保证只读,Tools 可能有写操作,可差异化授权。
    • 人在回路:高风险操作(如删除、发邮件)在执行前可弹出确认框让人类审批。
    • 资源控制:限制特定资源只对特定用户可见。
  4. 审计与可观测性:标准通道可自然记录调用者、时间、参数和结果,方便接入企业日志和合规系统。
  5. 云端集成:结合 API 网关、RAM 角色和 KMS 密钥管理,实现最小权限原则,避免硬编码。

六、结语:MCP 的本质是 AI 与 数据系统交互的“USB 总线”

MCP 并不试图统一所有 LLM 的输入/输出格式。它做的是:统一工具、数据和提示的“描述方式”与“访问接口”,让 AI 可以像计算机外设一样,自由发现并安全使用各种能力和数据。

在 Tools 能力中,Server-Client 架构让 Host 彻底从工具发现、执行、认证和传输等繁琐事务中解放出来,还带来了进度通知、取消和流式返回等高级特性。

更关键的是,Resources 为模型装上了可发现、可订阅的“传感器”;Prompts 为模型预置了可复用、可迭代的“思考程序”。

如果说 MCP 是一座大厦,Function Calling 仅仅是这座大厦某根支柱的地基。二者在抽象层次和系统能力上有着本质区别。

【典型面试题】

问:什么是MCP?

答:MCP 是 Anthropic 在 2024 年底推出的 Agent 与数据系统之间的标准通信协议及实现体系协议。MCP中有三个核心角色,分别是Host、Client、Server,三个角色完成了Agent与数据系统的解耦。MCP有三大能力Tools 用于执行有副作用的操作,Resources 是只读数据,Prompts 是提示词模板,底层用 JSON-RPC 2.0 通信。其中Tools能力主要解决的是「模型接工具太碎片化」的问题。在 MCP 出现之前,每接一个新工具都要单独写集成代码、处理认证、适配格式,而且这套代码和具体模型强绑定,换个模型就得重写,非常繁琐。MCP 的思路是把这件事标准化:工具提供方按协议实现一个 Server,任何支持 MCP 的 AI 客户端就能直接接进来,一次实现到处复用。

问:MCP有哪几部分组成?

答:从角色层看有 Host(AI应用)、Client(通信模块)和 Server(能力提供方)。从能力层看有 Tools(有副作用的操作)、Resources(只读数据)和 Prompts(提示词模板)。从协议层看,底层消息格式用 JSON-RPC 2.0,支持 stdio(本地)和 Streamable HTTP(远程)两种传输方式。

问:MCP和Function Calling的区别?

答:Function Calling 是一种模型输出层的约定,解决“如何调用”的问题。MCP 是工具生态系统协议,解决“如何让调用可持续、可管理、可规模化”的问题。MCP 底层虽然用 Function Calling 触发调用,但它在此之上增加了一套完整的工具管理框架,接管了工具的发现、描述、传输和安全等工程关注点。两者不在同一抽象层次。

问:MCP和Skill的区别?

答:MCP 提供基础能力原语(读写工具、数据源、提示模板),侧重于工程上“如何连接到数据系统”。Skill 封装的是特定领域的业务知识和工作流 SOP,直接绑定好了用到的工具和资源,降低模型试错概率。MCP 管能力总线,成功标准是“连得上、调得通”;Skill 管任务质量,成功标准是“少产生幻觉、把事情干好”。

问:MCP 如何保证安全性?

答:MCP 在多层内建安全:传输层走 HTTPS 或隔离的进程通信;认证层推荐 OAuth 2.1 鉴权和限制 Token Scope;授权层支持 Host 设置工具白名单、读写分离控制;执行层支持“人在回路”的高风险拦截审批;日志层支持所有调用记录标准化,方便企业审计合规。

问:MCP 与 A2A 协议有什么区别和联系?

答:MCP 解决 AI 与外部工具、数据系统之间的连接,是“AI 的外设总线”,场景是单 Agent 读写文件或查数据库。A2A(Agent-to-Agent)解决多个 Agent 之间的任务协商与协同工作,是“跨 Agent 的社交语言”,场景是不同分工的 Agent 互相传递需求和结果。两者互补:MCP 管内部能力接入,A2A 管外部 Agent 协同。


相关文章
|
2月前
|
人工智能 弹性计算 自然语言处理
OpenClaw是什么?阿里云OpenClaw一键部署官方教程(原Clawdbot/Moltbot)
2026年,开源AI智能体OpenClaw(“龙虾AI”)爆火。它是一款遵循MIT开源协议的AI自动化引擎与个人助手平台,能将大模型从“对话”变为“执行任务”。其核心架构由网关、智能体、技能和记忆构成,可自主行动、跨平台协同且高度可扩展。阿里云提供官方镜像一键部署方案,新用户首月服务器成本9.9元,还有大模型免费额度。
988 21
|
7天前
|
SQL JSON 关系型数据库
企业级多模态分析计算引擎选型:阿里云 AnalyticDB MySQL 统一分析平台方案
阿里云AnalyticDB MySQL版是PB级云原生实时数据仓库,首创多模态统一分析引擎,单SQL原生支持SQL分析、向量检索、全文搜索与JSON分析,替代3–5套独立系统,综合成本降50%+,运维复杂度降80%,适用于AI+数据融合、多源异构统一查询等企业级场景。
141 17
企业级多模态分析计算引擎选型:阿里云 AnalyticDB MySQL 统一分析平台方案
|
2月前
|
机器学习/深度学习 存储 自然语言处理
大模型应用:Drools+Qwen大模型:企业级智能决策的“规则+底线”双引擎.88
本文介绍Drools规则引擎与大模型融合的“双引擎智能决策”架构:规则引擎严守合规底线,确保刚性风控;大模型负责柔性处理,优化文本、解释原因、识别长尾风险。二者分层协同,实现“合规不失温度、体验不越红线”,为企业数字化转型提供务实高效的智能决策方案。
412 4
|
2月前
|
人工智能 安全 API
深度解析 Claude Code 在 Prompt / Context / Harness 的设计与实践
文章内容基于作者个人技术实践与独立思考,旨在分享经验,仅代表个人观点。
3264 75
深度解析 Claude Code 在 Prompt / Context / Harness 的设计与实践
|
30天前
|
人工智能 架构师 测试技术
AI编程王炸组合:顶级三剑客 OpenSpec 定方向,Superpowers定纪律,Harness定协同
AI编程王炸组合:顶级三剑客 OpenSpec 定方向,Superpowers定纪律,Harness定协同
|
3月前
|
人工智能 Linux API
告别周五熬夜写周报!OpenClaw全自动周报生成实战教程(阿里云/本地部署+百炼API配置)
每到周五,无数职场人都会陷入同样的内耗:想不起一周做了什么、琐碎工作不知如何包装、流水账没人想看、写报告占用大量休息时间。2026年,借助OpenClaw(Clawdbot)AI智能体,你只需要每天花5分钟简单记录碎片工作,就能让AI自动整理、结构化包装、价值升华,生成让领导一眼认可的专业周报。本文将完整讲解AI自动生成周报的完整流程,并提供**2026年3月最新阿里云ECS、Windows11、MacOS、Linux全平台部署OpenClaw**详细步骤、**阿里云百炼Coding Plan免费大模型API配置**、可直接复制的代码命令与高频问题解答,让AI成为你的专职周报助理,彻底解放周末
1167 89
|
30天前
|
SQL 机器学习/深度学习 自然语言处理
从单模态到多模态:一文看懂智能问数平台如何“读懂”你的表格、文本和图
截至2026年5月,智能问数平台对表格、文本、图等多模态数据的处理已形成四类技术路线:预制SQL、Text2SQL+宽表、预制指标平台及本体语义层。后者在跨模态融合、泛化能力与准确率(闭卷95%+、开卷100%)上优势显著,但需前期语义治理投入;前三者适用固定场景,维护成本随业务扩张呈指数增长。选型关键不在技术优劣,而在匹配组织的数据复杂度、业务变化频率与治理能力。
|
2月前
|
机器学习/深度学习 人工智能 数据可视化
Geo优化新范式:深度解析知识图谱构建工具与“双核四驱”实战策略
在生成式AI重塑信息分发的今天,SEO正升级为Geo(生成式引擎优化)。本文详解Geo底层逻辑:以知识图谱为枢纽,融合Protégé建模、Neo4j图谱、BERT抽取与JSON-LD标记,结合于磊首创“两大核心+四轮驱动”体系,助力企业提升AI引用率与数字可见度。
190 9
|
29天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
4142 25