LangChain 模型上下文协议 (MCP) 适配器¶
类
名称 | 描述 |
---|---|
MultiServerMCPClient |
用于连接到多个 MCP 服务器并从中加载与 LangChain 兼容的工具、提示和资源的客户端。 |
MultiServerMCPClient ¶
用于连接到多个 MCP 服务器并从中加载与 LangChain 兼容的工具、提示和资源的客户端。
方法
名称 | 描述 |
---|---|
__init__ |
使用 MCP 服务器连接初始化 MultiServerMCPClient。 |
session |
连接到 MCP 服务器并初始化会话。 |
get_tools |
从所有已连接的服务器获取所有工具的列表。 |
get_prompt |
从给定的 MCP 服务器获取一个提示。 |
get_resources |
从给定的 MCP 服务器获取资源。 |
__init__ ¶
使用 MCP 服务器连接初始化 MultiServerMCPClient。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
connections
|
dict[str, Connection] | None
|
一个将服务器名称映射到连接配置的字典。如果为 None,则不建立初始连接。 |
None
|
示例:基本用法(在每次工具调用时启动新会话)
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": "http://localhost: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
|
str
|
用于标识此服务器连接的名称 |
必需 |
auto_initialize
|
bool
|
是否自动初始化会话 |
True
|
抛出
类型 | 描述 |
---|---|
ValueError
|
如果在连接中找不到服务器名称 |
产出
类型 | 描述 |
---|---|
AsyncIterator[ClientSession]
|
一个已初始化的 ClientSession |
get_tools async
¶
函数
名称 | 描述 |
---|---|
load_mcp_tools |
加载所有可用的 MCP 工具并将其转换为 LangChain 工具。 |
函数
名称 | 描述 |
---|---|
load_mcp_prompt |
加载 MCP 提示并转换为 LangChain 消息。 |