发布时间:2026/7/19 16:02:50
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 使用指南
2026/7/19 16:02:50

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…

阅读更多
鸿蒙开发入门:以 Text 组件为例,掌握内置组件用法
2026/7/19 16:02:50

鸿蒙开发入门:以 Text 组件为例,掌握内置组件用法

文章目录一、引言二、认识鸿蒙内置组件三、以 Text 组件为例,快速上手3.1 找到官方文档3.2 基础用法演示3.3 设置组件属性四、举一反三:如何学习其他组件五、总结这是一个使用鸿蒙技术开发的本地原生记账应用,非常适合大家用来练手。相关源码…

阅读更多
终极Windows权限管理指南:5分钟掌握NSudo系统提权神器
2026/7/19 16:02:50

终极Windows权限管理指南:5分钟掌握NSudo系统提权神器

终极Windows权限管理指南:5分钟掌握NSudo系统提权神器 【免费下载链接】NSudo [Deprecated, work in progress alternative: https://github.com/M2Team/NanaRun] Series of System Administration Tools 项目地址: https://gitcode.com/gh_mirrors/ns/NSudo …

阅读更多
python数据可视化技巧的100个练习 -- 31. 类别数据的点图
2026/7/20 1:02:51

python数据可视化技巧的100个练习 -- 31. 类别数据的点图

重要性★★★☆☆ 难度★★☆☆☆ 你是一家零售公司的数据分析师。你的经理要求你可视化最近产品发布的客户满意度评级分布。评级是分类的,范围从“非常不满意”到“非常满意”。创建一个点图以显示每个评级类别的频率。使用 Python 进行数据处理和可视化。在代码中生成输入…

阅读更多
智能体走进物理世界,千里科技携舱驾协同成果亮相WAIC 2026
2026/7/20 1:02:51

智能体走进物理世界,千里科技携舱驾协同成果亮相WAIC 2026

在2026世界人工智能大会(WAIC 2026)举办期间,千里科技董事长、阶跃星辰董事长印奇作为特邀嘉宾出席大会开幕式并在大会主论坛(上午场)发表主题演讲《当智能体进入物理世界》。在印奇看来,"智能体"…

阅读更多
商汤大装置发布“技术-生态-商业”闭环布局,共启“国产AI基础设施规模化商用元年”
2026/7/20 1:02:51

商汤大装置发布“技术-生态-商业”闭环布局,共启“国产AI基础设施规模化商用元年”

7月18日,在WAIC 2026商汤科技 “基座大模型架构创新与生态合作论坛”上,商汤科技联合创始人、大装置事业群总裁杨帆发表《智变共生——加速AI基础设施持续升级》主题演讲,系统呈现了商汤大装置国产AI基础设施“技术-生态-商业”闭环布局&…

阅读更多
ngx_output_chain_get_buf
2026/7/20 1:02:51

ngx_output_chain_get_buf

1 定义 ngx_output_chain_get_buf 函数 定义在 src/core/ngx_output_chain.cstatic ngx_int_t ngx_output_chain_get_buf(ngx_output_chain_ctx_t *ctx, off_t bsize) {size_t size;ngx_buf_t *b, *in;ngx_uint_t recycled;in ctx->in->buf;size ctx->buf…

阅读更多
互联网大厂常见Java面试题及答案汇总(2026持续更新)
2026/7/20 1:02:51

互联网大厂常见Java面试题及答案汇总(2026持续更新)

金九银十即将来袭,又是一个跳槽的好季节,准备跳槽的同学都摩拳擦掌准备大面好几场,今天为大家准备了互联网面试必备的 1 到 5 年 Java 面试者都需要掌握的面试题,分别 JVM,并发编程,MySQL,Tomca…

阅读更多
A Practical Tour of AWS Networking: VPCs, Subnets, Gateways, and More
2026/7/20 0:02:51

A Practical Tour of AWS Networking: VPCs, Subnets, Gateways, and More

A Practical Tour of AWS Networking: VPCs, Subnets, Gateways, and More If youre new to AWS, networking is one of the first — and most confusing — topics youll run into. There are subnets, gateways, route tables, security groups, NACLs... and its not alway…

阅读更多
噗叽短视频界面分析
2026/7/19 0:02:46

噗叽短视频界面分析

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

阅读更多
噗叽自动化评论脚本基本完成
2026/7/19 0:02:46

噗叽自动化评论脚本基本完成

整个开发过程,耗时2.5小时:

阅读更多
游戏服务器性能调优:基于 ECS 架构的确定性帧同步与 Go 协程并发模型实践
2026/7/19 0:02:46

游戏服务器性能调优:基于 ECS 架构的确定性帧同步与 Go 协程并发模型实践

游戏服务器性能调优:基于 ECS 架构的确定性帧同步与 Go 协程并发模型实践 一、游戏服务器的性能铁三角:帧率、延迟、并发数 游戏服务器与普通 Web 服务器的性能指标完全不同。Web 服务器关注 QPS 和 P99 延迟,游戏服务器关注帧速率&#xff0…

阅读更多
2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!
2026/7/20 0:02:51

2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

7月18日智东西消息,在2026 WAIC期间,努比亚联合字节豆包打造的二代“豆包手机”努比亚NaviX Ultra首次亮相,相比一代有诸多升级。智能体手机理念中兴通讯终端事业部总裁、努比亚总裁倪飞表示,智能体手机要从人操作手机变为手机帮人…

阅读更多
努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?
2026/7/20 0:02:51

努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra:外观与功能双升级在2026 WAIC期间,首次亮相的努比亚NaviX Ultra吸引了众多目光。它是努比亚联合字节豆包打造的二代“豆包手机”,与一代努比亚M153相比,外观设计变化较大。其机身背部搭载横向排布的大尺寸影像模…

阅读更多
C# 将逗号分割的字符串转换为long,并添加到List<long>
2026/7/20 0:02:51

C# 将逗号分割的字符串转换为long,并添加到List<long>

目录 方法1:使用Split和Convert.ToInt64 方法2:使用LINQ的Select和ToList 方法3:使用TryParse进行异常安全转换(推荐) 如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天…

阅读更多
基于Dify与DeepSeek构建私有知识库问答系统实战指南
2026/7/20 0:40:52

基于Dify与DeepSeek构建私有知识库问答系统实战指南

在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…

阅读更多
FAE放射组学分析工具:医学影像特征探索的完整解决方案
2026/7/20 0:48:14

FAE放射组学分析工具:医学影像特征探索的完整解决方案

FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE 你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…

阅读更多
DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!
2026/7/20 0:45:44

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖! 【免费下载链接】DesktopNaotu 桌面版脑图 (百度脑图离线版,思维导图) 跨平台支持 Windows/Linux/Mac OS. (A cross-platform multilingual Mind Map Tool) 项目地址:…

阅读更多