Metadata-Version: 2.4
Name: iflow-mcp_genai-works-org-cloudera-mcp
Version: 0.1.0
Summary: Cloudera Iceberg MCP Server via Impala
License-File: LICENSE
License-File: NOTICE.txt
Requires-Python: >=3.11
Requires-Dist: fastmcp>=2.9.2
Requires-Dist: impyla>=0.21.0
Requires-Dist: mcp[cli]>=1.9.4
Requires-Dist: python-dotenv>=1.1.0
Description-Content-Type: text/markdown

# Iceberg MCP Server - Setup Guide

Complete setup instructions for the Iceberg MCP Server with HTTP transport support.

## Prerequisites

- **Python 3.10+** 
- **Access to Cloudera Data Platform** with Impala
- **Valid Cloudera credentials**
- **uv** package manager (recommended) or pip

### Install UV (if not already installed)
```bash
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# Or via pip
pip install uv
```

## Installation

### Step 1: Clone the Repository
```bash
git clone https://github.com/genai-works-org/cloudera-mcp
cd cloudera-mcp
```

### Step 2: Install Dependencies
```bash
# Sync existing project dependencies
uv sync

# Install project in editable mode
uv pip install -e .
```

## Configuration

### Step 3: Create Environment Configuration
Create a `.env` file in the project root directory:

```bash
# Create .env file with your Cloudera credentials
cat > .env << EOF
# Cloudera Impala Configuration
IMPALA_HOST=your-coordinator-host.cloudera.site
IMPALA_PORT=443
IMPALA_USER=your-username
IMPALA_PASSWORD=your-password
IMPALA_DATABASE=default
IMPALA_AUTH_MECHANISM=LDAP
IMPALA_USE_HTTP_TRANSPORT=true
IMPALA_HTTP_PATH=cliservice
IMPALA_USE_SSL=true

EOF
```

### Step 4: Update Configuration Values
Edit the `.env` file with your actual credentials:

**For Cloudera Data Platform:**
- **IMPALA_HOST**: Your Cloudera coordinator hostname
- **IMPALA_USER**: Your Cloudera username  
- **IMPALA_PASSWORD**: Your Cloudera password
- **IMPALA_AUTH_MECHANISM**: Usually `LDAP` for CDP

**Example from JDBC connection string:**
```
jdbc:impala://coordinator-xyz123.dw-xyz123.cloudera.site:443/default;AuthMech=3;transportMode=http;httpPath=cliservice;ssl=1;UID=myuser;PWD=mypass
```
Converts to:
```bash
IMPALA_HOST=coordinator-xyz123.dw-xyz123.cloudera.site
IMPALA_PORT=443
IMPALA_USER=myuser
IMPALA_PASSWORD=mypass
IMPALA_AUTH_MECHANISM=LDAP 
```

## Verification

### Step 6: Test Database Connection
```bash
# Test database connectivity
uv run python -c "
import os
from dotenv import load_dotenv
load_dotenv()
from cloudera_mcp.tools.impala_tools import get_db_connection

try:
    conn = get_db_connection()
    print('Database connection successful')
    conn.close()
except Exception as e:
    print(f'Database connection failed: {e}')
"
```

### Step 7: Start the MCP Server
```bash
# Start the server
uv run python src/cloudera_mcp/server.py
```

**Expected output:**
```
Starting Iceberg MCP Server via Impala on port 8888
Server will be available at: http://localhost:8888/
INFO:     Started server process [46517]
INFO:     Waiting for application startup.
[07/09/25 01:23:53] INFO     StreamableHTTP session manager started                                                                                                   streamable_http_manager.py:112
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8888 (Press CTRL+C to quit)
```
