Teradata MCP Server
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
LOGMECHOAuth 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ückgebenvisualize_query— SQL ausführen und interaktive ECharts-Diagramme über die MCP-App rendern
Schema-Tools
list_db— Alle Datenbanken auflistenlist_tables— Tabellen/Ansichten in einer Datenbank auflistenshow_tables_details— Spaltennamen und -typen für eine Tabelle anzeigen
Analyse-Tools
list_missing_values— Spalten mit NULL-Wert-Anzahllist_negative_values— Spalten mit negativer Wert-Anzahllist_distinct_values— Anzahl der unterschiedlichen Kategorien pro Spaltestandard_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 syncAusfü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-mcpKonfiguration
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) |
|
Active Directory (DIGEST-MD5) |
|
OpenLDAP / Sun DS |
|
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 |
| Teradata-Verbindungs-URL ( | — |
| Authentifizierungsmechanismus: |
|
| LDAP/JWT-Anmeldedaten (z. B. | — |
| TLS-Modus: | — |
| Transportverschlüsselung aktivieren |
|
Verbindungsstabilität
Variable | Beschreibung | Standard |
| Maximale Wiederholungsversuche |
|
| Anfängliche Backoff-Verzögerung (Sekunden) |
|
| Maximale Backoff-Verzögerung (Sekunden) |
|
MCP-Transport
Variable | Beschreibung | Standard |
| Transport: |
|
| Bind-Adresse für HTTP-Transporte |
|
| Port für HTTP-Transporte |
|
| Pfad für streamable-http |
|
OAuth 2.1
Variable | Beschreibung | Standard |
| OAuth-Authentifizierung aktivieren |
|
| Keycloak-Server-URL | — |
| Keycloak-Realm-Name | — |
| OAuth-Client-ID | — |
| OAuth-Client-Secret | — |
| Ressourcen-Server-URL | — |
| Erforderliche Scopes (durch Kommas getrennt) | — |
| Token-Audience validieren |
|
| Token-Scopes validieren |
|
| HTTPS für OAuth-URLs erzwingen |
|
| CORS-erlaubte Ursprünge |
|
OAuth-Scopes
Scope | Beschreibung |
| Lesezugriff auf Datenbankressourcen |
| Schreibzugriff auf Datenbankressourcen |
| SQL-Abfragen ausführen |
| Administrativer Zugriff |
| 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 -dMit OAuth
docker compose -f docker-compose.oauth.yml up -dBuild
uv buildFehlerbehebung
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=LDAPundDB_LOGDATAkorrekt gesetzt sindVerbindungsprobleme 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 übereinstimmtMaskieren 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_queryerfordert den Scopeteradata:query(nicht nurteradata:read)
Debug-Protokollierung:
export LOG_LEVEL=DEBUG
uv run teradata-mcpLizenz
MIT-Lizenz. Siehe LICENSE für Details.
Danksagungen
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