langchain-mcp-adapters¶
langchain-mcp-adapters 软件包的参考文档。
langchain_mcp_adapters.client ¶
用于连接到多个 MCP 服务器并加载 LangChain 工具/资源的客户端。
该模块提供了 MultiServerMCPClient 类,用于管理到多个 MCP 服务器的连接,并从中加载工具、提示和资源。
MultiServerMCPClient ¶
用于连接到多个 MCP 服务器的客户端。
从 MCP 服务器加载与 LangChain 兼容的工具、提示和资源。
| 方法 | 描述 |
|---|---|
__init__ |
使用 MCP 服务器连接初始化一个 |
session |
连接到一个 MCP 服务器并初始化一个会话。 |
get_tools |
从所有已连接的服务器获取所有工具的列表。 |
get_prompt |
从给定的 MCP 服务器获取一个提示。 |
get_resources |
从给定的 MCP 服务器获取资源。 |
__aenter__ |
异步上下文管理器的入口点。 |
__aexit__ |
异步上下文管理器的退出点。 |
__init__ ¶
__init__(
connections: dict[str, Connection] | None = None,
*,
callbacks: Callbacks | None = None,
tool_interceptors: list[ToolCallInterceptor] | None = None,
) -> None
使用 MCP 服务器连接初始化一个 MultiServerMCPClient。
| 参数 | 描述 |
|---|---|
connections
|
一个将服务器名称映射到连接配置的 `dict`。如果为 `None`,则不建立初始连接。 |
回调
|
用于处理通知和事件的可选回调。
类型: |
tool_interceptors
|
可选的工具调用拦截器列表,用于修改请求和响应。
类型: |
基本用法(在每次工具调用时启动一个新会话)
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient(
{
"math": {
"command": "python",
# Make sure to update to the full absolute path to your
# math_server.py file
"args": ["/path/to/math_server.py"],
"transport": "stdio",
},
"weather": {
# Make sure you start your weather server on port 8000
"url": "https://:8000/mcp",
"transport": "streamable_http",
}
}
)
all_tools = await client.get_tools()
session async ¶
session(
server_name: str, *, auto_initialize: bool = True
) -> AsyncIterator[ClientSession]
连接到一个 MCP 服务器并初始化一个会话。
| 参数 | 描述 |
|---|---|
server_name
|
用于标识此服务器连接的名称
类型: |
auto_initialize
|
是否自动初始化会话
类型: |
| 引发 | 描述 |
|---|---|
ValueError
|
如果服务器名称在连接中未找到 |
| YIELDS | 描述 |
|---|---|
AsyncIterator[ClientSession]
|
一个已初始化的 `ClientSession` |
get_tools async ¶
get_prompt async ¶
get_prompt(
server_name: str, prompt_name: str, *, arguments: dict[str, Any] | None = None
) -> list[HumanMessage | AIMessage]
从给定的 MCP 服务器获取一个提示。
get_resources async ¶
__aenter__ async ¶
__aenter__() -> MultiServerMCPClient
异步上下文管理器的入口点。
| 引发 | 描述 |
|---|---|
NotImplementedError
|
上下文管理器支持已被移除。 |
__aexit__ ¶
__aexit__(
exc_type: type[BaseException] | None,
exc_val: BaseException | None,
exc_tb: TracebackType | None,
) -> None
异步上下文管理器的退出点。
| 参数 | 描述 |
|---|---|
exc_type
|
如果发生异常,则为异常类型。
类型: |
exc_val
|
如果发生异常,则为异常值。
类型: |
exc_tb
|
如果发生异常,则为异常回溯信息。
类型: |
| 引发 | 描述 |
|---|---|
NotImplementedError
|
上下文管理器支持已被移除。 |
langchain_mcp_adapters.tools ¶
用于将 MCP 工具转换为 LangChain 工具的工具适配器。
该模块提供了将 MCP 工具转换为 LangChain 兼容工具、处理工具执行以及管理两种格式之间工具转换的功能。
| 函数 | 描述 |
|---|---|
load_mcp_tools |
加载所有可用的 MCP 工具,并将其转换为 LangChain 工具。 |
load_mcp_tools async ¶
load_mcp_tools(
session: ClientSession | None,
*,
connection: Connection | None = None,
callbacks: Callbacks | None = None,
tool_interceptors: list[ToolCallInterceptor] | None = None,
server_name: str | None = None,
) -> list[BaseTool]
加载所有可用的 MCP 工具,并将其转换为 LangChain 工具。
| 参数 | 描述 |
|---|---|
session
|
MCP 客户端会话。如果为 `None`,则必须提供连接。
类型: |
connection
|
如果会话为 `None`,则用于创建新会话的连接配置。
类型: |
回调
|
用于处理通知和事件的可选 `Callbacks`。
类型: |
tool_interceptors
|
用于工具调用处理的可选拦截器列表。
类型: |
server_name
|
这些工具所属的服务器名称。
类型: |
| 返回 | 描述 |
|---|---|
list[BaseTool]
|
LangChain 工具列表。工具注解将作为工具元数据对象的一部分返回。 |
| 引发 | 描述 |
|---|---|
ValueError
|
如果会话和连接都未提供。 |
langchain_mcp_adapters.prompts ¶
langchain_mcp_adapters.resources ¶
用于将 MCP 资源转换为 LangChain Blob 对象的资源适配器。
该模块提供了将 MCP 资源转换为 LangChain Blob 对象的功能,处理文本和二进制两种资源内容类型。
| 函数 | 描述 |
|---|---|
load_mcp_resources |
加载 MCP 资源并将其转换为 LangChain Blob 对象。 |