bricks and context
Production-grade MCP server for Databricks: SQL Warehouses, Jobs API, multi-workspace support.
π§± Bricks and Context
Production-grade Model Context Protocol (MCP) server for Databricks
SQL Warehouses Β· Jobs API Β· Multi-Workspace Β· Built for AI Agents
β¨ What is this?
Bricks and Context lets AI assistants (Cursor, Claude Desktop, etc.) talk directly to your Databricks workspaces through the Model Context Protocol.
Think of it as a bridge: your AI asks questions, this server translates them into Databricks API calls, and returns structured, AI-friendly responses.
Why use this?
| Pain Point | How we solve it |
|---|---|
| AI gets overwhelmed by huge query results | Bounded outputs β configurable row/byte/cell limits |
| Flaky connections cause random failures | Retries + circuit breakers β automatic fault tolerance |
| Managing multiple environments is tedious | Multi-workspace β switch between dev/prod with one parameter |
| Raw API responses confuse AI models | Markdown tables β structured, LLM-optimized output |
π§ Available Tools
SQL & Schema Discovery
| Tool | What it does |
|---|---|
execute_sql_query | Run SQL with bounded, AI-safe output |
discover_schemas | List all schemas in the workspace |
discover_tables | List tables in a schema with metadata |
describe_table | Get column types, nullability, structure |
get_table_sample | Preview rows for data exploration |
connection_health | Verify Databricks connectivity |
Jobs Management
| Tool | What it does |
|---|---|
list_jobs | List jobs with optional name filtering |
get_job_details | Full job config: schedule, cluster, tasks |
get_job_runs | Run history with state and duration |
trigger_job | Start a job with optional parameters |
cancel_job_run | Stop a running job |
get_job_run_output | Retrieve logs, errors, notebook output |
Observability
| Tool | What it does |
|---|---|
cache_stats | Hit rates, memory usage, category breakdown |
performance_stats | Operation latencies, error rates, health |
π Quick Start
1. Clone & Install
git clone https://github.com/laraib-sidd/bricks-and-context.git
cd bricks-and-context
uv sync # or: pip install -e .
2. Configure Workspaces
Copy the template and add your credentials:
cp auth.template.yaml auth.yaml
Edit auth.yaml:
default_workspace: dev
workspaces:
- name: dev
host: your-dev.cloud.databricks.com
token: dapi...
http_path: /sql/1.0/warehouses/...
- name: prod
host: your-prod.cloud.databricks.com
token: dapi...
http_path: /sql/1.0/warehouses/...
π‘
auth.yamlis gitignored. Your secrets stay local.
3. Run
python run_mcp_server.py
π― Cursor Integration
Cursor uses stdio transport and doesn't inherit your shell environment. You need explicit paths.
Step 1: Ensure dependencies are installed
cd /path/to/bricks-and-context
uv sync
Step 2: Open MCP settings in Cursor
Cmd+Shift+P β "Open MCP Settings" β Opens ~/.cursor/mcp.json
Step 3: Add this configuration
Using uv run (recommended):
{
"mcpServers": {
"databricks": {
"command": "uv",
"args": [
"--directory", "/path/to/bricks-and-context",
"run", "python", "run_mcp_server.py"
],
"env": {
"MCP_AUTH_PATH": "/path/to/bricks-and-context/auth.yaml",
"MCP_CONFIG_PATH": "/path/to/bricks-and-context/config.json"
}
}
}
}
Or using venv directly:
{
"mcpServers": {
"databricks": {
"command": "/path/to/bricks-and-context/.venv/bin/python",
"args": ["/path/to/bricks-and-context/run_mcp_server.py"],
"env": {
"MCP_AUTH_PATH": "/path/to/bricks-and-context/auth.yaml",
"MCP_CONFIG_PATH": "/path/to/bricks-and-context/config.json"
}
}
}
}
Step 4: Restart Cursor
Reload the window to activate the MCP server.
Test it
Ask your AI:
- "List my Databricks jobs"
- "Run
SELECT 1on Databricks" - "Describe the table
catalog.schema.my_table"
π Multi-Workspace
Define multiple workspaces in auth.yaml, then select per-call:
execute_sql_query(sql="SELECT 1", workspace="prod")
list_jobs(limit=10, workspace="dev")
When workspace is omitted, the server uses default_workspace.
βοΈ Configuration
config.json β Tunable settings (committed)
| Setting | Default | Description |
|---|---|---|
max_connections | 10 | Connection pool size |
max_result_rows | 200 | Max rows returned per query |
max_result_bytes | 262144 | Max response size (256KB) |
max_cell_chars | 200 | Truncate long cell values |
allow_write_queries | false | Enable INSERT/UPDATE/DELETE |
enable_sql_retries | true | Retry transient SQL failures |
enable_query_cache | false | Cache repeated queries |
query_cache_ttl_seconds | 300 | Cache TTL |
databricks_api_timeout_seconds | 30 | Jobs API timeout |
Any setting can be overridden via environment variable (uppercase, e.g.,
MAX_RESULT_ROWS=500).
ποΈ Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MCP Client (Cursor / Claude) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β stdio
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FastMCP Server β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β SQL Tools β β Job Tools β β Observability β β
β ββββββββ¬βββββββ ββββββββ¬βββββββ βββββββββββββ¬ββββββββββββββ β
βββββββββββΌβββββββββββββββββΌββββββββββββββββββββββΌβββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββββββ
β Connection Pool β β Job Manager β β Cache / Perf Monitor β
β (SQL Connector) β β (REST API 2.1) β β β
ββββββββββ¬ββββββββββ ββββββββββ¬ββββββββββ ββββββββββββββββββββββββ
β β
ββββββββββ¬ββββββββββββ
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Databricks Workspace(s) β
β SQL Warehouse Jobs Service β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π‘οΈ Reliability Features
| Feature | Description |
|---|---|
| Bounded outputs | Rows, bytes, and cell-character limits prevent OOM |
| Connection pooling | Thread-safe with per-connection health validation |
| Retry with backoff | Exponential backoff + jitter for transient failures |
| Circuit breakers | Automatic fault isolation, prevents cascading failures |
| Query caching | Optional TTL-based caching for repeated queries |
π§βπ» Development
uv sync --dev # Install dev dependencies
uv run pytest # Run tests
uv run black . # Format code
uv run mypy src/ # Type check
π License
MIT β see LICENSE
Verwandte Server
Open Formula 1 MCP Server
MCP Server to retrieve and analyze Formula 1 (F1) races, cars, drivers, lap, pit stops and more.
Qdrant MCP
Semantic search using the Qdrant vector database.
InstantDB
Create, manage, and update applications on InstantDB, the modern Firebase.
ADO.NET MCP Server
A C# MCP server for interacting with databases via ADO.NET, compatible with Virtuoso.
Verodat
Interact with Verodat AI Ready Data platform
LoanPro MCP Server
An MCP server providing read-only access to LoanPro financial data.
Pinot MCP Server
An MCP server for interacting with Apache Pinot, a real-time distributed OLAP datastore.
Hive MCP Server
Enables AI assistants to interact with the Hive blockchain through the Model Context Protocol.
Qdrant Memory
A knowledge graph implementation with semantic search powered by the Qdrant vector database.
MCP OpenDART
Access financial data from Korea's OpenDART (Data Analysis, Retrieval and Transfer System) for AI language models.