设置自定义 MCP 服务器数据存储区

本页介绍了如何通过自定义 Model Context Protocol (MCP) 服务器连接您的数据源,让 Gemini Enterprise 能够安全地访问您公司的私有数据。

借助自定义 MCP 服务器数据存储区,您可以将私人数据、自定义内部工具和符合 MCP 标准的第三方系统直接集成到Google Cloud 控制台中。此方法提供了一种在标准连接器不可用时连接内部系统和旧版系统的统一方法。借助这一集成,您的 AI 智能体能够直接调取私有基础设施中的关键业务信息和专业逻辑,从而充分发挥现有技术投资的价值。

限制

自定义 MCP 服务器具有以下限制:

  • 服务器发送的事件 (SSE):不支持旧版 SSE 传输。连接器仅支持新的 StreamableHTTP 传输。
  • Private Service Connect (PSC):当前版本不支持 PSC 集成。
  • 操作限制:为确保最佳性能,请将自定义 MCP 服务器数据存储区中已启用的操作数量限制为每次 100 个。如需了解详情,请参阅启用操作
  • VPC Service Controls:出站流量控制通过组织政策限制(例如 allowedEgressFqdnsallowedDataSources)强制执行,而不是通过运行时流量强制执行。在启用 VPC Service Controls 的项目中,当您明确允许所需的出站网域和数据源时,系统会支持自定义 MCP 服务器。如需了解详情,请参阅针对自定义 MCP 数据存储区覆盖组织政策

准备工作

在设置自定义 MCP 服务器连接之前,请确保您已执行以下操作:

  • 有若干组织政策限制条件适用于自定义 MCP 数据存储区。您必须:

    • 替换阻止创建自定义 MCP 数据存储区的组织政策限制条件。如需了解详情,请参阅针对自定义 MCP 数据存储区覆盖组织政策

    • 明确允许自定义 MCP 服务器网址、授权网址和令牌网址的完全限定域名 (FQDN)。如需了解详情,请参阅配置允许的出站 FQDN

    • 如果启用了项目强制执行功能或项目受 VPCSC 保护,您必须将 custom_mcp 添加到允许的数据源中。请参阅配置允许的数据源

  • 授予 Discovery Engine Editor 角色 (roles/discoveryengine.editor)。您的管理员必须拥有此角色才能创建数据存储区。

    如需授予此角色,请执行以下操作:

    1. 在 Google Cloud 控制台中,前往 IAM 页面。

      转到 IAM

    2. 找到相应用户账号,然后点击修改 修改图标。

    3. 向用户授予 Discovery Engine Editor 角色。 如需了解详情,请参阅 IAM 角色和权限

  • 在身份提供方(例如 Okta、Azure AD 或 Google)中将 Gemini Enterprise 注册为 OAuth 客户端应用。

    如需注册应用,请执行以下操作:

    1. 将授权重定向网址设置为 https://vertexaisearch.cloud.google.com/oauth-redirect

    2. 向客户端应用授予必要的 OAuth 范围。

    注册客户端应用后,获取在后续步骤中配置自定义 MCP 服务器数据存储区所需的 client_idclient_secret

创建自定义 MCP 服务器数据存储区

如需设置配置流程,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Gemini Enterprise 页面。

    Gemini Enterprise

  2. 在导航菜单中,点击数据存储区

  3. 点击 创建数据存储区

  4. 选择数据源页面上,在搜索来源字段中输入自定义 MCP 服务器。系统会显示自定义 MCP 服务器卡片。

  5. 点击添加 MCP 服务器。系统会显示 MCP 服务器配置页面。

  6. 身份验证设置部分中,选择以下选项之一:

    • 无身份验证:如果您的 MCP 服务器不需要身份验证,请选择此选项。

      1. 输入 MCP 服务器网址。这是托管 MCP 服务器的端点。必须是 HTTPS 网址。Gemini Enterprise 仅支持 StreamableHTTP 传输。该网址通常以 /mcp 结尾。例如 https://mcp.example.com/mcp

      2. 点击继续

    • OAuth 2.0:选择此选项可添加身份验证。

      1. 在以下必填字段中输入值:

        字段 说明
        MCP 服务器网址 这是 MCP 服务器的托管端点。必须是 HTTPS 网址。Gemini Enterprise 仅支持 StreamableHTTP 传输。该网址通常以 /mcp 结尾。例如 https://mcp.example.com/mcp
        授权网址 用户授权 Gemini Enterprise 访问您的 MCP 服务器的基本网址。例如 https://mcp.example.com/authorize
        授权网址参数 可选。授权网址所需的任何其他参数。例如,如需从 Google MCP 服务器获取刷新令牌,请输入 &access_type=offline&prompt=consent

        如果您的授权服务器需要 audience 参数,您可以在此设置中将其添加为参数。例如: &audience=https://api.your-domain.com/v1/
        令牌网址 在 OAuth 身份验证期间,用于将授权代码交换为访问令牌的端点。例如,https://mcp.cymbal.com/token
        客户端 ID (Client ID) 您在身份提供方中注册的 OAuth 应用的唯一标识符,用于表示 Gemini Enterprise。
        启用 PKCE 支持 可选。选中此复选框可启用用于代码交换的证明密钥 (PKCE, RFC 7636),以提高 OAuth 安全性。 如果 MCP 服务器的 OAuth 提供方支持 PKCE,我们建议您使用此设置。
        客户端密钥 (Client Secret) 与您在身份提供方中注册的 OAuth 应用关联的保密密钥,用于代表 Gemini Enterprise。
        用于定义 Gemini Enterprise 可以代表用户执行哪些操作或可以访问哪些数据的权限。这些范围用于访问 MCP 服务器。Gemini Enterprise 会在用户授权期间请求这些范围。确保您的 OAuth 应用已配置为使用这些范围。

        指定范围时,请考虑以下事项:
        • 提供以空格分隔的范围列表。例如,对于 Box,您提供:root_readwrite manage_managed_users manage_groups
        • 确保提供的范围足以让用户登录并使用管理员启用的工具或操作;否则,支持人员将无法访问您的应用。
        • 常见的范围是 offline_access,它允许应用请求刷新令牌。
      2. 点击确认身份验证

      3. 点击继续

  7. 配置数据连接器部分,从多区域字段列表中选择数据连接器的位置

  8. 数据连接器名称字段中,输入数据存储区的名称。

  9. 点击创建。Gemini Enterprise 会为您创建数据存储区,并在“数据存储区”页面上显示您的数据存储区。

验证自定义 MCP 服务器的状态

如需验证自定义 MCP 服务器的状态,请执行以下操作:

  1. 数据存储区列表中,点击相应的数据存储区。系统会显示数据存储区的详细信息。

  2. 监控数据存储区的状态,直到其变为 Active。当数据存储区的状态从 Creating 变为 Active 后,自定义 MCP 服务器数据存储区即可供使用。

启用操作

默认情况下,所有操作都处于关闭状态。连接 MCP 服务器后,其所有工具都会导入并显示为 Gemini Enterprise 数据存储区中的操作。为确保获得最佳体验,您一次最多可以启用 100 个操作。如需为用户启用这些操作,请按以下步骤操作:

  1. 前往您的自定义 MCP 服务器数据存储区。
  2. 点击操作 > 重新加载自定义操作以重新进行身份验证。

  3. 选择要启用的操作。

  4. 点击启用操作

配置注释以跳过用户确认

当 MCP 服务器中的工具作为操作导入到 Gemini Enterprise 数据存储区时,Gemini Enterprise 会检查其工具注释,以确定是否需要用户确认。默认情况下,对任何操作的所有调用都需要用户确认,因为 Gemini Enterprise 假定任何操作都可能具有破坏性并会更改数据。

如果您的服务器提供只读功能(例如查询数据库),并且您希望跳过此确认步骤以获得更顺畅的用户体验,则可以在将 MCP 工具导入为操作之前,在这些工具的规范中配置注释。

我们建议您在 MCP 工具定义中配置以下注释,以管理数据存储区操作的用户确认:

  • readOnlyHint:如果操作是非破坏性的,并且仅读取数据,请将此注解添加到工具定义中。工具执行绕过了用户确认。
  • destructiveHint:如果工具会修改数据,请明确使用此注解。这样可维持默认的确认行为。

例如,在 Python 中

@mcp.tool(annotations={
       "destructiveHint": False,
       "readOnlyHint": True
   })

为确保您的更改反映在设置中,请重新加载自定义操作。 如需了解详情,请参阅启用操作

后续步骤