DatabricksMCP is an open-source, safety-first Model Context Protocol server for Databricks. It is being built as a deploy-anywhere gateway for governed access to Databricks workspaces from AI assistants and agents.
Important
This project is under active development and is not yet ready for production. The current Phase 1 surface is deliberately read-only.
DatabricksMCP is an independent community project. It is not affiliated with, endorsed by, or sponsored by Databricks, Inc. Databricks and the Databricks logo are trademarks of Databricks, Inc.
- MCP over local
stdioand remote Streamable HTTP - Databricks unified authentication through the official Python SDK
- Health and authenticated-identity diagnostics
- Read-only Unity Catalog and SQL warehouse discovery
- A deny-by-default policy foundation for future mutation tools
- Typed configuration, structured errors, tests, CI, and a non-root container
See ROADMAP.md for the planned production-grade capability set.
Requirements:
- Python 3.11 or newer
- A Databricks workspace
- Databricks unified authentication configured through environment variables or
a profile in
~/.databrickscfg
Install locally with uv:
uv sync --all-groups
uv run databricks-mcpConfigure a local MCP client:
{
"mcpServers": {
"databricks": {
"command": "uvx",
"args": ["--from", "databricks-mcp-server", "databricks-mcp"]
}
}
}The package is not published yet, so during development point the client at a local checkout:
{
"mcpServers": {
"databricks": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/DatabricksMCP",
"databricks-mcp"
]
}
}
}DatabricksMCP delegates credential discovery and refresh to Databricks unified authentication. For local development, authenticate with the Databricks CLI or select a named profile:
export DATABRICKS_CONFIG_PROFILE=DEFAULT
uv run databricks-mcpFor unattended environments, use OAuth M2M or workload identity federation. Personal access tokens are supported by the SDK but are not recommended for production deployments.
Never place credentials in MCP tool arguments or commit them to configuration.
export DATABRICKS_MCP_TRANSPORT=streamable-http
export DATABRICKS_MCP_HOST=127.0.0.1
export DATABRICKS_MCP_PORT=8000
uv run databricks-mcpThe HTTP endpoint is /mcp. Phase 1 HTTP mode is suitable for local evaluation;
public deployment must be placed behind standards-compliant authentication and
TLS until native remote authorization lands in Phase 3.
| Variable | Default | Purpose |
|---|---|---|
DATABRICKS_MCP_TRANSPORT |
stdio |
stdio or streamable-http |
DATABRICKS_MCP_HOST |
127.0.0.1 |
HTTP bind address |
DATABRICKS_MCP_PORT |
8000 |
HTTP bind port |
DATABRICKS_MCP_LOG_LEVEL |
INFO |
Python log level |
DATABRICKS_MCP_ACCESS_MODE |
read-only |
Policy mode; only read-only exists in Phase 1 |
Standard DATABRICKS_* authentication variables are consumed by the official
Databricks SDK.
uv sync --all-groups
uv run ruff check .
uv run ruff format --check .
uv run mypy src
uv run pytestArchitecture and security decisions live in docs/. Contributions are
welcome; read CONTRIBUTING.md and SECURITY.md
before opening an issue or pull request.
Licensed under the Apache License 2.0.