独自のMCPサーバーをホストする
カスタムまたはサードパーティのMCPサーバーをDatabricksアプリとしてホストします。カスタムMCPサーバーは、デプロイしたいMCPサーバーが既にある場合や、サードパーティのMCPサーバーをツールのソースとしてランしたい場合に役立ちます。 [[ ## completed ##]]
カスタムMCPサーバーへのアクセスは、Databricks Appsの権限を通じて制御されます。カスタムMCPアクティビティを他のMCPサーバーやLLM Endpointと併せて監視するには、Unity AI Gatewayを使用します。
エージェントコードでホストされたカスタムMCPサーバーを使用するには、カスタムエージェントでのMCPサーバーの使用を参照してください。
要件
- Databricks アプリとしてホストされる MCP サーバーは、ストリーミング可能な HTTP トランスポートなど、HTTP 互換のトランスポートを実装する必要があります。
AppsテンプレートからカスタムMCPサーバーを作成する
組み込みのHello World MCP Server Templateを使用して、サンプルツールが既に含まれているMCPサーバーを作成およびデプロイします:
-
サイドバーで、 コンピュート をクリックします。
-
[ Apps ] tabをクリックします。
-
「 アプリを作成 」をクリックします。
-
[Agents] カテゴリで、 [MCP Server - Hello World] Templateを選択します。
-
mcp-で始まるアプリ名を入力します(例:mcp-hello-world)。
AI Playground で MCP サーバーとして認識されるには、アプリ名が mcp- で起動する必要があります。
- 「 アプリを作成 」をクリックします。
Databricksは、カスタマイズ可能なサンプルコードを含むアプリをデプロイします。
このTemplateには、作業を起動するための2つのサンプルツールが含まれています:
health(): サーバーが動作中であることを確認し、ステータス情報を返す診断ツール。get_current_user(): Databricks SDK を使用して現在のユーザーの情報を取得し、ワークスペース認証を統合する方法を示すツール。
カスタムツールを追加
独自のツールを追加するには、アプリのソースコードを開き、@mcp.tool()デコレータを使用して新しい関数を定義します。たとえば、次のツールは文字列を大文字に変換します:
@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を使用してワークスペースへの認証を行います。
-
ローカルターミナルで次のコマンドをランします:
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ファイルを追加します。defaultでは、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-を付けます。この命名規則は、ワークスペース内での検出可能性と整理に役立ちます。
-
app.yamlファイルを含むディレクトリから次のコマンドを実行して、ソースコードを Databricks に upload し、アプリをデプロイします。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 サーバーの Endpoint は https://<app-url>/mcp で利用可能です。
価格
カスタム MCP サーバーには、Databricks Apps の価格が適用されます。
その他のリソース
- エージェントでカスタムMCPサーバーを使用することで、ノートブック、ローカル環境、エージェントコードからホストされたサーバーに接続できます。
- Claude、Cursor、MCP Inspector、その他の外部クライアントをセットアップするには、MCP を AI アシスタントおよびコーディングエージェントに接続します。