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 gestartet,
um ihn headless mit aktivem MCP-Server auszuführen.
-mcp or -mcp=port
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"]
}
}
} 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
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"
}
}
}
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"
}
}
}
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"
}
}
} 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. |
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
| 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. |
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:
- Parametereingaben validieren und bereinigen: Eingabedaten niemals ohne Prüfung vertrauen
- Path-Traversal verhindern: auf
..in Dateipfaden prüfen, absolute Pfade bevorzugen