Skip to content
LangSmith 文档版本 跟随上游 源快照 c0354b3d 更新于 2026-10-18

连接到 MCP 服务器

将远程 MCP 服务器中的工具添加到托管 deep agent。

将托管 deep agent 连接到远程 Model Context Protocol (MCP) 服务器,以将其工具添加到 agent。Managed Deep Agents 会创建 MCP 客户端并加载工具。

大多数远程 MCP 服务器需要身份验证。连接提供身份验证,将连接声明为用户所有可让每个调用方授权自己的账户。

NOTE

Managed Deep Agents 处于公开 beta 阶段,仅在 US 区域的 LangSmith Cloud 上可用。

在 tools/mcp.py 中声明 MCP 服务器:

text
my-agent/
  agent.py
  tools/
    mcp.py

有关完整项目布局,请参阅项目结构。

要在项目中实现应用逻辑,请改用编写的工具。

添加 MCP 服务器

当工具已位于远程 MCP 服务器上,并且你希望 MDA 直接加载它们而无需导入 agent 定义时,请使用 MCP 服务器。

Declare the servers

使用 define_mcp 声明一个或多个远程服务器:

python
from managed_deepagents import define_mcp

mcp = define_mcp(
    servers={
        "langchainDocs": {
            "transport": "http",
            "url": "https://docs.langchain.com/mcp",
        },
    },
)

该模块必须导出模块级 mcp。一个项目只有一个 MCP 声明,因此请在其中声明所有服务器。

Managed Deep Agents 支持 Streamable HTTP("http")和旧版 SSE("sse")传输。不支持 Stdio MCP 服务器。请通过 HTTP 暴露 stdio 服务器,或将其操作实现为编写的工具。

有关连接选项,请参阅管理连接。

Select tools (Optional)

默认情况下,Managed Deep Agents 会暴露每个服务器的所有工具。要仅暴露选定的工具,请在该服务器的配置中设置允许列表:

python
{
    "transport": "http",
    "url": "https://docs.langchain.com/mcp",
    "include_tools": ["search_docs_by_lang_chain"],
}

要暴露除选定工具之外的所有工具,请将 include_tools 替换为 exclude_tools。

你可以同时使用这两个选项。拒绝列表会在允许列表之后应用,并且同一个工具不能同时出现在两个列表中。

选择使用 MCP 工具的原始名称,在 Managed Deep Agents 添加前缀之前。默认情况下,工具名称会加上服务器名称前缀以避免冲突。例如,来自 langchainDocs 服务器的 search_docs_by_lang_chain 工具会暴露为 langchainDocs__search_docs_by_lang_chain。

Pass credentials (Optional)

如果 MCP 服务器需要凭据,请在服务器配置上声明连接,并在工作区中创建该连接。

  • MCP OAuth:对于声明支持 OAuth 并支持自动客户端注册的服务器,使用 mda connections create <slug>(从 MCP 声明推断)或 mda connections create <slug> --mcp <url> 创建。你无需提供 client ID 或 secret。
  • 不透明密钥或通用 OAuth:对于静态 API key,或你自行注册的 BYOT OAuth 应用,请创建不透明密钥或通用 OAuth 连接,然后将服务器的 connection 选项设置为 connections.get(...)。

有关创建模式、所有者和运行时授权,请参阅管理连接。

配置 MCP 服务器

每个服务器支持以下核心选项:

选项说明
transport必需。使用 http 表示 Streamable HTTP,或使用 sse 表示旧版 SSE。
url必需。远程 MCP 端点 URL。
headers发送到服务器的静态标头。
include_tools / includeTools要暴露的原始 MCP 工具名称。
exclude_tools / excludeTools要隐藏的原始 MCP 工具名称。
default_tool_timeout / defaultToolTimeout每次工具调用的超时时间,Python 以秒为单位,TypeScript 以毫秒为单位。
automatic_sse_fallback / automaticSSEFallback对于 HTTP,允许客户端回退到 SSE。
reconnect对于 SSE,配置重连行为。

MCP 定义还接受以下选项:

选项默认值说明
prefix_tool_name_with_server_name / prefixToolNameWithServerNametrue为每个工具添加 {server}__ 前缀。
throw_on_load_error / throwOnLoadErrortrue加载失败,而不是以部分工具集启动。

部署

mda dev 和 mda deploy 会发现 tools/ 下的 MCP 声明,并将其包含在托管配置中。该声明不会同步到 Context Hub。

何时使用 MCP 连接器

概念类型如何到达 agent
MCP 服务器托管配置在 tools/ 下的 MCP 模块中声明;不会导入 agent 入口
MCP 端点部署 API将 agent 作为工具暴露给 MCP 客户端
编写的工具应用代码在 agent 定义中导入并传递
频道托管配置接收启动 agent 运行并传递响应的外部消息

更多信息请参阅项目结构。


BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。