Dieser Service bietet grundlegende Rechnerfunktionen über das Model Context Protocol (MCP) mit Spring Boot und WebFlux-Transport an. Er ist als einfaches Beispiel für Einsteiger konzipiert, die MCP-Implementierungen kennenlernen möchten.
Weitere Informationen finden Sie in der MCP Server Boot Starter-Referenzdokumentation.
Der Service zeigt:
- Unterstützung für SSE (Server-Sent Events)
- Automatische Tool-Registrierung mittels der Spring AI
@ToolAnnotation - Grundlegende Rechnerfunktionen:
- Addition, Subtraktion, Multiplikation, Division
- Potenz- und Quadratwurzelberechnung
- Modulo (Rest) und Absolutwert
- Hilfefunktion zur Beschreibung der Operationen
Dieser Rechner-Service bietet folgende Möglichkeiten:
-
Grundlegende arithmetische Operationen:
- Addition von zwei Zahlen
- Subtraktion einer Zahl von einer anderen
- Multiplikation von zwei Zahlen
- Division einer Zahl durch eine andere (mit Überprüfung auf Division durch Null)
-
Erweiterte Operationen:
- Potenzberechnung (Basis hoch Exponent)
- Quadratwurzelberechnung (mit Prüfung auf negative Zahlen)
- Modulo-Berechnung (Restwert)
- Berechnung des Absolutwerts
-
Hilfesystem:
- Eingebaute Hilfefunktion, die alle verfügbaren Operationen erklärt
Der Service stellt über das MCP-Protokoll folgende API-Endpunkte bereit:
add(a, b): Addiert zwei Zahlensubtract(a, b): Subtrahiert die zweite Zahl von der erstenmultiply(a, b): Multipliziert zwei Zahlendivide(a, b): Dividiert die erste Zahl durch die zweite (mit Nullprüfung)power(base, exponent): Berechnet die Potenz einer ZahlsquareRoot(number): Berechnet die Quadratwurzel (mit Prüfung auf negative Zahl)modulus(a, b): Berechnet den Restwert bei Divisionabsolute(number): Berechnet den Absolutwerthelp(): Liefert Informationen über verfügbare Operationen
Ein einfacher Test-Client ist im com.microsoft.mcp.sample.client Paket enthalten. Die SampleCalculatorClient Klasse demonstriert die verfügbaren Operationen des Rechner-Services.
Das Projekt enthält einen LangChain4j Beispiel-Client in com.microsoft.mcp.sample.client.LangChain4jClient, der zeigt, wie der Rechner-Service mit LangChain4j und GitHub-Modellen integriert wird:
-
GitHub Token einrichten:
Um GitHubs KI-Modelle (wie phi-4) zu nutzen, benötigen Sie einen persönlichen Zugriffstoken von GitHub:
a. Gehen Sie zu Ihren GitHub-Kontoeinstellungen: https://github.com/settings/tokens
b. Klicken Sie auf „Generate new token“ → „Generate new token (classic)“
c. Vergeben Sie einen aussagekräftigen Namen für Ihren Token
d. Wählen Sie folgende Berechtigungen aus:
repo(Vollzugriff auf private Repositories)read:org(Lesen von Organisations- und Teammitgliedschaften, Lesen von Organisationsprojekten)gist(Erstellen von Gists)user:email(Zugriff auf Benutzer-E-Mail-Adressen (nur lesen))
e. Klicken Sie auf „Generate token“ und kopieren Sie Ihren neuen Token
f. Legen Sie ihn als Umgebungsvariable fest:
Unter Windows:
set GITHUB_TOKEN=your-github-tokenUnter macOS/Linux:
export GITHUB_TOKEN=your-github-tokeng. Für eine dauerhafte Einrichtung fügen Sie ihn über die Systemeinstellungen zu Ihren Umgebungsvariablen hinzu
-
Fügen Sie die LangChain4j GitHub-Abhängigkeit zu Ihrem Projekt hinzu (bereits in pom.xml enthalten):
<dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-github</artifactId> <version>${langchain4j.version}</version> </dependency>
-
Stellen Sie sicher, dass der Rechner-Server auf
localhost:8080läuft
Dieses Beispiel zeigt:
- Verbindung zum Rechner-MCP-Server über SSE-Transport
- Nutzung von LangChain4j zur Erstellung eines Chatbots, der Rechnerfunktionen verwendet
- Integration mit GitHub KI-Modellen (aktuell das phi-4 Modell)
Der Client sendet folgende Beispielanfragen, um die Funktionalität zu demonstrieren:
- Berechnung der Summe zweier Zahlen
- Berechnung der Quadratwurzel einer Zahl
- Abruf von Hilfsinformationen zu verfügbaren Rechner-Operationen
Führen Sie das Beispiel aus und überprüfen Sie die Konsolenausgabe, um zu sehen, wie das KI-Modell die Rechner-Tools zur Beantwortung der Anfragen nutzt.
Der LangChain4j Client ist so konfiguriert, dass er GitHubs phi-4 Modell mit folgenden Einstellungen verwendet:
ChatLanguageModel model = GitHubChatModel.builder()
.apiKey(System.getenv("GITHUB_TOKEN"))
.timeout(Duration.ofSeconds(60))
.modelName("phi-4")
.logRequests(true)
.logResponses(true)
.build();Um andere GitHub-Modelle zu verwenden, ändern Sie einfach den Parameter modelName auf ein anderes unterstütztes Modell (z.B. "claude-3-haiku-20240307", "llama-3-70b-8192" usw.).
Das Projekt benötigt folgende wichtige Abhängigkeiten:
<!-- For MCP Server -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server-webflux</artifactId>
</dependency>
<!-- For LangChain4j integration -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-mcp</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<!-- For GitHub models support -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-github</artifactId>
<version>${langchain4j.version}</version>
</dependency>Bauen Sie das Projekt mit Maven:
./mvnw clean install -DskipTestsjava -jar target/calculator-server-0.0.1-SNAPSHOT.jarDer MCP Inspector ist ein nützliches Tool zur Interaktion mit MCP-Services. So nutzen Sie ihn mit diesem Rechner-Service:
-
Installieren und starten Sie MCP Inspector in einem neuen Terminalfenster:
npx @modelcontextprotocol/inspector
-
Öffnen Sie die Weboberfläche, indem Sie auf die vom Programm angezeigte URL klicken (normalerweise http://localhost:6274)
-
Konfigurieren Sie die Verbindung:
- Wählen Sie als Transporttyp „SSE“
- Geben Sie die URL zum SSE-Endpunkt Ihres laufenden Servers ein:
http://localhost:8080/sse - Klicken Sie auf „Connect“
-
Verwenden Sie die Tools:
- Klicken Sie auf „List Tools“, um verfügbare Rechner-Operationen anzuzeigen
- Wählen Sie ein Tool aus und klicken Sie auf „Run Tool“, um eine Operation auszuführen
Das Projekt enthält eine Dockerfile für die containerisierte Bereitstellung:
-
Bauen Sie das Docker-Image:
docker build -t calculator-mcp-service . -
Starten Sie den Docker-Container:
docker run -p 8080:8080 calculator-mcp-service
Dies bewirkt:
- Erstellung eines mehrstufigen Docker-Images mit Maven 3.9.9 und Eclipse Temurin 24 JDK
- Erstellung eines optimierten Container-Images
- Exponierung des Services auf Port 8080
- Start des MCP-Rechner-Services im Container
Sie können den Service unter http://localhost:8080 erreichen, sobald der Container läuft.
-
Token-Berechtigungsprobleme: Wenn Sie einen 403 Forbidden-Fehler erhalten, prüfen Sie, ob Ihr Token die korrekten Berechtigungen gemäß den Voraussetzungen besitzt.
-
Token nicht gefunden: Wenn die Fehlermeldung „No API key found“ erscheint, stellen Sie sicher, dass die Umgebungsvariable GITHUB_TOKEN korrekt gesetzt ist.
-
Rate Limiting: Die GitHub API unterliegt Ratenbegrenzungen. Wenn Sie eine Fehlermeldung wegen Überschreitung der Rate (Statuscode 429) erhalten, warten Sie einige Minuten und versuchen Sie es erneut.
-
Token-Ablauf: GitHub-Tokens können ablaufen. Wenn nach einiger Zeit Authentifizierungsfehler auftreten, generieren Sie einen neuen Token und aktualisieren Sie die Umgebungsvariable.
Bei weiteren Fragen konsultieren Sie bitte die LangChain4j Dokumentation oder die GitHub API Dokumentation.
Haftungsausschluss:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst Co-op Translator übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache gilt als maßgebliche Quelle. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die durch die Nutzung dieser Übersetzung entstehen.
