Skip to main content
Glama
kartik-augusta

Redshift MCP Server

Redshift MCP Server

Dieser MCP-Server (Model Context Protocol) stellt einen sicheren, schreibgeschützten Zugriff auf Amazon-Redshift-Datenbanken für die Verwendung mit Claude Desktop und anderen MCP-kompatiblen Clients bereit. Als intelligente Brücke ermöglicht er KI-Assistenten, eigenständig Daten zu durchsuchen, zu verstehen und Erkenntnisse direkt aus Ihrem Data Warehouse zu gewinnen.

✨ Hauptfunktionen

  • 10 spezialisierte Tools: Eine umfassende Suite für Datenermittlung, Metadaten-Extraktion, Abfragen und Export.

  • Dynamische Konfiguration: Vollständig konfigurierbar über .env (Zulassungslisten, Zeilenlimits, Verbindungsparameter).

  • Transportmodi: Unterstützt sowohl stdio (für lokale Clients wie Claude Desktop) als auch sse (Server-Sent Events über HTTP für Remote-Verbindungen).

  • Verbindungs-Caching: Effizientes Verbindungsmanagement mit einer einzelnen langlebigen, auf Erreichbarkeit geprüften Verbindung zu Redshift.

  • Enterprise Security:

    • Strenge schreibgeschützte SQL-Validierung.

    • Schema-Zulassungsliste (schränkt die KI auf vorab freigegebene Schemata ein).

    • Harte Obergrenzen für Abfrage- und Export-Zeilenanzahlen zum Schutz der Datenbankleistung.

  • SSH-Tunnel-Support: Nahtlose Verbindung zu privaten Redshift-Clustern in einer VPC über einen integrierten sshtunnel.

Related MCP server: safedb-mcp

🛠️ Verfügbare MCP-Tools

Datenabruf & Navigation

  1. get_allowed_schemas: Gibt die Schema-Zugriffskonfiguration des Servers zurück (Zulassungsliste, Standard-Schema, Limits).

  2. list_schemas: Ermittelt zugängliche Schemata in der Datenbank (gefiltert nach der konfigurierten Zulassungsliste).

  3. list_tables: Listet alle Tabellen in einem Schema auf. Zugänglich sind nur Schemata der Zulassungsliste.

  4. describe_table: Liefert Spaltennamen, Datentypen, Nullability und Standardwerte einer Tabelle.

  5. search_columns: Durchsucht alle Tabellen zugelassener Schemata nach Spalten, deren Name einem Suchbegriff entspricht (ohne Beachtung der Groß-/Kleinschreibung).

Datenanalyse & Extraktion

  1. sample_data: Gibt schnell eine Stichprobe von Zeilen aus einer Tabelle zur Datenexploration zurück.

  2. table_row_count: Liefert die exakte Zeilenanzahl einer Tabelle über COUNT(*).

  3. query_data: Führt eine schreibgeschützte SELECT-Abfrage aus. Umschließt und begrenzt die Ergebnisse automatisch auf Basis der Serverkonfiguration.

  4. explain_query: Zeigt den EXPLAIN-Plan einer Abfrage an, um die Ausführungsleistung vorab zu verstehen.

  5. export_to_csv: Exportiert Abfrageergebnisse im CSV-Format mit einem höheren eigenen Zeilenlimit (MAX_EXPORT_ROWS).

🚀 Setup & Installation

1. Abhängigkeiten installieren

# Clone the repository
git clone <repository-url>
cd redshift-mcp-server

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

2. Umgebung konfigurieren

Kopieren Sie die Beispiel-Umgebungsdatei und passen Sie sie mit Ihren Zugangsdaten an:

cp .env.example .env

Bearbeiten Sie die Datei .env, um Ihre Redshift-Verbindung und Server-Limits zu konfigurieren:

# --- Redshift Connection ---
RS_HOST=your-cluster.region.redshift.amazonaws.com
RS_DB=your_database_name
RS_USER=your_readonly_user
RS_PASS=your_password
RS_PORT=5439

# --- Security & Limits ---
ALLOWED_SCHEMAS=gold_capsaai,report_capsaai
DEFAULT_SCHEMA=gold_capsaai
MAX_ROWS=500
MAX_EXPORT_ROWS=5000

# --- SSH Tunnel (For Private VPCs) ---
SSH_TUNNEL=false
# If true, provide SSH_HOST, SSH_USER, SSH_KEY_FILE, etc.

3. Server starten

Modus 1: stdio (Standard)

Am besten geeignet, wenn der MCP-Client (z. B. Claude Desktop) auf derselben Maschine läuft.

python server.py

Modus 2: sse (HTTP)

Am besten für den Fernzugriff auf den Server über HTTP oder Tunnel.

# Start SSE on port 8000
python server.py --sse --host 0.0.0.0 --port 8000

🔌 Verbindung mit dem Server herstellen

Option A: Lokaler Claude Desktop (stdio)

Wenn Ihr Claude Desktop auf derselben Maschine läuft wie der Server, bearbeiten Sie Ihre Claude-Desktop-Konfigurationsdatei:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "redshift": {
      "command": "/absolute/path/to/redshift-mcp-server/.venv/bin/python",
      "args": ["/absolute/path/to/redshift-mcp-server/server.py"]
    }
  }
}

Option B: Remote-Verbindung (SSE + IDE)

Wenn der Server auf einer entfernten EC2-Instanz läuft, starten Sie den Server im --sse-Modus.

Für IDEs, die direkte SSE-Verbindungen unterstützen (z. B. VS Code mit Cline):

  1. Fügen Sie einen neuen MCP-Server hinzu.

  2. Stellen Sie den Transporttyp auf SSE.

  3. Verwenden Sie die URL: http://<EC2-IP>:8000/sse (oder Ihre Tunnel-URL).

🧪 Testen & Validierung

Das Repository enthält eine umfassende Testsuite und Diagnosetools:

  • client.py: Ein CLI-Client, der einen End-to-End-Smoke-Test über alle 10 Tools ausführt.

  • test_connection.py: Basisvalidierung der Konnektivität.

  • test_restricted_access.py: Stellt sicher, dass die Schema-Sicherheitsbeschränkungen einwandfrei funktionieren.

  • monitor_mcp.sh: Produktionsreifes Monitoring mit automatischem Neustart, Health-Checks und Logging.

🏗️ Architektur

graph TB
    subgraph "Client Layer"
        CD["Claude Desktop / MCP Client"]
    end
    
    subgraph "MCP Server Layer"
        MCP["FastMCP Server"]
        CONFIG["config.py / .env"]
        VALIDATION["SQL & Schema Validation"]
    end
    
    subgraph "Network Layer"  
        SSH["SSH Tunnel<br/>(Optional)"]
        CONN["Connection Cache"]
    end
    
    subgraph "Database Layer"
        RS["Amazon Redshift"]
        SCHEMA["Allowed Schemas"]
    end
    
    CD -->|"JSON-RPC (stdio/sse)"| MCP
    MCP --> CONFIG
    MCP --> VALIDATION
    VALIDATION --> CONN
    CONN --> SSH
    SSH --> RS
    RS --> SCHEMA

🔐 Sicherheitshinweise

  • Read-only: Der _validate_read_only_sql-Wrapper schränkt Abfragen strikt auf SELECT- und EXPLAIN-Anweisungen ein.

  • Limits-Engine: Doppelte LIMIT-Syntaxfehler werden durch RegEx-Parsing in _apply_limit verhindert, wodurch große Tabellenscans zuverlässig auf Ihre .env-Schwelle begrenzt bleiben.

  • Schema-Isolierung: Die KI kann Tabellen außerhalb der durch Kommata getrennten ALLOWED_SCHEMAS-Liste weder einsehen noch abfragen.

  • Zugangsdaten schützen: Committen Sie Ihre .env- oder .json-Konfigurationsdateien niemals in die Versionsverwaltung. Sie werden standardmäßig in .gitignore ausgeschlossen.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A production-ready server that connects LLMs and AI agents (Claude, ChatGPT) to Amazon Redshift databases with configurable access controls and zero code changes.
    4
    -
  • A
    license
    A
    quality
    B
    maintenance
    Secure MCP server for safe, read-only DB access by AI agents, with SQL guardrails, table allowlists, PII masking, and audit logs
    6
    23 npm
    9
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A read-only MCP server for Amazon Redshift that leverages column comments for guided data discovery, with slash commands for profiling, exploration, and lineage.
    13
    1
    MIT