Databricks Advanced Mcp Server — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Databricks Advanced Mcp Server (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
An advanced Model Context Protocol (MCP) server that gives AI assistants deep visibility into your Databricks workspace — 43 tools covering dependency scanning, impact analysis, notebook review, job/pipeline operations, SQL execution, catalog management, compute & warehouse control, and Unity Catalog volumes.
| Domain | What it does |
|---|---|
| SQL Execution | Run SQL queries against Databricks SQL warehouses with configurable result limits |
| Table Information | Inspect table metadata, schemas, column details, row counts, and storage info |
| Dependency Scanning | Scan notebooks, jobs, and DLT pipelines to build a workspace dependency graph (DAG) |
| Graph Operations | Build, query, and refresh the workspace dependency graph |
| Impact Analysis | Predict downstream breakage from column drops, schema changes, or pipeline failures |
| Notebook Review | Detect performance anti-patterns, coding standard violations, and suggest optimizations |
| Job & Pipeline Ops | List jobs/pipelines, get run status with error diagnostics, trigger reruns |
| Catalog & Schema | List catalogs, list/describe/create/drop Unity Catalog schemas |
| Compute | List clusters, inspect status, start/stop/restart clusters |
| SQL Warehouses | List warehouses, inspect status, start/stop SQL warehouses |
| Workspace Ops | Create/read/delete notebooks, upload files, get workspace object metadata |
| UC Volumes | List volumes, inspect metadata, browse and read files in Unity Catalog volumes |
Demo teaser
<details>
<summary>Click to play full video</summary>
https://github.com/user-attachments/assets/579282ca-bb26-4244-b0c6-3ad26050aca3
</details>
Covers SQL execution, dependency scanning, impact analysis, notebook review, and job/pipeline operations.
Other auth methods: The Databricks SDK supports unified authentication — if you don't setDATABRICKS_TOKEN, it will fall back to Azure CLI, managed identity, or.databrickscfg. The.envsetup below uses a PAT for simplicity.
>
Don't have a Databricks workspace yet? See infra/INSTALL.md for a one-command Azure deployment using Bicep.#### Option A: Install from PyPI (recommended)
uv pip install databricks-advanced-mcpOr with pip:
pip install databricks-advanced-mcp#### Option B: Install from source
git clone https://github.com/henrybravo/databricks-advanced-mcp-server.git
cd databricks-advanced-mcp-serverCreate and activate a virtual environment:
Windows (PowerShell)
uv venv .venv
.\.venv\Scripts\Activate.ps1
uv pip install -e .macOS / Linux
uv venv .venv
source .venv/bin/activate
uv pip install -e .cp .env.example .envEdit .env with your Databricks credentials:
# Azure Databricks:
DATABRICKS_HOST=https://adb-xxxx.azuredatabricks.net
# Databricks on AWS / GCP:
# DATABRICKS_HOST=https://dbc-xxxx.cloud.databricks.com
DATABRICKS_TOKEN=dapi_your_token
DATABRICKS_WAREHOUSE_ID=your_warehouse_id
# Optional (defaults shown)
# Azure workspaces typically use "main"; AWS/GCP workspaces use "workspace"
DATABRICKS_CATALOG=main
DATABRICKS_SCHEMA=defaultCreate .vscode/mcp.json in your project to register the MCP server with VS Code / GitHub Copilot.
#### Option A: PyPI install (recommended)
If you installed from PyPI (pip install databricks-advanced-mcp), the databricks-mcp CLI is available on your PATH:
{
"servers": {
"databricks-mcp": {
"type": "stdio",
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://adb-xxxx.azuredatabricks.net",
"DATABRICKS_TOKEN": "dapi_your_token",
"DATABRICKS_WAREHOUSE_ID": "your_warehouse_id"
}
}
}
}#### Option B: Virtual environment (source install)
If you cloned the repo and installed into a local .venv, point directly to the Python interpreter:
Windows
{
"servers": {
"databricks-mcp": {
"type": "stdio",
"command": "${workspaceFolder}/.venv/Scripts/python.exe",
"args": ["-m", "databricks_advanced_mcp.server"],
"envFile": "${workspaceFolder}/.env"
}
}
}macOS / Linux
{
"servers": {
"databricks-mcp": {
"type": "stdio",
"command": "${workspaceFolder}/.venv/bin/python",
"args": ["-m", "databricks_advanced_mcp.server"],
"envFile": "${workspaceFolder}/.env"
}
}
}#### Multiple Workspaces
Each MCP server instance connects to exactly one Databricks workspace. To work with multiple workspaces simultaneously, register a separate server entry per workspace — each with its own credentials:
{
"servers": {
// AWS / GCP workspace
"databricks-cloud": {
"type": "stdio",
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://dbc-xxxx.cloud.databricks.com",
"DATABRICKS_TOKEN": "dapi_cloud_token",
"DATABRICKS_WAREHOUSE_ID": "cloud_warehouse_id",
"DATABRICKS_CATALOG": "workspace"
}
},
// Azure workspace
"databricks-azure": {
"type": "stdio",
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://adb-xxxx.azuredatabricks.net",
"DATABRICKS_TOKEN": "dapi_azure_token",
"DATABRICKS_WAREHOUSE_ID": "azure_warehouse_id",
"DATABRICKS_CATALOG": "main"
}
}
}
}Alternatively, with a source install you can use separate .env files per workspace:
{
"servers": {
"databricks-cloud": {
"type": "stdio",
"command": "${workspaceFolder}/.venv/bin/python",
"args": ["-m", "databricks_advanced_mcp.server"],
"envFile": "${workspaceFolder}/.env"
},
"databricks-azure": {
"type": "stdio",
"command": "${workspaceFolder}/.venv/bin/python",
"args": ["-m", "databricks_advanced_mcp.server"],
"envFile": "${workspaceFolder}/.env_azure"
}
}
}Once configured, your AI assistant can call any of the 43 tools below. Here are example prompts organized by domain:
Explore your data
Unity Catalog & schemas
Understand dependencies
Assess impact before making changes
Review notebook quality
Monitor jobs and pipelines
Compute & SQL warehouses
Workspace & volumes
| Tool | Description |
|---|---|
execute_query | Execute SQL against a Databricks SQL warehouse |
get_table_info | Get table metadata — columns, row count, properties, storage |
list_tables | List tables in a catalog.schema |
| Tool | Description |
|---|---|
scan_notebook | Scan a notebook for table/column references |
scan_jobs | Scan all jobs for table dependencies |
scan_dlt_pipelines | Scan all DLT pipelines for source/target tables |
scan_dlt_pipeline | Scan a single DLT pipeline by ID for source/target tables |
| Tool | Description |
|---|---|
build_dependency_graph | Build the full workspace dependency graph |
get_table_dependencies | Get upstream/downstream dependencies for a table |
refresh_graph | Invalidate and rebuild the dependency graph cache |
| Tool | Description |
|---|---|
analyze_impact | Analyze impact of column drop / schema change / pipeline failure |
review_notebook | Review a notebook for issues, anti-patterns, and optimizations |
| Tool | Description |
|---|---|
list_jobs | List jobs with status and schedule info |
get_job_status | Get detailed job run status with error diagnostics |
list_pipelines | List DLT pipelines with state and update status |
get_pipeline_status | Get pipeline update details with event log |
trigger_rerun | Trigger a rerun of the latest failed job run (requires confirmation) |
trigger_job_run | Trigger a brand-new job run with optional parameters (requires confirmation) |
| Tool | Description |
|---|---|
list_catalogs | List all Unity Catalog catalogs accessible to the current principal |
list_schemas | List all schemas in a catalog |
describe_schema | Get schema metadata, owner, comment, and properties |
create_schema | Create a new schema in a catalog (requires confirmation) |
drop_schema | Drop a schema — must be empty (requires confirmation) |
| Tool | Description |
|---|---|
list_clusters | List all clusters with state, creator, and node type |
get_cluster_status | Get detailed cluster status, spark version, and config |
start_cluster | Start a terminated cluster (requires confirmation) |
stop_cluster | Stop (terminate) a running cluster (requires confirmation) |
restart_cluster | Restart a running cluster (requires confirmation) |
| Tool | Description |
|---|---|
list_warehouses | List all SQL warehouses with state, size, and type |
get_warehouse_status | Get detailed warehouse config, scaling, and auto-stop settings |
start_warehouse | Start a stopped SQL warehouse (requires confirmation) |
stop_warehouse | Stop a running SQL warehouse (requires confirmation) |
| Tool | Description |
|---|---|
list_workspace_notebooks | List all notebooks in a workspace path |
create_job | Create a new Databricks job (requires confirmation) |
create_notebook | Create a notebook in the workspace (requires confirmation) |
workspace_upload | Upload a local file to the workspace (requires confirmation) |
read_notebook | Read/export a notebook's content (SOURCE or HTML) |
delete_workspace_item | Delete a notebook or folder (requires confirmation) |
get_workspace_status | Get metadata for a workspace object (type, language, modified) |
| Tool | Description |
|---|---|
list_volumes | List Unity Catalog volumes in a catalog.schema |
get_volume_info | Get volume metadata (type, storage location, owner) |
list_volume_files | List files and directories inside a volume |
read_volume_file | Read contents of a file from a volume |
| Variable | Required | Default | Description |
|---|---|---|---|
DATABRICKS_HOST | Yes | — | Workspace URL (https://adb-xxx.azuredatabricks.net for Azure, https://dbc-xxx.cloud.databricks.com for AWS/GCP) |
DATABRICKS_TOKEN | Yes | — | Personal access token or service principal token |
DATABRICKS_WAREHOUSE_ID | Yes | — | SQL warehouse ID for query execution |
DATABRICKS_CATALOG | No | main | Default catalog for unqualified table names — use workspace for AWS/GCP |
DATABRICKS_SCHEMA | No | default | Default schema for unqualified table names |
GRAPH_CACHE_TTL | No | 3600 | Dependency graph cache TTL in seconds |
GRAPH_REFRESH_INTERVAL | No | 0 | Auto-refresh the graph in the background every N seconds. 0 disables auto-refresh |
Security note: Theexecute_querytool can run any SQL against your warehouse, including DDL (DROP TABLE,ALTER TABLE) and DML (DELETE,UPDATE). Use a least-privilege service principal (see Security & Governance below) rather than a personal admin PAT in production environments.
This server is tested against Azure Databricks and Databricks on AWS (.cloud.databricks.com). Key differences:
| Aspect | Azure | AWS / GCP |
|---|---|---|
| Host format | https://adb-xxx.azuredatabricks.net | https://dbc-xxx.cloud.databricks.com |
| Default catalog | main | workspace |
| Workspace root objects | DIRECTORY | DIRECTORY and REPO |
All tools work on both platforms. Set DATABRICKS_CATALOG to match your workspace's default catalog.
Avoid storing a personal admin PAT in .env or VS Code config. Instead, create a dedicated service principal with only the permissions required:
-- Grant read access on the catalog and schema
GRANT USE CATALOG ON CATALOG main TO `sp-databricks-mcp`;
GRANT USE SCHEMA ON SCHEMA main.default TO `sp-databricks-mcp`;
GRANT SELECT ON SCHEMA main.default TO `sp-databricks-mcp`;
-- For job operations (trigger_rerun, trigger_job_run, get_job_status)
-- Grant CAN_MANAGE_RUN on specific jobs only, via the Databricks UI or APISet DATABRICKS_TOKEN to the service principal's OAuth token or M2M secret. The Databricks SDK supports OAuth M2M authentication natively — no PAT required.
| Risk | Tools | Notes |
|---|---|---|
| Read-only | execute_query (SELECT only), get_table_info, list_tables, scan_*, list_*, get_*, describe_schema, build_dependency_graph, get_table_dependencies, analyze_impact, review_notebook, read_notebook, read_volume_file | Safe with read-only grants |
| Mutating | trigger_rerun, trigger_job_run, create_schema, start_cluster, stop_cluster, restart_cluster, start_warehouse, stop_warehouse, create_job, create_notebook, workspace_upload | Require confirm=True |
| Destructive | drop_schema, delete_workspace_item, execute_query with DDL/DML | Require confirm=True; scope permissions carefully |
All execute_query and get_table_info calls respect Unity Catalog row/column-level security. If the token's principal lacks SELECT on a table, the operation fails with a permission error — expected and correct behaviour.
To limit execute_query to read-only statements, restrict the SQL warehouse's channel policy or use a dedicated read-only warehouse for this MCP server.
If you need to provision a new Azure Databricks workspace, the infra/ directory contains:
cd infra
./deploy.ps1 -ResourceGroupName rg-databricks-mcp -Location eastus2# Install with dev dependencies
uv pip install -e ".[dev]"
# Run tests (excluding live integration tests)
uv run pytest tests/ --ignore=tests/test_workspace_ops_live.py -v
# Run tests with coverage report
uv run pytest tests/ --cov=src/databricks_advanced_mcp --cov-report=term-missing --ignore=tests/test_workspace_ops_live.py
# Lint
uv run ruff check src/ tests/
# Type check
uv run mypy src/src/databricks_advanced_mcp/
├── server.py # FastMCP server + CLI entry point
├── config.py # Pydantic settings from env vars
├── client.py # Databricks SDK client factory
├── tools/ # MCP tool implementations (43 tools across 13 modules)
│ ├── __init__.py # Central registration of all tool modules
│ ├── sql_executor.py # SQL execution (1 tool)
│ ├── table_info.py # Table metadata (2 tools)
│ ├── dependency_scanner.py # Scan notebooks/jobs/pipelines (4 tools)
│ ├── graph_ops.py # Build/query/refresh dependency graph (3 tools)
│ ├── impact_analysis.py # Impact analysis (1 tool)
│ ├── notebook_reviewer.py # Notebook review (1 tool)
│ ├── job_pipeline_ops.py # Job & pipeline operations (6 tools)
│ ├── workspace_listing.py # Workspace listing (1 tool)
│ ├── workspace_ops.py # Workspace mutations + read/delete (6 tools)
│ ├── catalog_ops.py # Unity Catalog & schema management (5 tools)
│ ├── compute_ops.py # Cluster management (5 tools)
│ ├── warehouse_ops.py # SQL warehouse management (4 tools)
│ └── volume_ops.py # Unity Catalog volumes (4 tools)
├── parsers/ # Code parsing engines
│ ├── sql_parser.py # sqlglot-based SQL extraction
│ ├── notebook_parser.py # Databricks notebook cell parsing
│ └── dlt_parser.py # DLT pipeline definition parsing
├── graph/ # Dependency graph
│ ├── models.py # Node, Edge, DependencyGraph data models
│ ├── builder.py # Graph builder (orchestrates scans)
│ └── cache.py # In-memory graph cache with TTL
└── reviewers/ # Notebook review rule engines
├── performance.py # Performance anti-patterns
├── standards.py # Coding standards checks
└── suggestions.py # Optimization suggestionsContributions welcome! See CONTRIBUTING.md for setup instructions, PR checklist, and a list of wanted features.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.