简单来说:不能。 Langchain 0.3 不能直接调用 MCP Server,中间的 MCP Client必不可少的。

这背后的原因是关注点分离 (Separation of Concerns)协议抽象 (Protocol Abstraction),这是构建健壮软件的关键设计原则。

让我为你详细解释这个架构:

📐 项目架构图

为了更清晰地理解,我们可以把它们的角色看作一次国际商务会谈:

+---------------------+      +---------------------+      +---------------------+
|   Langchain Agent   |----->|     MCP Client      |----->|     MCP Server      |
| (项目经理 - 不懂外语) |      |  (你的专属翻译 - 懂外语)  |      | (外国技术专家 - 只说外语) |
+---------------------+      +---------------------+      +---------------------+
        |                            |                            |
    "我需要当前时间"           "好的,我来帮你问"           "收到请求,执行..."
   (下达业务指令)             (将指令翻译成协议语言)          (执行具体技术操作)
                                 (JSON-RPC)

角色分工和必要性

1. Langchain Agent (项目经理)
  • 它的职责:理解用户的意图,并决定做什么 (What)。例如,当用户说“把报告存起来”,Agent 决定需要调用一个名为 write_file 的工具。
  • 它的局限:它只关心业务逻辑,不关心技术细节。它不知道什么是 JSON-RPC,不知道如何建立网络连接,也不知道如何格式化协议请求。它只会说:“嘿,工具,干活!”
2. MCP Server (外国技术专家)
  • 它的职责:提供具体的技术能力 (How)。它拥有 read_file, calculate 等实际干活的函数。
  • 它的局限:它是一个独立的服务,只通过一种特定的语言——MCP 协议 (基于 JSON-RPC 2.0)——进行交流。你必须按照它的规则(协议)来跟它说话,否则它听不懂。
3. MCP Client (你的专属翻译) - 关键的中间层

现在,关键问题来了:项目经理 (Langchain) 不懂外语 (MCP 协议),而技术专家 (MCP Server) 只说外语。这时,你就需要一个翻译,这就是 MCP Client 的角色。

  • 它的职责
    1. 协议封装:将 Langchain 的简单函数调用(例如 wrapper(path="a.txt"))转换成符合 MCP 规范的、复杂的 JSON-RPC 请求。
    2. 通信处理:负责与 MCP Server 建立连接、发送请求、接收响应、处理网络错误等所有通信细节。
    3. 结果解析:将从 Server 返回的、符合 MCP 协议的 JSON-RPC 响应,解析成 Langchain 能理解的简单字符串或 Python 对象。

为什么不能直接调用?

如果 Langchain 直接调用 MCP Server,会发生什么?

这意味着 Langchain 的每一个 Tool 都需要内置一个完整的网络客户端。write_file 工具需要自己写 requests.postread_file 工具也需要自己写。这会导致:

  1. 代码大量重复:每个工具都需要重复编写网络通信和协议处理的代码。
  2. 职责混乱:工具本身应该只关心自己的业务逻辑(如读写文件),现在却被迫要处理网络问题,违反了单一职责原则。
  3. 极难维护:如果 MCP 协议未来有微小的更新,你需要修改所有的工具,而不是只更新 MCP Client 这一个地方。
  4. 无法扩展:如果将来你想换成另一个协议(比如 gRPC),你将不得不重写整个项目。而现在,你只需要换掉 MCP Client 即可。

总结

在你的项目中:

  • MCP Server能力的提供者
  • Langchain需求的决策者
  • MCP Client 是连接两者的桥梁和翻译官

这个三层架构是现代软件工程的最佳实践,它确保了每一层都只做自己最擅长的事,使得整个系统清晰、健壮、易于维护和扩展。所以,MCP Client 不仅是必要的,更是整个架构设计的精髓所在。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐