模型上下文协议 (MCP) 是一个开放协议,用于以与模型无关的格式描述工具和数据源,使得大型语言模型能够通过结构化的 API 发现和使用它们。 Agent Server 使用可流式 HTTP 传输 实现了 MCP。这允许将 LangGraph 智能体作为 MCP 工具暴露出来,从而使其可用于任何支持可流式 HTTP 且符合 MCP 规范的客户端。 MCP 端点在 Agent Server 的 /mcp 路径下可用。 你可以设置自定义身份验证中间件来对用户进行 MCP 服务器身份验证,以便访问 LangSmith 部署中用户作用域内的工具。 以下是此流程的示例架构:

要求

要使用 MCP,请确保安装了以下依赖项:
  • langgraph-api >= 0.2.3
  • langgraph-sdk >= 0.1.61
使用以下命令安装:

使用概述

要启用 MCP:
  • 升级以使用 langgraph-api>=0.2.3。如果你正在部署 LangSmith,创建新版本时会自动为你完成此操作。
  • MCP 工具(智能体)将自动暴露。
  • 使用任何支持可流式 HTTP 且符合 MCP 规范的客户端进行连接。

客户端

使用符合 MCP 规范的客户端连接到 Agent Server。以下示例展示了如何使用不同的编程语言进行连接。
注意 将 serverUrl 替换为你的 Agent Server URL,并根据需要配置身份验证头部。

将智能体暴露为 MCP 工具

部署时,你的智能体将使用以下配置作为 MCP 端点中的一个工具出现:
  • 工具名称:智能体的名称。
  • 工具描述:智能体的描述。
  • 工具输入模式:智能体的输入模式。

设置名称和描述

你可以在 langgraph.json 中设置智能体的名称和描述:
部署后,你可以使用 LangGraph SDK 更新名称和描述。

模式

定义清晰、最小的输入和输出模式,以避免向大型语言模型暴露不必要的内部复杂性。 默认的 MessagesState 使用 AnyMessage,它支持多种消息类型,但对于直接向大型语言模型暴露来说过于宽泛。 相反,应定义自定义智能体或工作流,使用显式类型化的输入和输出结构。 例如,回答文档问题的工作流可能如下所示:
有关更多详细信息,请参阅底层概念指南。

在你的部署中使用用户作用域的 MCP 工具

前提条件 你已经添加了自己的自定义认证中间件来填充 langgraph_auth_user 对象,使其可通过可配置上下文供图中的每个节点访问。
要使用户作用域的工具可用于你的 LangSmith 部署,请从实现如下代码片段开始:
  1. MCP 仅支持向使用 streamable_http 和 sse transport 服务器发出的请求添加头部。
  2. 你的 MCP 服务器 URL。
  3. 从你的 MCP 服务器获取可用工具。
这也可以通过在运行时重建你的图来实现,为新的运行提供不同的配置

会话行为

当前的 LangGraph MCP 实现不支持会话。每个 /mcp 请求都是无状态且独立的。

身份验证

/mcp 端点使用与 LangGraph API 其余部分相同的身份验证。有关设置详情,请参考身份验证指南。

禁用 MCP

要禁用 MCP 端点,请在 langgraph.json 配置文件中将 disable_mcp 设置为 true:
这将阻止服务器暴露 /mcp 端点。