Databricks

Provides an MCP server bridging Claude with Databricks enables prompt loading and tool execution via OAuth-authenticated MCP protocol.
  • typescript

0

GitHub Stars

typescript

Language

4 months ago

First Indexed

3 weeks ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs

Host MCP prompts and tools for Claude by running a dedicated server that connects your Databricks workspace to Claude through a secure, authenticated interface. You define prompts as Markdown files and expose tools as Python functions; Claude can then discover and invoke them via a standard MCP workflow.

How to use

You interact with your MCP server through an MCP client, such as Claude, to access the loaded prompts and available tools. Prompts provide responses you want Claude to return, while tools execute Databricks SDK actions and return structured data. After you deploy the server, Claude will automatically discover the prompts and tools you have configured and you can start asking for cluster information, job creation, SQL queries, or any other supported actions.

To use the server locally or in production, add your MCP server to Claude. Then you can ask Claude to list prompts, run a prompt, or execute a tool. The prompts load from your markdown files in the prompts/ directory and tools load from decorated functions in your server code.

How to install

Prerequisites: Python 3.x, pip for installing dependencies. You may also need Node or the Claude proxy tools if you are integrating with specific client environments.

Step 1 — Create your MCP server from the template

  • Use the template to bootstrap your server repository.
  • You can create the repository with the GitHub template or via the GitHub CLI.

Step 2 — Clone and set up your project

# Clone your new repository
git clone https://github.com/YOUR-USERNAME/my-mcp-server.git
cd my-mcp-server
# Run the interactive setup to configure authentication and dependencies
./setup.sh```
This sets up Databricks authentication, names your MCP server, installs dependencies, and creates .env.local.

Step 3 — Deploy and connect Claude
```bash
# Deploy to Databricks Apps
./deploy.sh
# Check deployment status and get the app URL
./app_status.sh```
Your MCP server will be available at https://your-app.databricksapps.com/mcp/ and you will use this URL when configuring Claude to connect to your server.

Step 4 — Add the MCP server to Claude

# Set your Databricks configuration values (examples)
export DATABRICKS_HOST="https://your-workspace.cloud.databricks.com"
export DATABRICKS_APP_URL="https://your-app.databricksapps.com"  # from app_status.sh output
export SERVER_NAME="your-server-name"

# Add your MCP server to Claude (user-scoped)
claude mcp add $SERVER_NAME --scope user -- \
  uvx --refresh --from git+ssh://git@github.com/YOUR-USERNAME/your-repo.git dba-mcp-proxy \
  --databricks-host $DATABRICKS_HOST \
  --databricks-app-url $DATABRICKS_APP_URL

After adding, restart Claude Code to begin using your MCP server.

## Configuration and customization

Prompts live in the prompts/ folder as Markdown files. Each file name becomes the prompt name, the first line after # is the description, and the file content is what Claude will return. You can also register dynamic prompts as Python functions within server/app.py using the mcp\_server.prompt decorator.

Tools are registered with the mcp\_server.tool decorator inside server/app.py. Tools return JSON-serializable data and must accept only JSON-serializable parameters. Example tools include listing clusters, creating jobs, or running SQL queries against Databricks. A tool description is derived from the function’s docstring.

Project structure highlights:
- server/ contains the FastAPI backend with MCP logic
- prompts/ contains Markdown prompts
- dba\_mcp\_proxy/ holds the MCP proxy for Claude CLI
- app\_status.sh and deploy.sh help you manage deployment and status checks
- setup.sh configures authentication and environment files

## Security and authentication

For production use, OAuth is handled automatically by the proxy using your Databricks credentials. Local development can be run without full authentication. Ensure your Databricks workspace and app are properly secured and that access to the Claude integration is restricted to authorized users.

## Testing and troubleshooting

Verify prompts and tools are loaded after deployment by listing them in Claude and trying a few example prompts and tools. If you encounter authentication errors, refresh credentials or re-authenticate with databricks auth login. If the MCP server cannot be found, confirm the app is deployed and reachable at the specified URL. Logs for the MCP server are available through the deployment’s log endpoint.

Common commands to operate locally during development:

  • git clone <repo>
  • ./setup.sh
  • ./watch.sh
  • export DATABRICKS_HOST=...
  • export DATABRICKS_APP_URL=...
  • claude mcp add databricks-mcp-local --scope local --
    uvx --refresh --from git+ssh://git@github.com/YOUR-ORG/YOUR-REPO.git dba-mcp-proxy
    --databricks-host $DATABRICKS_HOST
    --databricks-app-url $DATABRICKS_APP_URL
## Example configuration and tool set

{ "mcpServers": { "databricks_mcp": { "type": "http", "name": "databricks_mcp", "url": "https://your-app.databricksapps.com/mcp", "args": [] } }, "envVars": [ {"name": "DATABRICKS_HOST", "description": "Databricks workspace host", "example": "https://your-workspace.cloud.databricks.com"}, {"name": "DATABRICKS_APP_URL", "description": "Databricks Apps URL for MCP app", "example": "https://your-app.databricksapps.com"}, {"name": "SERVER_NAME", "description": "Your MCP server name", "example": "my_databricks_mcp"} ] }

## Tools described

Prompts and tools described in this template include dynamic status prompts and Databricks cluster, job, and SQL related operations. Examples include:
- list\_clusters: List Databricks clusters by status
- create\_job: Create a Databricks job with a notebook task
- dynamic\_status: Retrieve current workspace and user status

## Available tools

### list\_clusters

List Databricks clusters by status and return their ids, names, and current state.

### create\_job

Create a Databricks job with a specified notebook path and cluster, returning the jobId and run URL.

### dynamic\_status

Return dynamic system status including current user and workspace details.
Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational