Databricks Permissions MCP Server
by JustTryAI
The Databricks Permissions MCP Server provides access to Databricks permissions, credentials, and Git credentials via the MCP protocol. This enables LLM-powered tools like Claude to interact with Databricks permissions management systems.
Last updated: N/A
Databricks Permissions MCP Server
A Model Completion Protocol (MCP) server that provides access to Databricks permissions, credentials, and Git credentials via the MCP protocol. This allows LLM-powered tools like Claude to interact with Databricks permissions management systems.
Features
- MCP Protocol Support: Implements the MCP protocol to allow LLMs to manage Databricks permissions
- Databricks API Integration: Provides secure access to Databricks permissions REST APIs
- Permission Management: Comprehensive tools for managing permissions on various Databricks resources
- Git Credentials Management: Tools for creating, listing, updating, and deleting Git credentials
- Async Support: Built with asyncio for efficient operation
Available Tools
The Databricks Permissions MCP Server exposes the following tools:
Permissions Management
- get_permissions: Get permissions for a Databricks object
- set_permissions: Set permissions for a Databricks object
- update_permissions: Update permissions for a Databricks object
- get_permission_levels: Get available permission levels for a Databricks object type
Resource-Specific Permissions
- get_cluster_permissions: Get permissions for a cluster
- set_cluster_permissions: Set permissions for a cluster
- update_cluster_permissions: Update permissions for a cluster
- get_job_permissions: Get permissions for a job
- set_job_permissions: Set permissions for a job
- get_warehouse_permissions: Get permissions for a SQL warehouse
- get_workspace_object_permissions: Get permissions for a workspace object (notebooks, directories)
Service Principals
- list_service_principals: List all service principals in the workspace
- get_service_principal: Get details of a specific service principal
- create_service_principal: Create a new service principal
- update_service_principal: Update an existing service principal
- delete_service_principal: Delete a service principal
Unity Catalog Permissions
- get_catalog_permissions: Get permissions for a Unity Catalog catalog
- get_schema_permissions: Get permissions for a Unity Catalog schema
- get_table_permissions: Get permissions for a Unity Catalog table
Git Credentials Management
- list_git_credentials: List all Git credentials
- create_git_credential: Create a new Git credential
- update_git_credential: Update an existing Git credential
- delete_git_credential: Delete a Git credential
Installation
Prerequisites
- Python 3.10 or higher
- MCP-compatible client (e.g., Claude Desktop)
Setup
-
Clone the repository:
git clone https://github.com/yourusername/databricks-permissions-mcp-server.git cd databricks-permissions-mcp-server
-
Set up the project:
# 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 .
-
Set up environment variables:
# 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
You can also create an
.env
file based on the.env.example
template.
Running the MCP Server
To start the MCP server, run:
# Windows
.\start_mcp_server.ps1
# Linux/Mac
./start_mcp_server.sh
Using with Claude Desktop
- In Claude Desktop, click the "+" button to add a new tool
- Select "Custom command"
- Enter a name like "Databricks Permissions"
- For the command, enter:
python -m src.server.databricks_permissions_mcp_server
- Click "Save"
- You can now ask Claude to perform tasks like:
- "List all Git credentials in Databricks"
- "Show permissions for cluster X"
- "Update permissions for job Y to give user Z 'CAN_MANAGE' access"
Project Structure
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
Development
Code Standards
- Python code follows PEP 8 style guide with a maximum line length of 100 characters
- All classes, methods, and functions should have Google-style docstrings
- Type hints are required for all code except tests
Testing
The project uses pytest for testing. To run the tests:
# Run all tests
pytest tests/
# Run with coverage report
pytest --cov=src tests/ --cov-report=term-missing
License
This project is licensed under the MIT License - see the LICENSE file for details.