mcpField
D
Databricks Genie API MCP Server

Databricks Genie API MCP Server

ローカル
github.com/alexxx-db開発ツール1976 週間前に更新

Databricks Genie API MCP Server について

Databricks Genie API MCP Server は、Databricks Genie API の機能をツールとして提供する MCP サーバーです。自然言語で Databricks データを照会したい方を対象に、標準的なインターフェースを通じて他のアプリケーションと連携できます。

主な機能

  1. 01Genie API 機能の MCP ツール化
  2. 02Genie の会話とメッセージの管理
  3. 03Genie が生成した SQL の実行と結果取得
  4. 04Databricks SDK による認証

活用シーン

  1. 01Claude Desktop から自然言語で Databricks データを照会
  2. 02Genie の会話を開始し、クエリ結果を取得
  3. 03Genie が生成した完全なクエリ結果のダウンロード

MCP 対応

本プロジェクトは MCP サーバーとして動作し、start_conversation、create_message、get_space などの Genie 関連ツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Databricks Genie API MCP サーバー

このプロジェクトでは、Databricks Genie API の機能をツールとして公開する Model Context Protocol(MCP)サーバーを実装しています。標準化されたインターフェースを通じて、Databricks のノーコード AI/BI アシスタント機能を他のアプリケーションと連携できるようにし、Databricks のデータを強力な自然言語で検索できるようにします。

詳しい説明とユースケースの例については、関連するブログ記事をご覧ください。

機能

  • Databricks Genie API の関数を MCP ツールとして公開します。
  • Databricks のデータを自然言語で検索できるようにします。
  • Genie の会話を開始し、管理します。
  • メッセージを作成し、取得します。
  • Genie が生成した SQL クエリを実行し、結果を取得します。
  • Databricks に安全に認証します。

前提条件

  • Python 3.10+
  • Genie へのアクセス権と System Tables が有効な Databricks ワークスペース(使用する場合)。
  • Databricks Assistant が有効であること。
  • Pro または Serverless SQL ウェアハウスに対する CAN USE 権限。
  • Genie Space に関連する Unity Catalog データへのアクセス権。
  • Claude Desktop など、MCP 互換のクライアントアプリケーション。

セットアップ手順

  1. リポジトリをクローンする(まだクローンしていない場合)

    # 必要に応じてクローンコマンドを追加
    
  2. サーバーディレクトリに移動する

    cd genie_api 
    
  3. 依存関係をインストールする

    pip install -r requirements.txt
    
  4. 認証を設定する

    Databricks SDK がワークスペースに接続するために必要な環境変数を設定します。このディレクトリ(genie_api/)に .env ファイルを作成するか、環境変数をグローバルに設定してください。

    # --- .env ファイルの内容 ---
    
    # PAT 認証の場合(開発環境で推奨)
    # DATABRICKS_HOST=https://your-workspace.cloud.databricks.com
    # DATABRICKS_TOKEN=your-personal-access-token
    
    # または、サービスプリンシパルを使用した OAuth の場合(本番環境で推奨)
    DATABRICKS_HOST=https://your-workspace.cloud.databricks.com
    DATABRICKS_CLIENT_ID=your-client-id
    DATABRICKS_CLIENT_SECRET=your-client-secret
    
    # --- .env ファイルの内容ここまで ---
    

    .env ファイルを .gitignore に追加してください。

  5. サーバーをローカルで実行する

    python server.py
    

    サーバーが起動し、標準入出力(stdio)経由で接続を待ち受けます。

Claude Desktop での使用

この MCP サーバーは、Claude Desktop などの MCP クライアントで使用するように設計されています。接続するには、次の手順に従ってください。

  1. Claude Desktop をインストールする: 公式ウェブサイトからダウンロードしてインストールします。

  2. Claude Desktop を設定する:

    • Claude Desktop の設定を開きます(メニューバー -> Claude -> Settings...)。
    • Developer -> Edit Config に移動します。
    • 必要に応じてパスを調整し、claude_desktop_config.json ファイルの mcpServers オブジェクトに次の項目を追加します。
    {
      "mcpServers": {
        "databricks-genie": {
          "command": "python", // Or python3, or the full path to your python executable
          "args": [
            "/full/absolute/path/to/your/project/genie_api/server.py" 
          ],
          "workingDirectory": "/full/absolute/path/to/your/project/genie_api/" 
        }
        // ... potentially other servers ...
      }
    }
    
    • 重要: server.py と genie_api ディレクトリには、完全な絶対パスを指定してください。
    • Python の command が Claude Desktop から利用できることを確認してください。
    • workingDirectory を指定すると、サーバーが auth.py と .env ファイルを見つけられるようになります。
  3. Claude Desktop を再起動する: アプリケーションを終了して、再度開きます。

  4. 確認する: チャット入力欄のハンマーアイコン(Tools)をクリックします。databricks-genie のツール(例:start_conversation、create_message)が表示されます。

これで、「先月の DBU 消費量はどれくらいでしたか?」や「昨日、PII テーブルにアクセスしたのは誰ですか?」といった質問を Claude に尋ねると、ローカルサーバーが提供するツールを使用して回答します。

Claude Desktop の設定の詳細については、Claude Desktop ユーザー向け MCP クイックスタートをご覧ください。

利用可能なツール

  • start_conversation:Genie スペースで新しい会話を開始します。
  • create_message:既存の会話に新しいメッセージを作成します。
  • get_message:会話からメッセージを取得します。
  • get_message_attachment_query_result:メッセージの添付ファイルから SQL クエリの結果を取得します。
  • execute_message_attachment_query:メッセージのクエリ添付ファイルの SQL を実行します。
  • get_space:Genie スペースの詳細を取得します。
  • generate_download_full_query_result:クエリ結果全体のダウンロードを開始します。
  • poll_message_until_complete:メッセージが終了状態になるまでポーリングします。

トラブルシューティング

  • 認証の問題: Databricks の認証情報(.env ファイルまたは環境変数)と、Databricks で必要な権限を確認してください。
  • 接続の問題(Claude Desktop):
    • claude_desktop_config.json の絶対パスが正しいことを確認してください。
    • command が有効な Python インタープリターを指していることを確認してください。
    • Claude Desktop のログ(~/Library/Logs/Claude/ または %APPDATA%\Claude\logs)を確認してください。mcp.log と mcp-server-databricks-genie.log を探します。
    • エラーを確認するため、genie_api ディレクトリからターミナルで python server.py を手動で実行してみてください。
  • SQL 実行エラー: サービスプリンシパルまたはユーザーに、SQL ウェアハウスの CAN USE 権限と、関連する Unity Catalog データへのアクセス権があることを確認してください。

セキュリティに関する考慮事項

  • 認証情報: 認証情報をハードコードしないでください。環境変数(.env)または安全な認証情報ストアを使用してください。.env が .gitignore に含まれていることを確認してください。本番環境では、サービスプリンシパルを使用した OAuth を使用してください。
  • MCP のセキュリティ: このサーバーは、ユーザーの権限と Databricks の認証情報を使用してローカルで実行されます。Claude Desktop などのクライアントは、ツールを実行する前にユーザーの同意を得る必要があります(MCP Security Specification)。
  • 本番環境へのデプロイ: このサーバーをより広範に利用するには、安全なホスティング戦略が必要です。このローカルサーバーをそのまま公開しないでください。 セキュリティ/DevOps チームと連携し、適切なホスティング、ネットワーク制御、および必要に応じて MCP サーバーレベルの認証を検討してください。ホスティング環境から Databricks の認証情報(インスタンスプロファイル、マネージドシークレットなど)に安全にアクセスできる必要があります。詳しくは、ブログ記事をご覧ください。
  • 入力のサニタイズ: ツール経由で渡される入力の処理は、Databricks SDK/API を信頼してください。

コントリビューション

コントリビューションを歓迎します。Issue を作成するか、プルリクエストを送信してください。

ライセンス

このソフトウェアは、Databricks, Inc. が付与する特定のライセンスに基づいて提供されます。このソフトウェアの使用を規定する利用規約の全文については、LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。