将非 Databricks 客户端连接到 Databricks MCP 服务器

Important

此功能在 Beta 版中。

将支持模型上下文协议 (MCP) 的非 Databricks(外部)客户端、AI 助手和 IDE 连接到 Databricks MCP 服务器。 这可以直接在开发环境中访问 Databricks 数据和工具。

通过将外部客户端连接到 Databricks MCP 服务器,可以:

  • 从 IDE 或 AI 助手访问 Unity 目录函数、表和矢量索引
  • 直接从 Claude、Cursor 或其他已启用 MCP 的工具查询 Databricks 数据
  • 使用由 Databricks 托管的身份验证来使用外部服务
  • 在不切换上下文的情况下利用自定义业务逻辑

MCP 服务器类型

Databricks 提供三种类型的 MCP 服务器,这些服务器支持外部客户端连接:

  • 托管 MCP 服务器:Databricks 托管的服务器,这些服务器提供对 Unity 目录函数、矢量搜索索引和 Genie 空间的即时访问。
  • 外部 MCP 服务器:使用 Unity 目录 HTTP 连接通过 Databricks 托管的代理访问的第三方 MCP 服务器。
  • 自定义 MCP 服务器:在 Databricks Apps 上部署和托管的用户生成的 MCP 服务器。

Prerequisites

在连接客户端之前,请确保具有以下功能:

身份验证方法

选择最符合安全要求的身份验证方法:

方法 托管/外部 MCP 自定义 MCP 安全级别 最适用于
OAuth 已支持 已支持 高 - 范围权限、自动令牌刷新 生产环境使用、团队协作、长期访问权限
个人访问令牌 已支持 不支持 中等 - 基于令牌的访问带有过期时间 个人开发、测试、短期访问

设置 OAuth 或 PAT 身份验证

设置适合用例的身份验证方法:

注释

Databricks MCP 服务器根据 MCP 授权规范支持这两种客户端类型:

  • 公共客户端:不需要客户端密码
  • 机密客户端:包括客户端密码

设置 OAuth

要求帐户管理员创建 Databricks OAuth 应用程序。 需要此应用程序的客户端 ID 和客户端密码(可选)。

使用帐户控制台:

  1. 在 Databricks 帐户控制台中,转到“设置>应用连接>添加连接
  2. 配置应用程序设置:
    • 添加外部客户端所需的重定向 URL
    • 对于公共客户端(如 MCP 检查器),取消选中 “生成客户端密码”
    • 设置适当的令牌过期时间

在 Databricks 中配置应用连接

使用 Databricks CLI:

databricks account custom-app-integration create --json '{
  "name": "mcp-public-client",
  "redirect_urls": ["https://redirectclient.com/callback"],
  "confidential": false,
  "scopes": ["all-apis"],
  "token_access_policy": {
    "access_token_ttl_in_minutes": 60,
    "refresh_token_ttl_in_minutes": 10080
  }
}'

如果 Databricks 工作区具有 IP 访问限制,请将外部客户端的出站 IP 地址添加到允许列表。

设置 PAT

  1. 生成个人访问令牌:在 Databricks 工作区中创建 PAT。 有关详细说明,请参阅 个人访问令牌

  2. 配置网络访问(如果需要):如果 Databricks 工作区具有 IP 访问限制,请将客户端的出站 IP 地址添加到允许列表。

连接到托管和外部 MCP 服务器

托管 MCP 服务器提供对 Databricks 资源(如 Unity 目录函数、矢量搜索和 Genie 空间)的即时访问,无需设置。

外部 MCP 服务器允许您通过 Unity Catalog HTTP 连接访问通过 Databricks 管理的代理服务器访问的第三方 MCP 服务器。

托管和外部 MCP 服务器都支持使用 OAuth 或个人访问令牌(PAT)从外部客户端进行身份验证。

使用 OAuth 连接 Claude 连接器

将 Claude 连接到 Databricks 托管服务器和外部 MCP 服务器:

  1. 启用 Claude 连接器使用远程 MCP 设置 Claude 连接器

  2. 创建特定于 Claude 的 OAuth 应用:在 OAuth 应用程序中使用 Claude 的重定向 URL:

    帐户控制台:

    导航到 “设置>应用连接>添加连接 ”,包括:

    • 重定向 URLhttps://claude.ai/api/mcp/auth_callback
    • 范围all-apis (克劳德需要)

    Databricks CLI:

    databricks account custom-app-integration create --json '{
      "name": "claude-mcp-client",
      "redirect_urls": ["https://claude.ai/api/mcp/auth_callback"],
      "confidential": false,
      "scopes": ["all-apis"],
      "token_access_policy": {
        "access_token_ttl_in_minutes": 60,
        "refresh_token_ttl_in_minutes": 10080
      }
    }'
    
  3. 配置网络访问:如果 IP 限制,请将 Claude 的 出站 IP 地址 添加到工作区允许列表

  4. 在 Claude 中添加连接器

    1. 转到“设置>”
    2. 单击“添加自定义连接器
    3. 添加 Databricks MCP 服务器 URL
    4. 输入 OAuth 应用程序的客户端 ID
    5. 单击“ 添加 ”完成

    在 Claude 中配置连接器

使用 OAuth 连接 MCP 检查器

MCP 检查器是用于测试和调试 MCP 服务器的开发人员工具。

MCP 检查器

将 MCP 检查器连接到 Databricks 托管服务器和外部 MCP 服务器:

  1. 创建特定于检查器的 OAuth 应用:包括检查器的 localhost 重定向 URL:

    帐户控制台:

    导航到 “设置>应用连接>添加连接 ”,包括:

    • 重定向 URL
      • http://localhost:6274/oauth/callback
      • http://localhost:6274/oauth/callback/debug
    • 客户端类型:公共(取消选中 “生成客户端密码

    Databricks CLI:

    databricks account custom-app-integration create --json '{
      "name": "mcp-inspector-client",
      "redirect_urls": [
         "http://localhost:6274/oauth/callback",
         "http://localhost:6274/oauth/callback/debug"
     ],
      "confidential": false,
      "scopes": ["all-apis"],
      "token_access_policy": {
        "access_token_ttl_in_minutes": 60,
        "refresh_token_ttl_in_minutes": 10080
      }
    }'
    
  2. 配置 MCP 检查器

    1. 运行检查器: npx @modelcontextprotocol/inspector
    2. 传输类型 设置为 Streamable HTTP
    3. 输入 已管理的 MCP 服务器 URL
    4. “身份验证 ”部分中,添加 OAuth 客户端 ID
    5. 单击“ 打开身份验证设置” ,然后选择 “引导式 ”或 “快速 流”
    6. 身份验证成功后,将访问令牌粘贴到“API 令牌身份验证”部分的持有者令牌
    7. 单击“ 连接”

    MCP 检查器身份验证流

个人访问令牌(PAT)提供了一种使用 Databricks 管理的 MCP 服务器进行身份验证的简单方法。

使用 PAT 连接游标

游标 通过其设置配置支持 MCP。

将 Cursor 连接到 Databricks 托管服务器和外部 MCP 服务器:

  1. 添加服务器配置:在游标设置中,添加以下配置。 该示例演示 Unity Catalog 函数,但可适用于任何托管 MCP 服务器 URL 路径

    {
      "mcpServers": {
        "uc-function-mcp": {
          "type": "streamable-http",
          "url": "https://<your-workspace-hostname>/api/2.0/mcp/functions/{catalog_name}/{schema_name}",
          "headers": {
            "Authorization": "Bearer <YOUR_TOKEN>"
          },
          "note": "Databricks UC function"
        }
      }
    }
    
  2. 替换占位符:更新 <your-workspace-hostname> 并使用 <YOUR_TOKEN> 实际值。

使用 PAT 连接 Claude Desktop

若要在 Claude Desktop 中使用 Databricks 管理的 MCP 服务器,请使用 mcp-remote

将 Claude Desktop 连接到 Databricks 托管服务器和外部 MCP 服务器:

  1. 定位配置文件:找到您的 claude_desktop_config.json 文件:

    • macOS:
    • Windows%APPDATA%\Claude\claude_desktop_config.json
  2. 添加服务器配置:将以下内容添加到配置文件。 该示例演示 Unity Catalog 函数,但可适用于任何托管 MCP 服务器 URL 路径

    {
      "mcpServers": {
        "uc-function-mcp": {
          "command": "npx",
          "args": [
            "mcp-remote",
            "https://<your-workspace-hostname>/api/2.0/mcp/functions/{catalog_name}/{schema_name}",
            "--header",
            "Authorization: Bearer <YOUR_TOKEN>"
          ]
        }
      }
    }
    
  3. 重启 Claude Desktop:更新配置后,重启 Claude Desktop,使更改生效。

连接到自定义 MCP 服务器

自定义 MCP 服务器是 Databricks Apps 上托管的用户生成应用程序。 自定义 MCP 服务器仅支持 OAuth 身份验证。

将 Claude 连接到自定义 MCP 服务器

如果已启用 远程 MCP 的 Claude 连接器 ,则可以添加 Databricks Apps 上托管的自定义 MCP 服务器。

若要将 Claude 连接到自定义 MCP 服务器,请完成以下步骤:

在 Databricks 中:

注释

OAuth 应用程序必须对 Beta 版 Claude 进行 all-apis 范围界定。

  1. 创建特定于 Claude 的 OAuth 应用连接 ,其中包括 Claude 的重定向 URL:

    帐户控制台:

    导航到 “设置>应用连接>添加连接”

    Databricks CLI:

    databricks account custom-app-integration create --json '{
      "name": "claude-mcp-public-client",
      "redirect_urls": ["https://claude.ai/api/mcp/auth_callback"],
      "confidential": false,
      "scopes": ["all-apis"],
      "token_access_policy": {
        "access_token_ttl_in_minutes": 60,
        "refresh_token_ttl_in_minutes": 10080
      }
    }'
    
  2. 配置网络访问:如果你有工作区 IP 访问控制列表(ACL)限制,请将 Claude 的 出站 IP 地址 添加到工作区的允许列表。

在克劳德:

  1. 导航到“设置>”
  2. 单击“添加自定义连接器
  3. 添加自定义 MCP 服务器 URL(例如 https://mcp-my-custom-server.<workspace-hostname>/mcp
  4. 添加 OAuth 应用集成客户端 ID 和可选机密(如果客户端是机密的)
  5. 单击“ 添加” 完成连接器配置

在 Claude 中配置连接器

局限性

  • 动态客户端注册:Databricks 不支持托管、外部或自定义 MCP 服务器的 动态客户端注册 OAuth 流。 不支持使用 OAuth 身份验证来授权动态客户端注册的外部客户端和 IDE。
  • 自定义 MCP 服务器个人访问令牌支持:Databricks Apps 上托管的自定义 MCP 服务器不支持个人访问令牌进行身份验证。
  • 代理授权:Databricks Apps 上托管的自定义 MCP 服务器不支持代表用户授权。

后续步骤