Teradata MCP Server

by Teradata
MIT License
2
  • Apple

Integrations

  • Enables configuration management through environment variables stored in .env files, supporting database connection parameters, LLM credentials, and server settings.

  • Supports integration with OpenAI models through API key configuration, enabling LLM capabilities within the server environment.

  • Provides database interaction capabilities with Teradata systems, offering tools for querying, data quality assessment, and database administration tasks such as executing queries, retrieving table structures, analyzing space usage, and performing data quality checks.

Teradata MCP-Servervorlage

Überblick

Der Teradata MCP-Server ist ein Open-Source-Projekt. Wir freuen uns über Beiträge über Pull Requests.

Wir bieten drei Werkzeugsätze an

  1. td_base_tools:
    • execute_read_query – führt eine Leseabfrage aus
    • execute_write_query – führt eine Schreibabfrage aus
    • read_table_DDL – gibt die Ergebnisse der Tabellenanzeige zurück
    • read_database_list - gibt eine Liste aller Datenbanken zurück
    • read_table_list – gibt eine Liste von Tabellen in einer Datenbank zurück
    • read_column_description – gibt die Beschreibung der Spalten in einer Tabelle zurück
    • read_table_preview - gibt Spalteninformationen und 5 Zeilen aus der Tabelle zurück
  2. td_dba_tools:
    • read_sql_list – gibt eine Liste der zuletzt ausgeführten SQL-Befehle für einen Benutzer zurück
    • read_table_space – gibt den CurrentPerm-Tabellenbereich zurück
    • read_database_space – gibt den zugewiesenen Speicherplatz, den verwendeten Speicherplatz und den verwendeten Prozentsatz für eine Datenbank zurück
    • read_database_version – gibt die Datenbankversionsinformationen zurück
  3. td_data_quality_tools:
    • missing_values - gibt eine Liste von Spaltennamen mit fehlenden Werten zurück
    • negative_values - gibt eine Liste von Spaltennamen mit negativen Werten zurück
    • distinct_categories – gibt eine Liste von Kategorien innerhalb einer Spalte zurück
    • standard_deviation – gibt den Mittelwert und die Standardabweichung für eine Spalte zurück

Wir haben außerdem einen Abschnitt „custom_tools“ erstellt, der die einfache Hinzufügung der Entwicklung von Kundentools ermöglicht.

Das Testverzeichnis enthält ein einfaches ClientChatBot-Tool zum Testen von Tools.

Umgebungseinrichtung

Schritt 1 – Die Umgebung wurde zusammengestellt, vorausgesetzt, Sie haben das UV-Paket auf Ihrem lokalen Rechner installiert. Installationsanweisungen für UV finden Sie unter https://github.com/astral-sh/uv

Schritt 2 - Klonen Sie das MCP-Server-Repository mit

Unter Windows

mkdir MCP cd MCP git clone https://github.com/Teradata/teradata-mcp-server.git cd teradata-mcp-server uv sync source .venv/Scripts/activate

Auf dem Mac

mkdir MCP cd MCP git clone https://github.com/Teradata/teradata-mcp-server.git cd teradata-mcp-server uv sync source .venv/bin/activate

Schritt 3 - Sie müssen die .env-Datei aktualisieren

  • Benennen Sie die Umgebungsdatei in .env um
  • Die Datenbank-URI hat das folgende Format: teradata://Benutzername:Passwort@Host:1025/Datenbankname. Verwenden Sie ClearScape Analytics Experience https://www.teradata.com/getting-started/demos/clearscape-analytics
    • der Benutzername muss aktualisiert werden
    • das Passwort muss aktualisiert werden
    • der Teradata-Host muss aktualisiert werden
    • der Datenbankname muss aktualisiert werden
  • LLM-Anmeldeinformationen müssen verfügbar sein, damit der Code /test/pydanticaiBedrock.py funktioniert
  • SSE-Einstellung
    • SSE: Boolescher Wert, um zu bestimmen, ob Ihr Server den SSE-Transport (SSE = True) oder den Standardtransport (SSE = False) verwendet.
    • SSE_HOST: IP-Adresse, unter der der Server zu finden ist, Standard sollte 127.0.0.1 sein
    • SSE_PORT: Portadresse, unter der der Server gefunden werden kann, Standard sollte 8001 sein

Beispiel einer .env-Datei

############################################ DATABASE_URI=teradata://username:password@host:1025/databasename SSE=False SSE_HOST=127.0.0.1 SSE_PORT=8001 ############################################ aws_access_key_id= aws_secret_access_key= aws_session_token= aws_region_name= ############################################ OPENAI_API_KEY=

Testen Ihres Servers mit MCP Inspector

Schritt 1 - Starten Sie den Server und geben Sie Folgendes in Ihr Terminal ein

uv run mcp dev ./src/teradata_mcp_server/server.py

HINWEIS: Wenn Sie dies auf einem Windows-Computer ausführen und npx-, npm- oder node.js-Fehler erhalten, installieren Sie die erforderliche node.js-Software von hier: https://github.com/nodists/nodist

Schritt 2 - Öffnen Sie den MCP-Inspektor

  • Sie sollten das Inspector-Tool öffnen und zu http://127.0.0.1:6274 gehen.
  • Klicken Sie auf Werkzeuge
  • Klicken Sie auf Listentools
  • Klicken Sie auf read_database_list
  • Klicken Sie auf Ausführen

Testen Sie die anderen Tools. Jedes sollte ein erfolgreiches Ergebnis liefern.

Strg+C, um den Server im Terminal zu stoppen

Hinzufügen Ihres Servers zu einem Agenten mit stdio

Schritt 1 - Bestätigen Sie, dass das SSE-Flag in der .env-Datei auf „False“ gesetzt wurde

SSE=False

Schritt 2 - Ändern Sie das Skript ./test/ClientChatBot.py so, dass es auf den Installationsort des Servers verweist. Dazu müssen Sie die folgende Zeile ändern

td_mcp_server = MCPServerStdio('uv', ["--directory", "/Users/Daniel.Tehan/Code/MCP/teradata-mcp-server/src/teradata_mcp_server", "run", "server.py"])

Schritt 2 – Führen Sie das Skript ./test/ClientChatBot.py aus. Dadurch wird eine interaktive Sitzung mit dem Agenten erstellt, der Zugriff auf den MCP-Server hat.

Von einem Terminal.

uv run ./test/ClientChatBot.py
  • Bitten Sie den Agenten, die Datenbanken aufzulisten
  • Bitten Sie den Agenten, die Tabelle in einer Datenbank aufzulisten
  • Bitten Sie den Agenten, alle Objekte in einer Datenbank anzuzeigen
  • Stellen Sie dem Agenten eine Frage, für deren Ausführung SQL für eine Tabelle erforderlich ist
  • Geben Sie zum Beenden „quit“ ein.

Hinzufügen von Tools mit stdio zu Visual Studio Code Co-Pilot

  • Bestätigen Sie, dass das SSE-Flag in der .env-Datei auf „False“ gesetzt wurde
SSE=False
  • In VS Code: „Befehle anzeigen und ausführen“
  • wählen Sie „MCP: Server hinzufügen“
  • wählen Sie "Command Stdio"
  • Geben Sie beim Ausführen des Befehls „uv“ ein
  • Geben Sie den Namen des Servers für die ID ein
  • Die Datei settings.json sollte geöffnet werden
  • Ändern Sie den Verzeichnispfad und stellen Sie sicher, dass er auf den Ort verweist, an dem Sie den Server installiert haben
  • Fügen Sie die Argumente hinzu, sodass es wie folgt aussieht:
"mcp": { "servers": { "TeradataStdio": { "type": "stdio", "command": "uv", "args": [ "--directory", "/Users/Daniel.Tehan/Code/MCP/teradata-mcp-server/src/teradata_mcp_server/, "run", "server.py" ] } } }
  • Sie können den Server aus der Datei „settings.json“ heraus starten oder „MCP: Server starten“ verwenden.

Hinzufügen von Tools mit SSE zu Visual Studio Code Co-Pilot

  • Bestätigen Sie, dass das SSE-Flag in der .env-Datei auf „False“ gesetzt wurde
SSE=True SSE_HOST=127.0.0.1 SSE_PORT=8001
  • Sie müssen den Server von einem Terminal aus starten
uv run ./src/teradata_mcp_server/server.py
  • In VS Code: „Befehle anzeigen und ausführen“
  • wählen Sie „MCP: Server hinzufügen“
  • Wählen Sie „Vom HTTP-Server gesendete Ereignisse“
  • Geben Sie die URL für den Standort des Servers ein, z. B. http://127.0.0.1:8001/sse
  • Geben Sie den Namen des Servers für die ID ein
  • Benutzerbereich auswählen
  • Die Datei settings.json sollte geöffnet werden
  • Fügen Sie die Argumente hinzu, sodass es wie folgt aussieht:
"mcp": { "servers": { "TeradataSSE": { "type": "sse", "url": "http://127.0.0.1:8001/sse" } } }
  • in der Datei settings.json oder Sie können "MCP: Server starten" verwenden.

Verfügbarmachen von Tools als REST-Endpunkte mit mcpo

Sie können mcpo verwenden, um dieses MCP-Tool als OpenAPI-kompatiblen HTTP-Server verfügbar zu machen.

Beispiel mit uv: uvx mcpo --port 8001 --api-key "top-secret" -- uv run src/teradata_mcp_server/server.py

Ihre Teradata-Tools sind jetzt als lokale REST-Endpunkte verfügbar. Sehen Sie sich die Dokumentation an und testen Sie sie unter http://localhost:8001/docs

Verwenden des Servers mit Open WebUI

Open WebUI ist eine benutzerfreundliche, selbstgehostete KI-Plattform, die vollständig offline betrieben werden kann und verschiedene LLM-Runner wie Ollama unterstützt. Sie bietet eine komfortable Möglichkeit zur Interaktion mit LLMs und MCP-Servern über eine intuitive Benutzeroberfläche. Die Integration in diesen MCP-Server erfolgt über die Komponente mcpo .

Führen Sie zuerst mcpo wie im obigen Abschnitt angegeben aus.

python -m venv ./env source ./env/bin/activate pip install open-webui open-webui serve

Greifen Sie unter http://localhost:8080 auf die Benutzeroberfläche zu. Um die MCP-Tools hinzuzufügen, navigieren Sie zu Einstellungen > Tools > Verbindung hinzufügen und geben Sie Ihre MCPO-Serververbindungsdetails ein (z. B. localhost:8001 , Kennwort = top-secret , wenn Sie die Befehlszeile im MCPO-Abschnitt ausgeführt haben).

Sie sollten die Tools im Abschnitt „Chat-Steuerventile“ auf der rechten Seite sehen und Ihre Modelle dazu bringen können, sie zu verwenden.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Ein Server, der Tools zum Abfragen und Analysieren von Teradata-Datenbanken bereitstellt, einschließlich Datenbankverwaltung, Bewertung der Datenqualität und SQL-Ausführungsfunktionen über eine MCP-Schnittstelle.

  1. Überblick
    1. Umgebungseinrichtung
      1. Testen Ihres Servers mit MCP Inspector
        1. Hinzufügen Ihres Servers zu einem Agenten mit stdio
          1. Hinzufügen von Tools mit stdio zu Visual Studio Code Co-Pilot
            1. Hinzufügen von Tools mit SSE zu Visual Studio Code Co-Pilot
              1. Verfügbarmachen von Tools als REST-Endpunkte mit mcpo
                1. Verwenden des Servers mit Open WebUI

                  Related MCP Servers

                  • -
                    security
                    A
                    license
                    -
                    quality
                    An MCP server that connects to Supabase PostgreSQL databases, exposing table schemas as resources and providing tools for data analysis through SQL queries.
                    Last updated -
                    JavaScript
                    MIT License
                  • -
                    security
                    F
                    license
                    -
                    quality
                    This is a Model Context Protocol (MCP) server for executing SQL queries against Databricks using the Statement Execution API. It enables AI assistants to directly query Databricks data warehouses, analyze database schemas, and retrieve query results in a structured format
                    Last updated -
                    4
                    Python
                    • Linux
                    • Apple
                  • -
                    security
                    A
                    license
                    -
                    quality
                    Open source MCP server specializing in easy, fast, and secure tools for Databases.
                    Last updated -
                    872
                    Go
                    Apache 2.0
                    • Linux
                  • -
                    security
                    -
                    license
                    -
                    quality
                    An MCP server that allows working with MySQL databases by providing tools for executing read-only SQL queries, getting table schemas, and listing database tables.
                    Last updated -
                    1
                    JavaScript

                  View all related MCP servers

                  ID: q8kueash24