AI连接世界的USB-C:MCP协议详解

发布时间:2026/8/1 17:48:04
AI连接世界的USB-C:MCP协议详解 最近 MCP 特别火。你只要开始使用 Claude Code、Cursor、VS Code、ChatGPT 这类 AI 编程工具很快就会刷到一个词MCP。ℹ️ 读者MCP 是什么是不是又来了一个新的插件系统ℹ️ 作者不是。MCP 不是模型不是 Agent也不是某个客户端自己的插件。ℹ️ 读者那它到底是干什么的ℹ️ 作者你可以把 MCP 理解成一套标准接口。它解决的是一个非常底层、但又非常关键的问题AI 到底应该怎么连接外部世界ℹ️ 读者什么叫“连接外部世界”ℹ️ 作者比如让 AI读取你的项目文件查询数据库查看 GitHub Issue访问公司内部知识库操作浏览器调用企业内部 API。ℹ️ 读者这些功能以前不能实现吗ℹ️ 作者能实现。但以前通常需要针对每个 AI 客户端分别开发一套连接方式。Claude 写一套Cursor 写一套VS Code 写一套ChatGPT 可能还要再写一套。ℹ️ 读者所以 MCP 是想让这些工具共用同一套连接方式ℹ️ 作者对。MCP 想做的事情就是把 AI 与外部工具、数据和服务之间的连接方式标准化。ℹ️ 读者听起来有点抽象接下来会讲规范和概念吗ℹ️ 作者这篇文章不背八股也不逐句翻译规范。我们会通过实际场景和示例把 MCP 从入门一直讲到“入土”。你会搞清楚MCP 到底是什么它为什么会火Host、Client、Server 怎么理解Tools、Resources、Prompts 有什么区别stdio 和 Streamable HTTP 怎么选一个 MCP Server 最小长什么样怎么调试 MCPMCP 和 Function Calling、插件、Agent、Skill 的区别安全边界和常见坑新手应该怎么学1.1. 一句话讲清楚 MCPMCP 像 AI 世界的 USB-CMCP全称Model Context Protocol。官方定义是一个开放协议用来让 AI 应用连接外部数据源和工具。换成人话就是123MCP 是 AI 应用和外部系统之间的标准插口。你可以把它理解成 AI 工具世界里的 USB-C。USB-C 不关心你插的是显示器、硬盘、手机还是充电器它只定义连接方式。MCP 也是类似。它不关心后面是数据库、文件系统、浏览器、GitHub还是公司内部系统它定义的是 AI 应用怎么发现、连接、描述、调用这些能力。所以 MCP 的重点不是“某一个工具很强”。它的重点是大家终于可以用一套通用方式把 AI 和外部系统接起来。1.2. MCP 为什么会突然火核心原因很简单AI 不能一直关在聊天框里。一个模型再聪明如果它看不到你的项目文件、数据库结构、业务文档、代码仓库、线上日志它就只能靠你复制粘贴上下文。这会带来三个痛点。第一上下文不完整。你漏贴一个文件AI 就可能写出完全跑不通的方案。第二接入成本高。每个工具都要单独写插件每个 AI 客户端都要单独适配。第三能力不能复用。你写了一个 GitHub 查询能力换一个客户端可能就不能用了。这就是经典的 N x M 问题N 个 AI 客户端M 个外部系统两边互相适配复杂度直接爆炸。MCP 的价值就在这里把“AI 连接外部系统”这件事抽成标准协议。1.3. 先记住三个角色Host、Client、ServerHost、Client、Server 三角色架构理解 MCP不要一上来背协议。先记住三个角色HostClientServerHost 是 AI 应用本体。比如 Claude Desktop、ChatGPT、VS Code、Cursor都可以是 Host。它负责用户界面、对话、模型调用和整体体验。Client 是 Host 里面负责连接某一个 MCP Server 的组件。一个 Host 可以同时连接很多 MCP Server。每连一个 ServerHost 内部通常就会有一个对应的 Client 去维护连接。Server 是真正提供能力的程序。比如文件系统 Server、GitHub Server、数据库 Server、浏览器 Server。它负责告诉 AI“我这里有哪些工具、有哪些资源、有哪些提示词你可以怎么用。”一句话记12Host 是操作台Client 是连接线Server 是外设。这三个角色搞清楚MCP 的架构就不神秘了。1.4. MCP Server 到底能提供什么Tools、Resources、Prompts 三件套MCP Server 最重要的是三件套ToolsResourcesPrompts这三个词非常关键。很多人学 MCP 卡住就是把它们混在一起。1.5. Tools让 AI 能做动作Tools 是模型可以调用的函数。比如查询数据库读取文件创建 GitHub Issue调用 API搜索网页执行计算Tools 的特点是它会做事。这也是它最危险的地方。读一个文件还好如果是删文件、改配置、写数据库、发邮件、调用生产接口那就不是“聊天”了而是真实操作。所以 Tools 一定要有权限边界。官方规范也强调应用应该让用户看清楚哪些工具暴露给了模型并且在关键操作前保留用户确认。新手记住一句话1凡是会改变外部世界的 tool都不要默认全自动。1.6. Resources给 AI 喂上下文Resources 是资源。它更多是给 AI 提供上下文不一定执行动作。比如某个文件内容某个数据库 schema某个 API 返回结果某份业务文档某个项目配置Resources 的价值是让 AI 不再完全靠你手动复制粘贴。以前你问 AI“帮我看看这个项目怎么启动。”你可能要手动贴 README、package.json、配置文件、报错日志。有了合适的 MCP Resource客户端可以把这些上下文按规则提供给模型回答就更接近真实情况。12注意Resources 不等于越多越好。上下文越多泄露风险也越大。尤其是密钥、客户数据、隐私信息、内部文档不要随便暴露。1.7. Prompts可复用的任务入口Prompts 是提示词模板。比如一个代码审查 Server 可以暴露一个code_reviewprompt。用户在客户端里点一下就能触发一套固定的审查流程。Prompts 通常更偏“用户主动选择”。它不像 Tools 那样偏动作也不像 Resources 那样偏数据。它更像把某个常用任务封装成一个入口。比如代码审查生成测试用例总结项目结构分析数据库表关系生成发布说明一句话区分1Tools 负责做动作Resources 负责给上下文Prompts 负责启动固定工作流。1.8. MCP 底层怎么通信stdio 与 Streamable HTTP 对比MCP 底层使用 JSON-RPC 2.0 消息。你不用一开始就把 JSON-RPC 细节背下来但要知道它不是随便发字符串而是一套结构化请求、响应和通知机制。MCP 目前标准传输主要有两种stdioStreamable HTTPstdio 适合本地 Server。比如你在电脑上启动一个本地文件系统 ServerAI 客户端把它当成子进程启动通过标准输入输出传 JSON-RPC 消息。Streamable HTTP 适合远程 Server。比如公司做了一个内部知识库 MCP Server部署在服务器上让多个客户端通过 HTTP 连接。新手先记住1本地工具优先 stdio远程服务考虑 Streamable HTTP。1.9. MCP 的初始化过程在干什么MCP 是有生命周期的不是连上就乱调。连接开始时Client 和 Server 会做初始化。这个过程主要干三件事第一协商协议版本。双方要确认能不能用同一套协议说话。第二声明能力。Server 会说“我支持 tools、resources、prompts 里的哪些能力。”Client 也可能声明“我支持 elicitation、sampling、roots 这些能力。”第三交换身份信息。比如客户端名称、服务端名称、版本号。这对调试和兼容性很重要。初始化完成后Client 才会去做tools/list、resources/list、prompts/list这类发现动作。1.10. 一个最小 MCP Server 长什么样以 Python SDK 为例一个 MCP Server 可以非常小。大概像这样12345678910111213from mcp.server import MCPServermcp MCPServer(Demo)mcp.tool()def add(a: int, b: int) - int:Add two numbers.return a bmcp.resource(greeting://{name})def greeting(name: str) - str:Greet someone by name.return fHello, {name}!这段代码做了两件事先暴露了一个 tooladd。再暴露了一个 resourcegreeting://{name}。看起来很简单对吧但真正难的不是这几行代码。真正难的是你要想清楚哪些能力应该暴露参数怎么设计输入怎么校验权限怎么控制返回结果怎么结构化出错时怎么处理哪些操作必须让用户确认写 MCP Server本质上是在设计一组给 AI 使用的外部能力接口。这个接口设计不好模型就很容易误用。1.11. 怎么调试 MCPMCP Inspector 调试闭环新手写 MCP一定要认识一个工具MCP Inspector。它是官方提供的交互式调试工具可以用来测试和调试 MCP Server。常见启动方式是1npx modelcontextprotocol/inspector command你可以用它查看一个 Server 暴露了哪些 tools、resources、prompts也可以直接调用 tool看参数和返回结果是否符合预期。这里有个实战建议先用 Inspector 跑通再接入真实客户端。不要一上来就把 Server 塞进复杂 AI 客户端里调。一旦出问题你会分不清是 Server 写错了、客户端配置错了、权限没开还是模型没有正确调用。1.12. MCP 和 Function Calling 有什么区别很多人会问有了 Function Calling为什么还需要 MCP答案是它们不是一个层级。Function Calling 更像模型侧能力。它解决的是模型如何表达“我要调用一个函数”以及参数是什么。MCP 更像应用和工具系统之间的连接协议。它解决的是外部能力如何被发现、描述、连接、调用、管理。所以 MCP 不是 Function Calling 的替代品。很多时候MCP Server 暴露出来的 Tools最终仍然会以模型工具调用的方式被使用。一句话Function Calling 关心“模型怎么调函数”MCP 关心“这些函数和上下文从哪里来怎么标准化接进来”。1.13. MCP 和插件有什么区别插件通常绑定某个应用。比如某个客户端自己的插件只能在这个客户端里用。MCP 的目标是跨客户端复用。你写一个 MCP Server只要 Host 支持 MCP理论上就可以被不同客户端连接。当然现实里不同 Host 对 MCP 能力的支持程度不一定完全一样。所以不要天真地以为“写一次到处完美运行”。12更准确的说法是MCP 提供了跨客户端复用的协议基础但具体体验还要看 Host 的实现。1.14. MCP 和 Agent 有什么区别Agent 是会规划、执行、观察、再执行的一类系统。MCP 是给 Agent 提供外部能力的连接协议。Agent 需要工具MCP 可以提供 Tools。Agent 需要上下文MCP 可以提供 Resources。Agent 需要固定流程入口MCP 可以提供 Prompts。但 MCP 本身不负责决定下一步干什么。这个决策通常还是由 Host、模型、Agent 框架和提示词共同完成。所以不要把 MCP 神化成 Agent 大脑。它更像 Agent 的外部神经接口。1.15. MCP 和 Skill 有什么区别Skill 更像一份“怎么做事”的说明书。它通常包含流程、规则、模板、脚本、参考资料让 AI 在某类任务上更专业。MCP 更像“怎么连接外部系统”的协议。比如Skill 告诉 AI写文章应该先研究、再大纲、再初稿、再润色。MCP Server 给 AI文件读取、网页搜索、数据库查询、浏览器控制这些外部能力。一个偏方法论一个偏连接能力。它们可以配合但不是同一种东西。1.16. MCP 最大的坑权限边界MCP 安全边界图MCP 最容易被低估的问题是安全。因为一旦你接入 MCPAI 就不只是聊天。它可能真的能读文件、查数据库、发请求、改东西。这里一定要注意不要把整个磁盘随便暴露给文件系统 Server。不要把生产数据库写权限直接交给 AI。不要安装来路不明的 MCP Server。不要让工具调用完全无确认。不要把包含密钥、客户数据、隐私信息的资源无脑喂给模型。不要忽略 Server 返回内容里的提示词注入风险。MCP 越强越需要边界。如果你要在公司内部落地至少要考虑最小权限用户确认操作审计数据脱敏Server 来源可信工具调用日志生产环境隔离这些东西听起来麻烦但它们不是“企业洁癖”而是 MCP 真正进入工作流以后必须补上的刹车。1.17. 新手应该怎么学 MCP如果你是新手我建议按这个路线来。第一步只理解概念。先搞清楚 Host、Client、Server、Tools、Resources、Prompts。第二步跑一个现成 Server。比如文件系统、Git、GitHub 这类常见 Server。先体验 AI 多了外部能力之后到底有什么变化。第三步用 Inspector 调试。看清楚一个 Server 暴露了哪些能力每个 tool 参数是什么返回什么。第四步写一个最小 Server。不要一开始就写复杂系统。先写一个计算器、一个读取固定文件的 resource、一个固定 prompt。第五步再考虑复杂场景。比如认证、授权、日志、审计、远程部署、权限最小化、团队共享。这个学习路线最稳。不要一上来就研究几十个 MCP Server也不要一上来就接生产数据库。先把最小闭环跑通。1.18. 最后总结MCP 的本质不是“又一个新插件”。它真正想做的是让 AI 应用用一套标准方式连接外部世界。从个人开发者角度看你可以用 MCP 给自己的 AI 工具加能力。从团队角度看你可以用 MCP 把内部系统包装成标准接口让不同 AI 客户端复用。从安全角度看你必须把每一次数据访问和工具调用都当成真实权限来管理。最后记住一句话12先跑通再理解先最小权限再扩展能力。这就是 MCP 从入门到入土最重要的一条主线。1.19. 参考资料Model Context Protocol 官方入门https://modelcontextprotocol.io/docs/getting-started/introMCP Specification 2025-11-25https://modelcontextprotocol.io/specification/2025-11-25MCP Architecturehttps://modelcontextprotocol.io/docs/learn/architectureMCP Transportshttps://modelcontextprotocol.io/specification/2025-11-25/basic/transportsMCP Toolshttps://modelcontextprotocol.io/specification/2025-11-25/server/toolsMCP Resourceshttps://modelcontextprotocol.io/specification/2025-11-25/server/resourcesMCP Promptshttps://modelcontextprotocol.io/specification/2025-11-25/server/promptsMCP SDKshttps://modelcontextprotocol.io/docs/sdkMCP Inspectorhttps://modelcontextprotocol.io/docs/tools/inspectorAnthropic 发布 MCPhttps://www.anthropic.com/news/model-context-protocol