Tento projekt ukazuje, ako vytvoriť Java klienta, ktorý sa pripája a komunikuje so serverom MCP (Model Context Protocol). V tomto príklade sa pripojíme k serveru kalkulačky z kapitoly 01 a vykonáme rôzne matematické operácie.
Pred spustením tohto klienta je potrebné:
-
Spustiť server kalkulačky z kapitoly 01:
- Prejdite do adresára servera kalkulačky:
03-GettingStarted/01-first-server/solution/java/ - Skompilujte a spustite server kalkulačky:
cd ..\01-first-server\solution\java .\mvnw clean install -DskipTests java -jar target\calculator-server-0.0.1-SNAPSHOT.jar - Server by mal bežať na adrese
http://localhost:8080
- Prejdite do adresára servera kalkulačky:
-
Mať nainštalovanú Javu 21 alebo novšiu
-
Mať k dispozícii Maven (zahrnutý cez Maven Wrapper)
SDKClient je Java aplikácia, ktorá demonštruje, ako:
- Pripojiť sa k MCP serveru pomocou Server-Sent Events (SSE) transportu
- Získať zoznam dostupných nástrojov zo servera
- Vzdialene volať rôzne funkcie kalkulačky
- Spracovať odpovede a zobraziť výsledky
Klient využíva Spring AI MCP framework na:
- Nadviazanie spojenia: Vytvorí WebFlux SSE klienta na pripojenie k serveru kalkulačky
- Inicializáciu klienta: Nastaví MCP klienta a nadviaže spojenie
- Objavenie nástrojov: Zobrazí všetky dostupné operácie kalkulačky
- Vykonanie operácií: Zavolá rôzne matematické funkcie s ukážkovými dátami
- Zobrazenie výsledkov: Ukáže výsledky jednotlivých výpočtov
src/
└── main/
└── java/
└── com/
└── microsoft/
└── mcp/
└── sample/
└── client/
└── SDKClient.java # Main client implementation
Projekt používa nasledujúce hlavné závislosti:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server-webflux</artifactId>
</dependency>Táto závislosť poskytuje:
McpClient- Hlavné rozhranie klientaWebFluxSseClientTransport- SSE transport pre webovú komunikáciu- MCP protokolové schémy a typy požiadaviek/odpovedí
Projekt zostavte pomocou Maven wrappera:
.\mvnw clean installjava -jar .\target\calculator-client-0.0.1-SNAPSHOT.jarPoznámka: Pred spustením týchto príkazov sa uistite, že server kalkulačky beží na http://localhost:8080.
Po spustení klienta:
- Pripojí sa k serveru kalkulačky na
http://localhost:8080 - Zobrazí nástroje - vypíše všetky dostupné operácie kalkulačky
- Vykoná výpočty:
- Sčítanie: 5 + 3 = 8
- Odčítanie: 10 - 4 = 6
- Násobenie: 6 × 7 = 42
- Delenie: 20 ÷ 4 = 5
- Mocnina: 2^8 = 256
- Druhá odmocnina: √16 = 4
- Absolútna hodnota: |-5.5| = 5.5
- Pomocník: Zobrazí dostupné operácie
Available Tools = ListToolsResult[tools=[Tool[name=add, description=Add two numbers together, ...], ...]]
Add Result = CallToolResult[content=[TextContent[text="5,00 + 3,00 = 8,00"]], isError=false]
Subtract Result = CallToolResult[content=[TextContent[text="10,00 - 4,00 = 6,00"]], isError=false]
Multiply Result = CallToolResult[content=[TextContent[text="6,00 * 7,00 = 42,00"]], isError=false]
Divide Result = CallToolResult[content=[TextContent[text="20,00 / 4,00 = 5,00"]], isError=false]
Power Result = CallToolResult[content=[TextContent[text="2,00 ^ 8,00 = 256,00"]], isError=false]
Square Root Result = CallToolResult[content=[TextContent[text="√16,00 = 4,00"]], isError=false]
Absolute Result = CallToolResult[content=[TextContent[text="|-5,50| = 5,50"]], isError=false]
Help = CallToolResult[content=[TextContent[text="Basic Calculator MCP Service\n\nAvailable operations:\n1. add(a, b) - Adds two numbers\n2. subtract(a, b) - Subtracts the second number from the first\n..."]], isError=false]
Poznámka: Na konci sa môžu zobraziť varovania Maven o pretrvávajúcich vláknach – je to bežné pri reaktívnych aplikáciách a neznamená to chybu.
var transport = new WebFluxSseClientTransport(WebClient.builder().baseUrl("http://localhost:8080"));Týmto sa vytvorí SSE (Server-Sent Events) transport, ktorý sa pripojí k serveru kalkulačky.
var client = McpClient.sync(this.transport).build();
client.initialize();Vytvorí sa synchronný MCP klient a inicializuje sa spojenie.
CallToolResult resultAdd = client.callTool(new CallToolRequest("add", Map.of("a", 5.0, "b", 3.0)));Volá sa nástroj "add" s parametrami a=5.0 a b=3.0.
Ak sa vyskytne chyba pripojenia, uistite sa, že server kalkulačky z kapitoly 01 beží:
Error: Connection refused
Riešenie: Najprv spustite server kalkulačky.
Ak je port 8080 obsadený:
Error: Address already in use
Riešenie: Zastavte iné aplikácie používajúce port 8080 alebo upravte server, aby používal iný port.
Ak sa vyskytnú chyby pri zostavovaní:
.\mvnw clean install -DskipTestsVyhlásenie o zodpovednosti:
Tento dokument bol preložený pomocou AI prekladateľskej služby Co-op Translator. Hoci sa snažíme o presnosť, prosím, majte na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.