DOAG Datenbank Kolumne: Model Context Protocol und PostgreSQL Server

  • Erstellt von Andreas Buckenhofer
  • Datenbank Kolumne, Datenbank

Das Model Context Protocol (MCP) ist ein im Jahr 2024 von Anthropic entwickelter offener Standard, der die Integration von KI-Modellen, insbesondere großen Sprachmodellen (LLMs), mit externen Tools/Produkten und Datenquellen standardisiert und vereinfacht.

Es dient als universeller Konnektor, der eine bidirektionale Kommunikation zwischen Modellen und externen Systemen ermöglicht.

MCP basiert auf einer Client-Server-Architektur:

  • MCP Server: Stellt Zugriff auf externe Tools und Daten bereit.
  • MCP Client: Verbindet KI-Modelle mit den Servern und leitet Anfragen sowie Antworten weiter.
  • Host-Anwendungen: Binden Modelle und Clients ein, um komplexe Workflows zu ermöglichen (z. B. in Anwendungen wie Claude Desktop, Visual Studio Code, usw.)

 

Doch was hat MCP mit Datenbanken zu tun?

MCP ermöglicht die Integration von Datenbanken in KI-gesteuerte Workflows, indem es eine standardisierte Schnittstelle für die Interaktion zwischen KI-Modellen und Datenbankressourcen bereitstellt. Wenn eine Datenbank als MCP-Server hinzugefügt wird, so können Daten in natürlicher Sprache abgefragt werden und das LLM übernimmt die Konvertierung in SQL. Insbesondere Endanwender können dadurch mit einer Datenbank interagieren, ohne deren bevorzugtes Tool wechseln zu müssen. Voraussetzung ist natürlich, dass das „bevorzugte“ Tool MCP-fähig ist. Doch hier ist aktuell zu beobachten, dass viele Tools/Produkte MCP-fähig gemacht werden, z.B. Github, Visual Studio Code, PostgreSQL, SQlite, PowerBI, ...

Im folgenden Beispiel wird in Visual Studio Code eine Verbindung zu PostgreSQL als MCP-Server konfiguriert, um Abfragen in natürlicher Sprache durchführen zu können.

1.) Im ersten Schritt wird eine Datei .vscode/mcp.json benötigt
 

{

  "servers": {

    "postgres": {

      "command": "npx",

      "args": [

          "-y",

         "@modelcontextprotocol/server-postgres",

          "postgresql://postgres:<pwd>@localhost:5432/postgres?connect_timeout=20"

      ],

  }

  }

}

 

2.) Nach dem Öffnen der Datei in Visual Studio Code kann der Server gestartet werden.

siehe Abbildung 1 rechts (zum Vergrößern bitte anklicken)

3.) Mittels Ctrl-Alt-I wird das Chat-Fenster in Visual Studio Code geöffnet, sodass mit der Datenbank natürlichsprachlich kommuniziert werden kann. Dabei muss Agent im Chat Fenster ausgewählt sein (siehe im Screenshot rechts unten). Als Beispiel erfolgt eine Abfrage welche User-Schemata existieren (staging, landing, core). 

siehe Abbildung 2 rechts (zum Vergrößern bitte anklicken)

MCP ist ein nicht einmal ein Jahr alter technischer Standard, der bereits durch eine Vielzahl von Tools/Produkten unterstützt wird. Die Integration von KI-Modellen mit externen Tools/Produkten und Datenquellen birgt jedoch mehrere Sicherheitsrisiken, die insbesondere bei der Implementierung und Nutzung berücksichtigt werden müssen, z.B.:

  • Prompt Injection
  • Fehlende Authentifizierungsstandards
  • Sensitive Daten, die an ein öffentlich gehostetes LLM gesendet werden
  • Token-Diebstahl, Account-Übernahme

MCP bietet viel Potenzial, aber ohne robuste Sicherheitsstandards besteht ein erhebliches Risiko für Datenmissbrauch und Systemkompromittierung.

Andreas Buckenhofer

 

Zur Person

Ich arbeite bei Adam Riese GmbH als Senior Data Architect. Ich bin stets an einem technischen Austausch zu meinen Schwerpunkten wie Datenarchitekturen, Datenbanken, AI, Data Lakehouse, Data Governance interessiert. In der DOAG bin ich aktives Mitglied in der Datenbank Community für Themen rund um Data Governance & Sovereignty. Kontakt: Andreas.Buckenhofer@adam-riese.de

© Gerd Altmann, Pixabay
Abbildung 1© Andreas Buckenhofer
Abbildung 2© Andreas Buckenhofer