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

独自のMCPサーバーをホストする

カスタムまたはサードパーティのMCPサーバーをDatabricksアプリとしてホストします。カスタムMCPサーバーは、デプロイしたいMCPサーバーが既にある場合や、サードパーティのMCPサーバーをツールのソースとしてランしたい場合に役立ちます。 [[ ## completed ##]]

カスタムMCPサーバーへのアクセスは、Databricks Appsの権限を通じて制御されます。カスタムMCPアクティビティを他のMCPサーバーやLLM Endpointと併せて監視するには、Unity AI Gatewayを使用します。

エージェントコードでホストされたカスタムMCPサーバーを使用するには、カスタムエージェントでのMCPサーバーの使用を参照してください。

要件

AppsテンプレートからカスタムMCPサーバーを作成する

組み込みのHello World MCP Server Templateを使用して、サンプルツールが既に含まれているMCPサーバーを作成およびデプロイします:

  1. サイドバーで、 コンピュート をクリックします。

  2. [ Apps ] tabをクリックします。

  3. アプリを作成 」をクリックします。

  4. [Agents] カテゴリで、 [MCP Server - Hello World] Templateを選択します。

  5. mcp- で始まるアプリ名を入力します(例:mcp-hello-world)。

注記

AI Playground で MCP サーバーとして認識されるには、アプリ名が mcp- で起動する必要があります。

  1. アプリを作成 」をクリックします。

Databricksは、カスタマイズ可能なサンプルコードを含むアプリをデプロイします。

このTemplateには、作業を起動するための2つのサンプルツールが含まれています:

  • health() : サーバーが動作中であることを確認し、ステータス情報を返す診断ツール。
  • get_current_user() : Databricks SDK を使用して現在のユーザーの情報を取得し、ワークスペース認証を統合する方法を示すツール。

カスタムツールを追加

独自のツールを追加するには、アプリのソースコードを開き、@mcp.tool()デコレータを使用して新しい関数を定義します。たとえば、次のツールは文字列を大文字に変換します:

Python
@mcp.tool()
def uppercase(text: str) -> str:
"""Convert a string to uppercase."""
return text.upper()

各ツールはドキュメント文字列を含める必要があります。エージェントはドキュメント文字列を使用して、いつツールを呼び出すかを理解します。ツールを追加した後、アプリを再デプロイして利用可能にします。

アプリTemplateの操作の詳細については「Templateからアプリを作成する」を参照するか、GitHub上のTemplateソースコードを参照してください。 [[ ## completed ##]]

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

既存のPython MCPサーバーをDatabricksアプリとしてホストするには、以下のステップに従ってください。

環境をセットアップする

MCPサーバーをデプロイする前に、OAuthを使用してワークスペースへの認証を行います。

  1. ローカルターミナルで次のコマンドをランします:

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

MCPサーバーのセットアップ

MCPサーバーをデプロイする際は、依存関係の管理と統合ツールとして uv を使用してください。

  1. MCP サーバーのルートディレクトリに requirements.txt を追加し、依存関係として uv を含めます。

    uv プロジェクト構成で定義された追加の依存関係のインストールを処理します。

    Txt
    uv

  2. サーバーのスクリプトエントリポイントを定義する pyproject.toml ファイルを作成します。

    pyproject.toml:

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

    この例では:

    • custom-server は、以下で使用するスクリプト名です: uv run
    • server.main:main ランするモジュールパス (server/main.py) と関数 (main) を指定します
  3. uv run を使用して MCP サーバーをランするための CLI コマンドを指定する app.yaml ファイルを追加します。

    defaultでは、Databricks アプリはポート 8000 でリッスンします。サーバーが別のポートでリッスンしている場合は、app.yaml ファイル内の 環境変数の上書きを使用して設定します。

    app.yaml:

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

uv run custom-server をランすると、uv はスクリプト定義を検索し、モジュールパスを見つけて、main() 関数を呼び出します。

MCPサーバーをDatabricksアプリとしてデプロイする

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

    Bash
    databricks apps create mcp-my-server
注記

MCPサーバーとして明確に識別できるように、アプリ名の先頭にmcp-を付けます。この命名規則は、ワークスペース内での検出可能性と整理に役立ちます。

  1. app.yaml ファイルを含むディレクトリから次のコマンドを実行して、ソースコードを Databricks に upload し、アプリをデプロイします。

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

デプロイされたアプリのURLを確認する

デプロイ後、Databricks UI でアプリの URL を確認できます。MCP サーバーの Endpoint は https://<app-url>/mcp で利用可能です。

価格

カスタム MCP サーバーには、Databricks Apps の価格が適用されます。

その他のリソース