• MCP
  • Model Context Protocol
  • AI

Che cos'è MCP (Model Context Protocol) e come funziona

Una guida facile da capire sul Model Context Protocol (MCP), che spiega come aiuta i grandi modelli di linguaggio a accedere a risorse esterne per superare le limitazioni di conoscenza e costruire applicazioni AI più potenti.

Yijun
Yijun
Developer

Smetti di sprecare settimane sull'autenticazione degli utenti
Lancia app sicure più velocemente con Logto. Integra l'autenticazione degli utenti in pochi minuti e concentrati sul tuo prodotto principale.
Inizia ora
Product screenshot

Che cos'è MCP?

MCP (Model Context Protocol) è un protocollo aperto e universale che standardizza il modo in cui le applicazioni forniscono informazioni contestuali ai grandi modelli di linguaggio (LLM).

In poche parole, proprio come il protocollo HTTP consente a diversi siti web e browser di scambiare informazioni secondo le stesse regole, MCP è come il protocollo HTTP del mondo AI. MCP consente a diversi modelli di AI di connettersi a varie fonti di dati e strumenti in modo standardizzato. Questa standardizzazione facilita ai sviluppatori la costruzione di applicazioni AI senza dover creare interfacce specializzate per ogni modello o fonte di dati.

Perché abbiamo bisogno di MCP?

I grandi modelli di linguaggio (LLM) sono potenti, ma affrontano diverse limitazioni chiave:

  • Limitazioni della conoscenza e sfide di aggiornamento: Gli LLM conoscono solo le informazioni incluse nei loro dati di addestramento. Ad esempio, la conoscenza di GPT-4 si interrompe nell'aprile 2023. Addestrare grandi modelli di linguaggio richiede enormi risorse di calcolo e tempo, spesso impiegando sei mesi o più per completare una nuova versione. Questo crea un problema difficile: la conoscenza del modello è sempre "obsoleta", mentre gli aggiornamenti sono estremamente costosi e richiedono tempo. Quando un nuovo modello termina l'addestramento, la sua conoscenza ha già iniziato a essere obsoleta.

  • Mancanza di conoscenza specialistica del dominio: Gli LLM sono addestrati usando dati generali disponibili pubblicamente. Non possono comprendere in profondità dati e informazioni specializzate in specifici scenari aziendali. Ad esempio, i processi interni di un'istituzione medica, il catalogo prodotti di un'azienda o la conoscenza proprietaria di un'organizzazione non rientrano nell'ambito di addestramento del modello.

  • Nessuno standard unificato per accedere ai dati esterni: Attualmente, ci sono molti metodi per fornire ulteriori informazioni agli LLM, come RAG (Retrieval-Augmented Generation), basi di conoscenza locali, ricerche su internet, ecc. Diversi team di sviluppo offrono diverse soluzioni di integrazione, portando ad alti costi di integrazione tra i sistemi. I sistemi con dati di dominio specialistico (come CRM, ERP, sistemi di registri medici, ecc.) sono difficili da integrare senza interruzioni con gli LLM. Ogni integrazione richiede uno sviluppo personalizzato, mancando un metodo comune e standardizzato.

Ecco perché abbiamo bisogno di MCP. MCP fornisce un protocollo standardizzato che consente agli LLM di accedere a informazioni e strumenti esterni in modo coerente, risolvendo tutti i problemi sopra menzionati. Attraverso MCP, possiamo ottenere i seguenti vantaggi chiave:

  • Integrazioni pre-costruite ricche: MCP offre molte integrazioni di server pronte all'uso, inclusi sistemi di file, database (PostgreSQL, SQLite), strumenti di sviluppo (Git, GitHub, GitLab), strumenti di rete (Brave Search, Fetch), strumenti di produttività (Slack, Google Maps) e altro. Ciò significa che non è necessario costruire queste integrazioni da zero. Puoi semplicemente utilizzare questi connettori pre-costruiti per consentire agli LLM di accedere ai dati in questi sistemi.

  • Scambio flessibile tra fornitori di LLM: Oggi potresti usare GPT-4, domani potresti voler provare Claude o Gemini, o usare diversi LLM per diversi scenari. Con MCP, non devi riscrivere tutta la logica di integrazione della tua applicazione. Devi solo cambiare il modello sottostante, e tutte le integrazioni di dati e strumenti rimangono invariate.

  • Costruire flussi di lavoro AI complessi: Immagina un sistema di analisi di documenti legali che necessita di interrogare più database, utilizzare strumenti specifici per il confronto dei documenti e generare report. MCP ti consente di costruire agenti e flussi di lavoro complessi basati sugli LLM.

Come funziona MCP

In MCP, ci sono tre ruoli principali: MCP Server (che fornisce strumenti e accesso ai dati), MCP Client (incorporato nell'LLM e che comunica con l'MCP Server) e MCP Hosts (applicazioni che integrano LLM e client, come Claude Desktop, Cursor, ecc.). Diamo un'occhiata a questi tre ruoli in dettaglio per vedere come lavorano insieme.

MCP Server

MCP Server è un programma che fornisce strumenti e capacità di accesso ai dati per gli LLM da utilizzare. A differenza dei tradizionali server API remoti, MCP Server può funzionare come un'applicazione locale sul dispositivo dell'utente o essere distribuito su un server remoto.

Ogni MCP Server fornisce un insieme di strumenti specifici responsabili del recupero delle informazioni dai dati locali o dai servizi remoti. Quando un LLM determina di dover utilizzare un certo strumento durante l'elaborazione di un compito, utilizzerà gli strumenti forniti da MCP Server per ottenere i dati necessari e restituirli all'LLM.

MCP Client

MCP Client è il ponte che collega gli LLM e gli MCP Server. Incorporato nell'LLM, è responsabile di:

  • Ricevere richieste dall'LLM
  • Inoltrare le richieste all'MCP Server appropriato
  • Restituire i risultati dall'MCP Server all'LLM

Puoi controllare Sviluppare un MCP Client per saperne di più sull'integrazione dell'MCP Client con gli LLM.

MCP Hosts

Programmi come Claude Desktop, IDE (Cursor, ecc.), o strumenti AI che vogliono accedere ai dati tramite MCP. Queste applicazioni forniscono agli utenti interfacce per interagire con gli LLM, integrando l'MCP Client per connettersi agli MCP Server per estendere le funzionalità degli LLM utilizzando gli strumenti forniti dagli MCP Server.

Flusso di lavoro MCP

I tre ruoli sopra menzionati formano alla fine un'applicazione AI costruita su MCP.

Un esempio di flusso di lavoro di questo sistema è il seguente:

Come costruire un MCP Server

L'MCP Server è il collegamento più critico nel sistema MCP. Determina quali strumenti l'LLM può utilizzare per accedere a quali dati, influenzando direttamente i confini funzionali e le capacità dell'applicazione AI.

Per iniziare a costruire il tuo MCP Server, si consiglia di leggere prima la guida rapida ufficiale MCP, che dettaglia l'intero processo dall'impostazione dell'ambiente all'implementazione e utilizzo dell'MCP Server. Spiegheremo solo i dettagli core dell'implementazione.

Definire gli strumenti forniti da MCP Server

La funzionalità core di un MCP Server è definire strumenti tramite il metodo server.tool(). Questi strumenti sono funzioni che l'LLM può chiamare per ottenere dati esterni o eseguire operazioni specifiche. Diamo un'occhiata a un esempio semplificato usando Node.js:

In questo esempio, definiamo uno strumento chiamato search-documents che accetta una stringa di query e un numero massimo di risultati come parametri. L'implementazione dello strumento si connetterebbe a un sistema base di conoscenza e restituirebbe i risultati della query.

L'LLM deciderà se utilizzare questo strumento in base alla definizione dello strumento e alla domanda dell'utente. Se necessario, l'LLM chiamerà questo strumento, otterrà i risultati e genererà una risposta combinando i risultati con la domanda dell'utente.

Best practices per la definizione degli strumenti

Quando si costruiscono tali strumenti, puoi seguire queste best practices:

  • Descrizioni chiare: Fornisci descrizioni dettagliate e accurate per ogni strumento, dichiarando chiaramente la sua funzionalità, gli scenari applicabili e le limitazioni. Questo non solo aiuta l'LLM a scegliere lo strumento giusto, ma facilita anche agli sviluppatori comprendere e mantenere il codice.
  • Validazione dei parametri: Utilizza Zod o librerie simili per validare rigorosamente i parametri di input, assicurando tipi corretti, intervalli di valori ragionevoli e rifiutando input non conformi. Ciò impedisce che errori si propaghino nei sistemi di backend e migliora la stabilità complessiva.
  • Gestione degli errori: Implementa strategie di gestione degli errori complete, intercetta le eccezioni possibili e restituisci messaggi di errore comprensibili. Ciò migliora l'esperienza dell'utente e consente all'LLM di fornire risposte significative in base alle condizioni di errore, anziché semplicemente fallire.
  • Controllo accesso ai dati: Assicura che le API delle risorse di backend abbiano meccanismi di autenticazione e autorizzazione robusti e progetta con cura gli ambiti di autorizzazione per limitare l'MCP Server ad accedere e restituire solo i dati autorizzati all'utente. Ciò previene la fuga di informazioni sensibili e garantisce la sicurezza dei dati.

Come garantire la sicurezza dello scambio di dati tra MCP (modelli AI) e sistemi esterni

Quando si implementano MCP Server che collegano modelli AI con sistemi esterni, ci sono due sfide di sicurezza chiave nell'implementazione di MCP:

  • Autenticazione: A differenza delle applicazioni tradizionali, nell'ambiente MCP, l'utente non può effettuare l'accesso con flussi di login tradizionali (come nome utente/password, email/codice di verifica, ecc.) per accedere al sistema esterno.
  • Controllo dell'accesso per le richieste dell'MCP Server: Gli utenti che accedono ai sistemi tramite strumenti AI sono gli stessi individui che potrebbero utilizzare direttamente il tuo sistema. L'MCP Server agisce come loro rappresentante quando interagiscono tramite strumenti AI. Ripensare un intero meccanismo di controllo dell'accesso solo per ospitare l'MCP Server richiederebbe uno sforzo e un costo significativo.

La soluzione chiave a queste sfide è implementare i Token di Accesso Personale (PAT). I PAT offrono un modo sicuro per consentire agli utenti di concedere l'accesso senza condividere le loro credenziali o richiedere un accesso interattivo.

Ecco come funziona il flusso di lavoro:

Questo approccio consente al tuo servizio esistente di mantenere i suoi meccanismi di autenticazione abilitando al contempo in modo sicuro l'integrazione MCP.

Puoi consultare l'articolo del blog: Potenzia il tuo business: Connetti gli strumenti AI al tuo servizio esistente con il controllo degli accessi con un esempio di codice sorgente per imparare come utilizzare i Token di Accesso Personale (PAT) di Logto combinati con il Controllo di Accesso Basato su Ruoli (RBAC) per limitare le risorse a cui il MCP può accedere dai servizi di backend.

Sommario

MCP (Model Context Protocol) porta cambiamenti rivoluzionari alla combinazione di LLM e affari specifici. Risolve i problemi di limitazioni di conoscenza nei grandi modelli di linguaggio, mancanza di conoscenza del dominio specializzata e standard non unificati per l'accesso ai dati esterni.

Utilizzare MCP per connettere i propri servizi porterà nuove possibilità al tuo business. MCP è il ponte che collega l'AI al valore aziendale. Puoi creare assistenti AI che comprendono realmente la conoscenza interna della tua azienda, sviluppare strumenti intelligenti che accedono ai dati più recenti e costruire applicazioni professionali che soddisfano le esigenze specifiche del settore.