Read this in other languages: 正體中文
A read-only MCP (Model Context Protocol) server for Databricks, enabling Claude to query Databricks SQL, browse metadata, and monitor jobs/pipelines.
- SQL Queries: Execute SELECT, SHOW, DESCRIBE queries (write operations blocked)
- Metadata Browsing: List catalogs, schemas, tables, and search tables
- Delta Lake: View table history, details, and grants
- Jobs & Pipelines: List and monitor Databricks Jobs and DLT Pipelines
- Query History: Browse SQL query history with filters
- Cluster Metrics: Monitor CPU, memory, network usage from system tables
- Python 3.13+
- uv package manager
- Databricks workspace with SQL Warehouse
# Clone the repository
git clone https://github.com/ChrisChoTW/databricks-mcp.git
cd databricks-mcp
# Install dependencies
uv sync
# Create .env file
cp .env.example .envEdit .env with your Databricks credentials:
DATABRICKS_SERVER_HOSTNAME=your-workspace.cloud.databricks.com
DATABRICKS_HTTP_PATH=/sql/1.0/warehouses/your-warehouse-id
DATABRICKS_TOKEN=your-personal-access-tokenAdd to your Claude Code MCP configuration (~/.claude.json):
{
"mcpServers": {
"databricks-sql": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"/path/to/databricks-mcp",
"run",
"python",
"server.py"
],
"env": {
"DATABRICKS_SERVER_HOSTNAME": "your-workspace.cloud.databricks.com",
"DATABRICKS_HTTP_PATH": "/sql/1.0/warehouses/your-warehouse-id",
"DATABRICKS_TOKEN": "your-token"
}
}
}
}uv run python server.py| Tool | Description |
|---|---|
databricks_query |
Execute SQL queries (read-only) |
list_catalogs |
List all catalogs |
list_schemas |
List schemas in a catalog |
list_tables |
List tables in a schema |
get_table_schema |
Get table structure (DESCRIBE EXTENDED) |
search_tables |
Search tables by name |
| Tool | Description |
|---|---|
get_table_history |
View Delta table change history |
get_table_detail |
View Delta table details |
get_grants |
View object permissions |
list_volumes |
List Unity Catalog volumes |
| Tool | Description |
|---|---|
list_jobs |
List Databricks Jobs |
get_job |
Get job details |
list_job_runs |
List job run history |
get_job_run |
Get run details |
list_pipelines |
List DLT Pipelines |
get_pipeline |
Get pipeline status |
| Tool | Description |
|---|---|
list_query_history |
List SQL query history |
list_warehouses |
List SQL Warehouses |
list_clusters |
List clusters |
get_cluster_metrics |
Get cluster CPU/memory metrics |
get_cluster_events |
Get cluster events |
databricks-mcp/
├── server.py # Entry point
├── core.py # Shared connections and MCP instance
└── tools/
├── query.py # SQL queries and metadata
├── delta.py # Delta Lake and permissions
├── jobs.py # Jobs management
├── pipelines.py # DLT Pipelines
├── compute.py # Clusters and query history
└── metrics.py # Cluster metrics
This server is read-only by design:
- ❌ INSERT, UPDATE, DELETE, DROP, TRUNCATE, MERGE, COPY blocked
- ✅ SELECT, SHOW, DESCRIBE, CREATE VIEW allowed
- Credentials are passed via environment variables (never hardcoded)
MIT
Issues and pull requests are welcome!