{
  "markdown": "# Databricks MCP Server\n\n<!-- mcp-name: io.github.pramodbhatofficial/databricks-sdk-mcp -->\n\n[![PyPI](https://img.shields.io/pypi/v/databricks-sdk-mcp.svg)](https://pypi.org/project/databricks-sdk-mcp/)\n[![CI](https://github.com/pramodbhatofficial/databricks-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/pramodbhatofficial/databricks-mcp-server/actions/workflows/ci.yml)\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://python.org)\n[![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE)\n\nA comprehensive [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for Databricks, built on the official [Databricks Python SDK](https://github.com/databricks/databricks-sdk-py).\n\nProvides **263 tools** and **8 prompt templates** across 28 service domains, giving AI assistants full access to the Databricks platform.\n\n## Features\n\n- **SDK-first**: Uses `databricks-sdk` for type safety and automatic API freshness\n- **Comprehensive**: Covers Unity Catalog, SQL, Compute, Jobs, Pipelines, Serving, Vector Search, Apps, Lakebase, Dashboards, Genie, Secrets, IAM, Connections, Experiments, and Delta Sharing\n- **Zero custom auth**: Delegates authentication entirely to the SDK (PAT, OAuth, Azure AD, service principal -- all automatic)\n- **Selective loading**: Include/exclude tool modules via environment variables\n- **MCP Resources**: Read-only workspace context (URL, current user, auth type)\n\n## Quick Start\n\n### Installation\n\n```bash\npip install databricks-sdk-mcp\n```\n\nOr run with Docker:\n\n```bash\ndocker run -i -e DATABRICKS_HOST=... -e DATABRICKS_TOKEN=... databricks-mcp\n```\n\nOr install from source:\n\n```bash\ngit clone https://github.com/pramodbhatofficial/databricks-mcp-server.git\ncd databricks-mcp-server\npip install -e \".[dev]\"\n```\n\n### Authentication\n\nAuthentication is handled by the Databricks SDK. Set one of:\n\n**Personal Access Token (simplest):**\n\n```bash\nexport DATABRICKS_HOST=https://your-workspace.databricks.com\nexport DATABRICKS_TOKEN=dapi...\n```\n\n**OAuth (M2M):**\n\n```bash\nexport DATABRICKS_HOST=https://your-workspace.databricks.com\nexport DATABRICKS_CLIENT_ID=...\nexport DATABRICKS_CLIENT_SECRET=...\n```\n\n**Other methods**: Azure AD, Databricks CLI profile, Azure Managed Identity -- all auto-detected by the SDK.\n\n### Running\n\n```bash\ndatabricks-mcp\n```\n\nThis starts the MCP server using stdio transport.\n\n## Integrations\n\n### Claude Code (Terminal)\n\nAdd to `~/.claude/settings.json` or your project's `.claude/settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"databricks\": {\n      \"command\": \"databricks-mcp\",\n      \"env\": {\n        \"DATABRICKS_HOST\": \"https://your-workspace.databricks.com\",\n        \"DATABRICKS_TOKEN\": \"dapi...\"\n      }\n    }\n  }\n}\n```\n\nThen restart Claude Code. Verify with `/mcp` to see the registered tools.\n\n### Claude Desktop\n\nAdd to your Claude Desktop config file:\n\n- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"databricks\": {\n      \"command\": \"databricks-mcp\",\n      \"env\": {\n        \"DATABRICKS_HOST\": \"https://your-workspace.databricks.com\",\n        \"DATABRICKS_TOKEN\": \"dapi...\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop. The Databricks tools will appear in the tool picker.\n\n### Cursor\n\nAdd to `.cursor/mcp.json` in your project root (or `~/.cursor/mcp.json` for global):\n\n```json\n{\n  \"mcpServers\": {\n    \"databricks\": {\n      \"command\": \"databricks-mcp\",\n      \"env\": {\n        \"DATABRICKS_HOST\": \"https://your-workspace.databricks.com\",\n        \"DATABRICKS_TOKEN\": \"dapi...\"\n      }\n    }\n  }\n}\n```\n\nOpen Cursor Settings > MCP to verify the server is connected.\n\n### Windsurf\n\nAdd to `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"databricks\": {\n      \"command\": \"databricks-mcp\",\n      \"env\": {\n        \"DATABRICKS_HOST\": \"https://your-workspace.databricks.com\",\n        \"DATABRICKS_TOKEN\": \"dapi...\"\n      }\n    }\n  }\n}\n```\n\n### VS Code (Copilot)\n\nAdd to `.vscode/mcp.json` in your project:\n\n```json\n{\n  \"servers\": {\n    \"databricks\": {\n      \"command\": \"databricks-mcp\",\n      \"env\": {\n        \"DATABRICKS_HOST\": \"https://your-workspace.databricks.com\",\n        \"DATABRICKS_TOKEN\": \"dapi...\"\n      }\n    }\n  }\n}\n```\n\n### Zed\n\nAdd to Zed's settings (`~/.config/zed/settings.json`):\n\n```json\n{\n  \"context_servers\": {\n    \"databricks\": {\n      \"command\": {\n        \"path\": \"databricks-mcp\",\n        \"env\": {\n          \"DATABRICKS_HOST\": \"https://your-workspace.databricks.com\",\n          \"DATABRICKS_TOKEN\": \"dapi...\"\n        }\n      }\n    }\n  }\n}\n```\n\n### Any MCP Client (Generic stdio)\n\nThe server uses stdio transport. Connect from any MCP-compatible client:\n\n```bash\n# Set auth env vars\nexport DATABRICKS_HOST=https://your-workspace.databricks.com\nexport DATABRICKS_TOKEN=dapi...\n\n# Start the server (communicates via stdin/stdout)\ndatabricks-mcp\n```\n\n### Tip: Load Only What You Need\n\nIf your MCP client struggles with many tools, use selective loading to reduce the tool count:\n\n```json\n{\n  \"mcpServers\": {\n    \"databricks\": {\n      \"command\": \"databricks-mcp\",\n      \"env\": {\n        \"DATABRICKS_HOST\": \"https://your-workspace.databricks.com\",\n        \"DATABRICKS_TOKEN\": \"dapi...\",\n        \"DATABRICKS_MCP_TOOLS_INCLUDE\": \"unity_catalog,sql,compute,jobs\"\n      }\n    }\n  }\n}\n```\n\n## Tool Modules\n\n| Module | Tools | Description |\n|--------|-------|-------------|\n| `unity_catalog` | 23 | Catalogs, schemas, tables, volumes, functions, registered models |\n| `sql` | 14 | Warehouses, SQL execution, queries, alerts, history |\n| `workspace` | 10 | Notebooks, files, repos |\n| `compute` | 18 | Clusters, instance pools, policies, node types, Spark versions |\n| `jobs` | 13 | Jobs, runs, tasks, repair, cancel all |\n| `pipelines` | 8 | DLT / Lakeflow pipelines |\n| `serving` | 10 | Serving endpoints, model versions, OpenAPI |\n| `vector_search` | 10 | Vector search endpoints, indexes, sync |\n| `apps` | 10 | Databricks Apps lifecycle |\n| `database` | 10 | Lakebase PostgreSQL instances |\n| `dashboards` | 9 | Lakeview AI/BI dashboards, published views |\n| `genie` | 5 | Genie AI/BI conversations |\n| `secrets` | 8 | Secret scopes and secrets |\n| `iam` | 16 | Users, groups, service principals, permissions, current user |\n| `connections` | 5 | External connections |\n| `experiments` | 14 | MLflow experiments, runs, artifacts, metrics, params |\n| `sharing` | 11 | Delta Sharing shares, recipients, providers |\n| `files` | 12 | DBFS and UC Volumes file operations |\n| `grants` | 3 | Unity Catalog permission grants (GRANT/REVOKE) |\n| `storage` | 10 | Storage credentials and external locations |\n| `metastores` | 8 | Unity Catalog metastore management |\n| `online_tables` | 3 | Online tables for low-latency serving |\n| `global_init_scripts` | 5 | Workspace-wide init scripts |\n| `tokens` | 5 | Personal access token management |\n| `git_credentials` | 5 | Git credential management for repos |\n| `quality_monitors` | 8 | Data quality monitoring and refreshes |\n| `command_execution` | 4 | Interactive command execution on clusters |\n| `workflows` | 5 | Composite multi-step operations (workspace status, schema setup, query preview) |\n\n## Selective Tool Loading\n\nWith 263 tools, it's recommended to load only the modules you need. This improves agent performance and tool selection accuracy.\n\n### Role-Based Presets (Recommended)\n\nPick a preset that matches your role:\n\n| Preset | Modules | Tools | Config |\n|--------|---------|-------|--------|\n| **Data Engineer** | unity_catalog, sql, compute, jobs, pipelines, files, quality_monitors | ~100 | `DATABRICKS_MCP_TOOLS_INCLUDE=unity_catalog,sql,compute,jobs,pipelines,files,quality_monitors` |\n| **ML Engineer** | serving, vector_search, experiments, compute, unity_catalog, online_tables, files | ~98 | `DATABRICKS_MCP_TOOLS_INCLUDE=serving,vector_search,experiments,compute,unity_catalog,online_tables,files` |\n| **Platform Admin** | iam, secrets, tokens, metastores, compute, global_init_scripts, grants, storage | ~85 | `DATABRICKS_MCP_TOOLS_INCLUDE=iam,secrets,tokens,metastores,compute,global_init_scripts,grants,storage` |\n| **App Developer** | apps, database, sql, files, serving, secrets | ~64 | `DATABRICKS_MCP_TOOLS_INCLUDE=apps,database,sql,files,serving,secrets` |\n| **Data Analyst** | sql, unity_catalog, dashboards, genie, workspace | ~61 | `DATABRICKS_MCP_TOOLS_INCLUDE=sql,unity_catalog,dashboards,genie,workspace` |\n| **Minimal** | sql, unity_catalog | ~37 | `DATABRICKS_MCP_TOOLS_INCLUDE=sql,unity_catalog` |\n\nExample using a preset in Claude Code:\n\n```json\n{\n  \"mcpServers\": {\n    \"databricks\": {\n      \"command\": \"databricks-mcp\",\n      \"env\": {\n        \"DATABRICKS_HOST\": \"https://your-workspace.databricks.com\",\n        \"DATABRICKS_TOKEN\": \"dapi...\",\n        \"DATABRICKS_MCP_TOOLS_INCLUDE\": \"unity_catalog,sql,compute,jobs,pipelines,files,quality_monitors\"\n      }\n    }\n  }\n}\n```\n\n### Custom Filtering\n\n```bash\n# Only include specific modules\nexport DATABRICKS_MCP_TOOLS_INCLUDE=unity_catalog,sql,serving\n\n# Exclude specific modules (cannot combine with INCLUDE)\nexport DATABRICKS_MCP_TOOLS_EXCLUDE=iam,sharing,experiments\n```\n\nIf `INCLUDE` is set, only those modules load. If `EXCLUDE` is set, everything except those modules loads. `INCLUDE` takes precedence if both are set.\n\n## Tool Discovery (For AI Agents)\n\nThe server includes built-in tool discovery to help AI agents find the right tools:\n\n### MCP Resources\n\n| URI | Description |\n|-----|-------------|\n| `databricks://workspace/info` | Workspace URL, current user, auth type |\n| `databricks://tools/guide` | Tool catalog with module descriptions, use cases, and role presets |\n\nAgents can read `databricks://tools/guide` at connection time to understand what's available.\n\n### Discovery Tool\n\nThe `databricks_tool_guide` tool helps agents find the right tools during a conversation:\n\n```\n# Find tools for a specific task\ndatabricks_tool_guide(task=\"run a SQL query\")\ndatabricks_tool_guide(task=\"deploy an ML model\")\ndatabricks_tool_guide(task=\"create a user\")\n\n# Get role-based recommendations\ndatabricks_tool_guide(role=\"data_engineer\")\ndatabricks_tool_guide(role=\"ml_engineer\")\n```\n\nThis returns matching modules with descriptions and usage hints, so the agent knows exactly which `databricks_*` tools to call.\n\n## MCP Prompts (Guided Workflows)\n\nThe server includes 8 prompt templates that guide AI agents through multi-step Databricks workflows:\n\n| Prompt | Description |\n|--------|-------------|\n| `explore_data_catalog` | Browse Unity Catalog structure (catalogs → schemas → tables) |\n| `query_data` | Find a warehouse, execute SQL, and format results |\n| `debug_failing_job` | Investigate a failing job: status, logs, error analysis |\n| `setup_ml_experiment` | Create an MLflow experiment and configure tracking |\n| `deploy_model` | Deploy a model to a serving endpoint |\n| `setup_data_pipeline` | Create a DLT pipeline with scheduling |\n| `workspace_health_check` | Audit clusters, warehouses, jobs, and endpoints |\n| `manage_permissions` | Review and update permissions on workspace objects |\n\nPrompts appear automatically in MCP clients that support them (e.g., Claude Desktop's prompt picker).\n\n## Docker\n\nRun the MCP server in a container:\n\n```bash\n# Build\ndocker build -t databricks-mcp .\n\n# Run with stdio\ndocker run -i \\\n  -e DATABRICKS_HOST=https://your-workspace.databricks.com \\\n  -e DATABRICKS_TOKEN=dapi... \\\n  databricks-mcp\n\n# Run with SSE transport\ndocker run -p 8080:8080 \\\n  -e DATABRICKS_HOST=https://your-workspace.databricks.com \\\n  -e DATABRICKS_TOKEN=dapi... \\\n  databricks-mcp --transport sse --port 8080\n\n# Run with selective modules\ndocker run -i \\\n  -e DATABRICKS_HOST=https://your-workspace.databricks.com \\\n  -e DATABRICKS_TOKEN=dapi... \\\n  -e DATABRICKS_MCP_TOOLS_INCLUDE=sql,unity_catalog \\\n  databricks-mcp\n```\n\n## SSE Transport (Remote Server)\n\nThe server supports SSE transport for remote connections:\n\n```bash\n# Start as SSE server\ndatabricks-mcp --transport sse --port 8080\n\n# Custom host/port\ndatabricks-mcp --transport sse --host 127.0.0.1 --port 3000\n```\n\nConnect from any MCP client that supports SSE:\n\n```json\n{\n  \"mcpServers\": {\n    \"databricks\": {\n      \"url\": \"http://localhost:8080/sse\"\n    }\n  }\n}\n```\n\n## Development\n\n```bash\n# Install with dev dependencies\npip install -e \".[dev]\"\n\n# Lint\nruff check databricks_mcp/\n\n# Test\npytest tests/ -v\n```\n\n## Author\n\n**Pramod Bhat**\n\n## License\n\nApache 2.0 -- see [LICENSE](LICENSE).\n",
  "bytes": 12537,
  "sha": "54924b98bb12fa4430a08ea2027b097d508a61bad6cd2af56db7ff535b9a3fda",
  "repo_slug": "pramodbhatofficial/databricks-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_pramodbhatofficial_databricks__e447897e/readme"
}