カスタムMCPサーバーをホストする
カスタムまたはサードパーティの MCP サーバーをDatabricks アプリとしてホストします。カスタム MCP サーバーは、展開する MCP サーバーが既にある場合、またはサードパーティの MCP サーバーをツールのソースとして実行する場合に便利です。
カスタムMCPサーバーへのアクセスは、 Databricks Apps権限によって制御されます。 カスタムMCPのアクティビティを他のMCPサーバーやLLMエンドポイントと並行して監視するには、 Unity AI Gatewayを使用します。
エージェントコードでホスト型カスタム MCP サーバーを使用するには、 「エージェントでカスタム MCP サーバーを使用する」を参照してください。
必要条件
- Databricks アプリとしてホストされている MCP サーバーは、 ストリーミング可能な HTTP トランスポートなどの HTTP 互換トランスポートを実装する必要があります。
カスタムMCPサーバーを作成またはデプロイする
出発点に合ったオプションを選択してください。
テンプレートから始める :組み込みのHello Worldテンプレートから新しいMCPサーバーを作成する
アプリテンプレートからカスタムMCPサーバーを作成する
組み込みの「Hello World MCP Server」テンプレートを使用して、サンプルツールが既に含まれているMCPサーバーを作成およびデプロイします。
-
サイドバーで、 コンピュート をクリックします。
-
「 アプリ」 タブをクリックしてください。
-
「アプリを作成」 をクリックします。
-
「 エージェント」 カテゴリで、 「MCPサーバー - 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サーバーを使用する— ノートブック、ローカル環境、およびエージェントコードからホスト型サーバーに接続します。
- Databricks MCPにクライアントを接続する— Claude、Cursor、MCP Inspector、およびその他の外部クライアントを接続します。