上一篇讲了 @tool——定义应用内的工具。这一篇讲 MCP(Model Context Protocol)——一个让工具能跨应用共享的开放协议。

上一篇的 @tool 是「私有工具」,写在自己应用里,自己用。MCP 解决的是另一类需求:我想用别人写好的工具,或者把我的工具给别人用

MCP 解决什么问题

假设你写了一个很好的「查询公司内部知识库」工具。没有 MCP,这个工具只能在你自己的应用里用——别的应用想用,得重新实现一遍。

MCP 解决的就是这个:把工具变成跨应用共享的标准服务。你把工具实现成一个 MCP server,任何支持 MCP 的应用(包括 LangChain Agent)都能直接用,不用重新实现。

MCP:工具从私有变共享

类比一下:@tool 是项目内的私有函数,MCP 是对外发布的 Web API。前者自己用,后者谁都能调。

MCP 是什么

MCP(Model Context Protocol)是 Anthropic 提的一个开放协议,标准化「应用如何向模型提供工具和上下文」。

它定义了一套标准:一个 MCP server(工具提供方)按这个协议暴露工具,一个 MCP client(工具使用方,比如你的 Agent)按这个协议调用。双方不用关心对方怎么实现,只遵循协议。

MCP 的 server/client 架构

LangChain 通过 langchain-mcp-adapters 集成 MCP:把 MCP server 转成 LangChain 兼容的工具,于是 MCP 工具和原生 @tool 工具可以混用,都能塞进 Agent。

@tool vs MCP:边界在哪

维度 @tool MCP
定位 应用内私有工具 跨应用共享的协议
复用 只在自己应用里 任何 MCP client 都能用
实现 写个函数 实现 MCP server
适合 应用专属逻辑 通用能力、想分享给生态

@tool vs MCP 的边界

简单判断:

  • 只有我这个应用需要 → 用 @tool,简单
  • 多个应用都要用,或想用别人现成的 → 走 MCP

MCP 的价值在于生态复用。你写一个「查 GitHub issue」的 MCP server,整个团队、甚至整个社区的应用都能用。这比每个应用各写一遍强得多。

MCP 不只是工具

值得注意:MCP 提供的不止是工具(Tools)。它有三种能力:

  1. Tools——模型可调用的函数(最常用,等同上面的工具)
  2. Resources——模型可读的数据源(比如一段文档、一个配置)
  3. Prompts——可复用的 prompt 模板

MCP 三种能力

多数人只知道 MCP 的 Tools,但 Resources 和 Prompts 也是它的能力。下一篇(34)会展开讲这三种。

一个生态视角

MCP 的意义不止是「跨应用共享工具」,它在推动一个工具生态:工具从「每个应用各写各的」,变成「标准化、可发布、可复用」的模块。

未来很可能出现大量 MCP server(官方的、社区的、商业的),你的 Agent 像装插件一样组合它们——需要查 GitHub 就接 GitHub MCP,需要操作数据库就接数据库 MCP。这比每个 Agent 从零写工具高效得多。

MCP 推动工具生态

这也是为什么 MCP 值得关注——它可能成为 Agent 时代的「工具标准」,就像 HTTP 之于 Web。

收束:MCP 让工具可共享

这一篇讲了 MCP:

  • 它解决「工具跨应用共享」的问题
  • 是 Anthropic 提的开放协议,server/client 架构
  • LangChain 通过 mcp-adapters 集成,MCP 工具和 @tool 可混用
  • @tool 是私有,MCP 是共享,按复用需求选
  • MCP 不只工具,还有 Resources 和 Prompts
  • 推动工具生态标准化

下一篇展开 MCP 的三种能力——Tools / Resources / Prompts 各是什么。


关于十三Tech

我是十三,All in AI Agent 方向的架构师,专注 AI 工程实践。我相信 AI 是程序员的最佳搭档。

如果你想跟完这套「图解 LangChain」,欢迎关注公众号 「十三Tech」。全系列 42 篇,会按认识基础、LangGraph 状态机、Agent 与 middleware、RAG 检索、Tools/MCP/记忆、生产化收束这条线更新。

十三Tech公众号二维码