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

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

カスタムまたはサードパーティのMCPサーバーをDatabricksアプリとしてホストします。デプロイしたいMCPサーバーをすでにお持ちの場合や、ツールソースとしてサードパーティのMCPサーバーを実行したい場合は、カスタムMCPサーバーが役立ちます。

カスタムMCPサーバーへのアクセスは、Databricks Appsの権限を介して制御されます。他のMCPサーバーおよびLLMエンドポイントと並行してカスタムMCPアクティビティを監視するには、Unity AI Gatewayを使用します。

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

要件

カスタムMCPサーバーを作成またはデプロイする

開始点に一致するオプションを選択してください:

新規ファイルアイコン。 テンプレートから開始 :組み込みのHello Worldテンプレートから新しいMCPサーバーを作成します。

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

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

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

  2. Apps タブをクリックします。

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

  4. **エージェント**カテゴリで、**MCP Server - Hello World**テンプレートを選択します。

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

注記

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

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

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

このテンプレートには、すぐに開始できる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()

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

アプリテンプレートの使用に関する詳細については、テンプレートからアプリを作成するを参照するか、GitHub のテンプレートソースコードを参照してください。

クラウド アップロード アイコン。 既存のサーバーをデプロイ : 既存のMCPサーバーをDatabricksアプリとしてホストします。

既存の 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ファイルを追加します。

    デフォルトでは、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. ソースコードをDatabricksにアップロードし、app.yamlファイルを含むディレクトリから次のコマンドを実行してアプリをデプロイします:

    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サーバーのエンドポイントはhttps://<app-url>/mcpで利用可能です。

その他のリソース