Führen Sie Integrationstests für den awaBerry MCP-Server durch – validieren Sie den Serverstart, die Tool-Registrierung und die End-to-End-Ausführung von...
Diese Seite beschreibt den Prozess zum gründlichen Testen des awaBerry MCP-Servers über seine beiden primären Transportmechanismen: JSON/HTTP und Standard I/O (Stdio). Beide Testabläufe beinhalten die Konfiguration notwendiger Umgebungsvariablen wie mcpServerUrl, projectKey, projectSecret und deviceName. Für die JSON/HTTP-Version validieren Tests die Sitzungsinitialisierung, die Werkzeugauflistung, die Geräteverbindung und die Ausführung von Terminalbefehlen gegen einen HTTP-Endpunkt. Die Stdio-Version führt ähnliche Validierungen durch, indem sie direkt über Standardeingabe/-ausgabe kommuniziert und Client-Interaktionen von Anwendungen wie Claude Desktop simuliert. Die Tests stellen sicher, dass die Kernfunktionalitäten des Servers betriebsbereit und korrekt konfiguriert sind.
Diese Anleitung erklärt, wie die verschiedenen Transportversionen des awaBerry MCP-Servers getestet werden.
Bevor Sie beginnen, befolgen Sie bitte die Anweisungen im Ordner ../httpservertest, um sicherzustellen, dass die zugrunde liegenden API-Methoden mit Ihrer Projektkonfiguration korrekt funktionieren.
Dieser Test führt den MCP-Server über einen HTTP-Endpunkt aus, der über JSON kommuniziert.
Fügen Sie in der Datei .env im Stammverzeichnis dieses Projekts die folgende Zeile hinzu:
Hinweis: Wenn Ihr Server bereits in einer anderen Umgebung bereitgestellt ist (z. B. Cloudflare), ist es nicht notwendig, den lokalen Server zu starten.
mcpServerUrl="http://localhost:3000/mcp"
Stellen Sie sicher, dass die Datei .env auch die folgenden erforderlichen Umgebungsvariablen enthält, die vom Testskript verwendet werden:
projectKey: Der eindeutige Schlüssel Ihres Projekts.projectSecret: Das Geheimnis Ihres Projekts zur Authentifizierung.deviceName: Der Name des Geräts, mit dem eine Verbindung hergestellt werden soll.Führen Sie in Ihrem ersten Terminal im Stammverzeichnis des Projekts Folgendes aus:
npm run start:mcp:json
Sie sollten eine Ausgabe ähnlich der folgenden sehen, die anzeigt, dass der Server läuft:
> mcp_server_awaberry@1.0.0 start:mcp
> node mcpserver/awaBerryAgenticMcpServerHttpJson.js
awaberry-mcp-server läuft auf http://localhost:3000/mcp
Führen Sie in einem zweiten Terminal im Stammverzeichnis des Projekts Folgendes aus:
npm run test:mcp:json
Dieser Befehl führt das Skript testMcpServerJson.js aus, das mit dem laufenden JSON-Server interagiert, indem es JSON-RPC 2.0-Anfragen sendet. Der Test führt die folgenden Schritte aus:
initialize-Anfrage mit Protokollversion und Client-Informationen.tools/list-Anfrage, um eine Liste der verfügbaren Werkzeuge vom Server abzurufen.connect_to_device mit projectKey, projectSecret und deviceName auf, um eine Geräteverbindung herzustellen und einen sessionToken sowie eine deviceuuid zu erhalten.execute_terminal_command unter Verwendung des erhaltenen sessionToken und der deviceuuid auf, um einen Beispielbefehl (z. B. date) auf dem verbundenen Gerät auszuführen.Dieser Test führt den MCP-Server über Standardeingabe/-ausgabe (stdio) aus, was der Modus ist, der von Clients wie Claude Desktop verwendet wird.
Stellen Sie sicher, dass Ihre Datei .env die folgenden erforderlichen Umgebungsvariablen enthält, ähnlich wie beim JSON/HTTP-Test, da diese für die Geräteverbindung entscheidend sind:
projectKey: Der eindeutige Schlüssel Ihres Projekts.projectSecret: Das Geheimnis Ihres Projekts zur Authentifizierung.deviceName: Der Name des Geräts, mit dem eine Verbindung hergestellt werden soll.Führen Sie in Ihrem ersten Terminal im Stammverzeichnis des Projekts Folgendes aus:
npm run start:mcp:stdio
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
> mcp_server_awaberry@1.0.0 start:mcp:stdio
> node mcpserver/awaBerryAgenticMcpServerStdio.js
awaberry-mcp-server läuft auf stdio
Führen Sie in einem zweiten Terminal im Stammverzeichnis des Projekts Folgendes aus:
npm run test:mcp:stdio
Dieser Befehl führt das Skript testMcpServerLocalStdio.js aus. Dieses Skript startet den stdio MCP-Server als Kindprozess und kommuniziert mit ihm, indem es JSON-RPC 2.0-Anfragen an seine Standardeingabe schreibt und Antworten von seiner Standardausgabe liest. Der Test führt die folgenden Schritte aus:
initialize-Anfrage, um eine Sitzung herzustellen.connect_to_device auf und stellt projectKey, projectSecret und deviceName bereit, um eine Geräteverbindung herzustellen und den erforderlichen sessionToken sowie die deviceuuid zu erhalten.execute_terminal_command mit dem erworbenen sessionToken und der deviceuuid, um einen Testbefehl (z. B. date) auszuführen.