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-tokenYou can also create an .envfile based on the.env.exampletemplate.
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.
