你有没有过这样的经历:抽屉里塞满了一堆充电线,Micro-USB、Lightning、圆头DC,每台设备都要专属的线,找线找到崩溃。直到USB-C出现,一根线走天下,手机、平板、耳机、音箱统统通吃,世界瞬间清爽了。AI领域正经历着同样的“线缆混乱”:AI应用想调用外部工具查数据、调接口,每个工具都要单独写适配代码,工具一多,代码就爆炸。MCP(Model Context Protocol,模型上下文协议)就是Anthropic提出的“AI版USB-C”——一套开放标准,让AI模型用同一个协议连接所有外部工具和数据源,不用再为每个工具单独拉一根“线”。这篇文章用大白话拆解MCP的来龙去脉,看完你也能给AI“接线”。
掌握MCP,你就掌握了AI Agent时代的“统一接口语言”,做工具集成时一次实现、处处复用,是AI应用工程师的硬核竞争力。
目录
可视化演示
动态演示MCP模型上下文协议入门指南的核心机制,通过全局/局部/动态/静态四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
MCP模型上下文协议入门指南:MCP协 MCP协议总览与Anthrop MCP架构设计与核心概念解析 核心机制可视化 MCP模型上下文协议入门指南整体架构与关键组件
一、MCP是什么:AI世界的USB-C
打开你家抽屉看看,是不是有一堆“充电线葬品”?Micro-USB、Lightning、圆头DC,还有不知道属于哪台设备的专用线……十年前每买一台设备就多一根线,桌面乱成一团。后来USB-C出现了,手机、平板、耳机、音箱统统用同一根线。一根线解决所有连接问题,世界从此清爽了。AI世界正在经历同样的“线缆混乱”:AI应用想查天气、搜网页、读数据库,传统做法是给每个工具单独写一段适配代码,本质上就是为每个“设备”配一根专属“充电线”。工具一多,适配代码成倍增长,每次对接新工具都要从头折腾。
MCP就是Anthropic在2024年提出的“AI版USB-C”:一套开放标准,让AI模型用同一个协议连接所有外部工具和数据源。在MCP之前,N个应用对接M个工具,需要N×M条专属适配;有了MCP,每方只需对接一次标准接口,连接数从乘法级降为加法级。工具方只实现一次MCP Server,就能被所有支持MCP的AI应用复用;AI应用只实现一次MCP Client,就能连接生态内的全部工具。这种解耦是MCP最核心的价值主张。
就像USB-C让“一根线走天下”,MCP让AI应用“一个接口连万物”。以后再遇到新工具,不必担心要写多少适配代码——只要对方实现了MCP,你的AI应用立刻就能“插上就用”。这正是MCP希望带给AI开发者的清爽体验。
- N 个模型与 M 个工具N代表AI模型或宿主应用的数量,M代表外部工具或数据源的数量,两者相乘就是无标准时所需的专属适配数量。
- 乘法级复杂度的由来每个模型都要为每个工具单独写适配器,如果有3个模型、10个工具,就要写30份对接代码。
- 引入MCP后降为加法模型只需实现一次客户端,工具只需实现一次服务端,各自对接标准,连接数降为N+M。
- 开放标准是前提MCP的协议规范公开、参考实现开源,任何模型厂商与工具厂商都能接入,才能实现“一次实现、处处复用”。
二、核心架构:手机、数据线与设备接口
用USB-C充电时,其实有三个角色在配合:你的手机(需要电和数据的设备)、那根USB-C线(传输通道)、以及充电头或电脑(供电和数据的源头)。三者缺一不可。MCP的架构也精妙地分成三个角色,各司其职。
MCP的架构分为三层:Host(宿主应用)、Client(客户端)、Server(服务端)。Host就是AI应用本身,比如Claude Desktop、Cursor这类工具;Client负责与Server建立和维持连接,处理协议细节;Server部署在工具方,向外暴露数据和能力。用户可以感知到Host,看不到Client和Server的细节,就像你用USB-C充电时只看到手机和线,不会在意线缆内部的芯片协议。
技术实现上,三层之间通过JSON-RPC 2.0格式的消息进行通信。Host收到用户指令后交给模型推理,模型若决定调用某个工具,Host就把这个意图交给Client,Client将请求封装成标准协议消息发给Server,Server调用具体函数后把结果返回。消息传递路径是严格单向的:Host → Client → Server → Tool,每一层只和自己相邻的层通信,互不越界。
就像USB-C的插头、线缆和设备接口各司其职,MCP的三层架构让“谁负责什么”清清楚楚。工具方只需做好自己的Server,模型方只需关注Host和Client,中间通过标准协议交流,谁也不越界。这种分层设计让两端可以独立演进——服务器升级内部实现不影响客户端,客户端换模型也不影响服务器。
- Host 是用户入口宿主应用承载对话交互,是用户与AI模型之间的桥梁,负责理解用户意图。
- Client 是协议执行者负责协议握手、消息封装与连接维护,相当于USB-C连接器里的控制芯片。
- Server 是能力提供方部署在工具侧,把数据库、API等具体业务封装成标准接口。
- 调用链路完整闭环指令从Host流向最终工具,执行结果沿原路返回Host并交给模型组织回答。
三、核心概念:Resource、Tool 与 Prompt
插上USB-C后,电脑能从这个设备读到什么?能对它做什么?USB-C规范里区分不同的“设备类型”:有的只提供数据读取,有的支持写操作,还有的是复合设备。MCP也定义了三种“能力类型”,让AI模型清楚地知道站在对面的是谁、能干什么。
MCP定义了三个核心原语:Resource(资源)、Tool(工具)、Prompt(提示模板)。Resource代表可读取的数据源,比如数据库查询结果、文件内容、API返回的数据;Tool代表可执行的操作,比如发送邮件、创建订单、运行代码;Prompt则是预设的提示词模板,方便复用常用交互模式。三者解决的问题不同:Resource让模型“查资料”,Tool让模型“动手做”,Prompt让模型“按套路说话”。
为什么要刻意区分Resource和Tool?因为读操作和写操作的安全要求完全不同。Resource是只读的,AI模型通过 resources/read 获取内容,可以被安全地开放给模型探索;Tool是可执行的,通过 tools/call 触发,必须经过严格的参数校验和权限控制。一个MCP Server可以同时暴露多个Resource和Tool,让模型既能查询上下文,又能实际操作。Tool本身用元数据描述“叫什么、有什么用、需要什么参数”,模型据此判断何时调用、怎么调用。
就像USB-C设备接入电脑后会自动“自我介绍”:我是硬盘、我是键盘、我是显示器。MCP的每个Server也向AI模型自报家门:这是只读数据(Resource)、这是可写接口(Tool)、这是现成话术(Prompt)。AI模型不必瞎猜,看一眼协议就知道怎么正确地使用对方。
- name(名称)工具的唯一标识,AI模型通过这个名称来指定要调用哪个工具,就像USB-C设备的产品ID。
- description(描述)自然语言描述工具用途,帮助模型判断该在什么场景下调用,这是AI能“聪明选工具”的关键。
- inputSchema(参数模式)用JSON Schema声明参数结构,模型据此生成合法的调用入参,Server据此校验请求合法性。
四、工作流程:一次完整的插拔对话
你第一次把新U盘插上电脑,系统会做什么?先识别设备、读取它的描述信息,然后你才能看到里面有什么文件、能执行什么操作。MCP的交互流程也是这个“先识别、后使用”的逻辑,每一步都有清晰的协议消息对应。
一次完整的MCP交互分三个阶段:初始化(initialize)、工具发现(tools/list)、工具调用(tools/call)。初始化阶段,Client和Server相互确认协议版本与能力范围,协商出双方都支持的通信参数;工具发现阶段,Client向Server请求完整工具清单,Server返回每个Tool的元数据描述;工具调用阶段,Client把模型选中的工具请求发给Server,Server执行并返回结构化结果。
这些消息都是JSON-RPC 2.0格式。工具发现请求形如 {"jsonrpc":"2.0","method":"tools/list","id":1},Server返回工具描述数组;工具调用请求形如 {"method":"tools/call","params":{"name":"toolName","arguments":{...}}}。整个过程有请求有响应,和HTTP一样是“一问一答”的同步模型。如果连接中断,Client会自动尝试重连并重新初始化——就像拔掉U盘再插上,系统会再次识别并挂载。
整个过程就像你插上U盘、双击打开、拷出文件——识别、发现、使用三步走。MCP把物理世界再熟悉不过的即插即用交互,翻译成了AI能理解的协议语言。U盘即插即用的体验,正是MCP想要带给AI工具生态的感受:工具接入零门槛,模型使用零学习成本。
- 初始化握手Client与Server建立连接并交换协议版本与能力声明,为后续通信确认基础契约。
- 发现工具清单Client请求Server列出所有可用工具,Server返回工具元数据数组,供模型决策时参考。
- 调用指定工具Client携带工具名与参数发起调用,Server执行真实业务逻辑并返回结构化结果。
- 结果回填上下文工具执行结果作为上下文片段返回给模型,模型结合用户问题与工具输出生成最终回答。
五、对比Function Calling:专用线 vs 通用口
在USB-C普及之前,苹果有Lightning,安卓有Micro-USB,各有各的接口,线不是不能用,但换个品牌就得换根线。AI领域也是这样:OpenAI有Function Calling,谷歌有Function Call,各家大模型都有自己的“专用线”。它们都能解决问题,但换一家模型厂商,适配代码就要重写。
Function Calling是OpenAI在其模型API中提供的函数调用能力:你把函数描述作为参数传给模型,模型在回答中输出函数调用指令,然后由你的代码执行该函数。它很实用,但它是私有的——所有约定都绑定在OpenAI的API规范之上,换个模型就失效。MCP则是完全开放的协议标准,不属于任何单一厂商,协议文档公开、参考实现开源,任何模型只要实现了MCP客户端就能互通。
两者的核心区别有三个方面。第一是开放性:Function Calling是OpenAI生态内的私有协议,MCP是Anthropic提出并捐给社区的开放标准。第二是耦合度:Function Calling的请求格式、函数约束都嵌在模型API里,而MCP Server独立于任何模型,一次实现可以被Claude、GPT乃至开源模型通用。第三是生态配套:MCP自带工具发现(tools/list)、资源读取(resources/read)、提示模板(prompts/get)等标准能力,Function Calling需要开发者在应用层自己搭建这些基础设施。
USB-C之所以成功,是因为它不属于苹果也不属于安卓,而是行业共同认可的标准。MCP正在AI工具连接领域走同一条路——做一个“谁的线都能插”的通用接口,而不是某一家厂商的专用充电线。对开发者来说,这意味着你今天为MCP写的工具,明天换任何模型都能继续用,这是巨大的投资保护。
- Function Calling 是厂商私有方案每个大模型厂商都有自己的函数调用实现,接口格式和调用约定各不相同。
- MCP 是开放标准协议规范完全公开,任何厂商与开发者都可以自由实现,不受单一公司控制。
- 模型无关性MCP Server不感知具体模型的API格式,同一Server可被不同模型的客户端复用。
六、上手实践:亲手接第一根线
你用USB-C充电时其实不需要知道线缆内部怎么走线,插上就行。MCP上手也是这个体验:官方SDK把复杂的协议细节都封装好了,你只需要注册工具、启动服务,剩下的交给协议。
以Python为例,MCP官方提供了 mcp Python SDK,帮助开发者快速搭建Server。核心步骤只有三步:创建Server实例、注册Tool对象、运行Server。每个Tool对象包含名称、描述和实际的函数实现。SDK会自动处理JSON-RPC消息编解码、请求路由和错误处理,你完全不需要手写协议解析。
实际上,“注册工具”这个动作背后做的事情很有讲究:SDK把Tool的函数签名自动转换成JSON Schema,生成协议要求的元数据,然后维护一张工具名到函数实现的映射表。当Client发来 tools/list 请求时,SDK遍历这张表返回全部工具描述;收到 tools/call 请求时,SDK取出对应函数,把arguments解包成函数参数执行并返回结果。这种模式让“加一个新工具”的成本趋近于零——只需要多写一个普通的Python函数并注册进去。
就像买一根USB-C线插上就能用,MCP的SDK让工具方十分钟就能把现有代码变成标准协议服务。你不必理解协议里每一个字段的来龙去脉,SDK把“接线”的复杂工作全部干了。等你想深入了解时,再翻开协议文档,会发现那些曾经晦涩的术语已经在你写过的代码里一一对应上了。
- name 是注册键字符串名称作为映射表的键,也是协议消息中指定工具的标识。
- handler 是业务函数Python函数封装具体业务逻辑,SDK负责将其签名转换为JSON Schema描述。
- 映射表驱动协议路由收到调用请求后,SDK用名称查映射表拿到函数,解包参数并执行。
七、生态与展望:万物皆可连
USB-C刚出现时,很多人觉得它不过是又一种充电口,直到苹果、三星、任天堂都开始采用,外设厂商纷纷跟进,USB-C才真正成为“万物皆可插”的国民标准。MCP正处在类似的爆发前夜。
从生态现状看,Anthropic开源了MCP规范与SDK后,社区迅速涌现出大量MCP Server:从数据库连接器、文件系统工具,到Gmail、Slack、GitHub、Stripe等常用服务的封装,npm上已经有数千个MCP相关包。OpenAI已宣布在其产品中支持MCP协议,Google的开发者工具也在跟进。这意味着MCP正在从Anthropic的“自家标准”演变为行业事实标准。
从发展动力看,MCP生态呈现典型的网络效应:接入的Server越多,AI应用选择MCP的意愿越强;支持MCP的AI应用越多,工具方发布Server的回报越大。这种正反馈一旦启动,MCP很可能成为AI Agent时代的“HTTP协议”——就像网页时代的HTTP让全世界的浏览器和服务器互通,MCP让全世界的AI模型与工具互通。
回顾USB-C的成功史:真正让它胜出的不是接口本身,而是围绕它建立起来的庞大生态。MCP正在AI领域复刻这条路径——当每个数据库、每款办公软件、每个云服务都有MCP Server时,AI就不再是“会聊天的机器人”,而是一个真正能动手干活的数字员工。那一天的到来,可能比你想象的更快。
- Server数量增加更多开发者发布MCP Server,意味着AI模型可连接的工具和数据源更加丰富。
- 应用采纳率提升工具越丰富,AI应用集成MCP的收益越大,更多应用开始原生支持MCP协议。
- 正反馈循环形成应用越多,工具方发布MCP Server的回报越大,更多Server被创造出来。
AI 应用场景
企业知识库接入AI助手
阶段:Agent工具集成(Resource配置)
解决的问题:企业知识库分散在Confluence、数据库、S3等多个系统中,传统做法是为每个数据源单独写连接器,每接入一个新模型又要重写一遍。通过MCP Server统一暴露知识库资源,AI助手一次接入全库数据,新模型接入时只需实现MCP客户端即可复用。
具体案例:某客服团队把FAQ数据库封装成MCP Server,AI客服通过MCP的Resource机制实时查询最新政策文档,配合Tool自动提交工单。原来两天的集成开发压缩到半小时,客服响应准确率提升40%。
AI编程助手连接CI/CD流水线
阶段:Agent工具调用(Tool执行)
解决的问题:AI编程助手要触发构建、查看日志、提交代码,传统上需要为Jenkins、GitLab、Slack各写插件,每个插件都是独立维护的“适配线”。用MCP把三个系统封装成统一Server,编程助手通过标准协议直接操作,插件随Server一次部署全局生效。
具体案例:IDE插件接入MCP Server后,开发者用自然语言就能让AI触发流水线、读取构建日志、回滚版本,全程不离开编辑器。MCP自动处理工具发现、参数校验与结果返回,AI从“建议你怎么做”变成了“直接帮你做”。
MCP Server市场的生态分发
阶段:生态分发(Server发布与订阅)
解决的问题:开发者写好一个数据工具想分享给全世界,传统方式需要每个用户单独下载SDK、写集成代码。发布为MCP Server后,任何支持MCP的客户端都能一键订阅——用户只需填入Server地址,工具自动出现在AI可调用的清单中。
具体案例:npm上社区贡献的MCP Server已覆盖数据库、浏览器自动化、支付、地图、天气等场景。开发者在文档里贴一行安装命令,用户在自己常用的AI助手中添加该Server,即可让所有支持MCP的模型立刻获得这项能力。
Python 演示
"""MCP 核心模式模拟:客户端-服务端-工具调用"""import json class Tool: """MCP Server 上注册的一个工具""" def __init__(self, name, func, description=""): self.name = name self.func = func self.description = description class McpServer: """模拟 MCP 服务端:维护工具注册表,处理 JSON-RPC 请求""" def __init__(self): self.tools = {} def register_tool(self, tool): self.tools[tool.name] = tool def handle_request(self, request): method = request["method"] if method == "tools/list": return {"tools": list(self.tools.keys())} if method == "tools/call": params = request["params"] tool = self.tools[params["name"]] return {"result": tool.func(**params["arguments"])} raise ValueError("未知方法: " + method) class McpClient: """模拟 MCP 客户端:发现工具并发起调用""" def __init__(self, server): self.server = server def list_tools(self): req = {"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}} return self.server.handle_request(req) def call_tool(self, name, arguments): req = { "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": name, "arguments": arguments} } return self.server.handle_request(req) def search_web(query): """模拟搜索工具""" return "关于「" + query + "」找到 42 条结果" def add(a, b): """模拟计算工具""" return a + b if __name__ == "__main__": server = McpServer() server.register_tool(Tool("search_web", search_web, "搜索网页")) server.register_tool(Tool("add", add, "两数相加")) client = McpClient(server) tools = client.list_tools() print("发现工具:", tools["tools"]) result = client.call_tool("search_web", {"query": "MCP协议"}) print("搜索:", result["result"]) result = client.call_tool("add", {"a": 20, "b": 22}) print("计算:", result["result"])
server.register_tool(Tool("search_web", search_web, "搜索网页"))把普通函数包装成工具注册进服务端,对应真实MCP Server的“暴露工具”操作。client.list_tools()发送tools/list请求,对应MCP工作流程中的“工具发现”阶段,返回的是可用工具名称列表。client.call_tool("search_web", {"query": "MCP协议"})发送tools/call请求,携带工具名和参数字典,对应“工具调用”阶段。tool.func(**params["arguments"])用参数展开语法把arguments字典解包为函数关键字参数,是“参数校验后执行”的简化版。{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}模拟真实JSON-RPC 2.0请求格式,真实MCP消息结构与之一致。
常见误区
误区我以为MCP只是Anthropic给Function Calling起的新名字,OpenAI那边还是叫Function Calling,两者其实就是一回事,换个马甲而已。
正解两者完全不同。Function Calling是OpenAI API内部的私有函数调用能力,和模型API深度绑定,换一家模型就要重新适配。MCP是独立于任何模型的开放协议,工具方实现一次Server,就能被所有支持MCP的客户端复用。用比喻说,Function Calling是苹果的Lightning专用线,MCP是USB-C行业标准——功能上都“能充电”,但通用性天差地别。
为何常见:两者解决的都是“让AI调用工具”这一相同问题,底层都用JSON传递函数描述和参数,从使用者的角度看形式非常相似,初学者极易画等号。
误区MCP是Anthropic提出的,所以我一直以为只有Claude系列模型才能用MCP,用其他大模型就享受不到这个能力。
正解MCP协议本身是模型无关的。协议只定义消息格式与交互流程,不关心背后是哪个模型在推理。事实已经证明这一点:OpenAI宣布在其产品中支持MCP,Claude、GPT以及大量开源模型都能通过SDK接入。就像USB-C是苹果参与推动的标准,但安卓设备同样在用,甚至用得比苹果还广。
为何常见:“提出者”这一身份给人天然的归属感,加上早期宣传和教程几乎都围绕Claude展开,很容易让人产生“MCP是Claude专属”的错觉。
误区MCP是个协议不假,但每个工具的数据格式和API都不一样,所以我觉得用了MCP还是得给每个工具写适配代码,并没有真正省事。
正解恰恰相反,MCP最大的价值就是消灭重复适配。工具方只需要实现一次MCP Server,把内部逻辑包装成标准接口,所有支持MCP的客户端都能即插即用,不需要为每个AI应用重新写对接代码。这就像USB-C设备里的协议芯片是标准化的,手机厂商不需要为每个U盘单独开发驱动——“一次实现”换来的正是“处处复用”。
为何常见:没有亲手搭建过MCP Server时,容易把MCP误解为“又加了一层抽象”而没看到抽象消灭的恰恰是重复劳动。真正上手注册第一个工具后,这种误解会立刻消失。
误区我理解的MCP就是让AI调用外部函数,它只能做“工具执行”这一类动作,想让它读数据库、查文档还是得另想办法。
正解MCP设计了Resource和Tool两类互补的原语。Resource专门负责只读数据访问,数据库查询、文件读取、API数据获取都可以通过resources/read暴露给模型;Tool负责可执行操作,如发送请求、修改数据。一个MCP Server可以同时暴露多个Resource和Tool,AI既能“查资料”也能“办事情”。把MCP理解成“只能调工具”是只看了一半规范。
为何常见:MCP名字里有"Protocol",早期教程大量聚焦在工具调用场景,Resource机制较少被提及,导致很多人对MCP的能力范围形成了片面的认知。
误区MCP是协议,我想接入就得自己写JSON-RPC消息处理、维护连接状态、实现协议规范里的各种细节,感觉工程量很大。
正解官方提供了Python、TypeScript等语言的完整SDK,协议编解码、连接管理、请求路由都被封装好了,开发者只需要注册工具或调用客户端接口。真实世界就像你用USB-C不需要懂USB协议栈一样——SDK把这个复杂的底层全部处理妥当,留给你的只是写业务函数。
为何常见:看到协议文档里大量的消息格式和字段定义,容易产生“全都要自己实现”的畏难情绪,忽略官方SDK已经把门槛降到极低。
面试题
Q1. MCP的全称是什么?
- A.模型上下文协议← 正确答案
- B.机器通信协议
- C.多通道控制协议
- D.模型连接规范
答案:A。MCP全称是Model Context Protocol,中文译为“模型上下文协议”。它强调的上下文(Context),指的是为模型提供外部数据与工具的环境信息。其他选项混淆了通信和协议的方向,“机器通信”“多通道控制”都不是AI领域的标准术语。
Q2. MCP首要解决什么问题?
- A.统一接口连接工具与数据← 正确答案
- B.加快大模型推理速度
- C.降低模型训练显存占用
- D.提升文本生成多样性
答案:A。MCP的核心价值是让AI模型通过统一标准接口连接外部工具和数据源,解决“每个工具都要单独适配”的痛点。它不涉及模型推理加速、显存优化或文本生成质量——那些是模型本身层面的优化问题,和工具连接协议无关。
Q3. MCP架构中哪个角色提供工具?
- A.MCP服务端← 正确答案
- B.MCP客户端
- C.MCP宿主端
- D.MCP协议层
答案:A。MCP架构中,Server(服务端)部署在工具方,负责把数据库、API等能力封装成标准接口对外提供。Client(客户端)负责连接与消息转发,Host(宿主端)是用户交互载体,协议层只是通信规范本身。提供工具的是服务端,好比插座里的电来自供电设施,而不是插头或电线。
Q4. 关于Resource与Tool的区别,正确的是?
- A.Resource用来读取和查询数据← 正确答案
- B.Tool用来执行具体业务操作← 正确答案
- C.Resource也能修改外部数据
- D.两者没有功能的任何差异
答案:AB。Resource是只读的数据源,通过resources/read访问,对应“查资料”的能力;Tool是可执行的操作,通过tools/call触发,对应“动手做”的能力。C错误,因为Resource刻意设计为只读以保证安全;D错误,因为两者在读写权限和调用方式上有本质区别。
Q5. MCP与Function Calling最本质的区别是?
- A.MCP是开放标准而FC私有← 正确答案
- B.FC比MCP功能更加强大
- C.MCP与FC底层完全一样
- D.FC只能读取数据资源
答案:A。Function Calling是OpenAI API内部的私有函数调用能力,与模型API强绑定,换模型就失效;MCP是独立于任何厂商的开放协议,任何模型都能实现客户端接入。就像专用线(Lightning)与通用口(USB-C)的区别,本质在开放性与通用性,而非功能强弱。
Q6. 一次MCP工具调用包含哪些环节?
- A.初始化握手确认版本← 正确答案
- B.列出可用工具清单← 正确答案
- C.调用工具并返回结果← 正确答案
- D.修改底层协议格式
答案:ABC。一次完整调用包含三个环节:初始化阶段确认协议版本与能力,工具发现阶段获取工具清单,调用阶段执行工具并返回结果。D错在协议格式是标准约定,客户端只能使用和遵守,不能随意修改。整个过程像插入U盘后:识别设备→浏览文件→读取内容。
Q7. MCP中Host角色相当于什么?
- A.用户与模型交互的载体← 正确答案
- B.提供具体工具的供应商
- C.负责传输数据的物理线缆
- D.存放训练数据的仓库
答案:A。Host是宿主应用,如Claude Desktop这类AI客户端,承载用户与模型的交互。它负责把用户指令转交给模型,再把模型的工具调用意图传给Client。它不是工具供应商(那是Server的事),不是传输线缆(那是协议层的活),更不是数据仓库。
Q8. MCP带来集成复杂度的变化是?
- A.从乘法级降为加法级← 正确答案
- B.从加法级升为乘法级
- C.从线性级升为指数级
- D.从常数级降为线性级
答案:A。没有MCP时,N个应用对接M个工具需要N×M条专属适配,复杂度是乘法级;有了MCP后,每方只需对接一次标准接口,复杂度降为N+M的加法级。这正是MCP“一次实现,处处复用”理念的数学表达。B和C方向反了,D的复杂度量级描述不符合MCP的实际收益。
Q9. MCP协议由哪家公司提出?
- A.Anthropic公司← 正确答案
- B.OpenAI公司
- C.Google公司
- D.Microsoft公司
答案:A。MCP由Anthropic在2024年提出并开源。Anthropic将其定位为开放标准,允许任何厂商和开发者使用,这种“提出但不独占”的姿态是MCP能快速发展成为行业标准的重要原因。其他三家公司虽然也涉足Agent生态,但MCP的提出者是Anthropic。
Q10. 关于MCP生态环境,下列说法正确的是?
- A.官方提供SDK和参考实现← 正确答案
- B.社区可以贡献新的服务端← 正确答案
- C.MCP必须有专用物理硬件
- D.主流厂商已开始支持MCP← 正确答案
答案:ABD。MCP生态包含官方SDK(Python、TypeScript等)、社区贡献的数千个Server,以及OpenAI等主流厂商的宣布支持。C错误,MCP是纯软件协议,运行在现有网络之上,不需要任何专用物理硬件——就像USB-C标准本身只是一套规范,不需要专门的“USB-C专利芯片”才能生产。