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