I modelli di intelligenza artificiale, in particolare i modelli linguistici come GPT di OpenAI o Claude di Anthropic, stanno raggiungendo livelli di eccellenza sempre maggiori. Comprendono in modo sempre più preciso ciò che desideriamo da loro e forniscono risposte sempre migliori, risultando così estremamente potenti.
Nonostante questi progressi, c'è una cosa che non riescono a padroneggiare, nemmeno lontanamente: non sono in grado di eseguire azioni autonomamente e non sono autosufficienti. Ciò significa che un modello linguistico non può accedere autonomamente a strumenti esterni, database, server, API o simili. Proprio per questo è stata sviluppata una soluzione aperta e standardizzata: il Model Context Protocol, o MCP in breve. In questo articolo spiegheremo cos'è esattamente questo protocollo, cosa offre e per chi potrebbe essere interessante.
Golo Roden, fondatore e CTO di the native web GmbH, è un esperto nella concezione e sviluppo di applicazioni web e cloud, nonché di API, con un focus su architetture distribuite basate su eventi e servizi. La sua filosofia è che lo sviluppo software non è un fine a sé stesso, ma deve sempre seguire una logica di business sottostante.
Cosa è veramente un modello di IA
Per una migliore comprensione, dobbiamo prima esaminare la situazione di partenza. È importante capire la natura di un modello di IA. Molte persone credono, ad esempio, che ChatGPT sia esso stesso un modello di IA. Tuttavia, questo non è corretto. ChatGPT è piuttosto un'applicazione sviluppata attorno a un modello di IA. Il modello effettivo su cui si basa il tutto esiste in diverse varianti, come GPT-4o, GPT-4.5, o3 o o4-mini. Questi modelli sono il vero cuore di ChatGPT.
Ciò che questi modelli sono in realtà non è altro che una funzione matematica – sebbene estremamente complessa. L'elaborazione del linguaggio funziona esclusivamente perché il linguaggio viene codificato in numeri, questi numeri vengono elaborati in modo intelligente e il risultato può essere successivamente ritradotto in linguaggio. In sostanza, si tratta semplicemente di una funzione matematica altamente complessa, che per caso è particolarmente adatta a calcolare previsioni sul linguaggio. Tuttavia, rimane una funzione, senza alcuna comprensione dei contenuti.
Perché i modelli di IA hanno bisogno di supporto
Da ciò deriva anche il motivo per cui i modelli di IA non possono accedere autonomamente a database, server o API. Le funzioni matematiche non sono in grado di farlo, indipendentemente dalla loro complessità. Così come una semplice funzione f(x) = x² non potrebbe controllare un'API, neanche i modelli di IA come GPT-4o possono farlo. Ci vuole qualcuno che abiliti l'uso di questa funzione. Nel caso di GPT-4o, questa è l'applicazione ChatGPT. Si potrebbe quindi dire: il modello di IA è il cervello, a cui manca il resto del corpo.
Si potrebbe pensare che questa affermazione non sia vera, poiché ChatGPT è effettivamente in grado di accedere a servizi esterni e a internet. Questo è corretto, ma non avviene tramite il modello stesso, bensì tramite una funzionalità dell'applicazione che lo precede. In OpenAI, questa funzionalità si chiama "Function Calling". Funziona, in modo molto semplificato, così: il prompt viene esteso con l'indicazione:
“Se hai bisogno di informazioni aggiuntive per rispondere, puoi dirmelo.”
A quel punto, il modello potrebbe indicare di aver bisogno di una ricerca su internet, e OpenAI si occupa di questa ricerca al di fuori del modello. I risultati vengono quindi nuovamente forniti come input al modello. L'accesso effettivo avviene quindi tramite l'applicazione, non tramite il modello stesso.
La limitazione delle soluzioni proprietarie
Il problema del Function Calling è che funziona in modo puramente proprietario. È utilizzabile esclusivamente all'interno dell'ambiente OpenAI e non può essere trasferito ad altre piattaforme o modelli. Ciò significa che questa possibilità rimane legata a un unico fornitore.
È qui che entra in gioco il Model Context Protocol (MCP). Offre un modo uniforme per collegare strumenti e servizi esterni ai modelli di IA. In pratica, è la stessa cosa del Function Calling, ma come variante aperta e standardizzata che può essere implementata da qualsiasi fornitore. MCP è stato sviluppato da Anthropic, l'azienda dietro Claude. Gli standard aperti sono generalmente da valutare positivamente, e in questo senso MCP è uno sviluppo molto ben accetto.
I tre ruoli nel MCP
Approfondendo il MCP, si notano subito tre ruoli centrali: il modello, il server MCP e l'host. Personalmente, trovo i termini un po' infelici, poiché in particolare la distinzione tra host e server MCP può essere inizialmente confusa. Per questo motivo, desidero prima chiarire questi tre ruoli.
Il Modello
Il modello è il ruolo più semplice: si tratta di un modello di IA o linguistico come GPT-4o, GPT-4.5, o3, o4-mini, Claude, LLaMa o DeepSeek R1, ovvero una rete neurale in grado di calcolare previsioni.
Il Server MCP
A esso si contrappone il server MCP. È un servizio che mette a disposizione funzioni o dati – ad esempio, inviare e-mail, interrogare database, controllare una webcam o cercare su internet. In breve: qualsiasi tipo di funzionalità o fornitura di dati.
L'Host
La questione cruciale è come collegare modello e server MCP, poiché i modelli non possono accedere autonomamente a tali servizi. Qui entra in gioco l'host. L'host integra ed esegue il modello. Allo stesso tempo, funge da client nei confronti dei server MCP esterni. Nel linguaggio del MCP, l'host viene quindi anche chiamato client MCP, il che rende ulteriormente difficile la scelta dei termini.
È importante notare che l'host rimane invariato per quanto riguarda l'integrazione del modello. Chi finora aveva un'applicazione che ospitava un modello linguistico, ha già completato questa parte del MCP. Diventa interessante solo per quanto riguarda la comunicazione tra host e server MCP esterni.
Manifest e registrazione del server
Affinché una tale comunicazione possa avvenire, un server MCP deve prima essere reso noto all'host. Questo avviene tramite l'utente. Ad esempio, un editor di testo o un IDE che gestisce un modello linguistico potrebbe offrire una funzione per registrare un nuovo server MCP. In tal caso, viene specificato l'URL del server.
L'editor di testo o l'IDE scarica quindi dal server MCP il file manifest.json. Questo file descrive in modo standardizzato quali capacità e dati offre il server MCP, come invocarli, quali valori di ritorno ci sono, come sono i parametri e così via. Spesso contiene anche modelli per i prompt che l'host può utilizzare internamente. In questo modo l'host sa quali possibilità offre il server.
Quando l'host invia una richiesta al modello, estende il prompt con informazioni sugli strumenti disponibili dei server MCP registrati. Il modello stesso non deve essere preparato appositamente per questo. Riceve semplicemente informazioni contestuali aggiuntive.