Det här projektet visar hur man skapar en Java-klient som ansluter till och interagerar med en MCP (Model Context Protocol) server. I det här exemplet ansluter vi till kalkylatorsservern från Kapitel 01 och utför olika matematiska operationer.
Innan du kör den här klienten behöver du:
-
Starta Calculator Server från Kapitel 01:
- Navigera till katalogen för kalkylatorsservern:
03-GettingStarted/01-first-server/solution/java/ - Bygg och kör kalkylatorsservern:
cd ..\01-first-server\solution\java .\mvnw clean install -DskipTests java -jar target\calculator-server-0.0.1-SNAPSHOT.jar - Servern ska vara igång på
http://localhost:8080
- Navigera till katalogen för kalkylatorsservern:
-
Java 21 eller högre installerat på din dator
-
Maven (ingår via Maven Wrapper)
SDKClient är en Java-applikation som visar hur man:
- Ansluter till en MCP-server med Server-Sent Events (SSE) transport
- Listar tillgängliga verktyg från servern
- Anropar olika kalkylatorfunktioner på distans
- Hanterar svar och visar resultat
Klienten använder Spring AI MCP-ramverket för att:
- Etablera anslutning: Skapar en WebFlux SSE-klienttransport för att ansluta till kalkylatorsservern
- Initiera klient: Sätter upp MCP-klienten och etablerar anslutningen
- Upptäcka verktyg: Listar alla tillgängliga kalkylatoroperationer
- Utföra operationer: Anropar olika matematiska funktioner med exempeldata
- Visa resultat: Visar resultaten av varje beräkning
src/
└── main/
└── java/
└── com/
└── microsoft/
└── mcp/
└── sample/
└── client/
└── SDKClient.java # Main client implementation
Projektet använder följande viktiga beroenden:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server-webflux</artifactId>
</dependency>Det här beroendet tillhandahåller:
McpClient- Huvudgränssnittet för klientenWebFluxSseClientTransport- SSE-transport för webbaserad kommunikation- MCP-protokollens scheman samt förfrågnings- och svarstyper
Bygg projektet med Maven-wrappern:
.\mvnw clean installjava -jar .\target\calculator-client-0.0.1-SNAPSHOT.jarNote: Se till att kalkylatorsservern körs på http://localhost:8080 innan du kör något av dessa kommandon.
När du kör klienten kommer den att:
- Ansluta till kalkylatorsservern på
http://localhost:8080 - Lista verktyg - Visar alla tillgängliga kalkylatoroperationer
- Utföra beräkningar:
- Addition: 5 + 3 = 8
- Subtraktion: 10 - 4 = 6
- Multiplikation: 6 × 7 = 42
- Division: 20 ÷ 4 = 5
- Potens: 2^8 = 256
- Kvadratrot: √16 = 4
- Absolutvärde: |-5.5| = 5.5
- Hjälp: Visar tillgängliga operationer
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]
Note: Du kan se Maven-varningar om kvarvarande trådar i slutet – detta är normalt för reaktiva applikationer och indikerar inte något fel.
var transport = new WebFluxSseClientTransport(WebClient.builder().baseUrl("http://localhost:8080"));Detta skapar en SSE (Server-Sent Events) transport som ansluter till kalkylatorsservern.
var client = McpClient.sync(this.transport).build();
client.initialize();Skapar en synkron MCP-klient och initierar anslutningen.
CallToolResult resultAdd = client.callTool(new CallToolRequest("add", Map.of("a", 5.0, "b", 3.0)));Anropar verktyget "add" med parametrarna a=5.0 och b=3.0.
Om du får anslutningsfel, kontrollera att kalkylatorsservern från Kapitel 01 är igång:
Error: Connection refused
Lösning: Starta kalkylatorsservern först.
Om port 8080 är upptagen:
Error: Address already in use
Lösning: Stoppa andra program som använder port 8080 eller ändra servern till att använda en annan port.
Om du stöter på byggfel:
.\mvnw clean install -DskipTestsAnsvarsfriskrivning:
Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, vänligen observera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår vid användning av denna översättning.