databricks-mcp-tools 0.1.2
MCP server for Databricks integration
License: MIT
Requires Python: >=3.10
Keywords: ai, databricks, llm, mcp

# Databricks Unity Catalog View Access

Script om Databricks Unity Catalog via MCP te benaderen.

## Setup Stappen

### 0. Zorg dat je een Python environment hebt

Python 3.12.11 werkt.

### 1. Installeer Dependencies
```bash
pip install -r requirements.txt
```

### 2. Databricks Configuratie (Vereist voor externe toegang)

#### A. Genereer Personal Access Token
1. Log in op Databricks workspace: https://adb-4268269233410651.11.azuredatabricks.net
2. Klik rechtsboven op je gebruikersnaam → **Settings**
3. Ga naar **Developer** → **Access tokens**
4. Klik **Generate new token**
5. Geef een naam (bijv. "Python Script Access") en optioneel een expiration
6. **Kopieer de token** (wordt maar 1x getoond!)

#### B. Verkrijg SQL Warehouse HTTP Path
1. Ga in Databricks naar **SQL Warehouses** (via zijmenu)
2. Selecteer een actieve SQL Warehouse (of maak een nieuwe aan)
3. Klik op de warehouse en ga naar **Connection Details**
4. Kopieer de **HTTP Path** (format: `/sql/1.0/warehouses/xxxxx`)

#### C. Verkrijg Cluster ID (Voor Python Code Execution)

Als je de `execute_python_code` tool wilt gebruiken:
1. Ga in Databricks naar **Compute** (via zijmenu)
2. Selecteer een actieve cluster (of maak een nieuwe aan)
3. Kopieer de **Cluster ID** uit de URL of cluster details

**Let op:** De Command Execution API werkt alleen met classic all-purpose clusters, niet met serverless compute.

#### D. Configureer Environment Variables

Maak een .env file aan conform:

```
DATABRICKS_ACCESS_TOKEN=<je access token>
DATABRICKS_HTTP_PATH=/sql/1.0/warehouses/15c864e4e063e48c
DATABRICKS_SERVER_HOSTNAME=adb-4268269233410651.11.azuredatabricks.net
DATABRICKS_CLUSTER_ID=<je cluster id voor python execution>
```

**Let op:** `DATABRICKS_CLUSTER_ID` is alleen vereist als je de `execute_python_code` tool wilt gebruiken.


### 5. Permissies Check
Zorg dat je Databricks account heeft:
- `USE CATALOG` rechten op `main` catalog
- `USE SCHEMA` rechten op `ralf` schema
- `SELECT` rechten op `full_view_with_location` view

Test met:
```sql
SHOW GRANTS ON VIEW main.ralf.full_view_with_location;
```


## Publishing to PyPI

This project is automatically published to PyPI using GitHub Actions when you push a version tag.

### How to Publish a New Version

1. Update the version number in `pyproject.toml`
2. Commit your changes and create a tag:
   ```bash
   # Update version in pyproject.toml naar bijv. 0.1.2
   git add pyproject.toml
   git commit -m "Bump version to 0.1.2"
   git tag v0.1.2
   git push origin v0.1.2
   ```
3. The GitHub Action will automatically build and publish to PyPI

### Setup Requirements

Before the first publish, you need to add your PyPI API token to GitHub Secrets:

1. Go to your repository on GitHub
2. Navigate to **Settings** → **Secrets and variables** → **Actions**
3. Click **New repository secret**
4. Name: `PYPI_API_TOKEN`
5. Value: Your PyPI API token (starts with `pypi-`)
6. Click **Add secret**

The workflow will automatically trigger when you push a tag matching the pattern `v*.*.*` (e.g., v0.1.2, v1.0.0).

## Troubleshooting

### Fout: "Invalid access token"
- Check of DATABRICKS_TOKEN environment variable correct is gezet
- Genereer een nieuwe token als deze verlopen is

### Fout: "Warehouse not found"
- Controleer of HTTP Path correct is ingevuld
- Zorg dat SQL Warehouse actief is (Status: Running)

### Fout: "Table or view not found"
- Verifieer permissies via Databricks UI
- Check of catalog/schema/view namen exact kloppen (case-sensitive!)

### Fout: "Connection timeout"
- Check internet connectie
- Verifieer IP whitelisting in Databricks
- Test VPN verbinding indien van toepassing