共用方式為


使用 Databricks 應用程式裝載自定義 MCP 伺服器

將您自己的自定義或第三方 MCP 伺服器裝載為 Databricks 應用程式。 如果您已經有要部署的 MCP 伺服器,或想要以工具來源的形式執行第三方 MCP 伺服器,自定義 MCP 伺服器就很有用。

Requirements

  • 裝載為 Databricks 應用程式的 MCP 伺服器必須實作 HTTP 兼容的傳輸,例如 可串流 HTTP 傳輸

將 MCP 伺服器裝載為 Databricks 應用程式

如需撰寫您自己的 MCP 伺服器並將其部署為 Databricks 應用程式的範例,請參閱 GitHub - 自訂 MCP 伺服器範本

若要將現有的 Python MCP 伺服器裝載為 Databricks 應用程式,請遵循下列步驟:

設定您的環境

在部署 MCP 伺服器之前,請使用 OAuth 向工作區進行驗證。

  1. 在本機終端機中執行下列命令:

    databricks auth login --host https://<your-workspace-hostname>
    

設定 MCP 伺服器

部署 MCP 伺服器時,使用 uv 進行相依性管理和統一工具。

  1. 將 a requirements.txt 新增至 MCP 伺服器的根目錄,並包含 uv 為相依性。

    當您將 uv 新增至 requirements.txt 時,會自動處理安裝您專案設定中定義的其他相依性。

    uv
    
    
  2. 建立定義 pyproject.toml 伺服器指令碼進入點的檔案。

    範例 pyproject.toml

    [project.scripts]
    custom-server = "server.main:main"
    

    在此範例中:

    • custom-server 是與 uv run 一起使用的指令碼名稱
    • server.main:main 指定要執行的模組路徑 (server/main.py) 和函數 (main
  3. 新增指定 app.yaml CLI 命令的檔案,以使用 uv run執行 MCP 伺服器。

    根據預設,Databricks 應用程式會接聽埠 8000。 如果伺服器接聽不同的埠,請使用檔案中的app.yaml來設定它。

    範例 app.yaml

    command: [
        'uv',
        'run',
        'custom-server', # This must match a script defined in pyproject.toml
      ]
    

當您執行 uv run custom-server時,uv 會查閱指令碼定義,尋找模組路徑,並呼叫 main() 函數。

將 MCP 伺服器部署為 Databricks 應用程式

  1. 建立 Databricks 應用程式來裝載 MCP 伺服器:

    databricks apps create custom-mcp-server
    
  2. 從包含檔案 app.yaml 的目錄執行下列命令,將原始程式碼上傳至 Databricks 並部署應用程式:

    DATABRICKS_USERNAME=$(databricks current-user me | jq -r .userName)
    databricks sync . "/Users/$DATABRICKS_USERNAME/custom-mcp-server"
    databricks apps deploy custom-mcp-server --source-code-path "/Workspace/Users/$DATABRICKS_USERNAME/custom-mcp-server"
    

尋找已部署的應用程式 URL

部署之後,您可以在 Databricks UI 中找到您的應用程式 URL。 MCP 伺服器端點可在 https://<app-url>/mcp 使用。

線上到自訂 MCP 伺服器

按兩下索引標籤,瞭解如何從各種環境連線到MCP伺服器。

本機環境

使用 OAuth 向工作區進行驗證,如 設定您的環境中所述。

下列範例顯示如何連線至自訂 MCP 伺服器並列出可用工具:

from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient

# Replace with your deployed app URL
# Example: https://custom-mcp-server-6051921418418893.staging.aws.databricksapps.com/mcp
mcp_server_url = "https://<app-url>/mcp"

databricks_cli_profile = "DEFAULT"
workspace_client = WorkspaceClient(profile=databricks_cli_profile)

mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)

# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {tools}")

筆記本(服務主體)

使用服務主要來存取託管的 Databricks 應用程式於 Databricks 筆記本中。

from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient

# Replace with your deployed app URL
mcp_server_url = "https://<app-url>/mcp"

workspace_client = WorkspaceClient(
    host="<workspace-url>",
    client_id="<client-id>",
    client_secret="<client-secret>"
)

mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)

# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {tools}")

代理代碼 (代表使用者)

設定代替使用者之授權。 請參閱 代表使用者驗證

下列範例示範如何啟用以使用者身份存取的功能 ModelServingUserCredentials ,以透過代理程式存取已裝載的 Databricks 應用程式:

from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient
from databricks.sdk.credentials_provider import ModelServingUserCredentials

# Replace with your deployed app URL
mcp_server_url = "https://app-url>/mcp"

workspace_client = WorkspaceClient(credentials_strategy=ModelServingUserCredentials())

mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)

# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {tools}")

使用 apps.apps 範圍記錄代理程式模型。 請參閱 代表使用者驗證

代理程式代碼 (服務主體)

使用服務主體啟用系統驗證,以從代理程式存取裝載的 Databricks 應用程式:

from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient

# Replace with your deployed app URL
mcp_server_url = "https://<app-url>/mcp"

workspace_client = WorkspaceClient()

mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)

# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {tools}")

使用 DatabricksApps 作為資源來記錄代理程式模型。 請參閱 自動驗證通過

範例筆記本:使用 Databricks MCP 伺服器建置代理程式

下列筆記本示範如何撰寫 LangGraph 和 OpenAI 代理程式,以使用裝載在 Databricks 應用程式上的自訂 MCP 伺服器來呼叫 MCP 工具。

LangGraph MCP 工具呼叫代理程式

拿筆記本

OpenAI MCP 工具呼叫代理程式

拿筆記本

其他資源

應用程式技術指南提供端對端程式碼範例,用於將 MCP 伺服器與不同架構整合:

如需完整的原始程式碼和其他範例,請參閱 Databricks Apps 技術指南存放庫