メインコンテンツまでスキップ

Databricks アプリを使用してカスタム MCP サーバーをホストする

備考

ベータ版

この機能は ベータ版です。

独自のカスタム MCP サーバーまたはサードパーティの MCP サーバーを Databricks アプリとしてホストします。カスタム MCP サーバーは、展開する MCP サーバーが既にある場合、またはサードパーティの MCP サーバーをツールのソースとして実行する場合に便利です。

必要条件

MCP サーバーを Databricks アプリとしてホストする

独自の MCP サーバーを作成し、Databricks アプリとしてデプロイする例については、 カスタム MCP サーバー リポジトリ を参照してください。

既存の Python MCP サーバーを Databricks アプリとしてホストするには、次の手順に従います。

環境を設定する

  1. OAuth を使用してワークスペースに対して認証します。ローカルターミナルで以下を実行します。

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

MCP サーバーをセットアップする

  1. サーバーのルートディレクトリに requirements.txt を追加し、サーバーの Python 依存関係を指定します。

    Python MCP サーバは多くの場合、パッケージ管理に uv を使用します。uvを使用する場合は、uvを追加すると、追加の依存関係のインストールが処理されます。

  2. サーバーを実行するための CLI コマンドを指定する app.yaml を追加します。

    デフォルトでは、 Databricks アプリはポート 8000 でリッスンします。 サーバーが別のポートでリッスンする場合は、app.yaml ファイルで環境変数のオーバーライドを使用して設定します。

    app.yaml例:

    YAML
    command: [
    'uv',
    'run',
    'your-server-name',
    ..., # optionally include additional parameters here
    ]

MCP サーバーを Databricks アプリとしてアップロードする

  1. MCP サーバーをホストする Databricks アプリを作成します。

    Bash
    databricks apps create mcp-my-custom-server
  2. ソース コードを Databricks にアップロードし、 app.yaml ファイルを含むディレクトリから次のコマンドを実行してアプリをデプロイします。

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

カスタム MCP サーバーに接続する

タブをクリックすると、さまざまな環境から MCP サーバーに接続する方法が表示されます。

OAuth を使用してワークスペースに対して認証します。ローカルターミナルで以下を実行します。

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

前の手順で認証されたプロファイルを使用して、ホストされている Databricks アプリにアクセスします。

Python
from databricks_mcp import DatabricksOAuthClientProvider
from databricks.sdk import WorkspaceClient
from mcp.client.session import ClientSession
from mcp.client.streamable_http import streamablehttp_client

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

# Replace with your actual custom MCP server URL
mcp_server_url = "https://<workspace-hostname>/serving-endpoints/mcp-my-custom-server/invocations"

async def test_connection_to_server():
async with streamablehttp_client(
f"{mcp_server_url}", auth=DatabricksOAuthClientProvider(workspace_client)
) as (read_stream, write_stream, _), ClientSession(
read_stream, write_stream
) as session:
# List available tools
tools = await session.list_tools()
print(f"Available tools: {[tool.name for tool in tools.tools]}")

エージェントをデプロイする

次のノートブックは、MCP ツールを呼び出す LangGraph エージェントと OpenAI エージェントを作成する方法を示しています。

LangGraph MCPツール呼び出しエージェント

Open notebook in new tab

OpenAI MCP ツール呼び出しエージェント

Open notebook in new tab

Additional リソース

アプリのクックブックには、MCP サーバーをさまざまなフレームワークと統合するためのエンドツーエンドのコード例が記載されています。

完全なソース コードと追加の例については、 Databricks Apps クックブック リポジトリを参照してください。