{"id":2194,"date":"2025-07-05T10:00:00","date_gmt":"2025-07-05T08:00:00","guid":{"rendered":"https:\/\/pletzenauer.com\/?p=2194"},"modified":"2026-08-05T17:23:22","modified_gmt":"2026-08-05T15:23:22","slug":"model-context-protocol-mcp-n8n","status":"publish","type":"post","link":"https:\/\/pletzenauer.com\/it\/2025\/07\/05\/model-context-protocol-mcp-n8n\/","title":{"rendered":"Model Context Protocol (MCP) spiegato in modo comprensibile \u2013 con esempio in n8n"},"content":{"rendered":"<p>Chi costruisce agenti IA conosce il problema: per ogni funzione di un servizio collegato va definito uno strumento a s\u00e9. Cercare, creare, modificare, cancellare una voce di calendario \u2013 sono subito quattro elementi separati, e solo per un unico servizio. Con molti collegamenti l&#8217;onere di manutenzione cresce di conseguenza. Il <strong>Model Context Protocol (MCP)<\/strong> segue un approccio diverso: standardizza il modo in cui un modello linguistico comunica con un servizio \u2013 e riduce drasticamente il numero di elementi necessari. Questo articolo riassume il concetto e un esempio pratico concreto con n8n.<\/p>\n<div style=\"background:#FFE6D6;border-left:4px solid #F26A21;padding:16px 20px;border-radius:6px;margin:24px 0;\">\n<strong>L&#8217;essenziale in breve<\/strong><\/p>\n<ul>\n<li>MCP standardizza il modo in cui un modello linguistico comprende il contesto di un servizio \u2013 cio\u00e8 che cosa sa fare e come lo si interpella.<\/li>\n<li>Invece di collegare separatamente ogni singola funzione, bastano un <em>server MCP<\/em> (davanti al servizio) e un <em>client MCP<\/em> (nell&#8217;agente).<\/li>\n<li>All&#8217;agente bastano due passaggi: <em>elencare<\/em> le funzioni (List Tools) ed <em>eseguire<\/em> le funzioni (Execute Tool).<\/li>\n<li>In n8n si pu\u00f2 replicare con una variabile d&#8217;ambiente, una community node e due tool MCP client.<\/li>\n<li>MCP \u00e8 una tecnologia giovane: esistono note preoccupazioni di sicurezza \u2013 negli ambienti di produzione \u00e8 opportuna prudenza.<\/li>\n<\/ul>\n<\/div>\n<figure style=\"margin:28px 0;\"><img decoding=\"async\" src=\"https:\/\/pletzenauer.com\/wp-content\/uploads\/2026\/06\/1488-1.png\" alt=\"Confronto su due colonne: a sinistra il classico collegamento uno strumento per funzione con molti elementi, a destra MCP con soli due passaggi, List Tools ed Execute Tool.\" style=\"width:100%;height:auto;border-radius:8px;border:1px solid #E5E2DE;\"\/><figcaption style=\"font-size:0.9em;color:#6b6b6b;margin-top:8px;\">Invece di collegare ogni funzione singolarmente, all&#8217;agente bastano due operazioni MCP.<\/figcaption><\/figure>\n<h2>Quale problema risolve davvero MCP<\/h2>\n<p>L&#8217;idea di base del Model Context Protocol sta nel nome: un modello linguistico deve comprendere il <strong>contesto<\/strong> di un&#8217;applicazione. In concreto: che cosa sa fare questa applicazione? A che cosa serve? E come vi eseguo delle azioni?<\/p>\n<p>Nella costruzione classica di un agente si collega ogni strumento singolarmente \u2013 ogni funzione \u00e8 un elemento a s\u00e9. Con Google Calendar, ad esempio: uno strumento per cercare voci, uno per aggiornarle, uno per cancellarle, uno per crearle. Quattro funzioni per un servizio. Con agenti complessi e molti servizi collegati si arriva in fretta a decine di elementi.<\/p>\n<h2>Server, client e lo schema uniforme<\/h2>\n<p>MCP lavora con due ruoli:<\/p>\n<ul>\n<li><strong>Server MCP:<\/strong> si interpone davanti al servizio vero e proprio (ad es. Airbnb o Google Calendar) e descrive come si pu\u00f2 interagire con esso.<\/li>\n<li><strong>Client MCP:<\/strong> risiede nell&#8217;agente, recupera le funzioni del server e le richiama.<\/li>\n<\/ul>\n<p>Nell&#8217;implementazione attuale \u2013 ad esempio in n8n \u2013 bastano due passaggi al posto di molti strumenti singoli:<\/p>\n<ol>\n<li><strong>List Tools (elencare):<\/strong> l&#8217;agente chiede al server quali funzioni siano disponibili.<\/li>\n<li><strong>Execute Tool (eseguire):<\/strong> l&#8217;agente richiama una funzione concreta con i parametri adatti.<\/li>\n<\/ol>\n<p>Decisivo \u00e8 lo <strong>schema uniforme<\/strong>. Qualunque sia il servizio dietro: la risposta a una richiesta List Tools \u00e8 sempre strutturata allo stesso modo. Contiene per ogni funzione il nome, una descrizione e uno schema con i parametri ammessi. Contenuti e parametri variano da servizio a servizio \u2013 la struttura resta costante. \u00c8 esattamente questo che il protocollo prescrive e standardizza.<\/p>\n<h3>Un esempio con lo strumento Airbnb<\/h3>\n<p>Se si chiede all&#8217;agente quali possibilit\u00e0 offra lo strumento Airbnb, si procura da s\u00e9 l&#8217;elenco delle funzioni tramite il tool List Tools. Tornano indietro, tra le altre:<\/p>\n<ul>\n<li><strong>Airbnb Search:<\/strong> ricerca di offerte con filtri e paginazione \u2013 ad esempio localit\u00e0, data di check-in e check-out, numero di adulti, bambini, neonati e animali domestici nonch\u00e9 fascia di prezzo.<\/li>\n<li><strong>Airbnb Listing Details:<\/strong> informazioni dettagliate su una determinata offerta tramite il suo listing ID.<\/li>\n<\/ul>\n<p>All&#8217;agente qui non \u00e8 stato necessario fornire nulla in anticipo \u2013 si \u00e8 procurato da s\u00e9 le funzioni disponibili, le loro descrizioni e lo schema dei parametri. Nello schema si vede ad esempio un campo di testo <code>location<\/code> (citt\u00e0, regione ecc.), i campi data per check-in e check-out, il numero di adulti nonch\u00e9 prezzo minimo e massimo.<\/p>\n<p>Se poi si formula una richiesta concreta \u2013 ad esempio un alloggio a Bangkok per sei persone a un massimo di 50 euro a notte \u2013, l&#8217;agente procede in due fasi: richiama prima List Tools (non ha memorizzato nulla, perch\u00e9 non \u00e8 attiva alcuna memoria), riconosce dallo schema i parametri necessari ed esegue la ricerca tramite Execute Tool. Il risultato \u2013 ad esempio un alloggio con tre letti per circa 35 euro a notte \u2013 torna indietro, e questo con soli due strumenti aggiunti. Se Airbnb offrisse pi\u00f9 funzioni, ad esempio per gestire i propri annunci, si potrebbero rappresentare con lo stesso schema, senza definire ulteriori elementi.<\/p>\n<h2>Come replicare MCP in n8n<\/h2>\n<p>I passaggi seguenti mostrano la configurazione sull&#8217;esempio di Airbnb. Si presta bene alla sperimentazione, perch\u00e9 non richiede alcuna chiave API.<\/p>\n<ol>\n<li><strong>Impostare la variabile d&#8217;ambiente:<\/strong> imposti <code>N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE<\/code> su <code>true<\/code>. Questo consente alle community node di accedere ai tool. Con un&#8217;installazione Docker (ad es. su un server Hetzner) lo inserisca nella sezione <code>environment<\/code> del file <code>docker-compose<\/code> e riavvii l&#8217;istanza.<\/li>\n<li><strong>Creare un AI-Agent:<\/strong> crei un AI-Agent e vi associ un modello (nel video GPT-4.1 Mini).<\/li>\n<li><strong>Installare la community node:<\/strong> in <em>Settings &rarr; Community Nodes<\/em> installi il pacchetto <code>n8n-nodes-mcp<\/code> e confermi l&#8217;avviso sull&#8217;installazione di codice non verificato proveniente da fonti pubbliche.<\/li>\n<li><strong>Aggiungere il tool MCP client:<\/strong> tramite il pi\u00f9 accanto a <em>Tools<\/em> cerchi \u00abMCP\u00bb. Attenzione: non lo confonda con l&#8217;<em>MCP Client Tool<\/em> proprio di n8n \u2013 la variante della community si riconosce dal simbolo della scatola ed \u00e8 attualmente pi\u00f9 completa.<\/li>\n<li><strong>Creare le credenziali:<\/strong> come tipo di connessione si pu\u00f2 scegliere tra Command Line, Server-Sent Events e HTTP Streamable. Nell&#8217;esempio si resta su Command Line. I valori corretti si trovano nel repository del rispettivo server MCP, nella sezione sull&#8217;installazione. Per Airbnb: command <code>npx<\/code>, argomenti inseriti passo per passo \u2013 <code>-y<\/code>, il pacchetto <code>@openbnb\/mcp-server-airbnb<\/code> e, facoltativamente, <code>--ignore-robots-txt<\/code>.<\/li>\n<\/ol>\n<blockquote><p><strong>Nota su robots.txt:<\/strong> l&#8217;opzione <code>--ignore-robots-txt<\/code> ignora le regole di accesso di un sito web. Per una demo \u00e8 accettabile \u2013 negli ambienti di produzione dovrebbe rispettare il robots.txt dei rispettivi servizi.<\/p><\/blockquote>\n<h3>Configurare le due operazioni<\/h3>\n<p>Successivamente Le servono due tool MCP client con operazioni diverse:<\/p>\n<ul>\n<li><strong>List Tools:<\/strong> chiami il tool ad esempio \u00abAirbnb List Tools\u00bb e indichi come descrizione che serve a recuperare tutti gli strumenti Airbnb disponibili. Un clic di prova (Execute Step) dovrebbe restituire il noto elenco di funzioni con nome, descrizione e schema.<\/li>\n<li><strong>Execute Tool:<\/strong> un secondo tool MCP client con l&#8217;operazione Execute Tool. Descrizione: serve a eseguire gli strumenti Airbnb, elencabili tramite il tool List Tools. Il nome dello strumento lo passi come expression, cos\u00ec che sia l&#8217;agente a decidere quale funzione richiamare; i parametri dello strumento li lasci liberi, in modo che li determini da s\u00e9.<\/li>\n<\/ul>\n<p>Dopo aver riordinato e salvato si pu\u00f2 testare l&#8217;agente \u2013 ad esempio di nuovo con la richiesta su Bangkok. Recupera l&#8217;elenco delle funzioni, lo restituisce al modello, opta per la ricerca e fornisce alloggi adatti. Esattamente il comportamento descritto nella parte concettuale, ora nel proprio flusso di lavoro.<\/p>\n<h2>Oltre n8n \u2013 e una parola sulla sicurezza<\/h2>\n<p>MCP non si limita alle piattaforme di automazione. Anche applicazioni desktop come Claude Desktop si possono collegare a server MCP. In questo modo si possono delegare dalla chat compiti a programmi installati localmente \u2013 un esempio molto citato \u00e8 il controllo del software 3D Blender tramite MCP, in cui una persona senza conoscenze di Blender realizza dei rendering. Il server MCP gira in locale, mentre il modello linguistico continua a passare per il servizio cloud.<\/p>\n<p>Con tutto l&#8217;entusiasmo vale per\u00f2 questo: MCP \u00e8 uno sviluppo giovane. Esistono gi\u00e0 <strong>preoccupazioni di sicurezza<\/strong> e sono state trovate vulnerabilit\u00e0. Proprio negli ambienti di produzione la tecnologia va presa con cautela \u2013 conviene osservare l&#8217;evoluzione ulteriore prima di fondarvi processi critici.<\/p>\n<h2>Conclusione<\/h2>\n<p>Il Model Context Protocol \u00e8 un approccio pragmatico alla standardizzazione: tramite un server MCP un modello linguistico apprende da s\u00e9 che cosa sa fare un servizio e come lo si interpella \u2013 invece di predefinire ogni funzione singolarmente. Per gli agenti IA complessi ci\u00f2 significa sensibilmente meno elementi e meno manutenzione; nell&#8217;esempio n8n bastano due passaggi: elencare ed eseguire. L&#8217;approccio \u00e8 convincente, ma ancora giovane. Chi lo prova dovrebbe iniziare con servizi non critici e, negli ambienti di produzione, prendere sul serio le questioni di sicurezza aperte.<\/p>\n<p><strong>Fonte:<\/strong> <a href=\"https:\/\/www.youtube.com\/watch?v=ujHOD52ybyo\" target=\"_blank\" rel=\"noopener\">Model Context Protocol (MCP): Erkl\u00e4rung &amp; n8n Tutorial (Deutsch)<\/a> \u2013 canale YouTube di Philip Thomas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Che cos&#8217;\u00e8 il Model Context Protocol (MCP) e come semplifica gli agenti IA? Concetto, esempio pratico con n8n e Airbnb e indicazioni di sicurezza in sintesi.<\/p>\n","protected":false},"author":0,"featured_media":1503,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2194","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-unkategorisiert"],"_links":{"self":[{"href":"https:\/\/pletzenauer.com\/it\/wp-json\/wp\/v2\/posts\/2194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pletzenauer.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pletzenauer.com\/it\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/pletzenauer.com\/it\/wp-json\/wp\/v2\/comments?post=2194"}],"version-history":[{"count":1,"href":"https:\/\/pletzenauer.com\/it\/wp-json\/wp\/v2\/posts\/2194\/revisions"}],"predecessor-version":[{"id":2672,"href":"https:\/\/pletzenauer.com\/it\/wp-json\/wp\/v2\/posts\/2194\/revisions\/2672"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pletzenauer.com\/it\/wp-json\/wp\/v2\/media\/1503"}],"wp:attachment":[{"href":"https:\/\/pletzenauer.com\/it\/wp-json\/wp\/v2\/media?parent=2194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pletzenauer.com\/it\/wp-json\/wp\/v2\/categories?post=2194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pletzenauer.com\/it\/wp-json\/wp\/v2\/tags?post=2194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}