0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Databricksでの外部MCPサーバーのサポートおよびマーケットプレイスでのMCPサーバーの提供

Last updated at Posted at 2025-11-07

こちらのアップデートです。

Databricks Marketplaceで利用可能なMCPサーバーを一覧表示します
Databricks Marketplaceは、Model Context Protocol (MCP) サーバーのリストをサポートするようになりました。プロバイダーはMCPサーバーをリストして、AIツールを配布することができます。また、他のDatabricksユーザーはMarketplaceからMCPサーバーをインストールして、AIエージェントを外部データソース、SaaSツール、開発者APIに接続することができます。

Databricks Marketplace にデータ製品を掲載する外部MCPサーバーにアクセスするをご覧ください。

公式ブログでも取り上げられています。

マーケットプレースでも製品カテゴリにMCPサーバーが追加されています。

Screenshot 2025-11-07 at 9.49.28.png

Screenshot 2025-11-07 at 9.49.46.png

このあと実際に試しますが、その前に背後で使われている外部MCPサーバーについて調べます。(マネージドMCPサーバーしか知りませんでした)

Databricksの外部MCPサーバーのサポート

Databricksに外部MCPサーバー連携機能(ベータ版)が追加され、Databricks外部でホストされているサードパーティのAIツールをエージェントから利用できるようになりました。Unity Catalog HTTP接続とマネージドプロキシを介した安全な認証により、GitHubなどの外部サービスのツールを、DatabricksのAI PlaygroundやLangGraph/OpenAIエージェントから呼び出せます。以下では、外部MCPサーバーの仕組み、メリット、実装方法、注意点について解説します。

機能概要

外部MCPサーバー連携機能は、Databricks外部にホストされているModel Context Protocol(MCP)サーバーをDatabricksエージェントから利用できる機能です。MCPは、AIアプリケーションとツール・データソース間の標準化された通信プロトコルです。

基本的な仕組み

┌─────────────────────┐
│ Databricks          │
│                     │
│  ┌──────────────┐   │      ┌──────────────────┐
│  │ AI Playground│   │      │ 外部MCPサーバー    │
│  │  または       │◄──┼──────┤ (GitHub等)       │
│  │ エージェント   │   │      │                  │
│  └──────────────┘   │      └──────────────────┘
│         ▲           │               ▲
│         │           │               │
│  ┌──────┴────────┐  │               │
│  │ マネージド      │  │               │
│  │ MCPプロキシ    ├──┼───────────────┘
│  └───────────────┘  │
│         ▲           │
│         │           │
│  ┌──────┴────────┐  │
│  │ Unity Catalog │  │
│  │ HTTP接続       │  │
│  └───────────────┘  │
└─────────────────────┘

この機能の主要な構成要素は以下の通りです。

構成要素 役割
Unity Catalog HTTP接続 外部MCPサーバーへの接続情報と認証設定を管理
マネージドMCPプロキシ Databricksが自動プロビジョニングする中継サーバー。トークン管理と通信の橋渡しを担当
外部MCPサーバー Databricks外部でホストされるサードパーティのMCPサーバー(GitHub、Slack等)

認証とセキュリティの仕組み

外部MCPサーバー連携では、セキュリティが重要な考慮事項です。Databricksは以下のメカニズムで安全性を確保しています。

セキュリティで保護されたトークン管理

  • すべてのOAuthフローとトークンの更新をDatabricksが自動処理
  • 認証トークンがエンドユーザーに公開されることはない
  • Unity Catalog接続による一貫した認証パターン
ユーザー要求
    ↓
Databricksプロキシ
    ↓
トークン自動挿入・更新
    ↓
外部MCPサーバー

メリット、嬉しさ

外部MCPサーバー連携機能には、以下のようなメリットがあります。

1. ツールの選択肢が大幅に拡大

Databricks管理対象のMCPサーバーに加えて、サードパーティのMCPサーバーも利用可能になります。例えば、以下のような用途に活用できます。

  • GitHubのコミット履歴やイシューを取得
  • Slackチャンネルへのメッセージ送信
  • 外部APIとの統合

2. 安全な認証管理

認証情報を直接管理する必要がなく、Databricksが安全にトークンを処理します。

従来の方式との比較

項目 従来の直接接続 外部MCPサーバー連携
認証情報の管理 開発者が直接管理 Databricksが自動管理
トークンの更新 手動実装が必要 自動で更新
セキュリティリスク トークンがコードに埋め込まれる可能性 トークンがエンドユーザーに公開されない

3. 管理対象サーバーと同じAPIで利用可能

外部MCPサーバーは、Databricks管理対象のMCPサーバーと同じAPIで扱えるため、コードの変更が最小限で済みます。

# 管理対象と外部サーバーを同じリストで管理
MANAGED_MCP_SERVER_URLS = [
    f"{host}/api/2.0/mcp/functions/system/ai",  # 管理対象
    f"{host}/api/2.0/mcp/external/github_connection"  # 外部サーバー
]

4. コードなしでテスト可能

AI Playgroundを使えば、コードを書かずに外部MCPサーバーの動作をテストできます。これにより、本格的な実装前にプロトタイプを迅速に検証できます。

使い方の流れ

外部MCPサーバーを利用するための手順をステップごとに説明します。ここでは、上のマーケットプレイスにもあるtavilyを手動で設定してみます。なお、マーケットプレイスからインストールした場合、以下で作成するHTTP接続を自動で作ってくれます。

事前にtavilyへのサインアップとAPIキーの取得が必要です。

Screenshot 2025-11-07 at 10.58.38.png

ステップ1: 前提条件の確認

以下の条件を満たしている必要があります。

  • ワークスペースでマネージドMCPサーバーのプレビューが有効
  • Unity CatalogメタストアへのCREATE CONNECTION権限

Screenshot 2025-11-07 at 10.02.01.png

ステップ2: Unity Catalog HTTP接続の作成

外部MCPサーバーへの接続設定を作成します。

  1. Unity CatalogでHTTP接続を作成
    Screenshot 2025-11-07 at 10.48.02.png
  2. 接続URLに有効なMCPサーバーエンドポイントを指定します。ホスト名は末尾に/を含めないでください。上で取得したAPIキーをBearer tokenに指定します。
    Screenshot 2025-11-07 at 10.53.31.png
  3. 「Is mcp connection」チェックボックスをオンにする(重要)。Base pathはここでは/mcpを指定します。
    Screenshot 2025-11-07 at 10.55.11.png

接続を作成すると、Databricksは自動的にプロキシエンドポイントをプロビジョニングします。
Screenshot 2025-11-07 at 11.00.35.png

プロキシエンドポイントの形式

https://<workspace-hostname>/api/2.0/mcp/external/{connection_name}

例: https://your-workspace.cloud.databricks.com/api/2.0/mcp/external/github_u2m_connection

ステップ3: AI Playgroundでのテスト(推奨)

本格的な実装の前に、AI Playgroundで動作確認を行います。

  1. DatabricksワークスペースのAI Playgroundに移動
  2. 「ツールが有効になっている」ラベルが付いたモデルを選択
  3. [ツール] > [+ ツールの追加] > [MCPサーバー]を選択
  4. 「外部MCPサーバー」から先ほど作成したHTTP接続を選択
    Screenshot 2025-11-07 at 10.16.32.png
  5. LLMとチャットして動作を確認
    Screenshot 2025-11-07 at 10.55.49.png
    Screenshot 2025-11-07 at 11.01.33.png

AI Playgroundは外部MCPサーバーから利用可能なツールを自動検出し、LLMで利用できるようにします。

ステップ4: エージェントでの実装

実際のエージェントで外部MCPサーバーを利用するには、主に2つの方法があります。

方法1: Databricks MCP Client(推奨)

from databricks.sdk import WorkspaceClient
from databricks_mcp import DatabricksMCPClient

# ワークスペースクライアントの初期化
workspace_client = WorkspaceClient()
host = workspace_client.config.host

# 外部MCPサーバーを管理対象サーバーとして扱う
MANAGED_MCP_SERVER_URLS = [
    f"{host}/api/2.0/mcp/functions/system/ai",  # デフォルトの管理対象MCP
    f"{host}/api/2.0/mcp/external/github_u2m_connection"  # 外部MCPプロキシ
]

エージェントでの利用例

import asyncio
from your_agent_code import create_mcp_tools

# 管理対象と外部サーバーの両方からツールを作成
mcp_tools = asyncio.run(
    create_mcp_tools(
        ws=workspace_client,
        managed_server_urls=MANAGED_MCP_SERVER_URLS
    )
)

ツールの直接呼び出し例

# DatabricksMCPClientを使用した直接呼び出し
mcp_client = DatabricksMCPClient(
    server_url=f"{host}/api/2.0/mcp/external/github_u2m_connection",
    workspace_client=workspace_client
)

# 利用可能なツールのリストを取得
tools = mcp_client.list_tools()
print(f"利用可能なツール: {[tool.name for tool in tools]}")

# ツールの呼び出し
response = mcp_client.call_tool(
    "list_commits",
    {"owner": "mlflow", "repo": "mlflow", "sha": "master"}
)
print(response.content[0].text)

方法2: 標準MCP SDKの使用

より細かい制御が必要な場合は、標準のMCP SDKを使用できます。

from mcp.client.streamable_http import streamablehttp_client as connect
from mcp import ClientSession
from databricks_mcp import DatabricksOAuthClientProvider

async def main():
    app_url = "https://<workspace-hostname>/api/2.0/mcp/external/github_u2m_connection"
    client = WorkspaceClient()
    
    async with connect(app_url, auth=DatabricksOAuthClientProvider(client)) as (
        read_stream,
        write_stream,
        _,
    ):
        async with ClientSession(read_stream, write_stream) as session:
            # 初期化
            init = await session.initialize()
            
            # ツールのリスト取得
            tools = await session.list_tools()
            
            # ツールの呼び出し
            arguments = {
                "owner": "mlflow",
                "repo": "mlflow",
                "sha": "master"
            }
            response = await session.call_tool(
                name="list_commits", 
                arguments=arguments
            )

await main()

ステップ5: エージェントのデプロイ

LangGraphやOpenAIエージェントとして実装し、本番環境にデプロイします。サンプルノートブックが提供されているため、これらを参考にできます。

  • LangGraph MCPツール呼び出しエージェント
  • OpenAI MCPツール呼び出しエージェント

注意点

外部MCPサーバー連携機能を使用する際は、以下の点に注意が必要です。

1. ベータ版機能である

この機能は現在ベータ版です。本番環境での使用には慎重な検証が必要です。

  • 機能や仕様が変更される可能性がある
  • 予期しない動作が発生する可能性がある
  • サポート体制が正式リリース版と異なる場合がある

2. 対応トランスポートの制限

Databricksはストリーミング可能なHTTPトランスポートメカニズムを使用する外部MCPサーバーのみをサポートします。

他のトランスポート方式(例: stdio、SSE等)を使用するMCPサーバーは利用できません。

3. Private Linkはサポート対象外

VPC内のリソースへのPrivate Linkを使用したプライベート接続は現在サポートされていません。

サポート対象:     インターネット経由のパブリックエンドポイント
サポート対象外:   Private Link経由のVPC内プライベートエンドポイント

この機能が必要な場合は、Databricksのサポートチームに問い合わせる必要があります。

4. Unity Catalog HTTP接続が必須

外部MCPサーバーに接続するには、必ずUnity Catalog HTTP接続を使用する必要があります。直接接続はサポートされていません。

必須設定項目

  • 有効なMCPサーバーエンドポイントURL
  • 「Is mcp connection」チェックボックスをオン
  • 適切な認証情報(OAuth等)

5. 権限管理

Unity CatalogメタストアへのCREATE CONNECTION権限が必要です。権限がない場合は、ワークスペース管理者に依頼する必要があります。

まとめ

Databricksの外部MCPサーバー連携機能により、マーケットプレイスなどからDatabricks外部のAIツールやサービスをエージェントから安全に利用できるようになりました。Unity Catalog HTTP接続とマネージドプロキシにより、認証情報を直接管理することなく、セキュアな統合が実現できます。

主要なポイント

  • Unity Catalog HTTP接続を作成し、「Is mcp connection」を有効化
  • マネージドプロキシが自動的にトークン管理を実施
  • AI Playgroundでコードなしのプロトタイピングが可能
  • 管理対象サーバーと同じAPIで外部サーバーも利用可能
  • ベータ版機能であり、ストリーミング可能なHTTPトランスポートのみサポート

この機能を活用することで、Databricksエージェントの機能を大幅に拡張し、より多様なユースケースに対応できます。まずはAI Playgroundで動作を確認し、段階的に本番環境への導入を検討することをお勧めします。

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?