MCP-Server

Prev Next

Hintergrund: MCP

MCP (Model Context Protocol) ist ein Framework, das es KI-Systemen (Künstliche Intelligenz) erleichtern soll, mit fremden Werkzeugen, Apps oder Datenquellen in standardisierter und sicherer Form zu kommunizieren.

Man kann sich MCP als ein Übersetzungswerkzeug oder eine Brücke vorstellen, über das ein beliebiges KI-Modell Informationen mit der Außenwelt in verständlicher Form austauschen und verarbeiten kann — z. B. zum Lesen eines Kalenders, als Zugriff auf eine Datenbank oder durch das Abrufen von ‘Live’-Daten über eine API.

Ohne MCP müsste man individuelle Schnittstellen für die Anbindung unterschiedlicher KI-Modelle anlegen, was rasch unübersichtlich wird und zu Inkonsistenzen führt.

MCP definiert stattdessen eine einheitliche Sprache und Struktur für diese Art von Verknüpfung, über die jedes konforme Werkzeug mit jedem konformen KI-System einfach verbunden werden kann.

Das Konzept von MCP berücksichtigt dabei Anforderungen bzgl. Datenschutz und Zugriffskontrolle: Benutzer entscheiden selbst, auf welche Werkzeuge (Tools) KI-Systeme zugriff erhalten und welche Daten dabei sichtbar sind.

Kurz und knapp ermöglicht MCP leistungsfähigere, flexiblere und engere Verbindungen mit KI-Systemen und gewährleistet gleichzeitig Sicherheit, Konsistenz und einfache Pflege.

Hintergrund: “REST API Definition“ vs. “MCP Server”

Die nachfolgenden Informationen betreffen die Klasse “MCP Server” (McpRestApi), die über das Feld “API” (api) in den Entitätstyp “REST API Definition” (RestApiDefinition) eingebunden wird, um über den Lobster Data Platform-Server Werkzeuge (Tools) für einen benutzerdefinierten MCP-Server bereitzustellen. Derselbe Entitätstyp “REST API Definition” (RestApiDefinition) kann alternativ auch verwendet werden, um REST-API-Endpunkte zu definieren, wenn stattdessen die Klasse “REST API” (RestApi) verwendet wird.

  • Der einheitliche Ausgangspunkt für die Verwaltung von jeglichen Instanzen des Entitätstyps “REST API Definition” (RestApiDefinition) ist per Standard der Menüeintrag API-Manager (gemeinsame Details s. dort).

  • Die nachfolgende Dokumentation behandelt spezifische Details für die Klasse “MCP Server” (McpRestApi).

    • Die Benutzeroberfläche ermöglicht den Zugriff auf diese Details im Kontext der Erfassungsmaske für den Entitätstyp “REST API Definition” (RestApiDefinition), die ausgehend vom API-Manager geöffnet werden kann.

    • Innerhalb der einheitlichen Erfassungsmaske (de.lobster.scm.api::RestApiDefinition|detailsWindow) enthält nur der Tab-Reiter “API” spezifische Inhalte für die Klasse “MCP-Server” (McpRestApi).

Tab-Reiter “API”

 HINWEIS  Aufbau und Funktion der Benutzeroberfläche im Tab “API” für die Klasse “MCP-Server” weichen nur in wenigen Details von der Benutzeroberfläche für die “REST-API” ab. Die nachfolgende Beschreibung zielt vor allem darauf ab, Abweichungen klarzustellen. Nicht alle für die allgemeinere “REST-API” erläuterten Details werden hier wiederholt.

 WICHTIG  Wo innerhalb einer REST-API von Endpunkten die Rede ist, spricht man im MCP-Server-Kontext von Tools.

Kopfbereich

Der Kopfbereich für “MCP-Server” beinhaltet nur ein einziges Textfeld, in dem die Basis-URI (baseUri) angegeben werden kann, die als “Basis-Adresse” für alle im Kontext der MCP-Server-Instanz definierten Tools gilt.

Tools-Liste

Unterhalb des Kopfbereichs listet in der linken Hälfte des Detailbereichs ein Datengrid-Element alle innerhalb der “REST API Definition” angelegten Werkzeuge (Tools) auf.

  • Für einen neu angelegten “MCP-Server” ist diese Liste leer. Über die beiden Buttons oben links im Detailbereich rechts von der Liste kann dieser ein Eintrag (Tool) hinzugefügt () oder der im Detailbereich angezeigte Eintrag entfernt () werden.

  • Liegen bereits Listeneinträge für Tools vor, dann kann per Klick in die Listenzeile ein einzelner Listeneintrag ausgewählt werden, um die zugehörigen Daten im Detailbereich anzuzeigen.

  • Beim ersten Betreten des Tab-Reiters ist initial kein Eintrag ausgewählt. der Detailbereich zeigt dann keine Detaildaten an.

  • Ein Klick in die Listenzeile für einen bereits ausgewählten Eintrag wählt diesen wieder ab, sodass der Detailbereich keine konkreten Daten mehr anzeigt.

  • Die Auswahl des anzuzeigenden Listeneintrags kann auch über Cursor-Tasten (↑↓) gesteuert werden, solange die Liste den Fokus hat. Dies ist daran erkennbar, dass der ausgewählte Listeneintrag in der Primärfarbe (s. Styles) hervorgehoben wird.

Die Liste kann gefiltert und sortiert werden. Die zugehörigen Einstellungen gelten allerdings nur bis die Erfassungsmaske geschlossen wird. Sie werden nicht als Benutzer-Einstellungen gespeichert.

Das Kontextmenü (rechts oben in der Liste) unterstützt folgende Funktionalitäten für Datengrids (s. Datengrid):

  • Sichtbarkeit von Spalten ändern (Einstellungen werden nicht gespeichert)

  • Listeneinstellungen zurücksetzen (wirkungslos, weil Einstellungen nicht gespeichert werden)

  • Liste exportieren

MCP Tool Definition-Detailbereich

Der Detailbereich für Tools (rechts neben der Tools-Liste) bietet Zugriff auf Detaildaten für das in der Liste ausgewählten Tool:

  • Der Kopf des Detailbereichs beherbergt neben den bereits erwähnten Buttons zum Hinzufügen () oder Entfernen () von Tools Formularelemente für den direkten (Name, Typ, etc.) oder indirekten (Button Erweiterte Einstellungen) Zugriff auf Eigenschaften des Tools.
     HINWEIS  Abhängig von bereits getroffenen Auswahl können in diesem Bereich Formularelemente erscheinen oder entfallen. Beim Entfall gehen ggf. eingegebene Daten dabei verloren.

    • Das Auswahlfeld/Combobox-Element für den Typ definiert den Eingabetyp für beim Aufruf des Tools übergebene Daten.

    • Für den Typ “Client-Objekt” (ASObject) erscheint zusätzlich der Button Client-Objektstruktur, über den eine Eigene Client-Objektstruktur oder eine im Kontext der “REST API Definition” (RestApiDefinition) angelegte “Private Struktur” (s. API-Manager) referenziert oder eine “Neue Client-Objektstruktur” für den Typ lokal angelegt werden kann.

  • Das Hauptfenster des Detailbereichs ist vertikal in zwei Bereiche geteilt:

    • Links visualisiert eine Baumansicht die Datenstruktur für das ausgewählte “MCP Tool Definition” (McpToolDefinition)-Datenobjekt. Zusätzlich erscheint ein Knoten für Deklarierte Variablen (Details s. unten), mit denen im Kontext des Aktionsblocks gearbeitet werden kann.

    • Rechts davon kann aus Ereignisaktionen ein Aktionsblock für die Ereignisbehandlung für das Tool aufgebaut werden (s. Konfiguration von Ereignisbehandlungen).

 HINWEIS  An der Grenze zwischen Kopf und Hauptfenster wird die URL für das Tool nach folgendem Schema angezeigt: <platform-url>/api/mcp/<baseUri>

  • <platform-url> ist dabei die URL unter die die aktuelle Client-Sitzung aufgebaut wurde.

  • <baseUri> ist eine Teilzeichenfolge der Gesamt-URL, der durch die Eigenschaft “Basis-URI” (baseUri) der Klasse “MCP-Server” (McpRestApi) einheitlich für alle zugehörigen Tools definiert werden kann.

Name (name)

Jedem Tool sollte ein sprechender “Name” (name) zugeordnet werden, da ein KI-System daraus den Verwendungszweck für das Tool erschließen können soll.

Eingabetyp (inputValueType, clientStructure)

Das Auswahlfeld/Combobox-Element für den “Typ” (inputType) definiert den Eingabetyp für den Aufruf des Tools.

Im Dropdown sind Datentypen unterschiedlicher Kategorien auswählbar (simple Werte wie Boolean,  komplexe Datenobjekte wie DateRange, konkrete Entitätstypen, übergeordnete Klassen, Schnittstellen, usw.).

Die Auswahl für den Eingabetyp ist optional. Ohne eine Auswahl wird formal der komplett unspezifische Datentyp “Objekt” (Object) herangezogen.

Besonderer Eingabetyp: “Client-Objekt” (ASObject)

Wenn als “Eingabetyp” der Typ “Client-Objekt” (ASObject) ausgewählt ist, erscheint rechts neben dem Auswahlfeld/Combobox-Element ein Button mit der Beschriftung “Client-Objektstruktur”, über den eine Client Objekt-Struktur Referenz (im Feld clientStructure) definiert werden kann. Der Klick auf den Button öffnet ein Popover-Element, mit dem eine vorhandene Definition für eine private oder öffentliche Client-Objekt-Struktur ausgewählt oder eine lokale (direkt im Popover) erstellt werden kann.

MCP Tool Definition - Erweiterte Einstellungen

Ein Klick auf den Button “Erweiterte Einstellungen” öffnet einen modalen Dialog, der Zugriff auf weitere Einstellmöglichkeiten für das Tool eröffnet:

  • Die Checkbox “Anonymer Zugriff” (allowAnonymousAccess) entscheidet darüber, ob das Tool für “Anonymen Zugriff” freigegeben werden soll oder nicht (Standard).
     ACHTUNG  Die Freigabe eines Tools für anonymen Zugriff sollte v. a. in einem öffentlich zugänglichen Produktivsystem nur in absoluten Ausnahmenfällen zugelassen werden. Das unbedachte oder missbräuchliche Auslösen von Operationen im Aktionsblock durch “anonyme Aufrufer” kann abhängig vom konfigurierten Workflow weitreichende Konsequenzen haben und sowohl die Datensicherheit als auch die Verfügbarkeit der Lobster Data Platform insgesamt gefährden (s. Abschnitt “Anonymer vs. autorisierter Zugriff“).

  • Das Textfeld “Titel” (title) kann optional mit einem informativem Klartext befüllt werden, der ggf. in MCP-Client-Tools oder entsprechenden Test-Hilfsmitteln das Tool identifiziert.

  • Das Textfeld “Beschreibung” (description) kann optional mit informativem Klartext befüllt werden, der typischerweise die Tool-Konfiguration dokumentiert.

 WICHTIG  Eine aussagekräftige “Beschreibung” für das Tool ist zusammen mit einem sinnhaften Namen die Voraussetzung dafür, dass ein KI-System das Tool bestimmungsgemäß einsetzen kann.

Richtlinien-Einstellungen (policySettings)

Die Handhabung für Richtlinien-Einstellungen (policySettings) entspricht der für REST API.

Deklarierte Variablen (Baumansicht)

Die Baumansicht links neben dem Aktionsblock spiegelt im oberen Bereich ausgewählte Merkmale der Datenstruktur für die Tool-Definition wieder.

Als letztes Element der obersten Hierarchiebene im “Baum” erscheint zusätzlich der Knoten “Deklarierte Variablen”, der informativ alle für den Aktionsblock deklarierten Variablen (inkl. Typhinweis) benennt.

Systemseitig ist nur eine Variable mit dem Namen response deklariert. Dieser kann im Aktionsblock optional ein Rückgabewert zugewiesen werden.

 HINWEIS  Wenn der Knoten weitere “Deklarierte Variable” als Einträge enthält, gehen diese auf Konfigurationen im Aktionsblock für das Tool zurück.

 ANMERKUNG  Die Aktualisierung der Baumansicht erfolgt während der Konfiguration ggf. erst “bei Berührung” des Baums (nach Änderungen im Aktionsblock).

Anonymer vs. autorisierter Zugriff

Die Zugriffkontrolle für Tools entspricht der für Endpunkte (siehe REST API).