Ova usluga pruža osnovne operacije kalkulatora putem Model Context Protocol (MCP) koristeći Spring Boot s WebFlux transportom. Dizajnirana je kao jednostavan primjer za početnike koji uče o MCP implementacijama.
Za više informacija, pogledajte referentnu dokumentaciju MCP Server Boot Starter.
Usluga prikazuje:
- Podršku za SSE (Server-Sent Events)
- Automatsku registraciju alata koristeći Spring AI's
@Toolanotaciju - Osnovne funkcije kalkulatora:
- Zbrajanje, oduzimanje, množenje, dijeljenje
- Izračunavanje potencije i kvadratnog korijena
- Modulus (ostatak) i apsolutna vrijednost
- Pomoćna funkcija za opise operacija
Ova kalkulator usluga nudi sljedeće mogućnosti:
-
Osnovne Aritmetičke Operacije:
- Zbrajanje dvaju brojeva
- Oduzimanje jednog broja od drugog
- Množenje dvaju brojeva
- Dijeljenje jednog broja s drugim (s provjerom dijeljenja s nulom)
-
Napredne Operacije:
- Izračunavanje potencije (podizanje baze na eksponent)
- Izračunavanje kvadratnog korijena (s provjerom negativnih brojeva)
- Izračunavanje modusa (ostatka)
- Izračunavanje apsolutne vrijednosti
-
Sustav Pomoći:
- Ugrađena pomoćna funkcija koja objašnjava sve dostupne operacije
Usluga izlaže sljedeće API krajnje točke putem MCP protokola:
add(a, b): Zbroji dva brojasubtract(a, b): Oduzmi drugi broj od prvogmultiply(a, b): Pomnoži dva brojadivide(a, b): Podijeli prvi broj s drugim (s provjerom nule)power(base, exponent): Izračunaj potenciju brojasquareRoot(number): Izračunaj kvadratni korijen (s provjerom negativnog broja)modulus(a, b): Izračunaj ostatak pri dijeljenjuabsolute(number): Izračunaj apsolutnu vrijednosthelp(): Dobij informacije o dostupnim operacijama
Jednostavan test klijent uključen je u com.microsoft.mcp.sample.client paket. SampleCalculatorClient klasa demonstrira dostupne operacije kalkulator usluge.
Projekt uključuje primjer klijenta LangChain4j u com.microsoft.mcp.sample.client.LangChain4jClient koji demonstrira kako integrirati kalkulator uslugu s LangChain4j i GitHub modelima:
-
Postavljanje GitHub Tokena:
Da biste koristili GitHub AI modele (poput phi-4), trebate GitHub osobni pristupni token:
a. Idite na postavke svog GitHub računa: https://github.com/settings/tokens
b. Kliknite "Generate new token" → "Generate new token (classic)"
c. Dajte svom tokenu opisno ime
d. Odaberite sljedeće opsege:
repo(Potpuna kontrola privatnih repozitorija)read:org(Čitanje članstva u organizaciji i timu, čitanje projekata organizacije)gist(Stvaranje gista)user:email(Pristup korisničkim email adresama (samo za čitanje))
e. Kliknite "Generate token" i kopirajte svoj novi token
f. Postavite ga kao varijablu okruženja:
Na Windowsu:
set GITHUB_TOKEN=your-github-tokenNa macOS/Linux:
export GITHUB_TOKEN=your-github-tokeng. Za trajno postavljanje, dodajte ga u varijable okruženja putem postavki sustava
-
Dodajte LangChain4j GitHub ovisnost u svoj projekt (već uključeno u pom.xml):
<dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-github</artifactId> <version>${langchain4j.version}</version> </dependency>
-
Osigurajte da kalkulator server radi na
localhost:8080
Ovaj primjer demonstrira:
- Povezivanje s kalkulator MCP serverom putem SSE transporta
- Korištenje LangChain4j za stvaranje chat bota koji koristi kalkulator operacije
- Integraciju s GitHub AI modelima (sada koristeći phi-4 model)
Klijent šalje sljedeće uzorke upita za demonstraciju funkcionalnosti:
- Izračunavanje zbroja dvaju brojeva
- Pronalaženje kvadratnog korijena broja
- Dobivanje informacija o dostupnim kalkulator operacijama
Pokrenite primjer i provjerite izlaz u konzoli kako biste vidjeli kako AI model koristi alate kalkulatora za odgovaranje na upite.
LangChain4j klijent je konfiguriran za korištenje GitHub phi-4 modela sa sljedećim postavkama:
ChatLanguageModel model = GitHubChatModel.builder()
.apiKey(System.getenv("GITHUB_TOKEN"))
.timeout(Duration.ofSeconds(60))
.modelName("phi-4")
.logRequests(true)
.logResponses(true)
.build();Za korištenje različitih GitHub modela, jednostavno promijenite modelName parametar u drugi podržani model (npr. "claude-3-haiku-20240307", "llama-3-70b-8192", itd.).
Projekt zahtijeva sljedeće ključne ovisnosti:
<!-- 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>Izgradite projekt koristeći Maven:
./mvnw clean install -DskipTestsjava -jar target/calculator-server-0.0.1-SNAPSHOT.jarMCP Inspector je koristan alat za interakciju s MCP uslugama. Za korištenje s ovom kalkulator uslugom:
-
Instalirajte i pokrenite MCP Inspector u novom terminalskom prozoru:
npx @modelcontextprotocol/inspector
-
Pristupite web sučelju klikom na URL prikazan od strane aplikacije (obično http://localhost:6274)
-
Konfigurirajte vezu:
- Postavite tip transporta na "SSE"
- Postavite URL na SSE krajnju točku vašeg pokrenutog servera:
http://localhost:8080/sse - Kliknite "Connect"
-
Koristite alate:
- Kliknite "List Tools" za prikaz dostupnih kalkulator operacija
- Odaberite alat i kliknite "Run Tool" za izvršavanje operacije
Projekt uključuje Dockerfile za kontejnersko postavljanje:
-
Izgradite Docker sliku:
docker build -t calculator-mcp-service . -
Pokrenite Docker kontejner:
docker run -p 8080:8080 calculator-mcp-service
Ovo će:
- Izgraditi višestupanjsku Docker sliku s Maven 3.9.9 i Eclipse Temurin 24 JDK
- Stvoriti optimiziranu sliku kontejnera
- Izložiti uslugu na portu 8080
- Pokrenuti MCP kalkulator uslugu unutar kontejnera
Možete pristupiti usluzi na http://localhost:8080 kada kontejner radi.
-
Problemi s dozvolama tokena: Ako dobijete 403 Forbidden grešku, provjerite da vaš token ima ispravne dozvole kako je navedeno u preduvjetima.
-
Token nije pronađen: Ako dobijete grešku "No API key found", osigurajte da je GITHUB_TOKEN varijabla okruženja ispravno postavljena.
-
Ograničenje brzine: GitHub API ima ograničenja brzine. Ako naiđete na grešku ograničenja brzine (statusni kod 429), pričekajte nekoliko minuta prije nego što pokušate ponovno.
-
Istek tokena: GitHub tokeni mogu isteći. Ako primite greške pri autentifikaciji nakon nekog vremena, generirajte novi token i ažurirajte svoju varijablu okruženja.
Ako trebate dodatnu pomoć, provjerite LangChain4j dokumentaciju ili GitHub API dokumentaciju.
Odricanje odgovornosti:
Ovaj dokument je preveden koristeći AI uslugu prevođenja Co-op Translator. Iako se trudimo da postignemo točnost, molimo vas da budete svjesni da automatski prijevodi mogu sadržavati greške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za ključne informacije preporučuje se profesionalni prijevod od strane ljudskog prevoditelja. Ne odgovaramo za nesporazume ili pogrešna tumačenja koja mogu proizaći iz korištenja ovog prijevoda.
