LangChain 模型上下文协议 (MCP) 适配器¶
类
名称 | 描述 |
---|---|
MultiServerMCPClient |
用于连接多个 MCP 服务器并从中加载与 LangChain 兼容的工具的客户端。 |
MultiServerMCPClient ¶
用于连接多个 MCP 服务器并从中加载与 LangChain 兼容的工具的客户端。
方法
名称 | 描述 |
---|---|
__init__ |
使用 MCP 服务器连接初始化 MultiServerMCPClient。 |
connect_to_server |
连接到 MCP 服务器。 |
connect_to_server_via_stdio |
使用 stdio 连接到特定的 MCP 服务器 |
connect_to_server_via_sse |
使用 SSE 连接到特定的 MCP 服务器 |
connect_to_server_via_websocket |
使用 Websockets 连接到特定的 MCP 服务器 |
get_tools |
获取所有已连接服务器的工具列表。 |
get_prompt |
从给定的 MCP 服务器获取提示。 |
get_resources |
从给定的 MCP 服务器获取资源。 |
__init__ ¶
__init__(
connections: (
dict[
str,
StdioConnection
| SSEConnection
| WebsocketConnection,
]
| None
) = None,
) -> None
使用 MCP 服务器连接初始化 MultiServerMCPClient。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
connections
|
dict[str, StdioConnection | SSEConnection | WebsocketConnection] | None
|
一个字典,将服务器名称映射到连接配置。每个配置可以是 StdioConnection、SSEConnection 或 WebsocketConnection。如果为 None,则不建立初始连接。 |
None
|
示例
async with 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/sse",
"transport": "sse",
}
}
) as client:
all_tools = client.get_tools()
...
connect_to_server async
¶
connect_to_server(
server_name: str,
*,
transport: Literal[
"stdio", "sse", "websocket"
] = "stdio",
**kwargs: dict[str, Any]
) -> None
连接到 MCP 服务器。
这是一个通用方法,根据提供的 transport 参数调用 connect_to_server_via_stdio
/ connect_to_server_via_sse
/ connect_to_server_via_websocket
中的任一方法。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
server_name
|
str
|
用于标识此服务器连接的名称 |
必需 |
transport
|
Literal['stdio', 'sse', 'websocket']
|
要使用的 transport 类型("stdio"、"sse" 或 "websocket"),默认为 "stdio" |
'stdio'
|
**kwargs
|
dict[str, Any]
|
传递给特定连接方法的附加参数 |
{}
|
引发
类型 | 描述 |
---|---|
ValueError
|
如果 transport 未被识别 |
ValueError
|
如果指定的 transport 缺少必需参数 |
connect_to_server_via_stdio async
¶
connect_to_server_via_stdio(
server_name: str,
*,
command: str,
args: list[str],
env: dict[str, str] | None = None,
encoding: str = DEFAULT_ENCODING,
encoding_error_handler: Literal[
"strict", "ignore", "replace"
] = DEFAULT_ENCODING_ERROR_HANDLER,
session_kwargs: dict[str, Any] | None = None
) -> None
使用 stdio 连接到特定的 MCP 服务器
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
server_name
|
str
|
用于标识此服务器连接的名称 |
必需 |
command
|
str
|
要执行的命令 |
必需 |
args
|
list[str]
|
命令的参数 |
必需 |
env
|
dict[str, str] | None
|
命令的环境变量 |
None
|
encoding
|
str
|
字符编码 |
DEFAULT_ENCODING
|
encoding_error_handler
|
Literal['strict', 'ignore', 'replace']
|
如何处理编码错误 |
DEFAULT_ENCODING_ERROR_HANDLER
|
session_kwargs
|
dict[str, Any] | None
|
传递给 ClientSession 的附加关键字参数 |
None
|
connect_to_server_via_sse async
¶
connect_to_server_via_sse(
server_name: str,
*,
url: str,
headers: dict[str, Any] | None = None,
timeout: float = DEFAULT_HTTP_TIMEOUT,
sse_read_timeout: float = DEFAULT_SSE_READ_TIMEOUT,
session_kwargs: dict[str, Any] | None = None
) -> None
使用 SSE 连接到特定的 MCP 服务器
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
server_name
|
str
|
用于标识此服务器连接的名称 |
必需 |
url
|
str
|
SSE 服务器的 URL |
必需 |
headers
|
dict[str, Any] | None
|
发送到 SSE 端点的 HTTP 头部 |
None
|
timeout
|
float
|
HTTP 超时 |
DEFAULT_HTTP_TIMEOUT
|
sse_read_timeout
|
float
|
SSE 读取超时 |
DEFAULT_SSE_READ_TIMEOUT
|
session_kwargs
|
dict[str, Any] | None
|
传递给 ClientSession 的附加关键字参数 |
None
|
connect_to_server_via_websocket async
¶
函数
名称 | 描述 |
---|---|
load_mcp_tools |
加载所有可用的 MCP 工具并将其转换为 LangChain 工具。 |
函数
名称 | 描述 |
---|---|
load_mcp_prompt |
加载 MCP 提示并转换为 LangChain 消息。 |