Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

MCP: testare i servizi

Testiamo i servizi MCP (Model Context Protocol) e verifichiamo se sono in grado di recuperare informazioni dallo strato dei dati
Testiamo i servizi MCP (Model Context Protocol) e verifichiamo se sono in grado di recuperare informazioni dallo strato dei dati
Link copiato negli appunti

Ci troviamo a questo punto con entrambi i servizi MCP avviati: il FlightService sulla porta locale 8001/TCP e l'HotelService sulla 8002/TCP. Troviamo ora un modo per verificare se sono in grado di recuperare informazioni dallo strato dei dati.

Dialogare con un server MCP

Per vedere se i nostri server funzionano dobbiamo dialogarci. Useremo parametri un po' tecnici che ci mostreranno come funziona il protocollo. Queste saranno speculazioni utili alla comprensione e al debug ma sappiamo che, alla messa in produzione, saranno poi gli agenti a gestire tutto il "dietro le quinte" della comunicazione.

Ci sono molti sistemi, visuali, testuali o via codice, per interagire con un server MCP ma nel nostro caso abbiamo scelto curl, uno strumento testuale, presente da sempre in ogni sistema operativo e se mancante facile da installare.

Sessione e id

Quando un client (sarà, ad esempio, il nostro agente) si collega con un server MCP apre una sessione identificata con un Mcp-Session-Id da passare come header HTTP durante la comunicazione. Poi ogni richiesta verso MCP avrà un id che permetterà di legare la richiesta alla risposta del server.

Apertura della sessione

Connettiamoci al FlightService:

curl -i -X POST http://localhost:8001/mcp
  -H "Content-Type: application/json"
  -H "Accept: application/json, text/event-stream"
  -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-11-25\",\"capabilities\":{},\"clientInfo\":{\"name\":\"curl\",\"version\":\"1.0\"}}}"

A livello di dialogo in rete abbiamo ora una visibilità totale. Contattiamo l'indirizzo http://localhost:8001/mcp con una richiesta POST con cui spieghiamo i tipi di formati da usare (soprattutto JSON) e nel corpo della richiesta mettiamo un pacchetto JSON-RPC, il protocollo usato per invocare funzioni remote usando JSON. Questa la vera richiesta inviata:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-11-25",
    "capabilities": {},
    "clientInfo": {
      "name": "curl",
      "version": "1.0"
    }
  }
}

La risposta, tra l'altro, ci fornirà il Mcp-Session-Id:

HTTP/1.1 200 OK
date: Tue, 28 Jul 2026 20:33:58 GMT
server: uvicorn
...
...
mcp-session-id: dc38f0ebab7a47249522290a405412c7
...

Da ora in poi, potremo inoltrare altre richieste al server ma sempre passando l'id di sessione.

Quali tool abbiamo a disposizione per le richieste MCP?

Ogni tipo di richiesta MCP è caratterizzata da un metodo proprio come se chiamassimo una funzione solo che non è in locale ma una chiamata remota, una remote procedure call appunto una RPC.

Il metodo tool/list chiede l'elenco dei tool ed è quello che viene usato per scoprire cosa offre un server MCP:

curl -X POST http://localhost:8001/mcp ^
  -H "Content-Type: application/json" ^
  -H "Accept: application/json, text/event-stream" ^
  -H "Mcp-Session-Id: dc38f0ebab7a47249522290a405412c7" ^
  -d "
{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/list\"}"

Il corpo della risposta sarà come la seguente, qui abbreviata per semplicità:

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "tools": [
      {
        "name": "cerca_voli",
        "description": "Find available flights between...",
        "inputSchema": {
          "additionalProperties": false,
          "properties": {
            "origine": {
              "description": "Departure city",
              "type": "string"
            },
            "destinazione": {
              "description": "Destination city",
              "type": "string"
            }
          },
...

Vediamo che c'è un elemento tools con all'interno nomi di metodi, descrizioni e argomenti da noi definiti.

Cerchiamo voli per Parigi

E' arrivato il momento di fare una vera query come quelle che faranno i nostri agenti: cerchiamo voli da Roma a Parigi.

Il metodo da invocare sarà tool/call, deputato all'invocazione di metodi, mentre i parametri della chiamata conterranno nome del tool da invocare e argomenti:

curl -X POST http://localhost:8001/mcp ^
  -H "Content-Type: application/json" ^
  -H "Accept: application/json, text/event-stream" ^
  -H "Mcp-Session-Id: dc38f0ebab7a47249522290a405412c7" ^
  -d "{\"jsonrpc\":\"2.0\",\"id\":3,\"method\":\"tools/call\",\"params\":{\"name\":\"cerca_voli\",\"arguments\":{\"origine\":\"Roma\",\"destinazione\":\"Parigi\"}}}"

ed in particolare la richiesta in JSON-RPC sarà:

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "cerca_voli",
    "arguments": {
      "origine": "Roma",
      "destinazione": "Parigi"
    }
  }
}

Osserviamo i voli trovati:

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "content": [
      {
        "type": "text",
        "text": [
          {
            "id": "FL-101",
            "origin": "Roma",
            "destination": "Parigi",
            "class": "Economy",
            "seats": 12,
            "price": 120.0
          },
          {
            "id": "FL-102",
            "origin": "Roma",
            "destination": "Parigi",
            "class": "Business",
            "seats": 4,
            "price": 250.0
          }
        ]
      }
    ],
    "isError": false
  }
}

Confrontiamo i dati con ciò che abbiamo inserito nel database in fase di costruzione dello strato dati e vediamo che effettivamente il server ha recuperato la risposta corretta.

Passiamo il controllo agli agenti

Abbiamo svolto i nostri esperimenti con un server MCP con il famoso tool curl. Per esercizio o sperimentazione, possiamo provare anche l'altro server, magari con altri strumenti di test.

E' sicuramente interessante vedere come funziona "dentro" MCP ma ora è il momento di costruire agenti che possiamo dialogarci.

Se vuoi aggiornamenti su MCP: testare i servizi inserisci la tua email nel box qui sotto:

Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.

Ti consigliamo anche