Skip to main content
Alpha 版本提示: 本文档涵盖的是 v1-alpha 版本。内容尚不完整,且可能随时变更。如需查阅最新稳定版本,请参阅 v0 版本的 LangChain Python 文档LangChain JavaScript 文档
模型上下文协议(MCP) 是一种开放协议,用于标准化应用程序如何向大语言模型(LLM)提供工具和上下文。LangChain 智能体可通过 langchain-mcp-adapters 库使用定义在 MCP 服务器上的工具。 MCP

安装

安装 langchain-mcp-adapters 库,以便在 LangGraph 中使用 MCP 工具:

传输类型

MCP 支持多种客户端-服务器通信的传输机制:
  • stdio:客户端将服务器作为子进程启动,并通过标准输入/输出进行通信。最适合本地工具和简单设置。
  • 可流式 HTTP:服务器作为独立进程运行,处理 HTTP 请求。支持远程连接和多个客户端。
  • 服务器发送事件(SSE):一种针对实时流式通信优化的可流式 HTTP 变体。

使用 MCP 工具

langchain-mcp-adapters 使智能体能够使用一个或多个 MCP 服务器上定义的工具。
访问多个 MCP 服务器
MultiServerMCPClient 默认是无状态的。每次工具调用都会创建一个新的 MCP ClientSession,执行工具,然后清理资源。

自定义 MCP 服务器

要创建你自己的 MCP 服务器,可以使用 mcp 库。该库提供了一种简单的方式来定义工具 并将其作为服务器运行。
请使用以下参考实现来测试你的智能体与 MCP 工具服务器的交互。
数学服务器(stdio 传输)
天气服务器(可流式 HTTP 传输)

通过 MCP 暴露 LangChain 工具

你也可以使用 to_fastmcp 函数,通过 MCP 服务器暴露现有的 LangChain 工具。这允许你将 LangChain 工具提供给任何 MCP 客户端使用。
通过 MCP 提供 LangChain 工具

有状态工具使用

对于需要在工具调用之间保持上下文的有状态服务器,请使用 client.session() 创建持久的 ClientSession
使用 MCP ClientSession 实现有状态工具调用

更多资源