Genie MCP Server
This project provides an async server for interacting with Databricks Genie via a MCP StreamableHTTP Protocol. It enables users to query Genie and receive answers or data, leveraging Databricks authentication and robust error handling.
Features
- Async API server using Starlette and Uvicorn
- Integration with Databricks Genie for conversational queries
- Automatic OAuth token management for Databricks
Project Structure
mcp_server.py: Main server entry point, exposes the tool via MCP StreamableHTTP Protocol.genie_room.py: Handles Genie API interactions and conversation logic.token_minter.py: Manages Databricks OAuth token minting and refreshing.requirements.txt: Python dependencies.app.yaml: Example deployment configuration.
Deploying to Databricks Apps
You can deploy the Genie MCP Server as a Databricks app by following these steps:
-
Clone the Repository to Your Workspace
In your Databricks workspace, navigate to the directory where you want to deploy the app (e.g.,
/Workspace/Users/your.email@databricks.com/genie_mcp_server). Then, clone the repository:git clone https://github.com/your-org/genie_mcp_server.git
-
Configure the Genie Space ID and Other Environment Variables
Open the
app.yamlfile in the root of the cloned repository. Update theSPACE_IDvalue to match your Genie space.Example
app.yaml:command: - "python" - "mcp_server.py" env: - name: "SPACE_ID" value: "your_space_id"
-
Create and Deploy the App in Databricks
- Go to the Databricks Apps interface.
- Create a new app and specify the path to the directory where you cloned the repository.
- Complete the app creation and deployment process.
databricks apps deploy genie-mcp-server --source-code-path /Workspace/Users/your.email@databricks.com/genie_mcp_server
-
Access the API
Once deployed, your Genie MCP Server app will be running and accessible via the configured port and endpoint (e.g.,
https://app-url.aws.databricksapps.com/api/mcp/). You can now send MCP requests to your deployed app from within your Databricks workspace or from external clients, depending on your network configuration.
Metadata
Release files for iflow-mcp_vivian-xie-db-genie_mcp_server 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_vivian_xie_db_genie_mcp_server-0.1.0.tar.gz | 11.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_vivian_xie_db_genie_mcp_server-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.9 kB
Release files / iflow_mcp_vivian_xie_db_genie_mcp_server-0.1.0.tar.gz
| Download URL | iflow_mcp_vivian_xie_db_genie_mcp_server-0.1.0.tar.gz |
|---|---|
| Size | 11.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8ac0e9929a4e0e9bea25e6e09dc05ee5d0120bb811b6df5273336af7a55557f3
|
|
BLAKE2b-256 checksum How to use checksums |
b902e354e60881731d19092eb2affbb94b8352cf9c4eb02d4b07d60e12418a9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_vivian_xie_db_genie_mcp_server-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_vivian_xie_db_genie_mcp_server-0.1.0-py3-none-any.whl |
|---|---|
| Size | 16.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f803b71ee59bf2b612b5f1e7d4471904a4620b4e70696b6574d4f180c757b54f
|
|
BLAKE2b-256 checksum How to use checksums |
d201e49fec4523965beac70203cc46aec7a4121d70bf109e2bbcc3c42e0a89b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|