Databricks Permissions MCP Server について
Databricks Permissions MCP Serverは、LLMを利用するツールからDatabricksの権限や認証情報を管理できるようにします。リソース別の権限操作、サービスプリンシパル、Unity Catalogの権限、Git認証情報を扱います。
主な機能
- 01リソース権限の取得と変更
- 02クラスターとジョブの権限管理
- 03サービスプリンシパルの管理
- 04Unity Catalog権限の管理
- 05Git認証情報の作成と管理
- 06Databricks APIへの非同期アクセス
活用シーン
- 01ワークスペースオブジェクトの権限確認
- 02クラスターやジョブのアクセス権変更
- 03サービスプリンシパルの管理
- 04保存済みGit認証情報の更新
MCP 対応
Databricksの権限、サービスプリンシパル、Unity Catalog、Git認証情報の操作をツールとしてMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Databricks Permissions MCP Server
MCP プロトコルを通じて Databricks の権限、資格情報、Git 資格情報にアクセスできる Model Completion Protocol(MCP)サーバーです。これにより、Claude などの LLM を活用したツールが Databricks の権限管理システムを操作できます。
機能
- MCP プロトコルのサポート:LLM が Databricks の権限を管理できるように、MCP プロトコルを実装しています
- Databricks API との連携:Databricks の権限 REST API に安全にアクセスできます
- 権限管理:さまざまな Databricks リソースの権限を管理するための包括的なツールを提供します
- Git 資格情報の管理:Git 資格情報の作成、一覧表示、更新、削除を行うツールを提供します
- 非同期サポート:効率的に動作するよう、asyncio を使用して構築されています
利用可能なツール
Databricks Permissions MCP Server は、次のツールを提供します。
権限管理
- get_permissions:Databricks オブジェクトの権限を取得します
- set_permissions:Databricks オブジェクトの権限を設定します
- update_permissions:Databricks オブジェクトの権限を更新します
- get_permission_levels:Databricks オブジェクトの種類で利用可能な権限レベルを取得します
リソース固有の権限
- get_cluster_permissions:クラスターの権限を取得します
- set_cluster_permissions:クラスターの権限を設定します
- update_cluster_permissions:クラスターの権限を更新します
- get_job_permissions:ジョブの権限を取得します
- set_job_permissions:ジョブの権限を設定します
- get_warehouse_permissions:SQL ウェアハウスの権限を取得します
- get_workspace_object_permissions:ワークスペースオブジェクト(ノートブック、ディレクトリ)の権限を取得します
サービスプリンシパル
- list_service_principals:ワークスペース内のすべてのサービスプリンシパルを一覧表示します
- get_service_principal:指定したサービスプリンシパルの詳細を取得します
- create_service_principal:新しいサービスプリンシパルを作成します
- update_service_principal:既存のサービスプリンシパルを更新します
- delete_service_principal:サービスプリンシパルを削除します
Unity Catalog の権限
- get_catalog_permissions:Unity Catalog カタログの権限を取得します
- get_schema_permissions:Unity Catalog スキーマの権限を取得します
- get_table_permissions:Unity Catalog テーブルの権限を取得します
Git 資格情報の管理
- list_git_credentials:すべての Git 資格情報を一覧表示します
- create_git_credential:新しい Git 資格情報を作成します
- update_git_credential:既存の Git 資格情報を更新します
- delete_git_credential:Git 資格情報を削除します
インストール
前提条件
- Python 3.10 以降
- MCP 互換クライアント(例:Claude Desktop)
セットアップ
-
リポジトリをクローンします。
git clone https://github.com/yourusername/databricks-permissions-mcp-server.git cd databricks-permissions-mcp-server -
プロジェクトをセットアップします。
# Create and activate virtual environment python -m venv .venv # On Windows .\.venv\Scripts\activate # On Linux/Mac source .venv/bin/activate # Install dependencies in development mode pip install -e . -
環境変数を設定します。
# 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
Claude Desktop での使用
- Claude Desktop で「+」ボタンをクリックして、新しいツールを追加します
- 「Custom command」を選択します
- 「Databricks Permissions」などの名前を入力します
- コマンドに
python -m src.server.databricks_permissions_mcp_serverを入力します - 「Save」をクリックします
- 次のようなタスクを Claude に依頼できるようになります。
- 「Databricks 内のすべての Git 資格情報を一覧表示して」
- 「クラスター X の権限を表示して」
- 「ユーザー Z に「CAN_MANAGE」アクセス権を付与するよう、ジョブ Y の権限を更新して」
プロジェクト構成
databricks-permissions-mcp-server/
├── src/ # Source code
│ ├── api/ # Databricks API clients
│ │ ├── permissions.py # Permissions API client
│ │ ├── service_principals.py # Service principals API client
│ │ ├── unity_catalog.py # Unity Catalog API client
│ │ ├── shares.py # Delta Sharing API client
│ │ └── git_credentials.py # Git credentials API client
│ ├── core/ # Core functionality
│ ├── server/ # Server implementation
│ │ ├── databricks_permissions_mcp_server.py # Main MCP server
│ │ └── app.py # FastAPI app for tests
│ └── cli/ # Command-line interface
├── tests/ # Test directory
├── scripts/ # Helper scripts
└── pyproject.toml # Project configuration
開発
コード規約
- Python コードは PEP 8 スタイルガイドに準拠し、最大行長は 100 文字です
- すべてのクラス、メソッド、関数に Google スタイルの docstring を記述してください
- テストを除くすべてのコードで型ヒントが必須です
テスト
このプロジェクトではテストに pytest を使用します。テストを実行するには、次を実行します。
# Run all tests
pytest tests/
# Run with coverage report
pytest --cov=src tests/ --cov-report=term-missing
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。