Databricks MCP Server について
Databricks MCP Serverは、Databricksの機能をREST API経由でLLM対応ツールに公開します。MCPクライアントからクラスター、ジョブ、ノートブック、ファイル、SQLを扱う用途に向いています。
主な機能
- 01クラスターの一覧表示・作成・管理
- 02ジョブの一覧表示と実行
- 03ノートブックの参照とエクスポート
- 04DBFSファイルの一覧表示
- 05SQL文の実行
活用シーン
- 01Databricksクラスターの確認や起動
- 02Databricksジョブの実行
- 03ワークスペースのノートブックのエクスポート
- 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 サーバーでは推奨)
セットアップ
-
まだインストールしていない場合は、
uvをインストールします。# MacOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows (in PowerShell) irm https://astral.sh/uv/install.ps1 | iexインストール後、ターミナルを再起動してください。
-
リポジトリをクローンします。
git clone https://github.com/JustTryAI/databricks-mcp-server.git cd databricks-mcp-server -
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]" -
環境変数を設定します。
# 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
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
- コードがプロジェクトのコーディング規約に準拠していることを確認します
- 新しい機能にはテストを追加します
- 必要に応じてドキュメントを更新します
- 送信前にすべてのテストが通ることを確認します
ライセンス
このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細については LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。