Databricks アプリを使用してカスタム MCP サーバーをホストする
独自のカスタム MCP サーバーまたはサードパーティの MCP サーバーを Databricks アプリとしてホストします。カスタム MCP サーバーは、展開する MCP サーバーが既にある場合、またはサードパーティの MCP サーバーをツールのソースとして実行する場合に便利です。
必要条件
- Databricks アプリとしてホストされている MCP サーバーは、 ストリーミング可能な HTTP トランスポートなどの HTTP 互換トランスポートを実装する必要があります。
MCP サーバーを Databricks アプリとしてホストする
独自の MCP サーバーを作成し、それを Databricks アプリとして展開する例については、 GitHub - カスタム MCP サーバー テンプレートを参照してください。
既存の Python MCP サーバーを Databricks アプリとしてホストするには、次の手順に従います。
環境を設定する
MCP サーバーを展開する前に、OAuth を使用してワークスペースに認証します。
-
ローカルターミナルで次のコマンドを実行します。
Bashdatabricks auth login --host https://<your-workspace-hostname>
MCP サーバーをセットアップする
MCP サーバーを展開するときに、依存関係の管理と統合ツールにuv を使用します。
-
MCP サーバーのルート ディレクトリに
requirements.txtを追加し、依存関係としてuvを含めます。requirements.txt に
uvを追加すると、プロジェクト構成で定義された追加の依存関係のインストールが処理されます。Txtuv -
サーバーのスクリプト エントリ ポイントを定義する
pyproject.tomlファイルを作成します。pyproject.toml例:Toml[project.scripts]
custom-server = "server.main:main"この例では、
custom-server使用するスクリプト名ですuv runserver.main:main実行するモジュールパス(server/main.py)と関数(main)を指定します
-
uv runを使用して MCP サーバーを実行するための CLI コマンドを指定するapp.yamlファイルを追加します。デフォルトでは、Databricks アプリはポート 8000 でリッスンします。サーバーが別のポートをリッスンする場合は、
app.yamlファイル内の環境変数オーバーライドを使用して設定します。app.yaml例:YAMLcommand: [
'uv',
'run',
'custom-server', # This must match a script defined in pyproject.toml
]
uv run custom-server実行すると、uv はスクリプト定義を検索し、モジュール パスを見つけて、 main()関数を呼び出します。
MCPサーバーをDatabricksアプリとしてデプロイする
-
MCP サーバーをホストする Databricks アプリを作成します。
Bashdatabricks apps create custom-mcp-server -
ソース コードを Databricks にアップロードし、
app.yamlファイルを含むディレクトリから次のコマンドを実行してアプリをデプロイします。BashDATABRICKS_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 サーバーに接続する方法が表示されます。
- Local environment
- Notebook (service principal)
- Agent code (on-behalf-of-user)
- Agent code (service principal)
「環境を設定する」の説明に従って、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 サーバーを使用してエージェントを構築する
次のノートブックは、Databricks アプリでホストされているカスタム MCP サーバーを使用して MCP ツールを呼び出す LangGraph および OpenAI エージェントを作成する方法を示しています。
LangGraph MCPツール呼び出しエージェント
OpenAI MCP ツール呼び出しエージェント
Additional リソース
アプリのクックブックには、MCP サーバーをさまざまなフレームワークと統合するためのエンドツーエンドのコード例が記載されています。
完全なソース コードと追加の例については、 Databricks Apps クックブック リポジトリを参照してください。