十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

第01篇-MCP协议全景解读-AI应用的USB-C接口

第01篇-MCP协议全景解读-AI应用的USB-C接口 【MCP 全栈教程】第 01 篇MCP 协议全景解读——AI 应用的 USB-C 接口本系列定位从协议原理到 Server 开发、Client 开发、再到各大平台实战集成系统化掌握 MCPModel Context Protocol全栈技术体系。本篇你将学到MCP 协议要解决的核心痛点是什么USB-C 类比的深层含义MCP 与 LSPLanguage Server Protocol的渊源MCP 生态由哪些部分组成MCP 对开发者、AI 应用、最终用户分别意味着什么MCP 的典型应用场景有哪些学完本篇你将对 MCP 有一个全景式的认知为后续深入协议细节打下基础。一、一个乘法爆炸问题在 MCP 出现之前AI 应用集成外部系统的方式可以用一个公式概括集成成本 AI 应用数量 × 外部系统数量假设市场上有 5 个主流 AI 应用Claude、ChatGPT、Gemini 等需要连接 10 种外部系统GitHub、Slack、数据库、文件系统、日历等那么需要开发的集成数量是5 × 10 50 个独立的集成每新增一个 AI 应用就要为所有现有外部系统重新开发一遍集成。每新增一个外部系统就要为所有现有 AI 应用重新开发一遍集成。这就是所谓的N × M 问题——一个乘法级别的集成爆炸。更深层的痛苦在于这 50 个集成做的事情本质上是一样的——读取数据、执行操作、返回结果。但每个 AI 应用都设计了自己的接口格式、认证方式、消息协议。结果是大量重复劳动且每个集成都是一次性定制无法复用。MCPModel Context Protocol模型上下文协议就是为了终结这个局面而诞生的。二、MCP 是什么AI 应用的 USB-C 接口官方文档用了一个极其精准的类比MCP 就像 AI 应用的 USB-C 接口。USB-C 之前连接电子设备需要各种各样的线缆USB-A、Mini-USB、Micro-USB、HDMI、DP、各种充电接口……每种设备用自己的接口标准。USB-C 出现后一根线搞定充电、数据传输、视频输出所有设备统一一个接口。MCP 做的事情完全一样维度USB-CMCP连接的是什么电子设备 ↔ 电子设备AI 应用 ↔ 外部系统标准化了什么物理接口 传输协议消息格式 发现机制 能力协商核心价值一次设计处处连接一次开发处处集成谁受益设备厂商 消费者开发者 AI 应用 最终用户MCP 的官方定义MCP 是一个开源标准用于连接 AI 应用与外部系统。通过 MCPClaude 或 ChatGPT 等 AI 应用可以连接到数据源如本地文件、数据库、工具如搜索引擎、计算器和工作流如专用提示词从而获取关键信息并执行任务。用一句话概括MCP 标准化了 AI 应用获取外部上下文的方式。三、MCP 能做什么四个典型场景官方文档列举了 MCP 已经实现的四个典型场景场景一个性化 AI 助手AI Agent 可以访问你的 Google 日历和 Notion 笔记成为一个真正了解你日程和知识库的私人助手。你问我下周有哪些会议它能直接读取日历数据回答。场景二从设计到代码的全自动生成Claude Code 可以读取 Figma 设计稿直接生成一个完整的 Web 应用。MCP Server 将 Figma 的设计数据暴露给 AIAI 理解设计意图后生成对应的前端代码。场景三企业级数据对话企业聊天机器人通过 MCP 连接到组织内的多个数据库。用户用自然语言提问上个季度华东区销售额多少机器人直接查询数据库返回结果无需用户编写 SQL。场景四物理世界的操控AI 模型通过 MCP 连接 Blender 进行 3D 设计创作再通过另一个 MCP Server 控制 3D 打印机输出实体。从数字到物理MCP 打通了全链路。这些场景的共同点AI 应用需要访问外部数据、调用外部工具——而这正是 MCP 标准化的范围。四、MCP 的渊源站在 LSP 的肩膀上MCP 并非凭空设计它的架构灵感来自一个已经大获成功的协议——LSPLanguage Server Protocol语言服务器协议。LSP 解决了什么问题在 LSP 出现之前每个代码编辑器VS Code、Sublime、Vim、Emacs……要为每种编程语言Python、Java、Go、Rust……独立实现代码补全、跳转定义、错误检查等功能。同样是一个 N × M 问题编辑器数量 × 编程语言数量 需要实现的插件数量微软在开发 VS Code 时提出了 LSP将编辑器与语言分析能力之间的通信标准化。编辑器只需实现 LSP Client语言分析工具只需实现 LSP Server两者通过标准协议通信。结果一个 Language Server 可以被所有编辑器使用一个编辑器可以支持所有语言。LSP 一举将 N × M 降维到 N M。MCP 继承了什么设计理念LSPMCP架构模式Client-ServerClient-Server通信协议JSON-RPC 2.0JSON-RPC 2.0传输方式STDIO本地进程通信STDIO Streamable HTTP发现机制initialize 请求协商能力server/discover 请求发现能力核心思想解耦编辑器与语言工具解耦 AI 应用与外部系统两者都选择了 JSON-RPC 2.0 作为消息格式都采用了 Client-Server 架构都通过能力发现机制让双方协商彼此支持的功能。MCP 在传输层做了扩展增加了 Streamable HTTP 以支持远程 Server但核心理念一脉相承。理解了这个渊源你就明白 MCP 为什么选择 JSON-RPC 而非 gRPC 或 REST——因为 LSP 已经证明了这个技术选型在开发工具场景中的可行性。五、MCP 生态全景MCP 不只是一个协议规范它是一整个技术生态。官方文档将 MCP 生态划分为四个核心组成部分组成部分说明作用MCP Specification协议规范文档定义 Client 和 Server 的实现要求是所有实现的权威参考MCP SDKs多语言软件开发包封装协议细节开发者无需手写 JSON-RPC 消息MCP Development Tools开发调试工具MCP Inspector 等工具帮助开发者调试 Server 和 ClientMCP Reference Servers参考实现官方维护的示例 Server既是学习素材也是生产可用组件协议规范MCP 规范定义了消息格式、通信规则、能力发现机制和三大原语Tools、Resources、Prompts的详细语义。规范使用 RFC 2119 的关键词MUST、SHOULD、MAY来描述实现要求具有精确的约束力。当前最新版本为2026-07-28这是一个重要的里程碑版本——它引入了无状态设计每个请求自包含协议版本和能力信息取代了旧版的连接级 initialize 握手机制。多语言 SDK官方提供了多种编程语言的 SDK让开发者无需关心底层的 JSON-RPC 消息编解码专注于业务逻辑语言包管理器特点Pythonpip / uv官方首选语言文档最全需要 2.0.0TypeScriptnpm社区生态最大社区 Server 最多的语言JavaMaven企业级场景首选KotlinGradle与 Java 生态互通C#NuGet.NET 生态Gogo get云原生场景Rustcargo高性能场景Rubygem动态语言场景本系列以Python SDK和TypeScript SDK为主进行讲解这两个语言的社区资源和参考实现最丰富。开发工具MCP Inspector是官方提供的交互式调试工具可以可视化地连接到任何 MCP Server查看 Server 暴露的 Tools、Resources、Prompts手动调用工具并查看返回结果检查协议消息的完整交互流程后续文章会有专门一篇讲解 MCP Inspector 的使用。MCP RegistryMCP Registry 是官方的 Server 注册中心类似于 npm 之于 Node.js 包。开发者可以将自己的 MCP Server 发布到 Registry使用方可以通过 Registry 搜索和发现可用的 Server。Registry 使用反向 DNS 命名格式如io.github.username/server-name确保 Server 来源的可信度。六、MCP 对谁有价值MCP 的价值不是单方面的。官方文档从三个视角阐述了 MCP 的意义开发者视角没有 MCP有了 MCP为每个 AI 应用单独开发集成开发一次 MCP Server所有 AI 应用都能用集成逻辑与 AI 应用深度耦合集成逻辑独立于 AI 应用可复用每个集成都是定制项目一次开发处处集成维护多个集成的升级成本高只需维护一个 Server 实现AI 应用 / Agent 视角没有 MCP有了 MCP能力有限只能访问内置功能可以连接整个 MCP 生态的数据源和工具每增加一个集成都要改版新增能力只需加一个 MCP Server功能扩展依赖自身开发速度生态中的社区 Server 即插即用用户体验受限于可用功能功能丰富度大幅提升最终用户视角没有 MCP有了 MCPAI 只能处理通用知识AI 能访问你的私有数据日历、文档、数据库AI 只能聊天不能执行操作AI 能代替你执行实际操作在多个工具间手动复制粘贴AI 直接跨系统获取和操作数据AI 助手不知道你的上下文AI 助手懂你的工作和数据七、广泛的生态支持MCP 是一个开放协议得到了广泛支持AI 助手客户端ClaudeClaude Desktop、Claude Code、ChatGPT 等主流 AI 应用都已经支持 MCP。你开发的一个 MCP Server 可以同时被这些应用使用。开发工具客户端Visual Studio Code、Cursor、MCPJam 等开发工具也内置了 MCP 支持让 AI 编程助手能够访问文件系统、数据库、API 等开发资源。这意味着 MCP 实现了它的核心承诺Build once, integrate everywhere一次开发处处集成。八、用一段伪代码理解 MCP 的核心流程虽然本篇不涉及具体编码但用一段伪代码可以帮助你直观理解 MCP 的工作流程。以下是一个 AI 应用通过 MCP 与 Server 交互的完整过程# 1. Client 连接到 Server 并发现其能力discover_responseclient.request(server/discover,{_meta:{io.modelcontextprotocol/protocolVersion:2026-07-28,io.modelcontextprotocol/clientInfo:{name:my-ai-app,version:1.0.0},io.modelcontextprotocol/clientCapabilities:{elicitation:{}}}})# Server 返回它支持的版本和能力如 tools, resources, prompts# 2. 发现可用工具toolsclient.request(tools/list,{params:{}})# 返回示例:# [# {name: searchFlights, description: 搜索航班, inputSchema: {...}},# {name: createCalendarEvent, description: 创建日历事件, inputSchema: {...}}# ]# 3. 调用工具resultclient.request(tools/call,{name:searchFlights,arguments:{origin:北京,destination:上海,date:2026-08-15}})# 返回航班搜索结果AI 应用将结果整合进对话这段伪代码揭示了 MCP 的三个核心交互发现Client 通过server/discover了解 Server 支持什么列举通过tools/list获取所有可用工具的清单和参数定义调用通过tools/call执行具体工具获得结果后续文章会逐一深入这些交互的协议细节。本篇小结知识点核心内容MCP 要解决的问题AI 应用集成的 N × M 爆炸——每对 AI 应用 × 外部系统都需要独立开发USB-C 类比MCP 标准化了 AI 应用连接外部系统的方式如同 USB-C 标准化了电子设备的物理接口LSP 渊源MCP 继承了 LSP 的 JSON-RPC 2.0、Client-Server 架构和能力发现机制四大生态组成协议规范 多语言 SDK 开发工具Inspector 参考实现 Registry三大原语Tools模型调用的函数、Resources被动数据源、Prompts交互模板三方价值开发者减少重复开发、AI 应用获得丰富生态、用户获得更强大的 AI 助手当前版本2026-07-28引入无状态设计Elicitation 替代已废弃的 Sampling生态支持Claude、ChatGPT、VS Code、Cursor 等主流平台均已支持下篇预告第 02 篇MCP 架构三层模型——Host、Client、Server 各自做什么深入 MCP 的 Host-Client-Server 架构理解为什么需要三层设计本地 Server 与远程 Server 的区别以及一个 Host 如何同时管理多个 Server 连接。如果本篇内容对你有帮助欢迎点赞收藏有任何疑问欢迎在评论区交流。
返回列表