Skip to content

Latest commit

 

History

History
120 lines (98 loc) · 2.92 KB

File metadata and controls

120 lines (98 loc) · 2.92 KB

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)

# 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

git clone https://github.com/genai-works-org/cloudera-mcp
cd cloudera-mcp

Step 2: Install Dependencies

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

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

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

# 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

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