Questo servizio offre operazioni di calcolatrice base tramite il Model Context Protocol (MCP) utilizzando Spring Boot con trasporto WebFlux. È progettato come esempio semplice per chi inizia a imparare le implementazioni MCP.
Per maggiori informazioni, consulta la documentazione di riferimento MCP Server Boot Starter.
Il servizio mostra:
- Supporto per SSE (Server-Sent Events)
- Registrazione automatica degli strumenti tramite l’annotazione
@Tooldi Spring AI - Funzioni base della calcolatrice:
- Addizione, sottrazione, moltiplicazione, divisione
- Calcolo della potenza e radice quadrata
- Modulo (resto) e valore assoluto
- Funzione di aiuto per la descrizione delle operazioni
Questo servizio calcolatrice offre le seguenti funzionalità:
-
Operazioni Aritmetiche Base:
- Addizione di due numeri
- Sottrazione di un numero da un altro
- Moltiplicazione di due numeri
- Divisione di un numero per un altro (con controllo divisione per zero)
-
Operazioni Avanzate:
- Calcolo della potenza (elevare una base a un esponente)
- Calcolo della radice quadrata (con controllo su numeri negativi)
- Calcolo del modulo (resto)
- Calcolo del valore assoluto
-
Sistema di Aiuto:
- Funzione di aiuto integrata che spiega tutte le operazioni disponibili
Il servizio espone i seguenti endpoint API tramite il protocollo MCP:
add(a, b): Somma due numerisubtract(a, b): Sottrae il secondo numero dal primomultiply(a, b): Moltiplica due numeridivide(a, b): Divide il primo numero per il secondo (con controllo zero)power(base, exponent): Calcola la potenza di un numerosquareRoot(number): Calcola la radice quadrata (con controllo su numeri negativi)modulus(a, b): Calcola il resto della divisioneabsolute(number): Calcola il valore assolutohelp(): Fornisce informazioni sulle operazioni disponibili
Un semplice client di test è incluso nel package com.microsoft.mcp.sample.client. La classe SampleCalculatorClient dimostra le operazioni disponibili del servizio calcolatrice.
Il progetto include un esempio di client LangChain4j in com.microsoft.mcp.sample.client.LangChain4jClient che mostra come integrare il servizio calcolatrice con LangChain4j e i modelli GitHub:
-
Configurazione del Token GitHub:
Per usare i modelli AI di GitHub (come phi-4), è necessario un token di accesso personale GitHub:
a. Vai alle impostazioni del tuo account GitHub: https://github.com/settings/tokens
b. Clicca su "Generate new token" → "Generate new token (classic)"
c. Dai un nome descrittivo al token
d. Seleziona i seguenti ambiti:
repo(Controllo completo dei repository privati)read:org(Lettura di organizzazioni e membri del team, lettura progetti org)gist(Creazione di gist)user:email(Accesso agli indirizzi email utente (sola lettura))
e. Clicca su "Generate token" e copia il nuovo token
f. Impostalo come variabile d’ambiente:
Su Windows:
set GITHUB_TOKEN=your-github-tokenSu macOS/Linux:
export GITHUB_TOKEN=your-github-tokeng. Per una configurazione persistente, aggiungilo alle variabili d’ambiente tramite le impostazioni di sistema
-
Aggiungi la dipendenza LangChain4j GitHub al tuo progetto (già inclusa in pom.xml):
<dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-github</artifactId> <version>${langchain4j.version}</version> </dependency>
-
Assicurati che il server calcolatrice sia in esecuzione su
localhost:8080
Questo esempio dimostra:
- Connessione al server MCP calcolatrice tramite trasporto SSE
- Uso di LangChain4j per creare un chatbot che sfrutta le operazioni della calcolatrice
- Integrazione con i modelli AI GitHub (ora usando il modello phi-4)
Il client invia le seguenti query di esempio per mostrare le funzionalità:
- Calcolo della somma di due numeri
- Calcolo della radice quadrata di un numero
- Richiesta di informazioni di aiuto sulle operazioni disponibili
Esegui l’esempio e controlla l’output della console per vedere come il modello AI utilizza gli strumenti della calcolatrice per rispondere alle richieste.
Il client LangChain4j è configurato per usare il modello phi-4 di GitHub con le seguenti impostazioni:
ChatLanguageModel model = GitHubChatModel.builder()
.apiKey(System.getenv("GITHUB_TOKEN"))
.timeout(Duration.ofSeconds(60))
.modelName("phi-4")
.logRequests(true)
.logResponses(true)
.build();Per usare modelli GitHub diversi, cambia semplicemente il parametro modelName con un altro modello supportato (es. "claude-3-haiku-20240307", "llama-3-70b-8192", ecc.).
Il progetto richiede le seguenti dipendenze principali:
<!-- 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>Compila il progetto usando Maven:
./mvnw clean install -DskipTestsjava -jar target/calculator-server-0.0.1-SNAPSHOT.jarMCP Inspector è uno strumento utile per interagire con i servizi MCP. Per usarlo con questo servizio calcolatrice:
-
Installa e avvia MCP Inspector in una nuova finestra terminale:
npx @modelcontextprotocol/inspector
-
Accedi all’interfaccia web cliccando sull’URL mostrato dall’app (tipicamente http://localhost:6274)
-
Configura la connessione:
- Imposta il tipo di trasporto su "SSE"
- Imposta l’URL sull’endpoint SSE del server in esecuzione:
http://localhost:8080/sse - Clicca su "Connect"
-
Usa gli strumenti:
- Clicca su "List Tools" per vedere le operazioni calcolatrice disponibili
- Seleziona uno strumento e clicca su "Run Tool" per eseguire un’operazione
Il progetto include un Dockerfile per il deployment containerizzato:
-
Costruisci l’immagine Docker:
docker build -t calculator-mcp-service . -
Esegui il container Docker:
docker run -p 8080:8080 calculator-mcp-service
Questo farà:
- Costruire un’immagine Docker multi-stage con Maven 3.9.9 e Eclipse Temurin 24 JDK
- Creare un’immagine container ottimizzata
- Esporre il servizio sulla porta 8080
- Avviare il servizio calcolatrice MCP all’interno del container
Potrai accedere al servizio su http://localhost:8080 una volta che il container è in esecuzione.
-
Problemi di Permessi del Token: Se ricevi un errore 403 Forbidden, verifica che il token abbia i permessi corretti come indicato nei prerequisiti.
-
Token Non Trovato: Se ricevi un errore "No API key found", assicurati che la variabile d’ambiente GITHUB_TOKEN sia impostata correttamente.
-
Limitazioni di Rate: L’API GitHub ha limiti di utilizzo. Se incontri un errore di limite (codice 429), attendi qualche minuto prima di riprovare.
-
Scadenza del Token: I token GitHub possono scadere. Se ricevi errori di autenticazione dopo un po’, genera un nuovo token e aggiorna la variabile d’ambiente.
Se hai bisogno di ulteriore assistenza, consulta la documentazione LangChain4j o la documentazione API GitHub.
Disclaimer:
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica Co-op Translator. Pur impegnandoci per garantire accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un umano. Non ci assumiamo alcuna responsabilità per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione.
