mcpField
D
Databricks MCP Server

Databricks MCP Server

ローカル
github.com/JustTryAIクラウド・インフラ5085 週間前に更新

Databricks MCP Server について

Databricks MCP Serverは、Databricksの機能をREST API経由でLLM対応ツールに公開します。MCPクライアントからクラスター、ジョブ、ノートブック、ファイル、SQLを扱う用途に向いています。

主な機能

  1. 01クラスターの一覧表示・作成・管理
  2. 02ジョブの一覧表示と実行
  3. 03ノートブックの参照とエクスポート
  4. 04DBFSファイルの一覧表示
  5. 05SQL文の実行

活用シーン

  1. 01Databricksクラスターの確認や起動
  2. 02Databricksジョブの実行
  3. 03ワークスペースのノートブックのエクスポート
  4. 04DBFSファイルの確認やSQLの実行

MCP 対応

Databricks REST APIの機能をMCPクライアント向けのツールとして登録します。クラスター、ジョブ、ノートブック、ファイル、SQLを操作できます。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Databricks MCP サーバー

Databricks の機能に MCP プロトコル経由でアクセスできる、Databricks 向けの Model Completion Protocol(MCP)サーバーです。これにより、LLM を活用したツールから Databricks クラスター、ジョブ、ノートブックなどを操作できます。

機能

  • MCP プロトコルのサポート:LLM が Databricks を操作できるよう、MCP プロトコルを実装します
  • Databricks API との統合:Databricks REST API の機能にアクセスできます
  • ツールの登録:Databricks の機能を MCP ツールとして公開します
  • 非同期処理のサポート:効率的に動作するよう asyncio を使用して構築されています

利用可能なツール

Databricks MCP サーバーは、以下のツールを公開します。

  • list_clusters:すべての Databricks クラスターを一覧表示します
  • create_cluster:新しい Databricks クラスターを作成します
  • terminate_cluster:Databricks クラスターを終了します
  • get_cluster:指定した Databricks クラスターの情報を取得します
  • start_cluster:終了した Databricks クラスターを起動します
  • list_jobs:すべての Databricks ジョブを一覧表示します
  • run_job:Databricks ジョブを実行します
  • list_notebooks:ワークスペースのディレクトリ内にあるノートブックを一覧表示します
  • export_notebook:ワークスペースからノートブックをエクスポートします
  • list_files:DBFS パス内のファイルとディレクトリを一覧表示します
  • execute_sql:SQL ステートメントを実行します

インストール

前提条件
  • Python 3.10 以降
  • uv パッケージマネージャー(MCP サーバーでは推奨)
セットアップ
  1. まだインストールしていない場合は、uv をインストールします。

    # MacOS/Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # Windows (in PowerShell)
    irm https://astral.sh/uv/install.ps1 | iex
    

    インストール後、ターミナルを再起動してください。

  2. リポジトリをクローンします。

    git clone https://github.com/JustTryAI/databricks-mcp-server.git
    cd databricks-mcp-server
    
  3. uv でプロジェクトをセットアップします。

    # Create and activate virtual environment
    uv venv
    
    # On Windows
    .\.venv\Scripts\activate
    
    # On Linux/Mac
    source .venv/bin/activate
    
    # Install dependencies in development mode
    uv pip install -e .
    
    # Install development dependencies
    uv pip install -e ".[dev]"
    
  4. 環境変数を設定します。

    # Windows
    set DATABRICKS_HOST=https://your-databricks-instance.azuredatabricks.net
    set DATABRICKS_TOKEN=your-personal-access-token
    
    # Linux/Mac
    export DATABRICKS_HOST=https://your-databricks-instance.azuredatabricks.net
    export DATABRICKS_TOKEN=your-personal-access-token
    

    .env.example テンプレートを基に .env ファイルを作成することもできます。

MCP サーバーの実行

MCP サーバーを起動するには、次を実行します。

# Windows
.\start_mcp_server.ps1

# Linux/Mac
./start_mcp_server.sh

これらのラッパースクリプトは、scripts ディレクトリにある実際のサーバースクリプトを実行します。サーバーが起動し、MCP プロトコルの接続を受け付ける準備が整います。

scripts ディレクトリからサーバースクリプトを直接実行することもできます。

# Windows
.\scripts\start_mcp_server.ps1

# Linux/Mac
./scripts/start_mcp_server.sh

Databricks リソースのクエリ

このリポジトリには、Databricks リソースをすばやく確認するためのユーティリティスクリプトが含まれています。

# View all clusters
uv run scripts/show_clusters.py

# View all notebooks
uv run scripts/show_notebooks.py

プロジェクト構成

databricks-mcp-server/
├── src/                             # Source code
│   ├── __init__.py                  # Makes src a package
│   ├── __main__.py                  # Main entry point for the package
│   ├── main.py                      # Entry point for the MCP server
│   ├── api/                         # Databricks API clients
│   ├── core/                        # Core functionality
│   ├── server/                      # Server implementation
│   │   ├── databricks_mcp_server.py # Main MCP server
│   │   └── app.py                   # FastAPI app for tests
│   └── cli/                         # Command-line interface
├── tests/                           # Test directory
├── scripts/                         # Helper scripts
│   ├── start_mcp_server.ps1         # Server startup script (Windows)
│   ├── run_tests.ps1                # Test runner script
│   ├── show_clusters.py             # Script to show clusters
│   └── show_notebooks.py            # Script to show notebooks
├── examples/                        # Example usage
├── docs/                            # Documentation
└── pyproject.toml                   # Project configuration

プロジェクト構成の詳細については、project_structure.md を参照してください。

開発

コード規約
  • Python コードは、最大行長を 100 文字とする PEP 8 スタイルガイドに準拠します
  • インデントにはスペース 4 つを使用します(タブは使用しません)
  • 文字列にはダブルクォートを使用します
  • すべてのクラス、メソッド、関数に Google スタイルの docstring を記述します
  • テストを除くすべてのコードで型ヒントが必須です
リンティング

このプロジェクトでは、以下のリンティングツールを使用します。

# Run all linters
uv run pylint src/ tests/
uv run flake8 src/ tests/
uv run mypy src/

テスト

このプロジェクトでは、テストに pytest を使用します。テストを実行するには、次を実行します。

# Run all tests with our convenient script
.\scripts\run_tests.ps1

# Run with coverage report
.\scripts\run_tests.ps1 -Coverage

# Run specific tests with verbose output
.\scripts\run_tests.ps1 -Verbose -Coverage tests/test_clusters.py

pytest でテストを直接実行することもできます。

# Run all tests
uv run pytest tests/

# Run with coverage report
uv run pytest --cov=src tests/ --cov-report=term-missing

このプロジェクトでは、コードカバレッジ 80%以上を目標としています。

ドキュメント

  • API ドキュメントは Sphinx で生成され、docs/api ディレクトリにあります
  • すべてのコードに Google スタイルの docstring が含まれています
  • 使用例については、examples/ ディレクトリを参照してください

例

使用例については、examples/ ディレクトリを確認してください。例を実行するには、次を実行します。

# Run example scripts with uv
uv run examples/direct_usage.py
uv run examples/mcp_client_usage.py

コントリビューション

コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。

  1. コードがプロジェクトのコーディング規約に準拠していることを確認します
  2. 新しい機能にはテストを追加します
  3. 必要に応じてドキュメントを更新します
  4. 送信前にすべてのテストが通ることを確認します

ライセンス

このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細については LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

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

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