Databricks Genie MCP Server
A Model Context Protocol (MCP) server that connects to the Databricks Genie API, allowing LLMs to ask natural language questions, run SQL queries, and interact with Databricks conversational agents.
β¨ Features
- List Genie spaces available in your Databricks workspace (Currently Manual/Using Resource)
- Fetch metadata (title, description) of a specific Genie space
- Start new Genie conversations with natural language questions
- Ask follow-up questions in ongoing Genie conversations
- Retrieve SQL and result tables in structured format
π§± Prerequisites
- Python 3.7+
- Databricks workspace with:
- Personal access token
- Genie API enabled
- Permissions to access Genie spaces and run queries
βοΈ Setup
-
Clone this repository
-
Create and activate a virtual environment (recommended):
python -m venv .venv
source .venv/bin/activate
Install dependencies:
pip install -r requirements.txt
Create a .env file in the root directory with the following variables:
DATABRICKS_HOST=your-databricks-instance.cloud.databricks.com # Don't add https
DATABRICKS_TOKEN=your-personal-access-token
π Manually Adding Genie Space IDs
Note:
At this time, the Databricks Genie API does not provide a public endpoint to list all available space IDs and titles. (afaik)
As a workaround, you need to manually add the Genie space IDs and their titles in the get_genie_space_id()
function in main.py
.
π§ͺ Test the Server
You can test the MCP server using the inspector (optional but recommended):
npx @modelcontextprotocol/inspector python main.py
OR
You can directly build and run docker to test the server
π¬ Use with Claude Desktop
Download Claude Desktop
Install Your MCP Server: From your project directory, run:
mcp install main.py
Once Server Installed
-
Connect in Claude
-
Open Claude Desktop
-
Click Resources β Add Resource
-
Select your Genie MCP Server
-
Start chatting with your data using natural language! π―
π§Ύ Obtaining Databricks Credentials
Host Your Databricks instance URL (e.g., your-instance.cloud.databricks.com) β do not include https://
Token
-
Go to your Databricks workspace
-
Click your username (top right) β User Settings
-
Under the Developer tab, click Manage under "Access tokens"
-
Generate a new token and copy it
π Running the Server
python main.py
This will start the Genie MCP server over the stdio transport for LLM interaction.
π§° Available MCP Tools
The following MCP tools are available:
Tool Description
- get_genie_space_id() List available Genie space IDs and titles
- get_space_info(space_id: str) Retrieve title and description of a Genie space
- ask_genie(space_id: str, question: str) Start a new Genie conversation and get results
- follow_up(space_id: str, conversation_id: str, question: str) Continue an existing Genie conversation
π οΈ Troubleshooting
Common Issues
-
Invalid host: Ensure the host does not include https://
-
Token error: Make sure your personal access token is valid and has access to Genie
-
Timeout: Check if the Genie space is accessible and not idle/expired
-
No data returned: Ensure your query is valid for the selected space
π Security Considerations
-
Keep your .env file secure and never commit it to version control
-
Use minimal scope tokens with expiration whenever possible
-
Avoid exposing this server in public-facing environments unless authenticated