MCP:AI时代的USB-C标准
一、概念什么是 MCPMCPModel Context Protocol是 Anthropic 推出的开放协议定义了 LLM 应用与外部工具、数据源之间的标准通信接口。一个类比就够了MCP 是 AI 时代的 USB-C。USB-C 之前每个设备厂商自建接口——Lightning、Micro-USB、Mini-USB……你出门要带一包线。USB-C 统一之后一根线走天下。MCP 之前也一样每个 LLM 应用要对接 GitHub就得写一套 GitHub 集成要对接数据库再写一套数据库适配。N 个应用 x M 个工具 NxM 套集成代码。MCP 的目标写一次适配所有 LLM 应用通用。核心定义术语含义MCP Server暴露工具/数据的服务端如 filesystem server、github serverMCP Client连接 Server 并消费其能力的客户端如 LangChain AgentProtocolClient 与 Server 之间的 JSON-RPC 通信协议MCP 不是 LangChain 的私有协议——它是 Anthropic 开源、社区驱动的标准任何 LLM 框架都可以接入。一句话总结MCP 是 AI 时代的 USB-C——用统一协议替代 NxM 集成一次实现处处可用。二、价值为什么不能继续各写各的1. 解决 NxM 集成爆炸没有 MCP 的世界5 个 LLM 应用 x 10 个工具 50 套集成代码有 MCP 的世界10 个 MCP Server每个工具写一次 5 个 MCP Client每个应用接一次协议 10 5 15而不是 50从 NxM 降到 NM这就是标准协议的威力。2. 生态复用一次实现处处可用社区写好了一个mcp-server-github所有支持 MCP 的框架都能用——LangChain、Claude Desktop、Cursor、Cline……你不需要为每个框架重新写 GitHub 集成。3. 与 Function Calling 的差异维度Function CallingMCP定义方各模型厂商自定义Anthropic 开源协议社区标准工具在哪嵌在应用代码里独立 Server可远程部署跨模型每个模型的格式不同统一协议跨模型通用跨应用不可复用一次实现所有应用可用动态发现需硬编码工具列表Client 运行时发现 Server 的能力Function Calling 解决的是模型怎么调工具MCP 解决的是工具怎么暴露给所有模型——两者互补不冲突。4. 跨厂商兼容MCP 不绑定任何模型厂商。OpenAI、Anthropic、Google、DeepSeek 的模型都能通过 MCP 协议访问同一组工具。工具实现一次模型随意切换。核心价值MCP 把集成成本从 NxM 降到 NM工具一次实现、生态复用、跨厂商兼容——标准化的网络效应。三、用法四种典型接入方式用法 1用 langchain-mcp-adapters 连接已有 MCP Server社区已有大量现成的 MCP Server直接连from langchain_mcp_adapters.client import MultiServerMCPClientfrom langchain.agents import create_agent# 连接 filesystem MCP Server官方提供async with MultiServerMCPClient({filesystem: {command: npx,args: [-y, modelcontextprotocol/server-filesystem, /tmp],transport: stdio,}}) as client:tools client.get_tools()agent create_agent(modeldeepseek:deepseek-chat,toolstools,)result await agent.ainvoke({messages: [{role: user, content: 列出 /tmp 下的文件}]})print(result)不需要自己写任何工具代码——MCP Server 已经实现好了langchain-mcp-adapters自动把 MCP Tools 转成 LangChain Tools。用法 2把 MCP Tools 装进 create_agentMCP Tools 可以和普通 LangChain Tools 混用from langchain_mcp_adapters.client import MultiServerMCPClientfrom langchain.agents import create_agentfrom langchain_core.tools import tool# 自定义 LangChain 工具tooldef calculate(expression: str) - str:计算数学表达式return str(eval(expression))# MCP 工具 自定义工具混用async with MultiServerMCPClient({github: {command: npx,args: [-y, modelcontextprotocol/server-github],transport: stdio,env: {GITHUB_PERSONAL_ACCESS_TOKEN: ghp_xxx},}}) as client:mcp_tools client.get_tools() # GitHub MCP 工具all_tools mcp_tools [calculate] # 混合工具列表agent create_agent(modeldeepseek:deepseek-chat,toolsall_tools,)result await agent.ainvoke({messages: [{role: user, content: 查看 langchain 仓库的 star 数再算一下它的平方}]})print(result)Agent 会自动选择用 GitHub 工具查 star再用 calculate 工具算平方——MCP 工具和原生工具对 Agent 来说没有区别。用法 3MultiServerMCPClient 连接多个 Server一个 Agent 同时访问文件系统、数据库、GitHubfrom langchain_mcp_adapters.client import MultiServerMCPClientfrom langchain.agents import create_agentserver_config {filesystem: {command: npx,args: [-y, modelcontextprotocol/server-filesystem, /data],transport: stdio,},postgres: {command: npx,args: [-y, modelcontextprotocol/server-postgres,postgresql://user:passlocalhost/mydb],transport: stdio,},github: {command: npx,args: [-y, modelcontextprotocol/server-github],transport: stdio,env: {GITHUB_PERSONAL_ACCESS_TOKEN: ghp_xxx},},}async with MultiServerMCPClient(server_config) as client:# 自动汇聚三个 Server 的所有工具all_tools client.get_tools()print(f可用工具: {[t.name for t in all_tools]})agent create_agent(modeldeepseek:deepseek-chat,toolsall_tools,)result await agent.ainvoke({messages: [{role: user,content: 从 GitHub 读取 config.json写入数据库的 config 表}]})三个 Server 的工具自动汇聚Agent 跨 Server 编排——读文件、查数据库、操作 GitHub一条指令搞定。用法 4自己写一个 MCP Server用 MCP Python SDK 暴露自定义能力# server.py —— 一个简单的待办事项 MCP Serverfrom mcp.server.fastmcp import FastMCPmcp FastMCP(todo-server)# 用内存存储演示用todos: dict[int, dict] {}_next_id 1mcp.tool()def add_todo(title: str, priority: str medium) - str:添加一条待办事项global _next_idtodos[_next_id] {title: title, priority: priority, done: False}_next_id 1return f已添加: [{priority}] {title} (id{_next_id - 1})mcp.tool()def list_todos() - str:列出所有待办事项if not todos:return 暂无待办事项lines []for tid, t in todos.items():status DONE if t[done] else TODOlines.append(f {status} [{t[priority]}] {t[title]} (id{tid}))return \n.join(lines)mcp.tool()def complete_todo(todo_id: int) - str:将待办事项标记为已完成if todo_id not in todos:return f未找到 id{todo_id} 的待办事项todos[todo_id][done] Truereturn f已完成: {todos[todo_id][title]}if __name__ __main__:mcp.run() # 默认 stdio 传输然后在 LangChain 中连接from langchain_mcp_adapters.client import MultiServerMCPClientfrom langchain.agents import create_agentasync with MultiServerMCPClient({todo: {command: python,args: [server.py],transport: stdio,}}) as client:agent create_agent(modeldeepseek:deepseek-chat,toolsclient.get_tools(),)result await agent.ainvoke({messages: [{role: user,content: 帮我添加一个高优先级待办写 MCP 教程然后列出所有待办}]})print(result)自己写的 Server 和社区 Server 对 Agent 来说完全一样——这就是协议标准化的威力。四、原理MCP 的协议设计与转换机制1. MCP 三大原语MCP Server 通过三种原语暴露能力原语作用类比Tools可被模型调用的函数HTTP POST —— 执行操作有副作用Resources可被读取的数据/文件HTTP GET —— 读取信息无副作用Prompts预定义的提示词模板书签 —— 快速加载常用 prompt最常用的是Tools——这也是 LangChain 适配器主要转换的部分。Resources 提供结构化数据如数据库 SchemaPrompts 提供领域模板如代码审查模板。2. 传输层三种方式传输方式场景特点stdio本地进程通信最简单Client 启动 Server 子进程通过 stdin/stdout 通信SSE远程 HTTP 服务Server-Sent Events适合已有 HTTP 基础设施Streamable HTTP新一代远程通信MCP 2025-03 规范引入支持双向流、无状态部署本地开发用 stdio 最方便——不需要起服务Client 自动拉起 Server 进程。生产部署用 HTTP 传输Server 独立部署、水平扩展。3. Client-Server 模型------------- ------------- -------------| LLM | | MCP Client | | MCP Server || (LangChain)|----| (适配层) |----| (工具/数据) |------------- ------------- -------------1. Agent 调用 2. 协议转换 3. 执行并返回LangChain Tool JSON-RPC 工具结果流程Agent 看到的是 LangChain Tool正常调用MCP Client 把 Tool 调用翻译成 JSON-RPC 请求发送给 ServerServer 执行操作返回结果Client 把结果包装成 LangChain ToolMessage返回给 AgentAgent 完全不知道背后是 MCP——它只看到 LangChain Tool。4. 与 LangChain Tools 的转换关系langchain-mcp-adapters做的核心事情MCP Tool Schema LangChain Tool Schema------------------- ---------------------{ tool def xxx(...):name: add_todo, - 添加待办事项description: ..., def add_todo(title: str, ...):inputSchema: { ...type: object,properties: {...}}}转换规则name → 函数名description → 工具 docstring模型靠这个判断何时调用inputSchema → 函数参数Pydantic 模型调用时的参数 → JSON-RPC 请求的params.arguments反过来也可以LangChain Tool 可以包装成 MCP Server 暴露出去——让其他 MCP Client 也能用你的工具。5. 动态发现机制MCP Client 连接 Server 后第一步是discovery发现Client ----tools/list---- Server Client ---[{name, description, inputSchema}, ...]--- Server不需要硬编码工具列表——Client 运行时自动发现 Server 提供了哪些工具。这意味着Server 升级加了新工具Client 自动感知不同 Server 可以提供同名工具Client 负责消歧按需连接不用时断开小结视角一句话概念Anthropic 推出的开放协议定义 LLM 应用与工具/数据源的标准通信接口——AI 时代的 USB-C价值把集成成本从 NxM 降到 NM一次实现生态复用跨厂商兼容与 Function Calling 互补用法langchain-mcp-adapters 连接已有 ServerMCP Tools 混入 create_agentMultiServerMCPClient 聚合多 ServerFastMCP 自建 Server原理三大原语Tools/Resources/Prompts三种传输stdio/SSE/HTTPClient-Server 模型自动发现MCP Tool - LangChain Tool 双向转换记住一件事MCP 的核心原则是用标准协议替代碎片集成——就像 USB-C 统一了充电接口MCP 统一了 AI 工具接口让一次实现成为生态资产。系列完结高阶模式三篇走完LangChain 的高阶模式体系就位了#概念角色1Multi-agent协作——多个 Agent 分工协同2垂类 Agent专精——领域知识 专用工具链3MCP连接——标准协议打通工具生态Multi-agent 解决谁来做垂类 Agent 解决做得专MCP 解决用什么——三者协同Agent 才能从玩具走向生产。

相关新闻

CodeGraph 使用指南

CodeGraph 使用指南

快速安装一键安装(推荐,无需 Node.js)bash# macOS / Linux curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh | sh# Windows (PowerShell) irm https://raw.githubusercontent.com/colbymchenry/codegr…

2026/7/21 19:31:07 阅读更多 →
Cursor写了一周的代码,我验收时差点砸了电脑

Cursor写了一周的代码,我验收时差点砸了电脑

Cursor写了一周的代码,我验收时差点砸了电脑300万行AI代码写了个浏览器,结果连编译都通不过一、事情的起因 上个月接了个活,重构一个老旧的管理后台。 项目不大,但业务逻辑绕得很——权限分级、审批流、多租户数据隔离&#xff0c…

2026/7/21 3:40:57 阅读更多 →
抖音无水印批量下载器:简单三步实现高效内容管理终极指南

抖音无水印批量下载器:简单三步实现高效内容管理终极指南

抖音无水印批量下载器:简单三步实现高效内容管理终极指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…

2026/7/23 18:05:43 阅读更多 →

最新新闻

深入AMD Ryzen硬件调试:解锁开源工具SMUDebugTool的无限潜能

深入AMD Ryzen硬件调试:解锁开源工具SMUDebugTool的无限潜能

深入AMD Ryzen硬件调试:解锁开源工具SMUDebugTool的无限潜能 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: http…

2026/7/25 0:38:52 阅读更多 →
EZCard:终极桌游卡牌批量生成器,3分钟完成50张卡牌设计

EZCard:终极桌游卡牌批量生成器,3分钟完成50张卡牌设计

EZCard:终极桌游卡牌批量生成器,3分钟完成50张卡牌设计 【免费下载链接】CardEditor 一款专为桌游设计师开发的批处理数值填入卡牌生成器/A card batch generator specially developed for board game designers 项目地址: https://gitcode.com/gh_mir…

2026/7/25 0:37:52 阅读更多 →
LinkSwift:九大网盘直链下载的技术实现与高效使用指南

LinkSwift:九大网盘直链下载的技术实现与高效使用指南

LinkSwift:九大网盘直链下载的技术实现与高效使用指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…

2026/7/25 0:37:52 阅读更多 →
AI时代,公司到底该怎么招聘程序员?

AI时代,公司到底该怎么招聘程序员?

如果未来大部分业务代码都由AI完成,那程序员该怎么招聘? 我自己理解是:未来面试的重点,大概率会从代码实现能力,逐渐转向系统设计能力AI协作能力。 这里说的系统设计,不是说画几张架构图那种,而…

2026/7/25 0:37:52 阅读更多 →
Zotero PDF Translate插件深度解析:多引擎学术翻译实战指南

Zotero PDF Translate插件深度解析:多引擎学术翻译实战指南

Zotero PDF Translate插件深度解析:多引擎学术翻译实战指南 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项目地址: https://gitcode.com/gh_mir…

2026/7/25 0:37:52 阅读更多 →
PLA 空间蛋白互作技术:经典配对方案与多领域研究应用解析

PLA 空间蛋白互作技术:经典配对方案与多领域研究应用解析

蛋白质通过精准的互作形成功能复合物,是细胞信号传导、细胞器功能调控、组织微环境稳态维持的核心分子基础。传统蛋白互作研究技术如免疫共沉淀(Co-IP)、酵母双杂交等,虽能验证互作结合关系,但无法保留细胞与组织的空间…

2026/7/25 0:36:51 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻