Skip to main content
Glama
arturborycki

Teradata MCP Server

by arturborycki

Teradata MCP-Server

Ein Model Context Protocol (MCP)-Server für Teradata-Datenbanken mit OAuth 2.1-Authentifizierung, mehreren Authentifizierungsmechanismen (TD2, LDAP, Kerberos) und interaktiver Datenvisualisierung.

Funktionen

  • Mehrere Authentifizierungsmechanismen — TD2 (Standard), LDAP, Kerberos, JWT über Teradata LOGMECH

  • OAuth 2.1 mit Keycloak-Integration, JWT-Validierung, bereichsbasierter Autorisierung

  • Metadaten für geschützte Ressourcen (RFC 9728-konform)

  • Interaktive Visualisierung — ECharts-basierte MCP-App mit 19 Diagrammtypen

  • Verbindungsstabilität — automatische Wiederholung mit exponentiellem Backoff

  • Nicht-blockierende E/A — alle Datenbankoperationen laufen über asyncio.to_thread()

  • Tool-spezifisches QueryBand — Audit-Trail für Teradata-Workload-Management

Tools

Abfrage-Tools

  • query — SQL-Abfragen ausführen, einfache tabellarische Ergebnisse zurückgeben

  • visualize_query — SQL ausführen und interaktive ECharts-Diagramme über die MCP-App rendern

Schema-Tools

  • list_db — Alle Datenbanken auflisten

  • list_tables — Tabellen/Ansichten in einer Datenbank auflisten

  • show_tables_details — Spaltennamen und -typen für eine Tabelle anzeigen

Analyse-Tools

  • list_missing_values — Spalten mit NULL-Wert-Anzahl

  • list_negative_values — Spalten mit negativer Wert-Anzahl

  • list_distinct_values — Anzahl der unterschiedlichen Kategorien pro Spalte

  • standard_deviation — Mittelwert und Standardabweichung für eine Spalte

MCP-App — Interaktive Visualisierung

Das Tool visualize_query rendert Ergebnisse als interaktive Diagramme im MCP-Client.

Kategorie

Diagramme

Balken

Basis, Gruppiert, Gestapelt, Horizontal, Sortiert, Wasserfall, Abgerundet, Polar

Linie

Basis, Glatt, Fläche, Gestapelte Fläche, Stufe

Kreis

Kreis, Donut, Rose / Nightingale

Streuung

Streuung, Blase

Gemischt

Balken + Linie

Schnellstart

Installation

git clone https://github.com/arturborycki/mcp-teradata.git
cd mcp-teradata
uv sync

Ausführung mit TD2 (Standard-Authentifizierung)

uv run teradata-mcp "teradatasql://user:password@host/database"

Oder über Umgebungsvariable:

export DATABASE_URI="teradatasql://user:password@host/database"
uv run teradata-mcp

Konfiguration

Claude Desktop

Fügen Sie dies zu Ihrer claude_desktop_config.json hinzu:

TD2 (Benutzername/Passwort)

{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://user:password@host/database"
      }
    }
  }
}

LDAP-Authentifizierung

{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://@host/database",
        "DB_LOGMECH": "LDAP",
        "DB_LOGDATA": "authcid=ldap_user password=ldap_password"
      }
    }
  }
}

Das authcid-Format hängt vom LDAP-Verzeichnis ab:

Verzeichnis

Format

Active Directory (Simple Bind)

authcid=user@domain.com

Active Directory (DIGEST-MD5)

authcid=DOMAIN\username

OpenLDAP / Sun DS

authcid=username

Kerberos-Authentifizierung

{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://@host/database",
        "DB_LOGMECH": "KRB5"
      }
    }
  }
}

OAuth-aktivierte Konfiguration

{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://user:password@host/database",
        "OAUTH_ENABLED": "true",
        "KEYCLOAK_URL": "https://your-keycloak.example.com",
        "KEYCLOAK_REALM": "teradata-realm",
        "KEYCLOAK_CLIENT_ID": "teradata-mcp",
        "KEYCLOAK_CLIENT_SECRET": "your-secret",
        "OAUTH_RESOURCE_SERVER_URL": "https://your-mcp-server.example.com"
      }
    }
  }
}

Umgebungsvariablen

Datenbankverbindung

Variable

Beschreibung

Standard

DATABASE_URI

Teradata-Verbindungs-URL (teradatasql://user:pass@host/db)

DB_LOGMECH

Authentifizierungsmechanismus: TD2, LDAP, KRB5, TDNEGO, JWT

TD2

DB_LOGDATA

LDAP/JWT-Anmeldedaten (z. B. authcid=user password=pass)

DB_SSL_MODE

TLS-Modus: ALLOW, PREFER, REQUIRE, VERIFY-CA, VERIFY-FULL

DB_ENCRYPT_DATA

Transportverschlüsselung aktivieren

true

Verbindungsstabilität

Variable

Beschreibung

Standard

DB_MAX_RETRIES

Maximale Wiederholungsversuche

3

DB_INITIAL_BACKOFF

Anfängliche Backoff-Verzögerung (Sekunden)

1.0

DB_MAX_BACKOFF

Maximale Backoff-Verzögerung (Sekunden)

30.0

MCP-Transport

Variable

Beschreibung

Standard

MCP_TRANSPORT

Transport: stdio, sse, streamable-http

stdio

MCP_HOST

Bind-Adresse für HTTP-Transporte

localhost

MCP_PORT

Port für HTTP-Transporte

8000

MCP_PATH

Pfad für streamable-http

/mcp/

OAuth 2.1

Variable

Beschreibung

Standard

OAUTH_ENABLED

OAuth-Authentifizierung aktivieren

false

KEYCLOAK_URL

Keycloak-Server-URL

KEYCLOAK_REALM

Keycloak-Realm-Name

KEYCLOAK_CLIENT_ID

OAuth-Client-ID

KEYCLOAK_CLIENT_SECRET

OAuth-Client-Secret

OAUTH_RESOURCE_SERVER_URL

Ressourcen-Server-URL

OAUTH_REQUIRED_SCOPES

Erforderliche Scopes (durch Kommas getrennt)

OAUTH_VALIDATE_AUDIENCE

Token-Audience validieren

true

OAUTH_VALIDATE_SCOPES

Token-Scopes validieren

true

OAUTH_REQUIRE_HTTPS

HTTPS für OAuth-URLs erzwingen

true

CORS_ALLOWED_ORIGINS

CORS-erlaubte Ursprünge

*

OAuth-Scopes

Scope

Beschreibung

teradata:read

Lesezugriff auf Datenbankressourcen

teradata:write

Schreibzugriff auf Datenbankressourcen

teradata:query

SQL-Abfragen ausführen

teradata:admin

Administrativer Zugriff

teradata:schema

Schema-Verwaltungsoperationen

Transport-Kompatibilität

Transport

OAuth

Discovery-Endpunkte

Anwendungsfall

stdio

N/A

N/A

Claude Desktop, CLI-Clients

SSE

Voll

Verfügbar

Webanwendungen

Streamable HTTP

Voll

Verfügbar

API-Integrationen

Discovery-Endpunkte (wenn OAuth aktiviert ist):

  • /.well-known/oauth-protected-resource — RFC 9728-Metadaten

  • /.well-known/mcp-server-info — MCP-Funktionen

  • /health — Gesundheitsprüfung

Docker-Bereitstellung

Entwicklung

docker compose up -d

Mit OAuth

docker compose -f docker-compose.oauth.yml up -d

Build

uv build

Fehlerbehebung

Probleme bei der Datenbankverbindung:

  • Überprüfen Sie das DATABASE_URI-Format: teradatasql://user:pass@host/database

  • Überprüfen Sie die Netzwerkkonnektivität zum Teradata-Server

  • Für LDAP: Stellen Sie sicher, dass DB_LOGMECH=LDAP und DB_LOGDATA korrekt gesetzt sind

  • Verbindungsprobleme werden automatisch wiederholt (konfigurierbar über DB_MAX_RETRIES)

LDAP-Authentifizierung schlägt fehl:

  • Überprüfen Sie, ob der Teradata-Server LDAP in TDGSS konfiguriert hat

  • Überprüfen Sie, ob das authcid-Format mit Ihrem Verzeichnistyp übereinstimmt

  • Maskieren Sie Sonderzeichen in Passwörtern (@\@, Leerzeichen → Anführungszeichen verwenden)

Zugriffsverweigerungsfehler:

  • Überprüfen Sie, ob der Benutzer über die erforderlichen OAuth-Scopes verfügt

  • Überprüfen Sie die Keycloak-Rollenzuweisungen

  • visualize_query erfordert den Scope teradata:query (nicht nur teradata:read)

Debug-Protokollierung:

export LOG_LEVEL=DEBUG
uv run teradata-mcp

Lizenz

MIT-Lizenz. Siehe LICENSE für Details.

Danksagungen

Install Server
A
security – no known vulnerabilities
F
license - not found
B
quality - B tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/arturborycki/mcp-teradata'

If you have feedback or need assistance with the MCP directory API, please join our Discord server