独自のMCPサーバーをホストする
カスタムまたはサードパーティのMCPサーバーをDatabricksアプリとしてホストします。デプロイしたいMCPサーバーをすでにお持ちの場合や、ツールソースとしてサードパーティのMCPサーバーを実行したい場合は、カスタムMCPサーバーが役立ちます。
カスタムMCPサーバーへのアクセスは、Databricks Appsの権限を介して制御されます。他のMCPサーバーおよびLLMエンドポイントと並行してカスタムMCPアクティビティを監視するには、Unity AI Gatewayを使用します。
エージェントコードでホストされているカスタムMCPサーバーを使用する方法については、エージェントでのMCPサーバーの使用を参照してください。
要件
- DatabricksアプリとしてホストされているMCPサーバーは、ストリーミング可能なHTTPトランスポートのようなHTTP互換のトランスポートを実装する必要があります。
カスタムMCPサーバーを作成またはデプロイする
開始点に一致するオプションを選択してください:
テンプレートから開始 :組み込みのHello Worldテンプレートから新しいMCPサーバーを作成します。
AppsテンプレートからカスタムMCPサーバーを作成
組み込みのHello World MCPサーバーテンプレートを使用して、サンプルツールがすでに含まれているMCPサーバーを作成およびデプロイします。
-
サイドバーで、 コンピュート をクリックします。
-
Apps タブをクリックします。
-
「 アプリを作成 」をクリックします。
-
**エージェント**カテゴリで、**MCP Server - Hello World**テンプレートを選択します。
-
mcp-で始まるアプリ名を入力します(例:mcp-hello-world)。
AI PlaygroundでMCPサーバーとして認識されるには、アプリ名はmcp-で始まる必要があります。
- 「 アプリを作成 」をクリックします。
Databricks は、カスタマイズできるサンプルコードを含むアプリをデプロイします。
このテンプレートには、すぐに開始できる2つのツール例が含まれています:
health():サーバーが動作していることを確認し、ステータス情報を返す診断ツールです。get_current_user(): Databricks SDK を使用して現在のユーザーの情報を取得し、ワークスペース認証を統合する方法を示すツールです。
カスタムツールを追加
独自のツールを追加するには、アプリのソースコードを開き、@mcp.tool()デコレータを使用して新しい関数を定義します。例えば、次のツールは文字列を大文字に変換します。
@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を使用してワークスペースに認証してください。
-
ローカルターミナルで次のコマンドを実行してください。
Bashdatabricks auth login --host https://<your-workspace-hostname>
MCPサーバーをセットアップする
MCPサーバーをデプロイする際には、依存関係の管理と統合ツールのためにuvを使用してください。
-
MCPサーバーのルートディレクトリに
requirements.txtを追加し、uvを依存関係として含めます。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 mcp-my-server
アプリ名をmcp-でプレフィックスして、MCPサーバーとして明確に識別します。この命名規則は、ワークスペースでの検索性と整理に役立ちます。
-
ソースコードをDatabricksにアップロードし、
app.yamlファイルを含むディレクトリから次のコマンドを実行してアプリをデプロイします:BashDATABRICKS_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で利用可能です。
その他のリソース
- エージェントでカスタムMCPサーバーを使用する — ノートブック、ローカル環境、エージェントコードからホストされているサーバーに接続します。
- MCPをAIアシスタントおよびコーディングエージェントに接続します — Claude、Cursor、MCP Inspector、その他の外部クライアントを設定します。