Databricks Permissions MCP Server
Provides tools for managing Databricks permissions, including cluster, job, warehouse, workspace object, and Unity Catalog permissions, as well as Git credentials and service principals.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Databricks Permissions MCP ServerList all Git credentials in Databricks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-serverSet 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.shUsing 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_serverClick "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 configurationDevelopment
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-missingLicense
This project is licensed under the MIT License - see the LICENSE file for details.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/JustTryAI/databricks-permissions-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server