11.0+KI26.5 MCP-Server

QF-Test integriert künstliche Intelligenz zur Optimierung von Testautomatisierungs-Workflows und ermöglicht es KI-Systemen, Tests direkt zu steuern und zu beobachten. Als MCP-Server stellt QF-Test seine Funktionen - einschließlich Browser- und Anwendungssteuerung, Benutzeroberflächen-Interaktion und Prozedurausführung - für KI-Assistenten wie Claude Desktop oder Cursor zur Verfügung.

Das Model Context Protocol (MCP) ist ein offener Standard für strukturierte Kommunikation zwischen KI-Clients und externen Werkzeugen oder Diensten. QF-Test implementiert dieses Protokoll als MCP-Server und stellt seine Testautomatisierungs-Engine für jeden MCP-kompatiblen KI-Client zur Verfügung. Durch diese Integration können KI-Clients Browser und Desktop-Anwendungen steuern, mit Benutzeroberflächen-Elementen interagieren und QF-Test Prozeduren mit natürlicher Sprache ausführen. Darüber hinaus ist es möglich, zusätzliche MCP-Tools zu definieren und QF-Test damit zu einem universellen MCP-Server für jede steuerbare Anwendung zu machen.

26.5.1 QF-Test MCP-Server einrichten

Der QF-Test MCP-Server kann sowohl im interaktiven als auch im Batch-Modus aktiviert werden.

Im interaktiven Modus wird der Optionendialog verwendet: Navigieren Sie zu »Künstliche Intelligenz« - »MCP & Agentenfähigkeiten«, aktivieren Sie »MCP-Server aktivieren«, legen Sie den gewünschten Port fest (Standard: 5543, siehe "MCP-Server Port"), und klicken Sie auf »OK«. Falls QF-Test auf derselben Maschine wie der QF-Test Lizenz-Server ausgeführt wird, muss ein alternativer Port zu 5543 verwendet werden, um Konflikte zu vermeiden.

Im Batch-Modus wird QF-Test von der Kommandozeile mit qftest -batch -mcp or -mcp=port gestartet, um ihn headless mit aktivem MCP-Server auszuführen.

Der Standard-MCP-Endpunkt ist dann unter http://127.0.0.1:5543/mcp verfügbar. Der Verbindungstyp ist streamable HTTP.

Um Claude Desktop zu verbinden, wird der folgende Eintrag zu claude_desktop_config.json hinzugefügt. Die Datei finden Sie über »Config bearbeiten« in der Rubrik »Entwickler« der Claude Einstellungen.

{
  "mcpServers": {
    "qftest": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:5543/mcp"]
    }
  }
}
Beispiel 26.6:  Claude Desktop MCP-Konfiguration (claude_desktop_config.json)

Um Claude Code CLI zu verbinden, wird der folgende Befehl ausgeführt und Claude Code neu gestartet:

claude mcp add --transport http qftest http://localhost:5543/mcp
Beispiel 26.7:  Verbinden von Claude Code CLI mit dem MCP-Server

Um Cursor zu verbinden, wird der folgende Eintrag zu mcp.json hinzugefügt. Die Datei finden Sie über "Neuer MCP Server" in der Rubrik "Tools & MCPs" der Cursor Einstellungen.

{
  "mcpServers": {
    "qftest": {
      "url": "http://localhost:5543/mcp"
    }
  }
}
Beispiel 26.8:  Cursor MCP-Konfiguration (mcp.json)

Um AnythingLLM zu verbinden, navigieren Sie zu »Settings«-»Agent Skills«, klicken Sie auf das "Edit"-Symbol neben "MCP Servers" und fügen Sie den folgenden Eintrag zum mcpServers Objekt hinzu:

{
  "mcpServers": {
    "qftest": {
      "type": "streamable",
      "url": "http://localhost:5543/mcp"
    }
  }
}
Beispiel 26.9:  AnythingLLM MCP-Konfiguration

Um OpenCode zu verbinden, wird der folgende Eintrag zu opencode.json hinzugefügt. Die Datei befindet sich für eine globale Konfiguration unter ~/.config/opencode/opencode.json oder im Projektstammverzeichnis für eine projektspezifische Konfiguration.

{
  "mcp": {
    "qftest": {
      "type": "remote",
      "url": "http://localhost:5543/mcp"
    }
  }
}
Beispiel 26.10:  OpenCode MCP-Konfiguration (opencode.json)

26.5.2 Vordefinierte MCP-Tools

Der QF-Test MCP-Server stellt die folgenden Tools von Haus aus zur Verfügung.

Titel Tool-Name Beschreibung
Get Version get_version Gibt die QF-Test Versionsnummer zurück.
Execute Procedure call_procedure Führt eine Prozedur aus einer Testsuite aus.
Run Test run_test Führt einen Testfall oder ein Testset aus einer Testsuite-Datei aus.
Start Test start_test Startet einen Testfall oder ein Testset aus einer Testsuite-Datei, ohne auf den Abschluss zu warten.
Stop Test stop_test Stoppt den aktuell laufenden Test, falls vorhanden.
Get Execution State get_execution_state Liefert den Ausführungsstatus des aktuellen Tests (untätig, geplant, laufend, pausiert, beendet).
Save Run Log save_run_log Speichert das Protokoll des zuletzt abgeschlossenen Laufs in eine Datei.
Open Run Log open_run_log Öffnet eine QF-Test-Run-Log-Datei in QF-Test.
Log Message log_message Schreibt eine Meldung mit konfigurierbarem Typ in das Run Log: message, warning, error, check-ok oder check-failed.
Open Browser browser-open Öffnet einen Browser und navigiert zu einer URL.
Test Browser Connection browser-test_connection Gibt true zurück, wenn der Browser gerade offen und steuerbar ist.
Open the given URL in the opened Browser browser-navigate_to Navigiert den offenen Browser zu einer URL.
Get Browser URL browser-get_url Gibt die aktuelle URL des geöffneten Browsers zurück.
Execute Javascript browser-exec_js Führt Javascript-Code im Browserfenster aus.
Upload File browser-upload_file Interagiert mit einem Datei-Upload-Element im Browser.
Close Browser browser-close Schließt den ausgeführten Browser.
Start Application application-start Startet eine Anwendung und verbindet QF-Test damit.
Stop Application application-stop Beendet die gesteuerte Anwendung.
Test Application Connection application-test_connection Gibt true zurück, wenn die Anwendung ausgeführt wird und steuerbar ist.
Open Android Device mobile-android-open_device Verbindet sich mit einem laufenden Android-Gerät oder startet einen Android-Emulator.
List Android Devices mobile-android-list_devices Listet Android-Geräte (simuliert oder real) auf, die derzeit für Tests verfügbar sind.
Open iOS Device mobile-ios-open_device Startet ein simuliertes iOS-Gerät oder verbindet sich mit einem echten iOS-Gerät.
List iOS Devices mobile-ios-list_devices Listet iOS-Geräte (iPhones, iPads, simuliert oder real) auf, die für Tests verfügbar sind.
Start mobile Application mobile-start_application Startet eine Anwendung auf einem geöffneten mobilen Gerät (Android oder iOS).
List mobile Applications mobile-list_applications Listet alle Anwendungen auf dem Android- oder iOS-Gerät auf.
Open PDF pdf-open Öffnet den QF-Test-PDF-Viewer und zeigt eine angegebene PDF-Datei an.
Current Page pdf-current_page Gibt den Namen oder die Nummer der aktuell im PDF-Viewer angezeigten Seite zurück.
Get Pages pdf-get_pages Gibt eine Liste aller verfügbaren Seiten des im PDF-Viewer angezeigten Dokuments zurück.
Select Page pdf-select_page Wählt eine bestimmte Seite der PDF-Datei im Viewer aus.
Get UI Elements of the connected Application ui-get_snapshot Gibt einen JSON-Baum der aktuellen Benutzeroberflächen-Elemente zurück.
Get detailed Information of the Element ui-get_element_details Gibt ein JSON-Objekt mit detaillierten Informationen zu einem einzelnen Benutzeroberflächen-Element und seinen untergeordneten Elementen zurück, einschließlich Abmessungen und Attribute. Das Element wird über seine Element-ID identifiziert und die Tiefe der untergeordneten Hierarchie kann festgelegt werden.
Click on the Element ui-click_on_element Klickt auf ein Benutzeroberflächen-Element, das durch seine Element-ID identifiziert wird.
Start a drag-and-drop operation on the Element ui-drag_from_element Startet einen Drag-and-Drop-Vorgang von einem Benutzeroberflächen-Element.
End a drag-and-drop operation on the Element ui-drop_on_element Beendet einen Drag-and-Drop-Vorgang auf einem Benutzeroberflächen-Element.
Click on the given Position ui-click_on_coordinates Klickt auf x,y-Koordinaten innerhalb eines Fensters.
Start a drag-and-drop on the given Position ui-drag_from_coordinates Startet einen Drag-and-Drop-Vorgang von x,y-Koordinaten.
End a drag-and-drop on the given Position ui-drop_on_coordinates Beendet einen Drag-and-Drop-Vorgang bei x,y-Koordinaten.
Enter text in an Element ui-enter_text Gibt Text in ein Benutzeroberflächen-Element ein.
Get Client Screenshot get_client_screenshot Gibt einen Screenshot des gesamten Fensters der Anwendung oder eines bestimmten Elements zurück.
Get Display Screenshot get_display_screenshot Gibt einen Screenshot des gesamten Bildschirms zurück.
Tabelle 26.1:  Vordefinierte MCP-Tools

26.5.3 Benutzerdefinierte MCP-Tools und Prompts erstellen

Jede QF-Test Prozedur kann als MCP-Tool verfügbar gemacht werden, indem Doctags zu ihrem Kommentar hinzugefügt werden. Die Testsuite-Datei, die die Prozedur enthält, muss in der Tabelle »Testsuiten, die MCP-Prozeduren enthalten« aufgeführt werden, die im Optionendialog zu finden ist: Navigieren Sie zu »Künstliche Intelligenz« - »Agentenfähigkeiten«.

Die Datei qfs-ai.qft ist standardmäßig enthalten, um die vordefinierten MCP-Tools bereitzustellen.

Um benutzerdefinierte MCP-Tool-Suites zu erstellen, wird @mcp/tool zur Bemerkung der Prozedur hinzugefügt, um sie als MCP-Tool zu kennzeichnen. Prompts können auch erstellt werden, indem @mcp/prompt zur Bemerkung der Prozedur hinzugefügt wird. Der Name des Tools oder des Prompts wird automatisch vom Prozedurnamen abgeleitet, indem dieser in Kleinbuchstaben konvertiert und Leerzeichen sowie Sonderzeichen durch Unterstriche ersetzt werden. @mcp/name gefolgt vom gewünschten Namen wird verwendet, um den automatisch generierten Namen zu überschreiben.

Die Beschreibung des Tools oder des Prompts wird aus der Prozedurbeschreibung abgeleitet, die durch verfügbare Doctags erstellt wird. @param paramName description wird verwendet, um jeden Parameter zu dokumentieren. Wenn die Beschreibung mit dem Schlüsselwort (Required) beginnt, so wird der Parameter als notwendig markiert. @return description wird verwendet, um den Rückgabewert zu beschreiben. Auch für rein ausführende Prozeduren wird empfohlen, einen Wert zurückzugeben, der die erfolgte Ausführung beschreibt. @mcp/timeout millis wird verwendet, um ein benutzerdefiniertes Ausführungs-Timeout in Millisekunden festzulegen. @mcp/exposedByDefault false wird verwendet, um ein Tool oder einen Prompt zu definieren, das nicht aktiv ist, sofern es nicht explizit über die KI-Sicherheits-Optionen aktiviert wird.

Pakete, die mit @mcp/name annotiert werden, werden dem Tool- oder Prompt-Namen vorangestellt. Um alle Prozeduren in einem Paket auf einmal als Tools oder Prompts verfügbar zu machen, wird der Paketkommentar mit @mcp/tools oder @mcp/prompts annotiert. Verschachtelte Pakete erhalten automatisch ein Präfix für ihre Tools und Prompts. Das verschachtelte Paket wird mit @mcp/name annotiert, um sein Präfix im Tool- oder Prompt-Namen zu überschreiben.

Beispiel-Prozedurkommentar:

Mein benutzerdefiniertes Such-Tool

@param   query         Erforderlich. Der Suchbegriff zum Nachschlagen.
@param   maxResults    Maximale Anzahl der zurückzugebenden Ergebnisse.
@return  Eine Liste der gefundenen Produktnamen.

@mcp/tool
@mcp/name search_product
Beispiel 26.11:  Beispiel-Prozedurkommentar für ein MCP-Tool
Doctag Auswirkung
@mcp/tool Macht die Prozedur als MCP-Tool verfügbar.
@mcp/prompt Macht die Prozedur als Prompt verfügbar.
@mcp/tools (in einem Paket) Macht alle Prozeduren im Paket als MCP-Tools verfügbar.
@mcp/prompts (in einem Paket) Macht alle Prozeduren im Paket als Prompts verfügbar.
@mcp/name name Überschreibt den automatisch generierten Tool- oder Prompt-Namen.
@mcp/timeout millis Legt ein benutzerdefiniertes Ausführungs-Timeout in Millisekunden für die Tool-Ausführung auf der Server-Seite fest.
@mcp/exposedByDefault true/false/mcp/internal Das Tool oder der Prompt wird bei anderen Werten als true standardmäßig nicht im MCP-Server oder intern verfügbar gemacht. Es kann aber explizit über die KI-Sicherheits-Optionen aktiviert werden.
@param name description Beschreibt einen Parameter.
@return description Beschreibt den Rückgabewert des Tools oder des Prompts.
Tabelle 26.2:  Doctags für die Definition von MCP-Tools und Prompts

26.5.4 Sicherheitshinweise

26.5.4.1 Haftungsausschluss

HinweisÜber MCP aufgerufene Prozeduren laufen mit den vollen Berechtigungen Ihres Systembenutzers. Sie können beliebige Dateien, auf die Ihr Benutzerkonto Zugriff hat, ändern, löschen oder lesen. Überprüfen und testen Sie alle Prozeduren, bevor Sie diese als MCP-Prompt oder MCP-Tool markieren.

26.5.4.2 Empfehlungen zur Sicherheit

Beachten Sie diese Hinweise beim Schreiben von Prozeduren, die über MCP aufgerufen werden: