Metadata-Version: 2.4
Name: iflow-mcp_vivian-xie-db-genie_mcp_server
Version: 0.1.0
Summary: Genie MCP Server - A server for interacting with Databricks Genie via MCP StreamableHTTP Protocol
Requires-Python: >=3.8
Requires-Dist: backoff>=2.2.0
Requires-Dist: databricks-sdk>=0.20.0
Requires-Dist: httpx>=0.24.0
Requires-Dist: mcp>=0.9.0
Requires-Dist: pandas>=2.0.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: requests>=2.31.0
Requires-Dist: starlette>=0.27.0
Requires-Dist: uvicorn>=0.23.0
Description-Content-Type: text/markdown

# 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:

1. **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:

   ```bash
   git clone https://github.com/your-org/genie_mcp_server.git
   ```

2. **Configure the Genie Space ID and Other Environment Variables**

   Open the `app.yaml` file in the root of the cloned repository. Update the `SPACE_ID` value to match your Genie space. 

   Example `app.yaml`:

   ```yaml
   command:
   - "python"
   - "mcp_server.py"

   env:
   - name: "SPACE_ID"
     value: "your_space_id"
   ```

3. **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```

4. **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.

