53. MCP e suoi utilizzi concreti, non è tutto oro quel che luccica …
In questa puntata ti parlo di MCP (Model context protocol) di cosa sono, del perché sono interessanti e dei test che ho fatto con n8n e gli MCP.
Note dell’episodio
Come sempre, se ti è piaciuto quel che hai letto o visto e non l’hai già fatto, ti suggerisco di iscriverti alla mia newsletter. Ti avvertirò dei nuovi articoli che pubblico (oltre ai podcast e video su YouTube) e, mensilmente, ti segnalerò articoli che ho raccolto nel corso del mese ed ho ritenuto interessanti.
Link
- MCP (Model Context Protocol)
- Anthropic: L'azienda americana che ha originato il progetto MCP.
- MCP come protocollo aperto: La sua natura standardizzata per fornire contesto agli LLM.
- Sito della documentazione del progetto MCP
- Repository GitHub di Model Context Protocol Server
- n8n: La web app di automazione utilizzata dal presentatore per interagire con gli MCP. Il presentatore menziona di averne già parlato in puntate precedenti.
- Nodo della community di n8n per MCP: L'elemento che permette di configurare, scaricare e installare MCP in n8n.
- npm: Il repository/sistema per scaricare pacchetti JavaScript, menzionato in relazione all'installazione dei nodi MCP.
list tool
: La funzione di MCP per far conoscere agli LLM gli strumenti disponibili tramite un JSON con nome, descrizione e parametri del tool.execute tool
: La funzione di MCP per eseguire uno specifico tool in base al comando dell'utente.- Claude Desktop di Anthropic: La piattaforma per cui MCP è stato originariamente pensato.
- Server MCP per Comandi Rapidi (Shortcuts macOS)
- Apple Intelligence: La funzionalità Apple menzionata in relazione all'integrazione con Comandi Rapidi.
- Docker: Il sistema di containerizzazione utilizzato per installare n8n. Il presentatore menziona anche un video sull'installazione di software con Docker.
- CLI (Command Line Interface) di Comandi Rapidi su macOS: L'interfaccia su cui si basa il server MCP per Comandi Rapidi.
- Open Router: Il servizio utilizzato per accedere a diversi LLM a pagamento, incluso Sonnet.
- Mistral Small 3: Un modello LLM locale che ha dato problemi con l'implementazione MCP.
- DeepSeek: Un modello LLM locale che non gestisce i tool.
- QWQ (Alibaba): Un modello LLM con catene di pensiero che ha dato buoni risultati con MCP, sebbene più lentamente.
- Ollama: Piattaforma per eseguire LLM in locale, menzionata riguardo alla gestione dei tool da parte dei modelli.
Sinossi
Capitolo 1: Introduzione agli Agenti e alla Necessità di Interfacce Linguistiche
- La puntata si concentra sull'intelligenza artificiale, in particolare sui Large Language Model (LLM).
- L'interesse principale di Filippo Strozzi è l'utilizzo di questi strumenti come interfaccia linguistica di un programma.
- Viene ripreso il concetto di agenti, descritti come i veri programmi a cui gli LLM si interfacciano per creare sistemi avanzati e logicamente sensati.
- Nonostante i lati positivi degli LLM, attualmente le loro capacità sono relativementepoche perché nella sostanza sono "completatori di testo con gli steroidi".
- Per superare questi limiti, è fondamentale agganciare gli LLM a qualcos'altro.
- Il futuro, secondo l'autore, risiede nell'utilizzare gli LLM per parlare a un programma in linguaggio umano, permettendo alla macchina di "comprendere" e di eseguire azioni.
Capitolo 2: Presentazione degli MCP (Model Context Protocol)
- L'argomento centrale della puntata è la tecnologia MCP (Model Context Protocol).
- MCP è definito come un modo semplice e senza necessità di scrivere codice per integrare "tool" (strumenti o piccoli programmi) all'interno di un LLM.
- Questo permette all'LLM di interfacciarsi con il mondo esterno.
- Le potenziali applicazioni includono l'interazione con web app per estrapolare e inserire dati.
- Un'altra applicazione importante è la possibilità di effettuare ricerche web e dare accesso agli LLM a un browser.
- Vengono citate sperimentazioni con l'interazione con il file system di un Mac.
- L'obiettivo principale degli MCP è di legare gli LLM a programmi capaci di interagire con applicazioni, effettuare ricerche web tramite browser o motori di ricerca, e persino manipolare il file system.
Capitolo 3: Origini e Funzionamento degli MCP
- L'idea degli MCP nasce da un progetto di Anthropic, una delle principali aziende americane nel campo degli LLM.
- MCP è presentato come un protocollo aperto che standardizza il modo in cui le applicazioni forniscono il contesto agli LLM.
- Viene fatta un'analogia con una porta USB-C per le applicazioni di intelligenza artificiale, fornendo un modo standardizzato per connettere modelli AI a diverse fonti di dati e strumenti.
- Il progetto è disponibile su GitHub come "Model Context Protocol Server".
- L'idea di fondo è di astrarre il modo di interfacciarsi con sistemi di terze parti (web app, browser, file system).
- Vengono creati dei server MCP, programmi dotati di diverse azioni e capacità.
- Questi server comunicano con l'LLM spiegando cosa possono fare e le azioni che possono eseguire.
- Lato software, il server MCP funge da traduttore tra comandi testuali e programmazione.
- I programmatori dei server MCP creano un livello trasparente per l'utente finale e per l'LLM, descrivendo le capacità del programma e interfacciando le azioni con interfacce grafiche o per il sistema operativo.
- In pratica, per eseguire un'operazione come rinominare un file, l'utente interagisce con l'LLM, che a sua volta comunica con il server MCP, il quale esegue l'operazione sul file system.
- Per l'utente finale, non è necessario approfondire il funzionamento interno dei server MCP, in quanto molti sono già sviluppati e pronti all'uso.
Capitolo 4: Sperimentazioni pratiche con gli MCP e n8n
- Filippo Strozzi ha utilizzato gli MCP in combinazione con n8n, una web app che permette di creare automazioni e interfacciarsi con diversi servizi senza scrivere codice.
- n8n permette di creare "agenti" in modo relativamente semplice grazie alla sua interfaccia a blocchi.
- Esiste un nodo della community di n8n per gli MCP, che facilita la configurazione, il download e l'installazione dei server MCP.
- Questo nodo permette di configurare i singoli MCP e di scegliere quale server utilizzare con determinate credenziali.
- I nodi MCP possono essere creati e installati tramite npm (Node Package Manager).
- Per interagire con gli MCP tramite n8n, è fondamentale comprendere due funzioni principali del nodo MCP: "list tool" e "execute tool".
- Il "list tool" permette di far conoscere all'LLM gli strumenti (tool) a sua disposizione tramite un file JSON contenente il nome dello strumento, una descrizione dettagliata e lo schema dei dati necessari per utilizzarlo.
- L'"execute tool" permette all'LLM di eseguire uno specifico tool in base al comando dell'utente, fornendo i parametri necessari.
- La cosa interessante è che la lista dei tool e i relativi schemi sono già predisposti dal server MCP, semplificando l'interazione con l'LLM.
- Con n8n, la gestione dell'esecuzione dei tool e dei parametri viene affidata direttamente all'LLM.
Capitolo 5: Sfide e limiti riscontrati
- L'MCP nasce principalmente pensato per Claude Desktop, l'applicazione desktop di cloud LLM di Anthropic.
- L'esperimento di interfacciare gli LLM con Comandi Rapidi su Mac tramite un server MCP dedicato si è rivelato problematico, poiché il server si basa sulla CLI di Comandi Rapidi e richiederebbe l'installazione di n8n direttamente sul sistema operativo (via npm) anziché tramite Docker.
- Il problema principale riscontrato è che l'efficacia degli MCP dipende fortemente dalla potenza dell'LLM utilizzato.
- Solo con LLM molto potenti, come Sonnet 3.5 di Anthropic, il sistema ha funzionato bene.
- Modelli locali più piccoli, come Mistral Small, hanno mostrato difficoltà nell'individuare il tool corretto e nel fornire i parametri adeguati.
- Anche con modelli più avanzati gestiti tramite Hugging Face, come Qwen di Alibaba, sebbene le operazioni semplici funzionassero, le operazioni più complesse richiedevano tempi di elaborazione molto lunghi (5-10 minuti).
- Un altro limite è che, sebbene l'interazione avvenga tramite linguaggio naturale, l'utente deve comunque avere una comprensione di base dei tool disponibili e dei parametri necessari per utilizzarli efficacemente. Senza questa conoscenza, il sistema potrebbe non risultare intuitivo.
Capitolo 6: Conclusioni e prospettive future
- Nonostante le sfide attuali, il sistema MCP è molto interessante e ha notevoli potenzialità.
- Potrebbe rappresentare un sistema molto utile quando diventerà più generale, permettendo anche a non programmatori di interagire con i sistemi operativi e le applicazioni in modo più intuitivo.
- L'adozione degli MCP potrebbe evitare all'utente comune di dover imparare a programmare per automatizzare determinate operazioni.
- Attualmente, l'efficacia del sistema dipende da un compromesso tra la potenza dell'LLM e la riservatezza dei dati. Se si utilizzano LLM cloud potenti, il sistema funziona bene ma con potenziali implicazioni per la privacy. Lavorare in locale offre maggiore privacy ma comporta limitazioni nelle prestazioni.
- L'autore è soddisfatto di aver esplorato gli MCP e prevede di riprendere in mano la tecnologia in futuro, dato il continuo miglioramento degli LLM anche in locale.
- L'esperienza è stata utile anche per approfondire la conoscenza di n8n.
- L'autore spera di formalizzare le sue scoperte in un articolo in futuro.