[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:it":3,"public-menus:all":38,"post:mcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits:it":205,"related:post:mcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits:it:1":3519},{"statusCode":4,"data":5,"message":37},200,{"tenantId":6,"lang":7,"defaultLang":8,"siteUrl":9,"contactEmail":10,"brandName":11,"logoUrl":12,"siteName":11,"siteDescription":13,"ogImage":10,"robotsIndex":14,"socialLinks":10,"reservedSlugs":10,"seoPolicy":15},"stajic","it","de","https:\u002F\u002Fstajic.de",null,"Stajic Platform","\u002FLogo_Planet.svg","Stajic Portal",true,{"branding":16,"relatedContent":17,"crossDomainLinks":18},{"logoUrl":12},{"enabled":14},[19,22,25,28,31,34],{"url":20,"label":21,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Ffigure.rocks","figure.rocks",{"url":23,"label":24,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Floving.rocks","loving.rocks",{"url":26,"label":27,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.com","bazify.com",{"url":29,"label":30,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.de","bazify.de",{"url":32,"label":33,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.at","bazify.at",{"url":35,"label":36,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.ba","bazify.ba","Portal settings resolved",[39,45],{"id":40,"name":41,"location":42,"isActive":14,"isDefault":43,"items":44},1,"main-navigation","header",false,[],{"id":46,"name":47,"location":48,"isActive":14,"isDefault":14,"items":49},4,"main-menu","sidebar",[50,66,79,93,103,118,133],{"id":51,"title":52,"url":60,"target":61,"icon":62,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":64,"portfolioId":10,"children":65},"item-18",{"de":53,"en":54,"es":55,"fr":56,"it":54,"ru":57,"sr":58,"zh":59},"Startseite","Home","Inicio","Accueil","Главная","Почетна","首页","\u002Ffull-stack-web-developer-munich-performance-seo-and-maintainable-builds","_self","i-lucide-home","page",111,[],{"id":67,"title":68,"url":75,"target":61,"icon":76,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":77,"portfolioId":10,"children":78},"item-22",{"de":69,"en":69,"es":70,"fr":69,"it":71,"ru":72,"sr":73,"zh":74},"Vision","Visión","Visione","Видение","Визија","想象","\u002Fueber-uns-webdesign-muenchen-webaplikation","i-lucide-eye",113,[],{"id":80,"title":81,"url":89,"target":61,"icon":90,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":91,"portfolioId":10,"children":92},"item-19",{"de":82,"en":83,"es":84,"fr":83,"it":85,"ru":86,"sr":87,"zh":88},"Leistungen","Services","Servicios","Servizi","Услуги","Услуге","服务","\u002Fservices-dienstleistungen-muenchen","i-lucide-wrench",116,[],{"id":94,"title":95,"url":99,"target":61,"icon":100,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":101,"portfolioId":10,"children":102},"item-23",{"de":96,"en":96,"es":96,"fr":96,"it":96,"ru":97,"sr":97,"zh":98},"Blog","Блог","博客","\u002Fblog","i-lucide-book-open",112,[],{"id":104,"title":105,"url":114,"target":61,"icon":115,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":116,"portfolioId":10,"children":117},"item-32",{"de":106,"en":107,"es":108,"fr":109,"it":110,"ru":111,"sr":112,"zh":113},"Neue Technologien","New Technologies","Nuevas tecnologías","Nouvelles technologies","Nuove tecnologie","Новые технологии","Нове технологије","新技术！","\u002Fneue-webtechnologien","i-lucide-sparkles",122,[],{"id":119,"title":120,"url":129,"target":61,"icon":130,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":131,"portfolioId":10,"children":132},"item-20",{"de":121,"en":122,"es":123,"fr":124,"it":125,"ru":126,"sr":127,"zh":128},"Kontakt","Contact us!","Contacto","Contact","Contatto","Контакт","Контактирајте нас","联系我们！","\u002Fcontact","i-lucide-mail",115,[],{"id":134,"title":135,"url":144,"target":61,"icon":145,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":147},"item-21",{"de":136,"en":137,"es":138,"fr":139,"it":140,"ru":141,"sr":142,"zh":143},"Unsere Arbeit","Our Work","Nuestro trabajo","Nos réalisations","I nostri lavori","Наши работы","Наши радови","文件夹","\u002Fportfolio","i-lucide-briefcase",114,[148,161,175,181,193],{"id":149,"title":150,"url":144,"target":61,"icon":159,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":160},"item-24",{"de":151,"en":152,"es":153,"fr":154,"it":155,"ru":156,"sr":157,"zh":158},"Alle Projekte","All Projects","Todos los proyectos","Tous les projets","Tutti i progetti","Все проекты","Сви пројекти","所有项目","i-lucide-grid-3x3",[],{"id":162,"title":163,"url":171,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":174},"item-29",{"de":164,"en":165,"es":166,"fr":167,"it":168,"ru":169,"sr":170,"zh":143},"Local Roots, Global Reach","Local Roots - Global Reach","Empresa local ","Entreprise locale","Azienda locale","Местная компания","Локално предузеће глобално тржиште","\u002Fportfolio\u002Flocal-roots-global-reach-communication-media-systems-for-modern-business","i-lucide-folder","custom",[],{"id":176,"title":177,"url":179,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":180},"item-28",{"de":178,"en":178,"es":178,"fr":178,"it":178,"ru":178,"sr":178,"zh":178},"Solr Suggester","\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung",[],{"id":182,"title":183,"url":191,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":192},"item-27",{"de":184,"en":185,"es":186,"fr":187,"it":188,"ru":189,"sr":190,"zh":185},"Firmenwebseite SEO","Company Website SEO","Sitio web corporativo SEO","Site web d’entreprise SEO","Sito web aziendale SEO","Корпоративный сайт SEO","Пословна веб-страница SEO","\u002Fportfolio\u002Fseo-sem-branding-mobile-webseite-muenchen",[],{"id":194,"title":195,"url":203,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":204},"item-31",{"de":196,"en":197,"es":198,"fr":199,"it":200,"ru":201,"sr":202,"zh":197},"Digitalisierungsportal","Digitalization Portal","Portal de digitalización","Portail de numérisation","Portale di digitalizzazione","Портал цифровизации","Портал за дигитализацију","\u002Fportfolio\u002Fdigitalisierungsportal-archiv-museum-bibliothek-ead-lido-mets-mods",[],{"statusCode":4,"data":206,"message":3518},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":1611,"featuredImage":1612,"featuredImageAlt":1613,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":1614,"publishedAt":1615,"createdAt":1616,"updatedAt":1617,"seoLocalePaths":1618,"categories":1627,"author":1644,"translations":1649},"492","MCP spiegato: cosa collega, cosa non fa e dove si colloca","mcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits","\u003Cp>Il Model Context Protocol (MCP) è un protocollo aperto per collegare applicazioni di intelligenza artificiale a capacità e informazioni esterne tramite contratti client-server standardizzati. Un server MCP può esporre strumenti, risorse e prompt; un host o client compatibile con MCP scopre e utilizza tali capacità per conto di un'applicazione di intelligenza artificiale. MCP non richiede che il server esegua un proprio modello linguistico e non sostituisce il runtime dell'agente, l'autorizzazione aziendale, l'isolamento dei tenant, le API applicative o l'architettura di dominio sottostante alle capacità esposte.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--info my-6 rounded-xl border p-5 border-blue-300 bg-blue-50 dark:border-blue-900 dark:bg-blue-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Risposta diretta\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">\u003Cstrong>MCP standardizza il confine tra un host AI e i fornitori di capacità esterne.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Un modello mentale utile è:\u003Cbr>\u003Cstrong>Utente → host AI \u002F runtime dell&#39;agente → client MCP → server MCP → applicazione\u002FAPI\u002Fdati\u002Fstrumento\u003C\u002Fstrong>.\u003Cbr>\u003Cbr>Il modello può rimanere interamente sul lato host. Il server MCP può essere un normale software deterministico che espone capacità strutturate.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--success my-6 rounded-xl border p-5 border-emerald-300 bg-emerald-50 dark:border-emerald-900 dark:bg-emerald-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Un server MCP non necessita di un proprio modello di intelligenza artificiale\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Un server MCP per il filesystem può elencare o leggere file. Un server MCP per database può eseguire query approvate. Un server MCP per Jira può esporre operazioni sulle issue. Nessuno di questi server necessita di un LLM per soddisfare il contratto MCP. Se un server utilizza internamente l&#39;IA, si tratta di una scelta implementativa dietro il confine del protocollo, non di un requisito MCP.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">La capacità MCP non è autorità aziendale\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Se un server MCP espone \u003Ccode>delete_file\u003C\u002Fcode>, \u003Ccode>refund_order\u003C\u002Fcode> o \u003Ccode>deploy_service\u003C\u002Fcode>, ciò significa solo che la capacità esiste. Il server\u002Fapplicazione deve comunque applicare identità, autorizzazioni, ambito del tenant, regole aziendali, requisiti di conferma e controlli di audit. La scoperta del protocollo non deve mai diventare silenziosamente autorizzazione.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Nota sulla fonte corrente — 8 ottobre 2026\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">La revisione corrente della specifica MCP è \u003Cstrong>2026-07-28\u003C\u002Fstrong>. La sua modifica principale è un nucleo di protocollo stateless con richieste autodescrittive, \u003Ccode>server\u002Fdiscover\u003C\u002Fcode> opzionale, header HTTP instradabili, risposte di elenco\u002Frisorsa memorizzabili nella cache, rafforzamento dell&#39;autorizzazione e un modello di estensione formale. L&#39;SDK TypeScript v2 è la linea SDK stabile corrente che implementa questa revisione. Client e server più vecchi dell&#39;era 2025 esistono ancora, quindi le linee guida di implementazione devono rimanere consapevoli della versione.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Contenuti\">\u003Cstrong class=\"editorjs-toc__title\">Contenuti\u003C\u002Fstrong>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-0\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-7\" class=\"editorjs-toc__link\">Cosa standardizza realmente MCP\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-11\" class=\"editorjs-toc__link\">L&#39;esempio più semplice\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-16\" class=\"editorjs-toc__link\">Dove si ferma l&#39;esempio semplice\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-20\" class=\"editorjs-toc__link\">L&#39;architettura MCP: host, client e server\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-24\" class=\"editorjs-toc__link\">Le tre primitive principali del server\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-26\" class=\"editorjs-toc__link\">Strumenti: capacità richiamabili\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-30\" class=\"editorjs-toc__link\">Risorse: contesto e dati leggibili\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-34\" class=\"editorjs-toc__link\">Prompt: modelli riutilizzabili\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-38\" class=\"editorjs-toc__link\">Strumento o risorsa?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-40\" class=\"editorjs-toc__link\">Dove si trova il modello di IA?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-45\" class=\"editorjs-toc__link\">MCP non sostituisce le API\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-49\" class=\"editorjs-toc__link\">MCP vs function calling\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-52\" class=\"editorjs-toc__link\">MCP non crea il ciclo dell&#39;agente\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-56\" class=\"editorjs-toc__link\">MCP vs A2A\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-61\" class=\"editorjs-toc__link\">L&#39;uso locale e remoto di MCP presenta realtà di trasporto diverse\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-65\" class=\"editorjs-toc__link\">Perché la consapevolezza della versione di MCP è importante\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-69\" class=\"editorjs-toc__link\">Cosa è cambiato in MCP 2026-07-28\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-71\" class=\"editorjs-toc__link\">Roots, sampling e logging non sono più la direzione per le nuove implementazioni\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-75\" class=\"editorjs-toc__link\">Il lavoro a lunga esecuzione non è la stessa cosa della normale invocazione di uno strumento MCP\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-79\" class=\"editorjs-toc__link\">Le MCP Apps estendono le capacità dell&#39;interfaccia utente senza ridefinire il protocollo principale\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-83\" class=\"editorjs-toc__link\">L&#39;autorizzazione MCP non è il tuo modello di autorizzazione completo\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-88\" class=\"editorjs-toc__link\">L&#39;identità può attraversare diversi confini\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-92\" class=\"editorjs-toc__link\">L&#39;isolamento dei tenant rimane al di fuori della scoperta delle capacità MCP\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-96\" class=\"editorjs-toc__link\">MCP non definisce la Fonte di Verità\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-100\" class=\"editorjs-toc__link\">MCP e ingegneria del contesto\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-104\" class=\"editorjs-toc__link\">Progettare gli strumenti MCP attorno a risultati e confini di rischio\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-106\" class=\"editorjs-toc__link\">Le approvazioni appartengono all&#39;architettura di esecuzione\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-110\" class=\"editorjs-toc__link\">L&#39;osservabilità MCP dovrebbe collegare le chiamate di protocollo alle azioni di dominio\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-114\" class=\"editorjs-toc__link\">Cosa MCP non può risolvere\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-116\" class=\"editorjs-toc__link\">Prova di implementazione originale: Aaasaasa AI Client\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-124\" class=\"editorjs-toc__link\">Quando MCP è adatto\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-126\" class=\"editorjs-toc__link\">Quando non hai bisogno di MCP\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-130\" class=\"editorjs-toc__link\">Checklist di sicurezza MCP\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-132\" class=\"editorjs-toc__link\">Idee sbagliate comuni\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-134\" class=\"editorjs-toc__link\">Una sequenza pratica di progettazione MCP\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-136\" class=\"editorjs-toc__link\">Checklist di architettura MCP\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-138\" class=\"editorjs-toc__link\">Casi limite e limitazioni\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-144\" class=\"editorjs-toc__link\">Cosa cambierebbe questa risposta?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-148\" class=\"editorjs-toc__link\">Conoscenza canonica correlata\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-153\" class=\"editorjs-toc__link\">Domande frequenti\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-155\" class=\"editorjs-toc__link\">Glossario\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-157\" class=\"editorjs-toc__link\">Conclusione\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-161\" class=\"editorjs-toc__link\">Fonti primarie e documentazione corrente\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Ch2 id=\"section-7\">Cosa standardizza realmente MCP\u003C\u002Fh2>\n\u003Cp>Prima di MCP, ogni applicazione di intelligenza artificiale poteva integrare sistemi esterni tramite il proprio schema di strumenti, formato di plugin, convenzione di autenticazione e codice di connessione. Lo stesso servizio poteva richiedere adattatori diversi per un client AI desktop, un agente IDE e un'applicazione personalizzata.\u003C\u002Fp>\n\u003Cp>MCP crea un confine di protocollo riutilizzabile. Il sistema esterno espone capacità tramite un server MCP, mentre gli host AI compatibili implementano un client MCP. Ciò riduce l'accoppiamento di integrazione tra l'applicazione di intelligenza artificiale e il fornitore di strumenti o dati sottostante.\u003C\u002Fp>\n\u003Cp>Il protocollo non standardizza l'intera applicazione. Standardizza il modo in cui le capacità vengono descritte, scoperte e invocate attraverso quel confine.\u003C\u002Fp>\n\u003Ch2 id=\"section-11\">L'esempio più semplice\u003C\u002Fh2>\n\u003Cp>Supponiamo che un'applicazione di programmazione AI necessiti di accedere a una directory di progetto locale. Senza MCP, l'applicazione potrebbe implementare direttamente la propria integrazione con il filesystem.\u003C\u002Fp>\n\u003Cp>Con MCP, un server per il filesystem può esporre capacità come elencare directory, leggere file approvati o scrivere all'interno di uno spazio di lavoro consentito. L'host AI si connette tramite un client MCP e presenta tali capacità al modello o al runtime dell'agente.\u003C\u002Fp>\n\u003Cp>Il server non ha bisogno di comprendere la richiesta in linguaggio naturale dell'utente. L'host\u002Fmodello decide quale capacità è utile; il server MCP esegue la richiesta strutturata secondo le proprie regole di sicurezza.\u003C\u002Fp>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Una chiamata di strumento MCP di base\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. L'host si connette al server\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">L'applicazione compatibile con MCP configura l'accesso al server MCP esterno.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Le capacità vengono scoperte\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Il client apprende quali strumenti, risorse o prompt il server espone.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Il modello o il runtime seleziona una capacità\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">L'applicazione di intelligenza artificiale decide che è necessaria una capacità esposta.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">4. Il client invia una richiesta strutturata\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Gli argomenti vengono inviati tramite MCP al server.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">5. Il server autorizza ed esegue\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Il server convalida la richiesta e chiama il suo sistema sottostante.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">6. Il risultato ritorna all'host\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Il risultato diventa un'osservazione o un input di contesto.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">7\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">7. L'host decide cosa succede dopo\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Il modello\u002Fruntime può rispondere, chiamare un altro strumento o continuare un flusso di lavoro.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-16\">Dove si ferma l'esempio semplice\u003C\u002Fh2>\n\u003Cp>MCP non definisce come l'host sceglie uno strumento, come un agente pianifica, come viene modellato un flusso di lavoro aziendale o come dovrebbe comportarsi un oggetto di dominio come una fattura o un deployment.\u003C\u002Fp>\n\u003Cp>Un protocollo può rendere l'integrazione interoperabile mentre l'applicazione sottostante rimane errata, insicura o mal progettata. Una richiesta MCP perfettamente valida può comunque chiamare la capacità aziendale sbagliata.\u003C\u002Fp>\n\u003Cp>Il confine centrale è: MCP standardizza la semantica dell'integrazione, non la verità dell'applicazione o la correttezza aziendale.\u003C\u002Fp>\n\u003Ch2 id=\"section-20\">L'architettura MCP: host, client e server\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Componente\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Responsabilità\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Host AI\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Applicazione o runtime AI rivolto all'utente che possiede l'interazione con il modello, il contesto e il flusso di lavoro complessivo\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Client MCP\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Componente lato protocollo utilizzato dall'host per comunicare con un server MCP\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Server MCP\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pubblica capacità e gestisce le richieste MCP\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sistema sottostante\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Applicazione, API, database, filesystem, piattaforma SaaS o servizio dietro il server MCP\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modello\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sceglie o ragiona sulle capacità in base al design dell'host\u002Fruntime; non è necessariamente all'interno del server MCP\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Autorizzazione\u002Fpolicy aziendale\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Determina se un'operazione richiesta è effettivamente consentita\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Un host può connettersi a più server MCP, e un server MCP può interfacciarsi con uno o più sistemi sottostanti. L'host rimane responsabile dell'integrazione dei risultati MCP nell'applicazione AI più ampia.\u003C\u002Fp>\n\u003Cp>Il server può essere locale all'host, essere eseguito come processo separato o essere remoto tramite un trasporto di rete. La topologia di hosting e la posizione del modello sono decisioni indipendenti.\u003C\u002Fp>\n\u003Ch2 id=\"section-24\">Le tre primitive principali del server\u003C\u002Fh2>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Strumenti, risorse e prompt risolvono esigenze diverse\u003C\u002Fh3>\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left dark:border-gray-700 dark:bg-gray-900\">\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Strumenti\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Risorse\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Prompt\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Scopo principale\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Interazione tipica\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Esempio\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Rischio tipico\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-26\">Strumenti: capacità richiamabili\u003C\u002Fh2>\n\u003Cp>Gli strumenti sono operazioni strutturate che un server MCP rende disponibili all'host. Uno strumento ha un nome, una descrizione e uno schema di input; le implementazioni moderne possono anche fornire output strutturato.\u003C\u002Fp>\n\u003Cp>Gli esempi includono la ricerca in un repository, la lettura di un record cliente, la creazione di un ticket, l'esecuzione di una build o l'invio di un messaggio. Gli strumenti possono essere di sola lettura o avere effetti collaterali.\u003C\u002Fp>\n\u003Cp>Una buona superficie di strumenti MCP dovrebbe rappresentare obiettivi coerenti dell'utente o dell'agente piuttosto che rispecchiare meccanicamente ogni endpoint API interno. Le operazioni con permessi diversi, requisiti di conferma o raggio d'azione dovrebbero di solito essere strumenti separati.\u003C\u002Fp>\n\u003Ch2 id=\"section-30\">Risorse: contesto e dati leggibili\u003C\u002Fh2>\n\u003Cp>Le risorse espongono dati o contenuti che un client può elencare o leggere. Si adattano naturalmente quando l'operazione semantica è \"dammi questo artefatto o informazione\" piuttosto che \"esegui questa azione\".\u003C\u002Fp>\n\u003Cp>Un URI di risorsa non è una concessione di autorizzazione. Il server possiede comunque il controllo degli accessi e deve verificare quale principale può leggere l'oggetto sottostante.\u003C\u002Fp>\n\u003Cp>La revisione del protocollo 2026-07-28 aggiunge semantiche di cache per le risposte di elenco e lettura delle risorse, inclusi freschezza e ambito della cache, rendendo il comportamento di caching più esplicito.\u003C\u002Fp>\n\u003Ch2 id=\"section-34\">Prompt: modelli riutilizzabili\u003C\u002Fh2>\n\u003Cp>I prompt MCP consentono a un server di pubblicare modelli di prompt riutilizzabili ai client compatibili. Questo può mantenere le istruzioni specifiche del dominio vicine al fornitore della capacità.\u003C\u002Fp>\n\u003Cp>Un prompt fornito da un server MCP non supera automaticamente le istruzioni di sistema o di sicurezza dell'host. L'host decide come il materiale del prompt entra nella sua gerarchia di contesto.\u003C\u002Fp>\n\u003Cp>Il contenuto dei prompt fornito dal protocollo dovrebbe quindi essere trattato come dati di capacità con semantiche di fiducia esplicite, non come autorità di istruzione illimitata.\u003C\u002Fp>\n\u003Ch2 id=\"section-38\">Strumento o risorsa?\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Esigenza\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Preferire\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Eseguire un'azione con argomenti strutturati\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Strumento\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Leggere un artefatto stabile specifico\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Risorsa\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cercare o calcolare dinamicamente\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Di solito strumento\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modificare lo stato esterno\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Strumento\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Confezionare istruzioni di prompt riutilizzabili\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Prompt\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Esecuzione asincrona di lunga durata\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Strumento più gestione di attività applicativa\u002Fruntime o un'estensione MCP\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-40\">Dove si trova il modello di IA?\u003C\u002Fh2>\n\u003Cp>MCP non richiede che il modello venga eseguito sul server MCP. Il modello può essere ospitato nel cloud, ospitato localmente, incorporato nell'applicazione desktop o raggiunto tramite un altro fornitore.\u003C\u002Fp>\n\u003Cp>L'host normalmente possiede l'interazione con il modello. Il server MCP espone capacità esterne. Un server MCP locale può quindi essere utilizzato da un host il cui modello viene eseguito nel cloud, e un server MCP remoto può essere utilizzato da un host il cui modello viene eseguito localmente.\u003C\u002Fp>\n\u003Cp>Se il server MCP stesso chiama internamente un LLM, quel modello fa parte dell'implementazione del server dietro il confine del protocollo; non è richiesto da MCP.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--success my-6 rounded-xl border p-5 border-emerald-300 bg-emerald-50 dark:border-emerald-900 dark:bg-emerald-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Posizione del protocollo ≠ posizione dell&#39;inferenza\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">\u003Cstrong>MCP locale non implica inferenza locale, e MCP remoto non implica inferenza remota.\u003C\u002Fstrong> La posizione della connessione, la posizione di esecuzione degli strumenti e la posizione del modello\u002Ffornitore sono dimensioni architetturali separate.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-45\">MCP non sostituisce le API\u003C\u002Fh2>\n\u003Cp>Un server MCP spesso avvolge API o servizi esistenti. REST, GraphQL, SQL, chiamate SDK e contratti di servizio interni possono rimanere esattamente dove sono.\u003C\u002Fp>\n\u003Cp>MCP aggiunge uno strato di interoperabilità rivolto all'IA. L'API di dominio sottostante può rimanere il contratto applicativo autorevole per i normali client deterministici.\u003C\u002Fp>\n\u003Cp>L'architettura usuale è quindi prima API\u002Fservizio, poi capacità selezionate rivolte all'IA — non “sostituire ogni API con MCP”.\u003C\u002Fp>\n\u003Ch2 id=\"section-49\">MCP vs function calling\u003C\u002Fh2>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Function calling e MCP sono correlati ma non identici\u003C\u002Fh3>\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left dark:border-gray-700 dark:bg-gray-900\">\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Function calling\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">MCP\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Ambito\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Definizione dello strumento\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Portabilità\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Possono coesistere?\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Cp>OpenAI attualmente espone i server MCP remoti come un tipo di strumento insieme al normale function calling, alla ricerca web, alla shell e ad altri strumenti. Tale implementazione illustra la relazione architetturale: la connettività MCP e l'interfaccia di chiamata agli strumenti del modello possono essere composte.\u003C\u002Fp>\n\u003Ch2 id=\"section-52\">MCP non crea il ciclo dell'agente\u003C\u002Fh2>\n\u003Cp>Un agente di IA necessita di un runtime in grado di decidere, invocare strumenti, osservare i risultati, aggiornare lo stato e continuare o fermarsi. MCP può fornire alcuni degli strumenti e dei dati utilizzati da quel ciclo.\u003C\u002Fp>\n\u003Cp>Il server MCP non diventa automaticamente il pianificatore, il sistema di memoria o l'orchestratore. Tali responsabilità normalmente rimangono nell'host o nel runtime dell'agente.\u003C\u002Fp>\n\u003Cp>Un'applicazione non agentica può anche utilizzare MCP. Una singola chiamata deterministica a uno strumento MCP non richiede un agente autonomo a più passaggi.\u003C\u002Fp>\n\u003Ch2 id=\"section-56\">MCP vs A2A\u003C\u002Fh2>\n\u003Cp>MCP collega principalmente un host o agente AI a capacità come strumenti, risorse e dati. A2A è finalizzato alla collaborazione tra sistemi di agenti indipendenti.\u003C\u002Fp>\n\u003Cp>Un agente remoto può utilizzare internamente MCP per raggiungere database e strumenti, esponendo al contempo un'interfaccia A2A ad altri agenti. I protocolli possono quindi essere stratificati anziché sostituiti.\u003C\u002Fp>\n\u003Cp>L'articolo esistente sullo stack di protocolli possiede il confronto più ampio MCP\u002FA2A\u002FUCP\u002FAP2\u002FA2UI; G02 rimane la definizione canonica di MCP.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Fde\u002Fblog\u002Fmcp-vs-a2a-vs-ucp-vs-ap2-vs-a2ui-the-agent-protocol-stack-explained\" class=\"flex flex-col sm:flex-row gap-4 rounded-xl border border-gray-200 dark:border-gray-700 p-4 transition hover:border-primary-500\">\u003Cdiv class=\"min-w-0 flex-1\">\u003Cstrong class=\"block text-lg text-gray-900 dark:text-gray-100\">MCP vs A2A vs UCP vs AP2 vs A2UI: lo stack di protocolli per agenti spiegato\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Una mappa di responsabilità più ampia che mostra come MCP si compone con la collaborazione tra agenti, il commercio, l'autorità di pagamento e i protocolli UI guidati da agenti.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Leggi lo stack di protocolli →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Ch2 id=\"section-61\">L'uso locale e remoto di MCP presenta realtà di trasporto diverse\u003C\u002Fh2>\n\u003Cp>MCP può connettersi a server locali e remoti. Le integrazioni desktop locali utilizzano comunemente trasporti a livello di processo come stdio; i server remoti utilizzano un trasporto orientato a HTTP.\u003C\u002Fp>\n\u003Cp>La revisione del 2026-07-28 rende il nucleo del protocollo stateless. Le richieste trasportano le informazioni necessarie per la gestione del protocollo invece di dipendere dal precedente modello di sessione a livello di protocollo.\u003C\u002Fp>\n\u003Cp>La revisione attuale colloca anche i nomi dei metodi e delle capacità negli header HTTP, in modo che gateway, WAF, rate limiter e load balancer possano instradare e misurare il traffico MCP in modo più naturale.\u003C\u002Fp>\n\u003Ch2 id=\"section-65\">Perché la consapevolezza della versione di MCP è importante\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Epoca del protocollo\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Caratteristica operativa\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">2025-11-25 e precedenti\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ciclo di vita orientato a handshake\u002Fsessione e comportamento Streamable HTTP precedente\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">2026-07-28\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Nucleo stateless, scoperta opzionale del server, richieste autodescrittive, header di instradamento, suggerimenti di cache, MRTR e rafforzamento dell'autorizzazione\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Estensioni\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Capacità come Tasks e MCP Apps possono avere versioni separate dal protocollo di base\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Anche la versione dell'SDK e la versione del protocollo sono cose diverse. L'attuale SDK TypeScript v2 è la linea stabile per la revisione 2026-07-28, mentre il precedente v1.x rimane una linea di manutenzione per il comportamento dell'era 2025.\u003C\u002Fp>\n\u003Cp>La documentazione architetturale dovrebbe registrare sia la versione dell'SDK\u002Flibreria sia la revisione del protocollo laddove il comportamento di interoperabilità dipende da esse.\u003C\u002Fp>\n\u003Ch2 id=\"section-69\">Cosa è cambiato in MCP 2026-07-28\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Modifica\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Perché è importante\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Nucleo stateless\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">I server remoti possono scalare dietro normali load balancer senza sessioni sticky a livello di protocollo\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">server\u002Fdiscover\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">I client possono ispezionare le capacità del server quando necessario\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Richieste autodescrittive\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La versione del protocollo e i metadati delle capacità del client viaggiano per ogni richiesta\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Header Mcp-Method \u002F Mcp-Name\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">I gateway possono instradare, misurare e applicare policy senza analizzare i corpi\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Suggerimenti di cache\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le letture di elenchi\u002Frisorse comunicano freschezza e ambito di condivisione\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Richieste multi-round-trip\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">I server possono richiedere input aggiuntivi senza il precedente modello di richiesta bidirezionale\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Rafforzamento dell'autorizzazione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La validazione dell'emittente e il binding delle credenziali rafforzano il comportamento di autenticazione remota\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Framework di estensioni\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Tasks, MCP Apps e altre capacità possono evolvere separatamente\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-71\">Roots, sampling e logging non sono più la direzione per le nuove implementazioni\u003C\u002Fh2>\n\u003Cp>La release 2026-07-28 contrassegna roots, sampling e logging come capacità di protocollo deprecate con una finestra di compatibilità definita.\u003C\u002Fp>\n\u003Cp>I tutorial più vecchi potrebbero ancora mostrare queste funzionalità come primitive centrali. Il nuovo lavoro di implementazione dovrebbe seguire la specifica corrente invece di copiare ciecamente i vecchi diagrammi del ciclo di vita.\u003C\u002Fp>\n\u003Cp>La deprecazione non significa rimozione immediata. Significa che i nuovi sistemi dovrebbero evitare nuove dipendenze non necessarie da capacità da cui il protocollo si sta allontanando.\u003C\u002Fp>\n\u003Ch2 id=\"section-75\">Il lavoro a lunga esecuzione non è la stessa cosa della normale invocazione di uno strumento MCP\u003C\u002Fh2>\n\u003Cp>Le operazioni a lunga esecuzione necessitano di semantiche del ciclo di vita che vadano oltre un semplice risultato immediato di uno strumento. Nell'ecosistema attuale, i Tasks sono stati spostati in un'estensione MCP dedicata.\u003C\u002Fp>\n\u003Cp>Questo rafforza un utile principio di progettazione: il protocollo di base non ha bisogno di assorbire ogni preoccupazione relativa al runtime dell'agente.\u003C\u002Fp>\n\u003Cp>Un'applicazione può anche mantenere interamente la proprietà del flusso di lavoro a lunga esecuzione nel proprio runtime e usare i normali strumenti MCP come operazioni sottostanti.\u003C\u002Fp>\n\u003Ch2 id=\"section-79\">Le MCP Apps estendono le capacità dell'interfaccia utente senza ridefinire il protocollo principale\u003C\u002Fh2>\n\u003Cp>Le MCP Apps associano esperienze di interfaccia utente interattive più ricche agli strumenti MCP attraverso il modello di estensione.\u003C\u002Fp>\n\u003Cp>L'host controlla ancora come quell'interfaccia utente viene incorporata, isolata e protetta.\u003C\u002Fp>\n\u003Cp>Lo scambio di capacità principali e il rendering dell'interfaccia utente dovrebbero quindi rimanere responsabilità architetturali separate.\u003C\u002Fp>\n\u003Ch2 id=\"section-83\">L'autorizzazione MCP non è il tuo modello di autorizzazione completo\u003C\u002Fh2>\n\u003Cp>MCP remoto necessita di meccanismi di autenticazione e autorizzazione a livello di protocollo affinché client e server possano stabilire un accesso affidabile. La specifica corrente continua a rafforzare il comportamento relativo a OAuth\u002FOIDC.\u003C\u002Fp>\n\u003Cp>Quel livello risponde alla domanda se un client è autorizzato a connettersi o a richiedere gli scope del protocollo. Non risponde automaticamente alla domanda se Alice può rimborsare l'ordine 123, se un agente può scrivere la configurazione di produzione o se il Tenant A può leggere i dati del Tenant B.\u003C\u002Fp>\n\u003Cp>Quelle decisioni di dominio appartengono al modello di autorizzazione del server\u002Fapplicazione e devono essere applicate prima di invocare l'operazione sottostante.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Non mappare mai &quot;client MCP autenticato&quot; su &quot;affidabile per ogni strumento&quot;\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Fiducia nella connessione, visibilità degli strumenti, autorizzazione degli strumenti, autorizzazione dell&#39;utente, isolamento dei tenant e approvazione aziendale sono controlli diversi. Mantienili separati.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-88\">L'identità può attraversare diversi confini\u003C\u002Fh2>\n\u003Cp>Una richiesta MCP può coinvolgere l'applicazione client MCP, la persona che ha effettuato l'accesso, un'identità di agente\u002Fsessione e un account di servizio a valle.\u003C\u002Fp>\n\u003Cp>Il server necessita di una policy esplicita su per conto di quale principale viene eseguita l'operazione. Altrimenti una potente credenziale di servizio può diventare un percorso di confused deputy.\u003C\u002Fp>\n\u003Cp>Per l'uso aziendale, la correlazione tra identità utente, identità agente, connessione MCP e autorizzazione a valle è importante quanto la compatibilità del protocollo.\u003C\u002Fp>\n\u003Ch2 id=\"section-92\">L'isolamento dei tenant rimane al di fuori della scoperta delle capacità MCP\u003C\u002Fh2>\n\u003Cp>Un server MCP multi-tenant deve applicare l'ambito del tenant quando legge o modifica risorse di proprietà del tenant. Restituire uno strumento chiamato search_documents non definisce a quale tenant appartengono i documenti idonei.\u003C\u002Fp>\n\u003Cp>L'ambito del tenant dovrebbe essere derivato da un'identità o appartenenza attendibile e trasportato in database, cache, ricerca vettoriale, archiviazione di oggetti e API a valle.\u003C\u002Fp>\n\u003Cp>Recuperare contenuti cross-tenant e chiedere al modello di non utilizzarli è già un fallimento dell'isolamento.\u003C\u002Fp>\n\u003Ch2 id=\"section-96\">MCP non definisce la Fonte di Verità\u003C\u002Fh2>\n\u003Cp>Un server MCP può esporre un database, un repository di documenti, un servizio di ricerca web o un riepilogo generato dall'IA. Il protocollo non dichiara quale fonte sia autorevole per un'affermazione.\u003C\u002Fp>\n\u003Cp>Le regole della Fonte di Verità appartengono all'architettura dell'applicazione\u002Fdominio. L'host o il server possono codificare l'autorità attraverso il design degli strumenti, i metadati, la politica di accesso o la validazione, ma MCP stesso non rende una capacità \"vera\".\u003C\u002Fp>\n\u003Cp>Uno strumento può quindi essere perfettamente richiamabile tramite MCP e comunque restituire informazioni obsolete, secondarie o non autorevoli.\u003C\u002Fp>\n\u003Ch2 id=\"section-100\">MCP e ingegneria del contesto\u003C\u002Fh2>\n\u003Cp>MCP può aumentare le capacità e le informazioni disponibili a un'applicazione di IA, ma l'ingegneria del contesto determina comunque ciò che raggiunge il modello.\u003C\u002Fp>\n\u003Cp>I cataloghi di strumenti consumano contesto visibile al modello in molti host. I risultati degli strumenti possono essere grandi. Le risorse possono essere numerose. Un host necessita di selezione, filtraggio, caricamento dinamico e compattazione invece di esporre tutto ad ogni turno.\u003C\u002Fp>\n\u003Cp>La disponibilità delle capacità e il contesto visibile al modello dovrebbero quindi essere trattati come livelli separati.\u003C\u002Fp>\n\u003Ch2 id=\"section-104\">Progettare gli strumenti MCP attorno a risultati e confini di rischio\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Design debole dello strumento\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Design più solido dello strumento\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">execute_api(method,url,body)\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Strumenti di dominio ristretti con operazioni validate\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un unico strumento di amministrazione per tutte le azioni\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Operazioni separate di lettura\u002Fscrittura\u002Fapprovazione\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">API interna grezza replicata 1:1\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Contratto rivolto all'IA attorno a obiettivi utente coerenti\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un unico strumento filesystem ampio\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Operazioni di lettura\u002Fscrittura con ambito workspace\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Politica di sicurezza solo nella descrizione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Il server applica la politica nel codice\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Risposta grezza illimitata\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Output strutturato rilevante per le decisioni\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Eliminazione\u002Faggiornamento mescolati con la lettura\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Strumenti separati con effetti collaterali e politica di conferma\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-106\">Le approvazioni appartengono all'architettura di esecuzione\u003C\u002Fh2>\n\u003Cp>Un host può richiedere l'approvazione dell'utente prima di invocare strumenti MCP selezionati. L'attuale integrazione MCP di OpenAI supporta modelli di esecuzione automatici o con approvazione esplicita.\u003C\u002Fp>\n\u003Cp>L'approvazione dell'host è utile ma non dovrebbe essere l'unica protezione del server, perché un altro client MCP compatibile potrebbe utilizzare un modello di approvazione diverso.\u003C\u002Fp>\n\u003Cp>Per azioni distruttive o con conseguenze finanziarie, usa la difesa in profondità: contratto dello strumento chiaro, approvazione a runtime dove appropriato, autorizzazione lato server, validazione di business e audit.\u003C\u002Fp>\n\u003Ch2 id=\"section-110\">L'osservabilità MCP dovrebbe collegare le chiamate di protocollo alle azioni di dominio\u003C\u002Fh2>\n\u003Cp>Una traccia MCP è più utile quando può essere correlata alla chiamata applicativa sottostante, alla modifica del database o alla transazione di business.\u003C\u002Fp>\n\u003Cp>Lo standard dell'ecosistema 2026-07-28 uniforma le convenzioni di propagazione del W3C Trace Context, rendendo più facile seguire una richiesta attraverso host, client, server e servizi a valle.\u003C\u002Fp>\n\u003Cp>I soli log di protocollo non sono sufficienti per operazioni con conseguenze. Le prove di audit dovrebbero anche registrare il principal, il tenant, la risorsa target, l'approvazione e la conseguente modifica di stato rilevanti.\u003C\u002Fp>\n\u003Ch2 id=\"section-114\">Cosa MCP non può risolvere\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Problema\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Perché MCP non lo risolve\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">API di business scadente\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">MCP può esporre l'API scadente in modo più coerente\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Dati errati\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La validità del protocollo non crea correttezza fattuale\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Isolamento dei tenant mancante\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La scoperta degli strumenti non impone la proprietà delle risorse\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Privilegi eccessivi\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Uno strumento standardizzato può comunque avere privilegi eccessivi\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pianificazione dell'agente scadente\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">MCP espone le capacità; il runtime\u002Fmodello sceglie comunque come usarle\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Progettazione scadente di retry\u002Fidempotenza\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le chiamate di protocollo non rendono sicuri gli effetti collaterali\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Nessuna fonte di verità\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">MCP non decide quale sistema possiede un fatto\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Valutazione debole\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'interoperabilità non prova il successo del compito\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Nessuna politica di audit\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le tracce di trasporto non definiscono conservazione o responsabilità\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Disallineamento del protocollo\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Versioni vecchie\u002Fnuove possono comunque richiedere migrazione o gestione della compatibilità\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-116\">Prova di implementazione originale: Aaasaasa AI Client\u003C\u002Fh2>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Prova di implementazione\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Aaasaasa AI Client contiene un connettore\u002Fbroker MCP locale autenticato per directory locali approvate e integrazione tramite Secure MCP Tunnel. Questa è una prova concreta di implementazione per il confine del protocollo e l&#39;architettura dei permessi, non un&#39;affermazione di una piattaforma MCP commerciale generica.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Cp>L'applicazione può eseguire un endpoint MCP Streamable HTTP autenticato su loopback. L'endpoint espone solo le directory selezionate tramite il broker centrale dei permessi del workspace.\u003C\u002Fp>\n\u003Cp>L'endpoint locale e la rotta remota sono questioni separate: il connettore locale può associarsi solo al loopback, mentre un Secure MCP Tunnel può rendere il servizio MCP approvato raggiungibile da un client AI esterno autorizzato senza esporre l'intera macchina locale.\u003C\u002Fp>\n\u003Cp>Il modello centrale dei permessi distingue profili solo chat, sola lettura, scrittura progetto e directory personalizzate. Direct Chat non ha accesso al filesystem o alla shell; i runtime degli agenti con capacità di strumenti usano il profilo di permessi selezionato.\u003C\u002Fp>\n\u003Cp>Questa è un'implementazione diretta del confine G02: MCP fornisce la connessione standardizzata alle capacità, mentre il broker dei permessi di proprietà dell'applicazione decide quali directory il server può esporre.\u003C\u002Fp>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Elemento implementato\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Prova architetturale\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Endpoint MCP locale autenticato\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Il server MCP può essere un servizio di capacità deterministico locale\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Binding su loopback\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Esposizione di rete e capacità del protocollo sono decisioni separate\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Integrazione Secure MCP Tunnel\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">MCP privato\u002Flocale può essere collegato tramite una rotta controllata\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Broker centrale dei permessi\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La capacità MCP è vincolata dalla politica dell'applicazione\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ambito delle directory selezionate\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La visibilità del filesystem è esplicitamente limitata\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Direct Chat senza strumenti OS\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'accesso al modello non implica automaticamente l'accesso agli strumenti\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Confine delle prove\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">L&#39;implementazione dimostra la connettività MCP e l&#39;esposizione di directory locali con ambito di permessi. Non implica che ogni primitiva MCP, ogni funzionalità del 2026-07-28 o ogni estensione di autorizzazione enterprise sia implementata.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-124\">Quando MCP è adatto\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">MCP è altamente adatto quando\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Un'integrazione diretta può essere più semplice quando\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La stessa capacità dovrebbe essere riutilizzabile su più host AI\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Una sola applicazione possiede entrambi i lati e la portabilità ha poco valore\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un sistema esterno vuole pubblicare strumenti\u002Frisorse scopribili rivolti all'AI\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Una singola chiamata API interna stabile è sufficiente\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Vuoi un confine standard attorno a strumenti\u002Fdati locali\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Non c'è alcun requisito di interoperabilità rivolto all'AI\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fornitori di strumenti e client AI evolvono indipendentemente\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'integrazione è intenzionalmente privata e strettamente accoppiata\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Vuoi una scoperta delle capacità compatibile con l'ecosistema\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'insieme di capacità è minuscolo e fisso nel codice dell'applicazione\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-126\">Quando non hai bisogno di MCP\u003C\u002Fh2>\n\u003Cp>Non aggiungere MCP solo perché l'applicazione utilizza l'IA. Se il tuo backend chiama già una singola API interna e nessun client MCP indipendente necessita di quella capacità, una normale chiamata a funzione o a servizio può essere più chiara.\u003C\u002Fp>\n\u003Cp>MCP aggiunge valore a un confine di interoperabilità. Senza quel confine, il protocollo può diventare uno strato adattatore non necessario.\u003C\u002Fp>\n\u003Cp>La domanda architetturale non è \"Questo progetto ha l'IA?\" ma \"Host IA e fornitori di capacità che evolvono in modo indipendente traggono beneficio da un contratto standard?\"\u003C\u002Fp>\n\u003Ch2 id=\"section-130\">Checklist di sicurezza MCP\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Confine\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Domanda\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Identità del server\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">A quale server MCP sono effettivamente connesso?\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Identità del client\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quale applicazione\u002Fclient sta richiedendo l'accesso?\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Identità dell'utente finale\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Per conto di chi viene eseguita l'operazione?\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Allowlist degli strumenti\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quali capacità può scoprire e chiamare questo host\u002Fagente?\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Autorizzazione business\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Questo principale può eseguire questa operazione?\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ambito tenant\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quale confine di tenant\u002Frisorsa si applica?\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Isolamento delle credenziali\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le credenziali sono associate correttamente e mantenute al di fuori del contesto del modello?\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Approvazione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quali effetti collaterali richiedono conferma umana?\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Validazione dell'input\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Gli argomenti degli strumenti sono validati indipendentemente dall'output del modello?\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fiducia nell'output\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Il contenuto restituito può contenere istruzioni non attendibili o dati sensibili?\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Esposizione di rete\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un server locale è accidentalmente esposto oltre le interfacce previste?\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Audit\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Una chiamata al protocollo può essere correlata all'azione a valle?\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-132\">Idee sbagliate comuni\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Idea sbagliata\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Correzione\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">\"Un server MCP è un server IA.\"\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Può essere un normale software deterministico che espone capacità.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">\"Ho bisogno del mio LLM sul server MCP.\"\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">No. Il modello può risiedere interamente sul lato host.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">\"MCP sostituisce le API REST.\"\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">MCP spesso avvolge API esistenti per l'interoperabilità rivolta all'IA.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">\"MCP è un framework per agenti.\"\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">MCP fornisce capacità; un runtime per agenti gestisce iterazione e stato.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">\"MCP e function calling competono.\"\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un host può collegare le capacità MCP alla propria interfaccia di strumenti del modello.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">\"MCP sostituisce A2A.\"\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">MCP si concentra sull'integrazione delle capacità; A2A si concentra sulla collaborazione tra agenti.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">\"Se uno strumento è elencato, l'utente può chiamarlo.\"\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La scoperta non è autorizzazione.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">\"OAuth risolve i permessi business.\"\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'autorizzazione alla connessione non sostituisce l'autorizzazione di dominio o l'isolamento dei tenant.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">\"MCP locale significa IA locale.\"\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La posizione del server degli strumenti e la posizione dell'inferenza sono indipendenti.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">\"MCP rende affidabile l'output degli strumenti.\"\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Qualità dei dati, autorità e provenienza appartengono comunque alla fonte\u002Fapplicazione.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">\"Un unico strumento generico gigante è flessibile.\"\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Strumenti troppo ampi indeboliscono permessi, validazione e osservabilità.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">\"I vecchi tutorial sono aggiornati all'implementazione.\"\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La revisione 2026-07-28 ha modificato sostanzialmente il ciclo di vita e il comportamento del trasporto.\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-134\">Una sequenza pratica di progettazione MCP\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Progetta il confine prima di implementare il server\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. Identifica il confine di interoperabilità\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Conferma che host IA indipendenti necessitano effettivamente di accesso riutilizzabile.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Mantieni l'API di dominio come autoritativa\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Preserva il vero contratto dell'applicazione\u002Fservizio dietro MCP.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Scegli le primitive deliberatamente\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Usa strumenti, risorse e prompt in base alla loro semantica.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">4. Suddividi per rischio e permesso\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Separa operazioni di lettura, scrittura, distruttive e che richiedono approvazione.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">5. Definisci la propagazione dell'identità\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Sappi quale client, utente, agente e principale a valle rappresenta ogni chiamata.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">6. Applica l'autorizzazione business\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Valida permessi, ambito tenant e proprietà dell'obiettivo.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">7\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">7. Scegli il trasporto locale o remoto\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Abbina la topologia di distribuzione alla reale necessità.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">8\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">8. Fissa le aspettative su protocollo\u002FSDK\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Documenta 2026-07-28 rispetto alla compatibilità precedente.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">9\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">9. Aggiungi approvazioni per azioni consequenziali\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Usa controlli di conferma adeguati al rischio.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">10\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">10. Progetta output strutturati\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Restituisci risultati concisi e utilizzabili dalla macchina.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">11\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">11. Aggiungi tracciamento e correlazione di audit\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Collega le chiamate MCP agli eventi di servizio\u002Fbusiness a valle.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">12\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">12. Testa la portabilità\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Verifica più di un client dove l'interoperabilità è un requisito dichiarato.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-136\">Checklist di architettura MCP\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Domanda\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Risposta attesa\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Perché è necessario MCP?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un reale confine di interoperabilità rivolto all'IA\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cosa espone il server?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Strumenti\u002Frisorse\u002Fprompt espliciti\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Dove viene eseguito il modello?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Decisione indipendente di host\u002Ffornitore\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Dove viene eseguita l'esecuzione degli strumenti?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Posizione nominata di server\u002Fruntime\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quale revisione del protocollo è prevista?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Contratto consapevole della versione\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Chi è il principale richiedente?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modello di identità client\u002Futente\u002Fagente\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quali strumenti possono essere scoperti?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Politica di allowlist\u002Fcapacità\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quali operazioni possono essere eseguite?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Autorizzazione business lato server\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Come viene applicato l'ambito tenant\u002Frisorsa?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Controlli attendibili di proprietà tenant\u002Frisorsa\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quali azioni richiedono approvazione?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Politica di conferma basata sul rischio\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Come sono protette le credenziali?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Archiviazione runtime attendibile, segreti non visibili al modello\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Come viene limitato l'output?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Contratto di risultato rilevante strutturato\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Come vengono tracciate le chiamate?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Correlazione attraverso MCP fino all'azione a valle\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cosa succede se MCP non è disponibile?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Comportamento di fallback\u002Ferrore definito\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un altro host compatibile può usarlo?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Portabilità validata dove richiesto\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-138\">Casi limite e limitazioni\u003C\u002Fh2>\n\u003Cp>Un server MCP stdio locale può avere una scarsa esposizione di rete pur essendo pericoloso se il processo stesso ha permessi eccessivi sul filesystem o sulla shell.\u003C\u002Fp>\n\u003Cp>Un server MCP remoto può esporre solo documentazione pubblica o azioni aziendali altamente sensibili. \"MCP remoto\" dice poco sul rischio senza il contesto di capacità e autorizzazione.\u003C\u002Fp>\n\u003Cp>Alcuni server possono usare solo strumenti e ignorare risorse\u002Fprompt. La compatibilità MCP non richiede che ogni primitiva opzionale sia ugualmente importante.\u003C\u002Fp>\n\u003Cp>Un host può tradurre tra il proprio modello interno di strumenti e MCP. Gli utenti potrebbero non vedere mai direttamente il confine del protocollo, il che è accettabile se sicurezza e attribuzione rimangono chiare.\u003C\u002Fp>\n\u003Cp>MCP continua a evolversi rapidamente. Estensioni, pattern di autorizzazione, API degli SDK e convenzioni dell'ecosistema possono cambiare più velocemente della distinzione architetturale principale.\u003C\u002Fp>\n\u003Ch2 id=\"section-144\">Cosa cambierebbe questa risposta?\u003C\u002Fh2>\n\u003Cp>Le future revisioni di MCP possono modificare ciclo di vita, trasporti, autorizzazione e meccanismi di estensione. La revisione di luglio 2026 dimostra già perché le affermazioni specifiche di un'implementazione devono essere datate.\u003C\u002Fp>\n\u003Cp>Il confine canonico cambierebbe solo se MCP si espandesse da protocollo di interoperabilità a standard di architettura end-to-end per applicazioni\u002Fagenti. Non è ciò che definisce il protocollo attuale.\u003C\u002Fp>\n\u003Cp>Per il lavoro di implementazione, verificare sempre la specifica corrente e la linea SDK esatta invece di copiare esempi sensibili alla versione da tutorial più vecchi.\u003C\u002Fp>\n\u003Ch2 id=\"section-148\">Conoscenza canonica correlata\u003C\u002Fh2>\n\u003Cp>MCP si colloca a valle dell'Agentic AI: prima comprendere il confine agente\u002Fruntime\u002Fstrumento, poi usare MCP quando le capacità esterne necessitano di un contratto di protocollo portabile.\u003C\u002Fp>\n\u003Cp>MCP dipende anche da RBAC e isolamento dei tenant perché l'esposizione delle capacità a livello di protocollo non determina l'autorizzazione dell'applicazione.\u003C\u002Fp>\n\u003Cp>L'articolo più ampio sullo stack di protocolli spiega dove si colloca MCP accanto ad A2A, UCP, AP2 e A2UI. G02 rimane la fonte canonica per MCP stesso.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Fit\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough\" class=\"flex flex-col sm:flex-row gap-4 rounded-xl border border-gray-200 dark:border-gray-700 p-4 transition hover:border-primary-500\">\u003Cdiv class=\"min-w-0 flex-1\">\u003Cstrong class=\"block text-lg text-gray-900 dark:text-gray-100\">Affidabilità degli agenti AI: perché la risposta finale non basta\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Le chiamate agli strumenti MCP diventano parte di una traiettoria dell'agente; i sistemi affidabili devono valutare azioni e osservazioni, non solo il testo finale.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Leggi l'articolo sull'affidabilità degli agenti →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Ch2 id=\"section-153\">Domande frequenti\u003C\u002Fh2>\n\u003Csection class=\"editorjs-faq my-6 rounded-xl border border-gray-200 p-5 dark:border-gray-700\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">FAQ sul Model Context Protocol\u003C\u002Fh3>\u003Cdiv id=\"faq1\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Cos&#39;è MCP?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Il Model Context Protocol è un protocollo aperto client-server per collegare applicazioni AI a strumenti, risorse, prompt e fornitori di capacità esterni tramite un contratto standardizzato.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq2\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Un server MCP ha bisogno di un modello AI?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">No. Un server MCP può essere software completamente deterministico. Il modello normalmente viene eseguito nell&#39;host AI o nel runtime dell&#39;agente, sebbene un server possa opzionalmente utilizzare l&#39;AI internamente.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq3\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Qual è la differenza tra un client e un server MCP?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Il client è il componente del protocollo utilizzato da un host AI per comunicare con i fornitori di capacità. Il server pubblica ed esegue le capacità che espone.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq4\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">MCP sostituisce il function calling?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">No. Il function\u002Ftool calling è il modo in cui un modello invoca capacità configurate. MCP standardizza la scoperta e la comunicazione con server di capacità esterni. Un host può fare da ponte tra i due.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq5\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">MCP sostituisce le API REST?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">No. I server MCP spesso avvolgono API REST, GraphQL, database o servizi esistenti e forniscono un livello di interoperabilità rivolto all&#39;AI.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq6\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">MCP è un framework per agenti?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">No. MCP espone capacità. Pianificazione, stato, memoria, gestione del contesto, tentativi, orchestrazione e arresto dell&#39;agente appartengono al runtime circostante.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq7\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Qual è la differenza tra MCP e A2A?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">MCP collega principalmente un host AI o un agente a strumenti e fornitori di dati. A2A collega sistemi di agenti indipendenti per collaborazione e delega.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq8\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">MCP gestisce l&#39;autorizzazione?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">MCP include meccanismi di autorizzazione a livello di protocollo, specialmente per server remoti, ma l&#39;applicazione deve comunque applicare permessi aziendali, proprietà delle risorse e isolamento dei tenant.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq9\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">MCP può funzionare con modelli locali?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Sì. La posizione del modello è indipendente da MCP. Un host con modello locale può chiamare server MCP locali o remoti, e un host con modello cloud può utilizzare server MCP locali o remoti approvati tramite un&#39;architettura di connessione appropriata.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq10\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Qual è la versione attuale della specifica MCP?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">All&#39;8 ottobre 2026, la revisione attuale della specifica è 2026-07-28. Le implementazioni più vecchie dell&#39;era 2025 rimangono in uso, quindi la compatibilità deve essere verificata.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-155\">Glossario\u003C\u002Fh2>\n\u003Csection class=\"editorjs-glossary my-6 rounded-xl border border-gray-200 dark:border-gray-700 p-5\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Termini chiave di MCP\u003C\u002Fh3>\u003Cdl>\u003Cdiv id=\"mcp\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">MCP\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Model Context Protocol, un protocollo aperto per connessioni interoperabili tra host\u002Fclient AI e server di capacità esterni.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"mcp-host\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">MCP host\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">L'applicazione o il runtime AI che possiede l'interazione con il modello e utilizza i client MCP per connettersi ai server.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"mcp-client\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">MCP client\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Componente del protocollo lato host che comunica con un server MCP.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"mcp-server\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">MCP server\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Fornitore di capacità che implementa MCP ed espone strumenti, risorse, prompt o estensioni supportate.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"mcp-tool\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Strumento\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Capacità strutturata richiamabile esposta da un server MCP.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"mcp-resource\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Risorsa\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Dati o contenuti leggibili esposti tramite i metodi delle risorse MCP.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"mcp-prompt\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Prompt\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Modello di prompt riutilizzabile esposto da un server MCP per host compatibili.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"streamable-http\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Streamable HTTP\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Trasporto MCP orientato a HTTP utilizzato per la comunicazione con server remoti\u002Fin rete.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"stdio\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">stdio\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Trasporto standard input\u002Foutput di processo comunemente usato per integrazioni locali di server MCP.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"server-discover\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">server\u002Fdiscover\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Metodo MCP moderno che consente a un client di ispezionare le capacità del server nell'era del protocollo 2026-07-28.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"mrtr\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">MRTR\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Multi Round-Trip Requests, un meccanismo per ottenere input aggiuntivi durante una richiesta nell'era del protocollo 2026-07-28.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"mcp-extension\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Estensione MCP\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Capacità che si compone con il protocollo di base e può evolvere\u002Fversionarsi separatamente, come Tasks o MCP Apps.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-157\">Conclusione\u003C\u002Fh2>\n\u003Cp>MCP è più facile da comprendere quando il suo confine rimane ristretto: collega applicazioni AI a capacità esterne tramite un protocollo standard.\u003C\u002Fp>\n\u003Cp>Il modello non deve risiedere sul server MCP. Il server non diventa il runtime dell'agente. Uno strumento elencato non diventa un'azione aziendale autorizzata. E MCP non sostituisce l'API sottostante, la fonte di verità, l'isolamento dei tenant o l'architettura di dominio.\u003C\u002Fp>\n\u003Cp>Questa ristrettezza è la forza del protocollo. MCP può standardizzare il modo in cui i sistemi AI raggiungono strumenti e dati, lasciando la proprietà dell'applicazione, la sicurezza, la semantica di business e la scelta del modello ai livelli che ne sono effettivamente responsabili.\u003C\u002Fp>\n\u003Ch2 id=\"section-161\">Fonti primarie e documentazione corrente\u003C\u002Fh2>\n\u003Cp>MCP si evolve rapidamente, quindi le affermazioni sensibili alla versione in questo articolo sono legate allo stato dell'8 ottobre 2026. La sezione Aaasaasa AI Client è una prova di implementazione originale ed è esplicitamente limitata all'ambito verificato del connettore MCP e del broker di permessi.\u003C\u002Fp>\n\u003Ca href=\"https:\u002F\u002Fts.sdk.modelcontextprotocol.io\u002Fv2\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Model Context Protocol — TypeScript SDK v2\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentazione attuale dell&#39;SDK TypeScript stabile che implementa la specifica MCP 2026-07-28 e le primitive server\u002Fclient.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fblog.modelcontextprotocol.io\u002Fposts\u002F2026-07-28\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Model Context Protocol — Rilascio della specifica 2026-07-28\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Spiegazione ufficiale del rilascio per l&#39;attuale revisione del protocollo MCP, inclusi core stateless, MRTR, routing, caching, rafforzamento dell&#39;autorizzazione, estensioni e deprecazioni.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fts.sdk.modelcontextprotocol.io\u002Fv2\u002Fmigration\u002Fsupport-2026-07-28\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">MCP TypeScript SDK — Supporto alla revisione del protocollo 2026-07-28\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Guida all&#39;implementazione specifica per versione per l&#39;attuale revisione del protocollo e la compatibilità con l&#39;era precedente.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ftools-connectors-mcp\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Server MCP\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Guida attuale di OpenAI per connettere i modelli a server MCP remoti e server MCP locali\u002Fprivati tramite Secure MCP Tunnel.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Ftools\u002Fmcp\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Connessioni MCP per Agents API\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Guida attuale alle connessioni MCP che copre le posizioni service, environment e stdio oltre ai controlli degli strumenti consentiti.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ftools\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Strumenti\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Panoramica attuale che colloca i server MCP remoti accanto a function calling, ricerca web, shell e altri strumenti del modello.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fplugins\u002Fconcepts\u002Fmcp-server\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Concetto di server MCP\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Descrizione attuale dei server MCP che espongono strumenti, risorse e prompt per integrazioni con servizi esterni.\u003C\u002Fp>\u003C\u002Fa>",{"time":212,"blocks":213,"version":1610},1791486952559,[214,220,228,235,242,249,257,262,267,272,277,282,287,292,297,326,331,336,341,346,351,378,383,388,393,427,432,437,442,447,452,457,462,467,472,477,482,487,492,516,521,526,531,536,542,547,552,557,562,567,596,601,606,611,616,621,626,631,636,641,650,655,660,665,670,675,692,697,702,707,739,744,749,754,759,764,769,774,779,784,789,794,799,804,809,814,819,825,830,835,840,845,850,855,860,865,870,875,880,885,890,895,900,905,910,939,944,949,954,959,964,969,974,979,984,1022,1027,1033,1038,1043,1048,1053,1079,1085,1090,1113,1118,1123,1128,1133,1138,1182,1187,1231,1236,1278,1283,1335,1340,1345,1350,1355,1360,1365,1370,1375,1380,1385,1390,1395,1400,1405,1413,1418,1464,1469,1516,1521,1526,1531,1536,1541,1546,1556,1565,1574,1583,1592,1601],{"id":215,"data":216,"type":218,"tunes":219},"intro",{"text":217},"Il Model Context Protocol (MCP) è un protocollo aperto per collegare applicazioni di intelligenza artificiale a capacità e informazioni esterne tramite contratti client-server standardizzati. Un server MCP può esporre strumenti, risorse e prompt; un host o client compatibile con MCP scopre e utilizza tali capacità per conto di un'applicazione di intelligenza artificiale. MCP non richiede che il server esegua un proprio modello linguistico e non sostituisce il runtime dell'agente, l'autorizzazione aziendale, l'isolamento dei tenant, le API applicative o l'architettura di dominio sottostante alle capacità esposte.","paragraph",{},{"id":221,"data":222,"type":226,"tunes":227},"direct",{"body":223,"title":224,"variant":225},"\u003Cstrong>MCP standardizza il confine tra un host AI e i fornitori di capacità esterne.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Un modello mentale utile è:\u003Cbr>\u003Cstrong>Utente → host AI \u002F runtime dell'agente → client MCP → server MCP → applicazione\u002FAPI\u002Fdati\u002Fstrumento\u003C\u002Fstrong>.\u003Cbr>\u003Cbr>Il modello può rimanere interamente sul lato host. Il server MCP può essere un normale software deterministico che espone capacità strutturate.","Risposta diretta","info","callout",{},{"id":229,"data":230,"type":226,"tunes":234},"server-no-ai",{"body":231,"title":232,"variant":233},"Un server MCP per il filesystem può elencare o leggere file. Un server MCP per database può eseguire query approvate. Un server MCP per Jira può esporre operazioni sulle issue. Nessuno di questi server necessita di un LLM per soddisfare il contratto MCP. Se un server utilizza internamente l'IA, si tratta di una scelta implementativa dietro il confine del protocollo, non di un requisito MCP.","Un server MCP non necessita di un proprio modello di intelligenza artificiale","success",{},{"id":236,"data":237,"type":226,"tunes":241},"boundary",{"body":238,"title":239,"variant":240},"Se un server MCP espone \u003Ccode>delete_file\u003C\u002Fcode>, \u003Ccode>refund_order\u003C\u002Fcode> o \u003Ccode>deploy_service\u003C\u002Fcode>, ciò significa solo che la capacità esiste. Il server\u002Fapplicazione deve comunque applicare identità, autorizzazioni, ambito del tenant, regole aziendali, requisiti di conferma e controlli di audit. La scoperta del protocollo non deve mai diventare silenziosamente autorizzazione.","La capacità MCP non è autorità aziendale","warning",{},{"id":243,"data":244,"type":226,"tunes":248},"current",{"body":245,"title":246,"variant":247},"La revisione corrente della specifica MCP è \u003Cstrong>2026-07-28\u003C\u002Fstrong>. La sua modifica principale è un nucleo di protocollo stateless con richieste autodescrittive, \u003Ccode>server\u002Fdiscover\u003C\u002Fcode> opzionale, header HTTP instradabili, risposte di elenco\u002Frisorsa memorizzabili nella cache, rafforzamento dell'autorizzazione e un modello di estensione formale. L'SDK TypeScript v2 è la linea SDK stabile corrente che implementa questa revisione. Client e server più vecchi dell'era 2025 esistono ancora, quindi le linee guida di implementazione devono rimanere consapevoli della versione.","Nota sulla fonte corrente — 8 ottobre 2026","note",{},{"id":250,"data":251,"type":255,"tunes":256},"toc",{"title":252,"maxLevel":253,"minLevel":254},"Contenuti",3,2,"tableOfContents",{},{"id":258,"data":259,"type":42,"tunes":261},"h-meaning",{"text":260,"level":254},"Cosa standardizza realmente MCP",{},{"id":263,"data":264,"type":218,"tunes":266},"p-meaning-1",{"text":265},"Prima di MCP, ogni applicazione di intelligenza artificiale poteva integrare sistemi esterni tramite il proprio schema di strumenti, formato di plugin, convenzione di autenticazione e codice di connessione. Lo stesso servizio poteva richiedere adattatori diversi per un client AI desktop, un agente IDE e un'applicazione personalizzata.",{},{"id":268,"data":269,"type":218,"tunes":271},"p-meaning-2",{"text":270},"MCP crea un confine di protocollo riutilizzabile. Il sistema esterno espone capacità tramite un server MCP, mentre gli host AI compatibili implementano un client MCP. Ciò riduce l'accoppiamento di integrazione tra l'applicazione di intelligenza artificiale e il fornitore di strumenti o dati sottostante.",{},{"id":273,"data":274,"type":218,"tunes":276},"p-meaning-3",{"text":275},"Il protocollo non standardizza l'intera applicazione. Standardizza il modo in cui le capacità vengono descritte, scoperte e invocate attraverso quel confine.",{},{"id":278,"data":279,"type":42,"tunes":281},"h-simple",{"text":280,"level":254},"L'esempio più semplice",{},{"id":283,"data":284,"type":218,"tunes":286},"p-simple-1",{"text":285},"Supponiamo che un'applicazione di programmazione AI necessiti di accedere a una directory di progetto locale. Senza MCP, l'applicazione potrebbe implementare direttamente la propria integrazione con il filesystem.",{},{"id":288,"data":289,"type":218,"tunes":291},"p-simple-2",{"text":290},"Con MCP, un server per il filesystem può esporre capacità come elencare directory, leggere file approvati o scrivere all'interno di uno spazio di lavoro consentito. L'host AI si connette tramite un client MCP e presenta tali capacità al modello o al runtime dell'agente.",{},{"id":293,"data":294,"type":218,"tunes":296},"p-simple-3",{"text":295},"Il server non ha bisogno di comprendere la richiesta in linguaggio naturale dell'utente. L'host\u002Fmodello decide quale capacità è utile; il server MCP esegue la richiesta strutturata secondo le proprie regole di sicurezza.",{},{"id":298,"data":299,"type":324,"tunes":325},"simple-flow",{"steps":300,"title":322,"orientation":323},[301,304,307,310,313,316,319],{"label":302,"description":303},"1. L'host si connette al server","L'applicazione compatibile con MCP configura l'accesso al server MCP esterno.",{"label":305,"description":306},"2. Le capacità vengono scoperte","Il client apprende quali strumenti, risorse o prompt il server espone.",{"label":308,"description":309},"3. Il modello o il runtime seleziona una capacità","L'applicazione di intelligenza artificiale decide che è necessaria una capacità esposta.",{"label":311,"description":312},"4. Il client invia una richiesta strutturata","Gli argomenti vengono inviati tramite MCP al server.",{"label":314,"description":315},"5. Il server autorizza ed esegue","Il server convalida la richiesta e chiama il suo sistema sottostante.",{"label":317,"description":318},"6. Il risultato ritorna all'host","Il risultato diventa un'osservazione o un input di contesto.",{"label":320,"description":321},"7. L'host decide cosa succede dopo","Il modello\u002Fruntime può rispondere, chiamare un altro strumento o continuare un flusso di lavoro.","Una chiamata di strumento MCP di base","auto","processFlow",{},{"id":327,"data":328,"type":42,"tunes":330},"h-stops",{"text":329,"level":254},"Dove si ferma l'esempio semplice",{},{"id":332,"data":333,"type":218,"tunes":335},"p-stops-1",{"text":334},"MCP non definisce come l'host sceglie uno strumento, come un agente pianifica, come viene modellato un flusso di lavoro aziendale o come dovrebbe comportarsi un oggetto di dominio come una fattura o un deployment.",{},{"id":337,"data":338,"type":218,"tunes":340},"p-stops-2",{"text":339},"Un protocollo può rendere l'integrazione interoperabile mentre l'applicazione sottostante rimane errata, insicura o mal progettata. Una richiesta MCP perfettamente valida può comunque chiamare la capacità aziendale sbagliata.",{},{"id":342,"data":343,"type":218,"tunes":345},"p-stops-3",{"text":344},"Il confine centrale è: MCP standardizza la semantica dell'integrazione, non la verità dell'applicazione o la correttezza aziendale.",{},{"id":347,"data":348,"type":42,"tunes":350},"h-architecture",{"text":349,"level":254},"L'architettura MCP: host, client e server",{},{"id":352,"data":353,"type":376,"tunes":377},"architecture-table",{"content":354,"stretched":43,"withHeadings":14},[355,358,361,364,367,370,373],[356,357],"Componente","Responsabilità",[359,360],"Host AI","Applicazione o runtime AI rivolto all'utente che possiede l'interazione con il modello, il contesto e il flusso di lavoro complessivo",[362,363],"Client MCP","Componente lato protocollo utilizzato dall'host per comunicare con un server MCP",[365,366],"Server MCP","Pubblica capacità e gestisce le richieste MCP",[368,369],"Sistema sottostante","Applicazione, API, database, filesystem, piattaforma SaaS o servizio dietro il server MCP",[371,372],"Modello","Sceglie o ragiona sulle capacità in base al design dell'host\u002Fruntime; non è necessariamente all'interno del server MCP",[374,375],"Autorizzazione\u002Fpolicy aziendale","Determina se un'operazione richiesta è effettivamente consentita","table",{},{"id":379,"data":380,"type":218,"tunes":382},"p-architecture-1",{"text":381},"Un host può connettersi a più server MCP, e un server MCP può interfacciarsi con uno o più sistemi sottostanti. L'host rimane responsabile dell'integrazione dei risultati MCP nell'applicazione AI più ampia.",{},{"id":384,"data":385,"type":218,"tunes":387},"p-architecture-2",{"text":386},"Il server può essere locale all'host, essere eseguito come processo separato o essere remoto tramite un trasporto di rete. La topologia di hosting e la posizione del modello sono decisioni indipendenti.",{},{"id":389,"data":390,"type":42,"tunes":392},"h-primitives",{"text":391,"level":254},"Le tre primitive principali del server",{},{"id":394,"data":395,"type":425,"tunes":426},"primitives-comparison",{"rows":396,"title":414,"layout":376,"columns":415},[397,402,406,410],{"id":398,"label":399,"values":400},"purpose","Scopo principale",[401,401,401],"",{"id":403,"label":404,"values":405},"interaction","Interazione tipica",[401,401,401],{"id":407,"label":408,"values":409},"example","Esempio",[401,401,401],{"id":411,"label":412,"values":413},"risk","Rischio tipico",[401,401,401],"Strumenti, risorse e prompt risolvono esigenze diverse",[416,419,422],{"id":417,"label":418},"tools","Strumenti",{"id":420,"label":421},"resources","Risorse",{"id":423,"label":424},"prompts","Prompt","comparison",{},{"id":428,"data":429,"type":42,"tunes":431},"h-tools",{"text":430,"level":254},"Strumenti: capacità richiamabili",{},{"id":433,"data":434,"type":218,"tunes":436},"p-tools-1",{"text":435},"Gli strumenti sono operazioni strutturate che un server MCP rende disponibili all'host. Uno strumento ha un nome, una descrizione e uno schema di input; le implementazioni moderne possono anche fornire output strutturato.",{},{"id":438,"data":439,"type":218,"tunes":441},"p-tools-2",{"text":440},"Gli esempi includono la ricerca in un repository, la lettura di un record cliente, la creazione di un ticket, l'esecuzione di una build o l'invio di un messaggio. Gli strumenti possono essere di sola lettura o avere effetti collaterali.",{},{"id":443,"data":444,"type":218,"tunes":446},"p-tools-3",{"text":445},"Una buona superficie di strumenti MCP dovrebbe rappresentare obiettivi coerenti dell'utente o dell'agente piuttosto che rispecchiare meccanicamente ogni endpoint API interno. Le operazioni con permessi diversi, requisiti di conferma o raggio d'azione dovrebbero di solito essere strumenti separati.",{},{"id":448,"data":449,"type":42,"tunes":451},"h-resources",{"text":450,"level":254},"Risorse: contesto e dati leggibili",{},{"id":453,"data":454,"type":218,"tunes":456},"p-res-1",{"text":455},"Le risorse espongono dati o contenuti che un client può elencare o leggere. Si adattano naturalmente quando l'operazione semantica è \"dammi questo artefatto o informazione\" piuttosto che \"esegui questa azione\".",{},{"id":458,"data":459,"type":218,"tunes":461},"p-res-2",{"text":460},"Un URI di risorsa non è una concessione di autorizzazione. Il server possiede comunque il controllo degli accessi e deve verificare quale principale può leggere l'oggetto sottostante.",{},{"id":463,"data":464,"type":218,"tunes":466},"p-res-3",{"text":465},"La revisione del protocollo 2026-07-28 aggiunge semantiche di cache per le risposte di elenco e lettura delle risorse, inclusi freschezza e ambito della cache, rendendo il comportamento di caching più esplicito.",{},{"id":468,"data":469,"type":42,"tunes":471},"h-prompts",{"text":470,"level":254},"Prompt: modelli riutilizzabili",{},{"id":473,"data":474,"type":218,"tunes":476},"p-prompts-1",{"text":475},"I prompt MCP consentono a un server di pubblicare modelli di prompt riutilizzabili ai client compatibili. Questo può mantenere le istruzioni specifiche del dominio vicine al fornitore della capacità.",{},{"id":478,"data":479,"type":218,"tunes":481},"p-prompts-2",{"text":480},"Un prompt fornito da un server MCP non supera automaticamente le istruzioni di sistema o di sicurezza dell'host. L'host decide come il materiale del prompt entra nella sua gerarchia di contesto.",{},{"id":483,"data":484,"type":218,"tunes":486},"p-prompts-3",{"text":485},"Il contenuto dei prompt fornito dal protocollo dovrebbe quindi essere trattato come dati di capacità con semantiche di fiducia esplicite, non come autorità di istruzione illimitata.",{},{"id":488,"data":489,"type":42,"tunes":491},"h-tool-vs-resource",{"text":490,"level":254},"Strumento o risorsa?",{},{"id":493,"data":494,"type":376,"tunes":515},"tool-resource-table",{"content":495,"stretched":43,"withHeadings":14},[496,499,502,505,508,510,512],[497,498],"Esigenza","Preferire",[500,501],"Eseguire un'azione con argomenti strutturati","Strumento",[503,504],"Leggere un artefatto stabile specifico","Risorsa",[506,507],"Cercare o calcolare dinamicamente","Di solito strumento",[509,501],"Modificare lo stato esterno",[511,424],"Confezionare istruzioni di prompt riutilizzabili",[513,514],"Esecuzione asincrona di lunga durata","Strumento più gestione di attività applicativa\u002Fruntime o un'estensione MCP",{},{"id":517,"data":518,"type":42,"tunes":520},"h-model-location",{"text":519,"level":254},"Dove si trova il modello di IA?",{},{"id":522,"data":523,"type":218,"tunes":525},"p-location-1",{"text":524},"MCP non richiede che il modello venga eseguito sul server MCP. Il modello può essere ospitato nel cloud, ospitato localmente, incorporato nell'applicazione desktop o raggiunto tramite un altro fornitore.",{},{"id":527,"data":528,"type":218,"tunes":530},"p-location-2",{"text":529},"L'host normalmente possiede l'interazione con il modello. Il server MCP espone capacità esterne. Un server MCP locale può quindi essere utilizzato da un host il cui modello viene eseguito nel cloud, e un server MCP remoto può essere utilizzato da un host il cui modello viene eseguito localmente.",{},{"id":532,"data":533,"type":218,"tunes":535},"p-location-3",{"text":534},"Se il server MCP stesso chiama internamente un LLM, quel modello fa parte dell'implementazione del server dietro il confine del protocollo; non è richiesto da MCP.",{},{"id":537,"data":538,"type":226,"tunes":541},"location-rule",{"body":539,"title":540,"variant":233},"\u003Cstrong>MCP locale non implica inferenza locale, e MCP remoto non implica inferenza remota.\u003C\u002Fstrong> La posizione della connessione, la posizione di esecuzione degli strumenti e la posizione del modello\u002Ffornitore sono dimensioni architetturali separate.","Posizione del protocollo ≠ posizione dell'inferenza",{},{"id":543,"data":544,"type":42,"tunes":546},"h-mcp-vs-api",{"text":545,"level":254},"MCP non sostituisce le API",{},{"id":548,"data":549,"type":218,"tunes":551},"p-api-1",{"text":550},"Un server MCP spesso avvolge API o servizi esistenti. REST, GraphQL, SQL, chiamate SDK e contratti di servizio interni possono rimanere esattamente dove sono.",{},{"id":553,"data":554,"type":218,"tunes":556},"p-api-2",{"text":555},"MCP aggiunge uno strato di interoperabilità rivolto all'IA. L'API di dominio sottostante può rimanere il contratto applicativo autorevole per i normali client deterministici.",{},{"id":558,"data":559,"type":218,"tunes":561},"p-api-3",{"text":560},"L'architettura usuale è quindi prima API\u002Fservizio, poi capacità selezionate rivolte all'IA — non “sostituire ogni API con MCP”.",{},{"id":563,"data":564,"type":42,"tunes":566},"h-function-calling",{"text":565,"level":254},"MCP vs function calling",{},{"id":568,"data":569,"type":425,"tunes":595},"function-comparison",{"rows":570,"title":587,"layout":376,"columns":588},[571,575,579,583],{"id":572,"label":573,"values":574},"scope","Ambito",[401,401],{"id":576,"label":577,"values":578},"definition","Definizione dello strumento",[401,401],{"id":580,"label":581,"values":582},"portability","Portabilità",[401,401],{"id":584,"label":585,"values":586},"coexist","Possono coesistere?",[401,401],"Function calling e MCP sono correlati ma non identici",[589,592],{"id":590,"label":591},"function","Function calling",{"id":593,"label":594},"mcp","MCP",{},{"id":597,"data":598,"type":218,"tunes":600},"p-function-1",{"text":599},"OpenAI attualmente espone i server MCP remoti come un tipo di strumento insieme al normale function calling, alla ricerca web, alla shell e ad altri strumenti. Tale implementazione illustra la relazione architetturale: la connettività MCP e l'interfaccia di chiamata agli strumenti del modello possono essere composte.",{},{"id":602,"data":603,"type":42,"tunes":605},"h-agent",{"text":604,"level":254},"MCP non crea il ciclo dell'agente",{},{"id":607,"data":608,"type":218,"tunes":610},"p-agent-1",{"text":609},"Un agente di IA necessita di un runtime in grado di decidere, invocare strumenti, osservare i risultati, aggiornare lo stato e continuare o fermarsi. MCP può fornire alcuni degli strumenti e dei dati utilizzati da quel ciclo.",{},{"id":612,"data":613,"type":218,"tunes":615},"p-agent-2",{"text":614},"Il server MCP non diventa automaticamente il pianificatore, il sistema di memoria o l'orchestratore. Tali responsabilità normalmente rimangono nell'host o nel runtime dell'agente.",{},{"id":617,"data":618,"type":218,"tunes":620},"p-agent-3",{"text":619},"Un'applicazione non agentica può anche utilizzare MCP. Una singola chiamata deterministica a uno strumento MCP non richiede un agente autonomo a più passaggi.",{},{"id":622,"data":623,"type":42,"tunes":625},"h-a2a",{"text":624,"level":254},"MCP vs A2A",{},{"id":627,"data":628,"type":218,"tunes":630},"p-a2a-1",{"text":629},"MCP collega principalmente un host o agente AI a capacità come strumenti, risorse e dati. A2A è finalizzato alla collaborazione tra sistemi di agenti indipendenti.",{},{"id":632,"data":633,"type":218,"tunes":635},"p-a2a-2",{"text":634},"Un agente remoto può utilizzare internamente MCP per raggiungere database e strumenti, esponendo al contempo un'interfaccia A2A ad altri agenti. I protocolli possono quindi essere stratificati anziché sostituiti.",{},{"id":637,"data":638,"type":218,"tunes":640},"p-a2a-3",{"text":639},"L'articolo esistente sullo stack di protocolli possiede il confronto più ampio MCP\u002FA2A\u002FUCP\u002FAP2\u002FA2UI; G02 rimane la definizione canonica di MCP.",{},{"id":642,"data":643,"type":648,"tunes":649},"ref-protocol-stack",{"url":644,"title":645,"excerpt":646,"ctaLabel":647},"https:\u002F\u002Fstajic.de\u002Fde\u002Fblog\u002Fmcp-vs-a2a-vs-ucp-vs-ap2-vs-a2ui-the-agent-protocol-stack-explained","MCP vs A2A vs UCP vs AP2 vs A2UI: lo stack di protocolli per agenti spiegato","Una mappa di responsabilità più ampia che mostra come MCP si compone con la collaborazione tra agenti, il commercio, l'autorità di pagamento e i protocolli UI guidati da agenti.","Leggi lo stack di protocolli","referralArticle",{},{"id":651,"data":652,"type":42,"tunes":654},"h-transport",{"text":653,"level":254},"L'uso locale e remoto di MCP presenta realtà di trasporto diverse",{},{"id":656,"data":657,"type":218,"tunes":659},"p-transport-1",{"text":658},"MCP può connettersi a server locali e remoti. Le integrazioni desktop locali utilizzano comunemente trasporti a livello di processo come stdio; i server remoti utilizzano un trasporto orientato a HTTP.",{},{"id":661,"data":662,"type":218,"tunes":664},"p-transport-2",{"text":663},"La revisione del 2026-07-28 rende il nucleo del protocollo stateless. Le richieste trasportano le informazioni necessarie per la gestione del protocollo invece di dipendere dal precedente modello di sessione a livello di protocollo.",{},{"id":666,"data":667,"type":218,"tunes":669},"p-transport-3",{"text":668},"La revisione attuale colloca anche i nomi dei metodi e delle capacità negli header HTTP, in modo che gateway, WAF, rate limiter e load balancer possano instradare e misurare il traffico MCP in modo più naturale.",{},{"id":671,"data":672,"type":42,"tunes":674},"h-version",{"text":673,"level":254},"Perché la consapevolezza della versione di MCP è importante",{},{"id":676,"data":677,"type":376,"tunes":691},"version-table",{"content":678,"stretched":43,"withHeadings":14},[679,682,685,688],[680,681],"Epoca del protocollo","Caratteristica operativa",[683,684],"2025-11-25 e precedenti","Ciclo di vita orientato a handshake\u002Fsessione e comportamento Streamable HTTP precedente",[686,687],"2026-07-28","Nucleo stateless, scoperta opzionale del server, richieste autodescrittive, header di instradamento, suggerimenti di cache, MRTR e rafforzamento dell'autorizzazione",[689,690],"Estensioni","Capacità come Tasks e MCP Apps possono avere versioni separate dal protocollo di base",{},{"id":693,"data":694,"type":218,"tunes":696},"p-version-1",{"text":695},"Anche la versione dell'SDK e la versione del protocollo sono cose diverse. L'attuale SDK TypeScript v2 è la linea stabile per la revisione 2026-07-28, mentre il precedente v1.x rimane una linea di manutenzione per il comportamento dell'era 2025.",{},{"id":698,"data":699,"type":218,"tunes":701},"p-version-2",{"text":700},"La documentazione architetturale dovrebbe registrare sia la versione dell'SDK\u002Flibreria sia la revisione del protocollo laddove il comportamento di interoperabilità dipende da esse.",{},{"id":703,"data":704,"type":42,"tunes":706},"h-modern",{"text":705,"level":254},"Cosa è cambiato in MCP 2026-07-28",{},{"id":708,"data":709,"type":376,"tunes":738},"modern-table",{"content":710,"stretched":43,"withHeadings":14},[711,714,717,720,723,726,729,732,735],[712,713],"Modifica","Perché è importante",[715,716],"Nucleo stateless","I server remoti possono scalare dietro normali load balancer senza sessioni sticky a livello di protocollo",[718,719],"server\u002Fdiscover","I client possono ispezionare le capacità del server quando necessario",[721,722],"Richieste autodescrittive","La versione del protocollo e i metadati delle capacità del client viaggiano per ogni richiesta",[724,725],"Header Mcp-Method \u002F Mcp-Name","I gateway possono instradare, misurare e applicare policy senza analizzare i corpi",[727,728],"Suggerimenti di cache","Le letture di elenchi\u002Frisorse comunicano freschezza e ambito di condivisione",[730,731],"Richieste multi-round-trip","I server possono richiedere input aggiuntivi senza il precedente modello di richiesta bidirezionale",[733,734],"Rafforzamento dell'autorizzazione","La validazione dell'emittente e il binding delle credenziali rafforzano il comportamento di autenticazione remota",[736,737],"Framework di estensioni","Tasks, MCP Apps e altre capacità possono evolvere separatamente",{},{"id":740,"data":741,"type":42,"tunes":743},"h-deprecations",{"text":742,"level":254},"Roots, sampling e logging non sono più la direzione per le nuove implementazioni",{},{"id":745,"data":746,"type":218,"tunes":748},"p-dep-1",{"text":747},"La release 2026-07-28 contrassegna roots, sampling e logging come capacità di protocollo deprecate con una finestra di compatibilità definita.",{},{"id":750,"data":751,"type":218,"tunes":753},"p-dep-2",{"text":752},"I tutorial più vecchi potrebbero ancora mostrare queste funzionalità come primitive centrali. Il nuovo lavoro di implementazione dovrebbe seguire la specifica corrente invece di copiare ciecamente i vecchi diagrammi del ciclo di vita.",{},{"id":755,"data":756,"type":218,"tunes":758},"p-dep-3",{"text":757},"La deprecazione non significa rimozione immediata. Significa che i nuovi sistemi dovrebbero evitare nuove dipendenze non necessarie da capacità da cui il protocollo si sta allontanando.",{},{"id":760,"data":761,"type":42,"tunes":763},"h-tasks",{"text":762,"level":254},"Il lavoro a lunga esecuzione non è la stessa cosa della normale invocazione di uno strumento MCP",{},{"id":765,"data":766,"type":218,"tunes":768},"p-task-1",{"text":767},"Le operazioni a lunga esecuzione necessitano di semantiche del ciclo di vita che vadano oltre un semplice risultato immediato di uno strumento. Nell'ecosistema attuale, i Tasks sono stati spostati in un'estensione MCP dedicata.",{},{"id":770,"data":771,"type":218,"tunes":773},"p-task-2",{"text":772},"Questo rafforza un utile principio di progettazione: il protocollo di base non ha bisogno di assorbire ogni preoccupazione relativa al runtime dell'agente.",{},{"id":775,"data":776,"type":218,"tunes":778},"p-task-3",{"text":777},"Un'applicazione può anche mantenere interamente la proprietà del flusso di lavoro a lunga esecuzione nel proprio runtime e usare i normali strumenti MCP come operazioni sottostanti.",{},{"id":780,"data":781,"type":42,"tunes":783},"h-apps",{"text":782,"level":254},"Le MCP Apps estendono le capacità dell'interfaccia utente senza ridefinire il protocollo principale",{},{"id":785,"data":786,"type":218,"tunes":788},"p-apps-1",{"text":787},"Le MCP Apps associano esperienze di interfaccia utente interattive più ricche agli strumenti MCP attraverso il modello di estensione.",{},{"id":790,"data":791,"type":218,"tunes":793},"p-apps-2",{"text":792},"L'host controlla ancora come quell'interfaccia utente viene incorporata, isolata e protetta.",{},{"id":795,"data":796,"type":218,"tunes":798},"p-apps-3",{"text":797},"Lo scambio di capacità principali e il rendering dell'interfaccia utente dovrebbero quindi rimanere responsabilità architetturali separate.",{},{"id":800,"data":801,"type":42,"tunes":803},"h-auth",{"text":802,"level":254},"L'autorizzazione MCP non è il tuo modello di autorizzazione completo",{},{"id":805,"data":806,"type":218,"tunes":808},"p-auth-1",{"text":807},"MCP remoto necessita di meccanismi di autenticazione e autorizzazione a livello di protocollo affinché client e server possano stabilire un accesso affidabile. La specifica corrente continua a rafforzare il comportamento relativo a OAuth\u002FOIDC.",{},{"id":810,"data":811,"type":218,"tunes":813},"p-auth-2",{"text":812},"Quel livello risponde alla domanda se un client è autorizzato a connettersi o a richiedere gli scope del protocollo. Non risponde automaticamente alla domanda se Alice può rimborsare l'ordine 123, se un agente può scrivere la configurazione di produzione o se il Tenant A può leggere i dati del Tenant B.",{},{"id":815,"data":816,"type":218,"tunes":818},"p-auth-3",{"text":817},"Quelle decisioni di dominio appartengono al modello di autorizzazione del server\u002Fapplicazione e devono essere applicate prima di invocare l'operazione sottostante.",{},{"id":820,"data":821,"type":226,"tunes":824},"auth-rule",{"body":822,"title":823,"variant":240},"Fiducia nella connessione, visibilità degli strumenti, autorizzazione degli strumenti, autorizzazione dell'utente, isolamento dei tenant e approvazione aziendale sono controlli diversi. Mantienili separati.","Non mappare mai \"client MCP autenticato\" su \"affidabile per ogni strumento\"",{},{"id":826,"data":827,"type":42,"tunes":829},"h-identity",{"text":828,"level":254},"L'identità può attraversare diversi confini",{},{"id":831,"data":832,"type":218,"tunes":834},"p-id-1",{"text":833},"Una richiesta MCP può coinvolgere l'applicazione client MCP, la persona che ha effettuato l'accesso, un'identità di agente\u002Fsessione e un account di servizio a valle.",{},{"id":836,"data":837,"type":218,"tunes":839},"p-id-2",{"text":838},"Il server necessita di una policy esplicita su per conto di quale principale viene eseguita l'operazione. Altrimenti una potente credenziale di servizio può diventare un percorso di confused deputy.",{},{"id":841,"data":842,"type":218,"tunes":844},"p-id-3",{"text":843},"Per l'uso aziendale, la correlazione tra identità utente, identità agente, connessione MCP e autorizzazione a valle è importante quanto la compatibilità del protocollo.",{},{"id":846,"data":847,"type":42,"tunes":849},"h-tenant",{"text":848,"level":254},"L'isolamento dei tenant rimane al di fuori della scoperta delle capacità MCP",{},{"id":851,"data":852,"type":218,"tunes":854},"p-tenant-1",{"text":853},"Un server MCP multi-tenant deve applicare l'ambito del tenant quando legge o modifica risorse di proprietà del tenant. Restituire uno strumento chiamato search_documents non definisce a quale tenant appartengono i documenti idonei.",{},{"id":856,"data":857,"type":218,"tunes":859},"p-tenant-2",{"text":858},"L'ambito del tenant dovrebbe essere derivato da un'identità o appartenenza attendibile e trasportato in database, cache, ricerca vettoriale, archiviazione di oggetti e API a valle.",{},{"id":861,"data":862,"type":218,"tunes":864},"p-tenant-3",{"text":863},"Recuperare contenuti cross-tenant e chiedere al modello di non utilizzarli è già un fallimento dell'isolamento.",{},{"id":866,"data":867,"type":42,"tunes":869},"h-source",{"text":868,"level":254},"MCP non definisce la Fonte di Verità",{},{"id":871,"data":872,"type":218,"tunes":874},"p-source-1",{"text":873},"Un server MCP può esporre un database, un repository di documenti, un servizio di ricerca web o un riepilogo generato dall'IA. Il protocollo non dichiara quale fonte sia autorevole per un'affermazione.",{},{"id":876,"data":877,"type":218,"tunes":879},"p-source-2",{"text":878},"Le regole della Fonte di Verità appartengono all'architettura dell'applicazione\u002Fdominio. L'host o il server possono codificare l'autorità attraverso il design degli strumenti, i metadati, la politica di accesso o la validazione, ma MCP stesso non rende una capacità \"vera\".",{},{"id":881,"data":882,"type":218,"tunes":884},"p-source-3",{"text":883},"Uno strumento può quindi essere perfettamente richiamabile tramite MCP e comunque restituire informazioni obsolete, secondarie o non autorevoli.",{},{"id":886,"data":887,"type":42,"tunes":889},"h-context",{"text":888,"level":254},"MCP e ingegneria del contesto",{},{"id":891,"data":892,"type":218,"tunes":894},"p-context-1",{"text":893},"MCP può aumentare le capacità e le informazioni disponibili a un'applicazione di IA, ma l'ingegneria del contesto determina comunque ciò che raggiunge il modello.",{},{"id":896,"data":897,"type":218,"tunes":899},"p-context-2",{"text":898},"I cataloghi di strumenti consumano contesto visibile al modello in molti host. I risultati degli strumenti possono essere grandi. Le risorse possono essere numerose. Un host necessita di selezione, filtraggio, caricamento dinamico e compattazione invece di esporre tutto ad ogni turno.",{},{"id":901,"data":902,"type":218,"tunes":904},"p-context-3",{"text":903},"La disponibilità delle capacità e il contesto visibile al modello dovrebbero quindi essere trattati come livelli separati.",{},{"id":906,"data":907,"type":42,"tunes":909},"h-tool-design",{"text":908,"level":254},"Progettare gli strumenti MCP attorno a risultati e confini di rischio",{},{"id":911,"data":912,"type":376,"tunes":938},"tool-design-table",{"content":913,"stretched":43,"withHeadings":14},[914,917,920,923,926,929,932,935],[915,916],"Design debole dello strumento","Design più solido dello strumento",[918,919],"execute_api(method,url,body)","Strumenti di dominio ristretti con operazioni validate",[921,922],"Un unico strumento di amministrazione per tutte le azioni","Operazioni separate di lettura\u002Fscrittura\u002Fapprovazione",[924,925],"API interna grezza replicata 1:1","Contratto rivolto all'IA attorno a obiettivi utente coerenti",[927,928],"Un unico strumento filesystem ampio","Operazioni di lettura\u002Fscrittura con ambito workspace",[930,931],"Politica di sicurezza solo nella descrizione","Il server applica la politica nel codice",[933,934],"Risposta grezza illimitata","Output strutturato rilevante per le decisioni",[936,937],"Eliminazione\u002Faggiornamento mescolati con la lettura","Strumenti separati con effetti collaterali e politica di conferma",{},{"id":940,"data":941,"type":42,"tunes":943},"h-approvals",{"text":942,"level":254},"Le approvazioni appartengono all'architettura di esecuzione",{},{"id":945,"data":946,"type":218,"tunes":948},"p-approve-1",{"text":947},"Un host può richiedere l'approvazione dell'utente prima di invocare strumenti MCP selezionati. L'attuale integrazione MCP di OpenAI supporta modelli di esecuzione automatici o con approvazione esplicita.",{},{"id":950,"data":951,"type":218,"tunes":953},"p-approve-2",{"text":952},"L'approvazione dell'host è utile ma non dovrebbe essere l'unica protezione del server, perché un altro client MCP compatibile potrebbe utilizzare un modello di approvazione diverso.",{},{"id":955,"data":956,"type":218,"tunes":958},"p-approve-3",{"text":957},"Per azioni distruttive o con conseguenze finanziarie, usa la difesa in profondità: contratto dello strumento chiaro, approvazione a runtime dove appropriato, autorizzazione lato server, validazione di business e audit.",{},{"id":960,"data":961,"type":42,"tunes":963},"h-observability",{"text":962,"level":254},"L'osservabilità MCP dovrebbe collegare le chiamate di protocollo alle azioni di dominio",{},{"id":965,"data":966,"type":218,"tunes":968},"p-obs-1",{"text":967},"Una traccia MCP è più utile quando può essere correlata alla chiamata applicativa sottostante, alla modifica del database o alla transazione di business.",{},{"id":970,"data":971,"type":218,"tunes":973},"p-obs-2",{"text":972},"Lo standard dell'ecosistema 2026-07-28 uniforma le convenzioni di propagazione del W3C Trace Context, rendendo più facile seguire una richiesta attraverso host, client, server e servizi a valle.",{},{"id":975,"data":976,"type":218,"tunes":978},"p-obs-3",{"text":977},"I soli log di protocollo non sono sufficienti per operazioni con conseguenze. Le prove di audit dovrebbero anche registrare il principal, il tenant, la risorsa target, l'approvazione e la conseguente modifica di stato rilevanti.",{},{"id":980,"data":981,"type":42,"tunes":983},"h-failure",{"text":982,"level":254},"Cosa MCP non può risolvere",{},{"id":985,"data":986,"type":376,"tunes":1021},"failure-table",{"content":987,"stretched":43,"withHeadings":14},[988,991,994,997,1000,1003,1006,1009,1012,1015,1018],[989,990],"Problema","Perché MCP non lo risolve",[992,993],"API di business scadente","MCP può esporre l'API scadente in modo più coerente",[995,996],"Dati errati","La validità del protocollo non crea correttezza fattuale",[998,999],"Isolamento dei tenant mancante","La scoperta degli strumenti non impone la proprietà delle risorse",[1001,1002],"Privilegi eccessivi","Uno strumento standardizzato può comunque avere privilegi eccessivi",[1004,1005],"Pianificazione dell'agente scadente","MCP espone le capacità; il runtime\u002Fmodello sceglie comunque come usarle",[1007,1008],"Progettazione scadente di retry\u002Fidempotenza","Le chiamate di protocollo non rendono sicuri gli effetti collaterali",[1010,1011],"Nessuna fonte di verità","MCP non decide quale sistema possiede un fatto",[1013,1014],"Valutazione debole","L'interoperabilità non prova il successo del compito",[1016,1017],"Nessuna politica di audit","Le tracce di trasporto non definiscono conservazione o responsabilità",[1019,1020],"Disallineamento del protocollo","Versioni vecchie\u002Fnuove possono comunque richiedere migrazione o gestione della compatibilità",{},{"id":1023,"data":1024,"type":42,"tunes":1026},"h-implementation",{"text":1025,"level":254},"Prova di implementazione originale: Aaasaasa AI Client",{},{"id":1028,"data":1029,"type":226,"tunes":1032},"impl-note",{"body":1030,"title":1031,"variant":247},"Aaasaasa AI Client contiene un connettore\u002Fbroker MCP locale autenticato per directory locali approvate e integrazione tramite Secure MCP Tunnel. Questa è una prova concreta di implementazione per il confine del protocollo e l'architettura dei permessi, non un'affermazione di una piattaforma MCP commerciale generica.","Prova di implementazione",{},{"id":1034,"data":1035,"type":218,"tunes":1037},"p-impl-1",{"text":1036},"L'applicazione può eseguire un endpoint MCP Streamable HTTP autenticato su loopback. L'endpoint espone solo le directory selezionate tramite il broker centrale dei permessi del workspace.",{},{"id":1039,"data":1040,"type":218,"tunes":1042},"p-impl-2",{"text":1041},"L'endpoint locale e la rotta remota sono questioni separate: il connettore locale può associarsi solo al loopback, mentre un Secure MCP Tunnel può rendere il servizio MCP approvato raggiungibile da un client AI esterno autorizzato senza esporre l'intera macchina locale.",{},{"id":1044,"data":1045,"type":218,"tunes":1047},"p-impl-3",{"text":1046},"Il modello centrale dei permessi distingue profili solo chat, sola lettura, scrittura progetto e directory personalizzate. Direct Chat non ha accesso al filesystem o alla shell; i runtime degli agenti con capacità di strumenti usano il profilo di permessi selezionato.",{},{"id":1049,"data":1050,"type":218,"tunes":1052},"p-impl-4",{"text":1051},"Questa è un'implementazione diretta del confine G02: MCP fornisce la connessione standardizzata alle capacità, mentre il broker dei permessi di proprietà dell'applicazione decide quali directory il server può esporre.",{},{"id":1054,"data":1055,"type":376,"tunes":1078},"impl-table",{"content":1056,"stretched":43,"withHeadings":14},[1057,1060,1063,1066,1069,1072,1075],[1058,1059],"Elemento implementato","Prova architetturale",[1061,1062],"Endpoint MCP locale autenticato","Il server MCP può essere un servizio di capacità deterministico locale",[1064,1065],"Binding su loopback","Esposizione di rete e capacità del protocollo sono decisioni separate",[1067,1068],"Integrazione Secure MCP Tunnel","MCP privato\u002Flocale può essere collegato tramite una rotta controllata",[1070,1071],"Broker centrale dei permessi","La capacità MCP è vincolata dalla politica dell'applicazione",[1073,1074],"Ambito delle directory selezionate","La visibilità del filesystem è esplicitamente limitata",[1076,1077],"Direct Chat senza strumenti OS","L'accesso al modello non implica automaticamente l'accesso agli strumenti",{},{"id":1080,"data":1081,"type":226,"tunes":1084},"impl-boundary",{"body":1082,"title":1083,"variant":240},"L'implementazione dimostra la connettività MCP e l'esposizione di directory locali con ambito di permessi. Non implica che ogni primitiva MCP, ogni funzionalità del 2026-07-28 o ogni estensione di autorizzazione enterprise sia implementata.","Confine delle prove",{},{"id":1086,"data":1087,"type":42,"tunes":1089},"h-use",{"text":1088,"level":254},"Quando MCP è adatto",{},{"id":1091,"data":1092,"type":376,"tunes":1112},"use-table",{"content":1093,"stretched":43,"withHeadings":14},[1094,1097,1100,1103,1106,1109],[1095,1096],"MCP è altamente adatto quando","Un'integrazione diretta può essere più semplice quando",[1098,1099],"La stessa capacità dovrebbe essere riutilizzabile su più host AI","Una sola applicazione possiede entrambi i lati e la portabilità ha poco valore",[1101,1102],"Un sistema esterno vuole pubblicare strumenti\u002Frisorse scopribili rivolti all'AI","Una singola chiamata API interna stabile è sufficiente",[1104,1105],"Vuoi un confine standard attorno a strumenti\u002Fdati locali","Non c'è alcun requisito di interoperabilità rivolto all'AI",[1107,1108],"Fornitori di strumenti e client AI evolvono indipendentemente","L'integrazione è intenzionalmente privata e strettamente accoppiata",[1110,1111],"Vuoi una scoperta delle capacità compatibile con l'ecosistema","L'insieme di capacità è minuscolo e fisso nel codice dell'applicazione",{},{"id":1114,"data":1115,"type":42,"tunes":1117},"h-not-need",{"text":1116,"level":254},"Quando non hai bisogno di MCP",{},{"id":1119,"data":1120,"type":218,"tunes":1122},"p-not-1",{"text":1121},"Non aggiungere MCP solo perché l'applicazione utilizza l'IA. Se il tuo backend chiama già una singola API interna e nessun client MCP indipendente necessita di quella capacità, una normale chiamata a funzione o a servizio può essere più chiara.",{},{"id":1124,"data":1125,"type":218,"tunes":1127},"p-not-2",{"text":1126},"MCP aggiunge valore a un confine di interoperabilità. Senza quel confine, il protocollo può diventare uno strato adattatore non necessario.",{},{"id":1129,"data":1130,"type":218,"tunes":1132},"p-not-3",{"text":1131},"La domanda architetturale non è \"Questo progetto ha l'IA?\" ma \"Host IA e fornitori di capacità che evolvono in modo indipendente traggono beneficio da un contratto standard?\"",{},{"id":1134,"data":1135,"type":42,"tunes":1137},"h-security",{"text":1136,"level":254},"Checklist di sicurezza MCP",{},{"id":1139,"data":1140,"type":376,"tunes":1181},"security-table",{"content":1141,"stretched":43,"withHeadings":14},[1142,1145,1148,1151,1154,1157,1160,1163,1166,1169,1172,1175,1178],[1143,1144],"Confine","Domanda",[1146,1147],"Identità del server","A quale server MCP sono effettivamente connesso?",[1149,1150],"Identità del client","Quale applicazione\u002Fclient sta richiedendo l'accesso?",[1152,1153],"Identità dell'utente finale","Per conto di chi viene eseguita l'operazione?",[1155,1156],"Allowlist degli strumenti","Quali capacità può scoprire e chiamare questo host\u002Fagente?",[1158,1159],"Autorizzazione business","Questo principale può eseguire questa operazione?",[1161,1162],"Ambito tenant","Quale confine di tenant\u002Frisorsa si applica?",[1164,1165],"Isolamento delle credenziali","Le credenziali sono associate correttamente e mantenute al di fuori del contesto del modello?",[1167,1168],"Approvazione","Quali effetti collaterali richiedono conferma umana?",[1170,1171],"Validazione dell'input","Gli argomenti degli strumenti sono validati indipendentemente dall'output del modello?",[1173,1174],"Fiducia nell'output","Il contenuto restituito può contenere istruzioni non attendibili o dati sensibili?",[1176,1177],"Esposizione di rete","Un server locale è accidentalmente esposto oltre le interfacce previste?",[1179,1180],"Audit","Una chiamata al protocollo può essere correlata all'azione a valle?",{},{"id":1183,"data":1184,"type":42,"tunes":1186},"h-misconceptions",{"text":1185,"level":254},"Idee sbagliate comuni",{},{"id":1188,"data":1189,"type":376,"tunes":1230},"misconceptions-table",{"content":1190,"stretched":43,"withHeadings":14},[1191,1194,1197,1200,1203,1206,1209,1212,1215,1218,1221,1224,1227],[1192,1193],"Idea sbagliata","Correzione",[1195,1196],"\"Un server MCP è un server IA.\"","Può essere un normale software deterministico che espone capacità.",[1198,1199],"\"Ho bisogno del mio LLM sul server MCP.\"","No. Il modello può risiedere interamente sul lato host.",[1201,1202],"\"MCP sostituisce le API REST.\"","MCP spesso avvolge API esistenti per l'interoperabilità rivolta all'IA.",[1204,1205],"\"MCP è un framework per agenti.\"","MCP fornisce capacità; un runtime per agenti gestisce iterazione e stato.",[1207,1208],"\"MCP e function calling competono.\"","Un host può collegare le capacità MCP alla propria interfaccia di strumenti del modello.",[1210,1211],"\"MCP sostituisce A2A.\"","MCP si concentra sull'integrazione delle capacità; A2A si concentra sulla collaborazione tra agenti.",[1213,1214],"\"Se uno strumento è elencato, l'utente può chiamarlo.\"","La scoperta non è autorizzazione.",[1216,1217],"\"OAuth risolve i permessi business.\"","L'autorizzazione alla connessione non sostituisce l'autorizzazione di dominio o l'isolamento dei tenant.",[1219,1220],"\"MCP locale significa IA locale.\"","La posizione del server degli strumenti e la posizione dell'inferenza sono indipendenti.",[1222,1223],"\"MCP rende affidabile l'output degli strumenti.\"","Qualità dei dati, autorità e provenienza appartengono comunque alla fonte\u002Fapplicazione.",[1225,1226],"\"Un unico strumento generico gigante è flessibile.\"","Strumenti troppo ampi indeboliscono permessi, validazione e osservabilità.",[1228,1229],"\"I vecchi tutorial sono aggiornati all'implementazione.\"","La revisione 2026-07-28 ha modificato sostanzialmente il ciclo di vita e il comportamento del trasporto.",{},{"id":1232,"data":1233,"type":42,"tunes":1235},"h-design",{"text":1234,"level":254},"Una sequenza pratica di progettazione MCP",{},{"id":1237,"data":1238,"type":324,"tunes":1277},"design-flow",{"steps":1239,"title":1276,"orientation":323},[1240,1243,1246,1249,1252,1255,1258,1261,1264,1267,1270,1273],{"label":1241,"description":1242},"1. Identifica il confine di interoperabilità","Conferma che host IA indipendenti necessitano effettivamente di accesso riutilizzabile.",{"label":1244,"description":1245},"2. Mantieni l'API di dominio come autoritativa","Preserva il vero contratto dell'applicazione\u002Fservizio dietro MCP.",{"label":1247,"description":1248},"3. Scegli le primitive deliberatamente","Usa strumenti, risorse e prompt in base alla loro semantica.",{"label":1250,"description":1251},"4. Suddividi per rischio e permesso","Separa operazioni di lettura, scrittura, distruttive e che richiedono approvazione.",{"label":1253,"description":1254},"5. Definisci la propagazione dell'identità","Sappi quale client, utente, agente e principale a valle rappresenta ogni chiamata.",{"label":1256,"description":1257},"6. Applica l'autorizzazione business","Valida permessi, ambito tenant e proprietà dell'obiettivo.",{"label":1259,"description":1260},"7. Scegli il trasporto locale o remoto","Abbina la topologia di distribuzione alla reale necessità.",{"label":1262,"description":1263},"8. Fissa le aspettative su protocollo\u002FSDK","Documenta 2026-07-28 rispetto alla compatibilità precedente.",{"label":1265,"description":1266},"9. Aggiungi approvazioni per azioni consequenziali","Usa controlli di conferma adeguati al rischio.",{"label":1268,"description":1269},"10. Progetta output strutturati","Restituisci risultati concisi e utilizzabili dalla macchina.",{"label":1271,"description":1272},"11. Aggiungi tracciamento e correlazione di audit","Collega le chiamate MCP agli eventi di servizio\u002Fbusiness a valle.",{"label":1274,"description":1275},"12. Testa la portabilità","Verifica più di un client dove l'interoperabilità è un requisito dichiarato.","Progetta il confine prima di implementare il server",{},{"id":1279,"data":1280,"type":42,"tunes":1282},"h-checklist",{"text":1281,"level":254},"Checklist di architettura MCP",{},{"id":1284,"data":1285,"type":376,"tunes":1334},"checklist-table",{"content":1286,"stretched":43,"withHeadings":14},[1287,1289,1292,1295,1298,1301,1304,1307,1310,1313,1316,1319,1322,1325,1328,1331],[1144,1288],"Risposta attesa",[1290,1291],"Perché è necessario MCP?","Un reale confine di interoperabilità rivolto all'IA",[1293,1294],"Cosa espone il server?","Strumenti\u002Frisorse\u002Fprompt espliciti",[1296,1297],"Dove viene eseguito il modello?","Decisione indipendente di host\u002Ffornitore",[1299,1300],"Dove viene eseguita l'esecuzione degli strumenti?","Posizione nominata di server\u002Fruntime",[1302,1303],"Quale revisione del protocollo è prevista?","Contratto consapevole della versione",[1305,1306],"Chi è il principale richiedente?","Modello di identità client\u002Futente\u002Fagente",[1308,1309],"Quali strumenti possono essere scoperti?","Politica di allowlist\u002Fcapacità",[1311,1312],"Quali operazioni possono essere eseguite?","Autorizzazione business lato server",[1314,1315],"Come viene applicato l'ambito tenant\u002Frisorsa?","Controlli attendibili di proprietà tenant\u002Frisorsa",[1317,1318],"Quali azioni richiedono approvazione?","Politica di conferma basata sul rischio",[1320,1321],"Come sono protette le credenziali?","Archiviazione runtime attendibile, segreti non visibili al modello",[1323,1324],"Come viene limitato l'output?","Contratto di risultato rilevante strutturato",[1326,1327],"Come vengono tracciate le chiamate?","Correlazione attraverso MCP fino all'azione a valle",[1329,1330],"Cosa succede se MCP non è disponibile?","Comportamento di fallback\u002Ferrore definito",[1332,1333],"Un altro host compatibile può usarlo?","Portabilità validata dove richiesto",{},{"id":1336,"data":1337,"type":42,"tunes":1339},"h-edge",{"text":1338,"level":254},"Casi limite e limitazioni",{},{"id":1341,"data":1342,"type":218,"tunes":1344},"p-edge-1",{"text":1343},"Un server MCP stdio locale può avere una scarsa esposizione di rete pur essendo pericoloso se il processo stesso ha permessi eccessivi sul filesystem o sulla shell.",{},{"id":1346,"data":1347,"type":218,"tunes":1349},"p-edge-2",{"text":1348},"Un server MCP remoto può esporre solo documentazione pubblica o azioni aziendali altamente sensibili. \"MCP remoto\" dice poco sul rischio senza il contesto di capacità e autorizzazione.",{},{"id":1351,"data":1352,"type":218,"tunes":1354},"p-edge-3",{"text":1353},"Alcuni server possono usare solo strumenti e ignorare risorse\u002Fprompt. La compatibilità MCP non richiede che ogni primitiva opzionale sia ugualmente importante.",{},{"id":1356,"data":1357,"type":218,"tunes":1359},"p-edge-4",{"text":1358},"Un host può tradurre tra il proprio modello interno di strumenti e MCP. Gli utenti potrebbero non vedere mai direttamente il confine del protocollo, il che è accettabile se sicurezza e attribuzione rimangono chiare.",{},{"id":1361,"data":1362,"type":218,"tunes":1364},"p-edge-5",{"text":1363},"MCP continua a evolversi rapidamente. Estensioni, pattern di autorizzazione, API degli SDK e convenzioni dell'ecosistema possono cambiare più velocemente della distinzione architetturale principale.",{},{"id":1366,"data":1367,"type":42,"tunes":1369},"h-change",{"text":1368,"level":254},"Cosa cambierebbe questa risposta?",{},{"id":1371,"data":1372,"type":218,"tunes":1374},"p-change-1",{"text":1373},"Le future revisioni di MCP possono modificare ciclo di vita, trasporti, autorizzazione e meccanismi di estensione. La revisione di luglio 2026 dimostra già perché le affermazioni specifiche di un'implementazione devono essere datate.",{},{"id":1376,"data":1377,"type":218,"tunes":1379},"p-change-2",{"text":1378},"Il confine canonico cambierebbe solo se MCP si espandesse da protocollo di interoperabilità a standard di architettura end-to-end per applicazioni\u002Fagenti. Non è ciò che definisce il protocollo attuale.",{},{"id":1381,"data":1382,"type":218,"tunes":1384},"p-change-3",{"text":1383},"Per il lavoro di implementazione, verificare sempre la specifica corrente e la linea SDK esatta invece di copiare esempi sensibili alla versione da tutorial più vecchi.",{},{"id":1386,"data":1387,"type":42,"tunes":1389},"h-related",{"text":1388,"level":254},"Conoscenza canonica correlata",{},{"id":1391,"data":1392,"type":218,"tunes":1394},"p-related-1",{"text":1393},"MCP si colloca a valle dell'Agentic AI: prima comprendere il confine agente\u002Fruntime\u002Fstrumento, poi usare MCP quando le capacità esterne necessitano di un contratto di protocollo portabile.",{},{"id":1396,"data":1397,"type":218,"tunes":1399},"p-related-2",{"text":1398},"MCP dipende anche da RBAC e isolamento dei tenant perché l'esposizione delle capacità a livello di protocollo non determina l'autorizzazione dell'applicazione.",{},{"id":1401,"data":1402,"type":218,"tunes":1404},"p-related-3",{"text":1403},"L'articolo più ampio sullo stack di protocolli spiega dove si colloca MCP accanto ad A2A, UCP, AP2 e A2UI. G02 rimane la fonte canonica per MCP stesso.",{},{"id":1406,"data":1407,"type":648,"tunes":1412},"ref-reliability",{"url":1408,"title":1409,"excerpt":1410,"ctaLabel":1411},"https:\u002F\u002Fstajic.de\u002Fit\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough","Affidabilità degli agenti AI: perché la risposta finale non basta","Le chiamate agli strumenti MCP diventano parte di una traiettoria dell'agente; i sistemi affidabili devono valutare azioni e osservazioni, non solo il testo finale.","Leggi l'articolo sull'affidabilità degli agenti",{},{"id":1414,"data":1415,"type":42,"tunes":1417},"h-faq",{"text":1416,"level":254},"Domande frequenti",{},{"id":1419,"data":1420,"type":1419,"tunes":1463},"faq",{"items":1421,"title":1462},[1422,1426,1430,1434,1438,1442,1446,1450,1454,1458],{"id":1423,"answer":1424,"question":1425},"faq1","Il Model Context Protocol è un protocollo aperto client-server per collegare applicazioni AI a strumenti, risorse, prompt e fornitori di capacità esterni tramite un contratto standardizzato.","Cos'è MCP?",{"id":1427,"answer":1428,"question":1429},"faq2","No. Un server MCP può essere software completamente deterministico. Il modello normalmente viene eseguito nell'host AI o nel runtime dell'agente, sebbene un server possa opzionalmente utilizzare l'AI internamente.","Un server MCP ha bisogno di un modello AI?",{"id":1431,"answer":1432,"question":1433},"faq3","Il client è il componente del protocollo utilizzato da un host AI per comunicare con i fornitori di capacità. Il server pubblica ed esegue le capacità che espone.","Qual è la differenza tra un client e un server MCP?",{"id":1435,"answer":1436,"question":1437},"faq4","No. Il function\u002Ftool calling è il modo in cui un modello invoca capacità configurate. MCP standardizza la scoperta e la comunicazione con server di capacità esterni. Un host può fare da ponte tra i due.","MCP sostituisce il function calling?",{"id":1439,"answer":1440,"question":1441},"faq5","No. I server MCP spesso avvolgono API REST, GraphQL, database o servizi esistenti e forniscono un livello di interoperabilità rivolto all'AI.","MCP sostituisce le API REST?",{"id":1443,"answer":1444,"question":1445},"faq6","No. MCP espone capacità. Pianificazione, stato, memoria, gestione del contesto, tentativi, orchestrazione e arresto dell'agente appartengono al runtime circostante.","MCP è un framework per agenti?",{"id":1447,"answer":1448,"question":1449},"faq7","MCP collega principalmente un host AI o un agente a strumenti e fornitori di dati. A2A collega sistemi di agenti indipendenti per collaborazione e delega.","Qual è la differenza tra MCP e A2A?",{"id":1451,"answer":1452,"question":1453},"faq8","MCP include meccanismi di autorizzazione a livello di protocollo, specialmente per server remoti, ma l'applicazione deve comunque applicare permessi aziendali, proprietà delle risorse e isolamento dei tenant.","MCP gestisce l'autorizzazione?",{"id":1455,"answer":1456,"question":1457},"faq9","Sì. La posizione del modello è indipendente da MCP. Un host con modello locale può chiamare server MCP locali o remoti, e un host con modello cloud può utilizzare server MCP locali o remoti approvati tramite un'architettura di connessione appropriata.","MCP può funzionare con modelli locali?",{"id":1459,"answer":1460,"question":1461},"faq10","All'8 ottobre 2026, la revisione attuale della specifica è 2026-07-28. Le implementazioni più vecchie dell'era 2025 rimangono in uso, quindi la compatibilità deve essere verificata.","Qual è la versione attuale della specifica MCP?","FAQ sul Model Context Protocol",{},{"id":1465,"data":1466,"type":42,"tunes":1468},"h-glossary",{"text":1467,"level":254},"Glossario",{},{"id":1470,"data":1471,"type":1470,"tunes":1515},"glossary",{"title":1472,"entries":1473},"Termini chiave di MCP",[1474,1476,1480,1484,1488,1491,1494,1497,1501,1504,1507,1511],{"term":594,"anchor":593,"definition":1475},"Model Context Protocol, un protocollo aperto per connessioni interoperabili tra host\u002Fclient AI e server di capacità esterni.",{"term":1477,"anchor":1478,"definition":1479},"MCP host","mcp-host","L'applicazione o il runtime AI che possiede l'interazione con il modello e utilizza i client MCP per connettersi ai server.",{"term":1481,"anchor":1482,"definition":1483},"MCP client","mcp-client","Componente del protocollo lato host che comunica con un server MCP.",{"term":1485,"anchor":1486,"definition":1487},"MCP server","mcp-server","Fornitore di capacità che implementa MCP ed espone strumenti, risorse, prompt o estensioni supportate.",{"term":501,"anchor":1489,"definition":1490},"mcp-tool","Capacità strutturata richiamabile esposta da un server MCP.",{"term":504,"anchor":1492,"definition":1493},"mcp-resource","Dati o contenuti leggibili esposti tramite i metodi delle risorse MCP.",{"term":424,"anchor":1495,"definition":1496},"mcp-prompt","Modello di prompt riutilizzabile esposto da un server MCP per host compatibili.",{"term":1498,"anchor":1499,"definition":1500},"Streamable HTTP","streamable-http","Trasporto MCP orientato a HTTP utilizzato per la comunicazione con server remoti\u002Fin rete.",{"term":1502,"anchor":1502,"definition":1503},"stdio","Trasporto standard input\u002Foutput di processo comunemente usato per integrazioni locali di server MCP.",{"term":718,"anchor":1505,"definition":1506},"server-discover","Metodo MCP moderno che consente a un client di ispezionare le capacità del server nell'era del protocollo 2026-07-28.",{"term":1508,"anchor":1509,"definition":1510},"MRTR","mrtr","Multi Round-Trip Requests, un meccanismo per ottenere input aggiuntivi durante una richiesta nell'era del protocollo 2026-07-28.",{"term":1512,"anchor":1513,"definition":1514},"Estensione MCP","mcp-extension","Capacità che si compone con il protocollo di base e può evolvere\u002Fversionarsi separatamente, come Tasks o MCP Apps.",{},{"id":1517,"data":1518,"type":42,"tunes":1520},"h-conclusion",{"text":1519,"level":254},"Conclusione",{},{"id":1522,"data":1523,"type":218,"tunes":1525},"p-conclusion-1",{"text":1524},"MCP è più facile da comprendere quando il suo confine rimane ristretto: collega applicazioni AI a capacità esterne tramite un protocollo standard.",{},{"id":1527,"data":1528,"type":218,"tunes":1530},"p-conclusion-2",{"text":1529},"Il modello non deve risiedere sul server MCP. Il server non diventa il runtime dell'agente. Uno strumento elencato non diventa un'azione aziendale autorizzata. E MCP non sostituisce l'API sottostante, la fonte di verità, l'isolamento dei tenant o l'architettura di dominio.",{},{"id":1532,"data":1533,"type":218,"tunes":1535},"p-conclusion-3",{"text":1534},"Questa ristrettezza è la forza del protocollo. MCP può standardizzare il modo in cui i sistemi AI raggiungono strumenti e dati, lasciando la proprietà dell'applicazione, la sicurezza, la semantica di business e la scelta del modello ai livelli che ne sono effettivamente responsabili.",{},{"id":1537,"data":1538,"type":42,"tunes":1540},"h-sources",{"text":1539,"level":254},"Fonti primarie e documentazione corrente",{},{"id":1542,"data":1543,"type":218,"tunes":1545},"p-sources-note",{"text":1544},"MCP si evolve rapidamente, quindi le affermazioni sensibili alla versione in questo articolo sono legate allo stato dell'8 ottobre 2026. La sezione Aaasaasa AI Client è una prova di implementazione originale ed è esplicitamente limitata all'ambito verificato del connettore MCP e del broker di permessi.",{},{"id":1547,"data":1548,"type":1554,"tunes":1555},"src-mcp-ts",{"link":1549,"meta":1550},"https:\u002F\u002Fts.sdk.modelcontextprotocol.io\u002Fv2\u002F",{"image":1551,"title":1552,"description":1553},{"url":401},"Model Context Protocol — TypeScript SDK v2","Documentazione attuale dell'SDK TypeScript stabile che implementa la specifica MCP 2026-07-28 e le primitive server\u002Fclient.","linkTool",{},{"id":1557,"data":1558,"type":1554,"tunes":1564},"src-mcp-release",{"link":1559,"meta":1560},"https:\u002F\u002Fblog.modelcontextprotocol.io\u002Fposts\u002F2026-07-28\u002F",{"image":1561,"title":1562,"description":1563},{"url":401},"Model Context Protocol — Rilascio della specifica 2026-07-28","Spiegazione ufficiale del rilascio per l'attuale revisione del protocollo MCP, inclusi core stateless, MRTR, routing, caching, rafforzamento dell'autorizzazione, estensioni e deprecazioni.",{},{"id":1566,"data":1567,"type":1554,"tunes":1573},"src-mcp-migration",{"link":1568,"meta":1569},"https:\u002F\u002Fts.sdk.modelcontextprotocol.io\u002Fv2\u002Fmigration\u002Fsupport-2026-07-28",{"image":1570,"title":1571,"description":1572},{"url":401},"MCP TypeScript SDK — Supporto alla revisione del protocollo 2026-07-28","Guida all'implementazione specifica per versione per l'attuale revisione del protocollo e la compatibilità con l'era precedente.",{},{"id":1575,"data":1576,"type":1554,"tunes":1582},"src-openai-mcp",{"link":1577,"meta":1578},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ftools-connectors-mcp",{"image":1579,"title":1580,"description":1581},{"url":401},"OpenAI — Server MCP","Guida attuale di OpenAI per connettere i modelli a server MCP remoti e server MCP locali\u002Fprivati tramite Secure MCP Tunnel.",{},{"id":1584,"data":1585,"type":1554,"tunes":1591},"src-openai-agent-mcp",{"link":1586,"meta":1587},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Ftools\u002Fmcp",{"image":1588,"title":1589,"description":1590},{"url":401},"OpenAI — Connessioni MCP per Agents API","Guida attuale alle connessioni MCP che copre le posizioni service, environment e stdio oltre ai controlli degli strumenti consentiti.",{},{"id":1593,"data":1594,"type":1554,"tunes":1600},"src-openai-tools",{"link":1595,"meta":1596},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ftools",{"image":1597,"title":1598,"description":1599},{"url":401},"OpenAI — Strumenti","Panoramica attuale che colloca i server MCP remoti accanto a function calling, ricerca web, shell e altri strumenti del modello.",{},{"id":1602,"data":1603,"type":1554,"tunes":1609},"src-openai-plugin-mcp",{"link":1604,"meta":1605},"https:\u002F\u002Fdevelopers.openai.com\u002Fplugins\u002Fconcepts\u002Fmcp-server",{"image":1606,"title":1607,"description":1608},{"url":401},"OpenAI — Concetto di server MCP","Descrizione attuale dei server MCP che espongono strumenti, risorse e prompt per integrazioni con servizi esterni.",{},"2.31","Il Model Context Protocol collega le applicazioni di intelligenza artificiale a strumenti, risorse e prompt esterni attraverso un confine standard client-server. Scopri cosa fa MCP, cosa non fa e dove si colloca nell'architettura degli agenti.","\u002Fuploads\u002F2026\u002F10\u002Fmcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits-1791486640275-7ub1cq.webp","mcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits-1791486640275-7ub1cq","PUBLISHED","2026-10-08T15:09:00.000Z","2026-10-08T19:09:09.976Z","2026-10-08T19:18:07.694Z",{"en":1619,"de":1620,"sr":1621,"es":1622,"fr":1623,"it":1624,"ru":1625,"zh":1626},"\u002Fblog\u002Fmcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits","\u002Fde\u002Fblog\u002Fmcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits","\u002Fsr\u002Fblog\u002Fmcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits","\u002Fes\u002Fblog\u002Fmcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits","\u002Ffr\u002Fblog\u002Fmcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits","\u002Fit\u002Fblog\u002Fmcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits","\u002Fru\u002Fblog\u002Fmcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits","\u002Fzh\u002Fblog\u002Fmcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits",[1628,1632,1636,1640],{"id":1629,"name":1630,"slug":1631},84,"Policy e limiti dati","policy-and-data",{"id":1633,"name":1634,"slug":1635},57,"Limiti dei dati","data-boundaries",{"id":1637,"name":1638,"slug":1639},48,"Capacità","capabilities",{"id":1641,"name":1642,"slug":1643},49,"Controlli e prove","controls",{"id":1645,"login":1646,"email":1647,"displayName":1648},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[1650,2812],{"lang":1651,"title":1652,"content":1653,"contentJson":1654,"excerpt":2811},"en","MCP Explained: What It Connects, What It Does Not Do and Where It Fits","{\"time\":1791486641380,\"blocks\":[{\"id\":\"intro\",\"type\":\"paragraph\",\"data\":{\"text\":\"The Model Context Protocol (MCP) is an open protocol for connecting AI applications to external capabilities and information through standardized client-server contracts. An MCP server can expose tools, resources and prompts; an MCP-compatible host or client discovers and uses those capabilities on behalf of an AI application. MCP does not require the server to run its own language model, and it does not replace the agent runtime, business authorization, tenant isolation, application APIs or domain architecture behind the exposed capabilities.\"},\"tunes\":{}},{\"id\":\"direct\",\"type\":\"callout\",\"data\":{\"variant\":\"info\",\"title\":\"Direct answer\",\"body\":\"\u003Cstrong>MCP standardizes the boundary between an AI host and external capability providers.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>A useful mental model is:\u003Cbr>\u003Cstrong>User → AI host \u002F agent runtime → MCP client → MCP server → application\u002FAPI\u002Fdata\u002Ftool\u003C\u002Fstrong>.\u003Cbr>\u003Cbr>The model can remain entirely on the host side. The MCP server may be ordinary deterministic software that exposes structured capabilities.\"},\"tunes\":{}},{\"id\":\"server-no-ai\",\"type\":\"callout\",\"data\":{\"variant\":\"success\",\"title\":\"An MCP server does not need its own AI model\",\"body\":\"A filesystem MCP server can list or read files. A database MCP server can run approved queries. A Jira MCP server can expose issue operations. None of those servers needs an LLM to satisfy the MCP contract. If a server internally uses AI, that is an implementation choice behind the protocol boundary, not an MCP requirement.\"},\"tunes\":{}},{\"id\":\"boundary\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"MCP capability is not business authority\",\"body\":\"If an MCP server exposes \u003Ccode>delete_file\u003C\u002Fcode>, \u003Ccode>refund_order\u003C\u002Fcode> or \u003Ccode>deploy_service\u003C\u002Fcode>, that only means the capability exists. The server\u002Fapplication must still enforce identity, permissions, tenant scope, business rules, confirmation requirements and audit controls. Protocol discovery must never silently become authorization.\"},\"tunes\":{}},{\"id\":\"current\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"Current-source note — 8 October 2026\",\"body\":\"The current MCP specification revision is \u003Cstrong>2026-07-28\u003C\u002Fstrong>. Its major change is a stateless protocol core with self-describing requests, optional \u003Ccode>server\u002Fdiscover\u003C\u002Fcode>, routable HTTP headers, cacheable list\u002Fresource responses, authorization hardening and a formal extension model. The TypeScript SDK v2 is the current stable SDK line implementing this revision. Older 2025-era clients and servers still exist, so implementation guidance must remain version-aware.\"},\"tunes\":{}},{\"id\":\"toc\",\"type\":\"tableOfContents\",\"data\":{\"title\":\"Contents\",\"minLevel\":2,\"maxLevel\":3},\"tunes\":{}},{\"id\":\"h-meaning\",\"type\":\"header\",\"data\":{\"text\":\"What MCP really standardizes\",\"level\":2},\"tunes\":{}},{\"id\":\"p-meaning-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Before MCP, every AI application could integrate external systems through its own tool schema, plugin format, authentication convention and connection code. The same service could need different adapters for a desktop AI client, an IDE agent and a custom application.\"},\"tunes\":{}},{\"id\":\"p-meaning-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP creates a reusable protocol boundary. The external system exposes capabilities through an MCP server, while compatible AI hosts implement an MCP client. This reduces integration coupling between the AI application and the underlying tool or data provider.\"},\"tunes\":{}},{\"id\":\"p-meaning-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The protocol does not standardize the entire application. It standardizes how capabilities are described, discovered and invoked across that boundary.\"},\"tunes\":{}},{\"id\":\"h-simple\",\"type\":\"header\",\"data\":{\"text\":\"The simplest example\",\"level\":2},\"tunes\":{}},{\"id\":\"p-simple-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Suppose an AI coding application needs access to a local project directory. Without MCP, the application might implement its own filesystem integration directly.\"},\"tunes\":{}},{\"id\":\"p-simple-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"With MCP, a filesystem server can expose capabilities such as listing directories, reading approved files or writing inside an allowed workspace. The AI host connects through an MCP client and presents those capabilities to the model or agent runtime.\"},\"tunes\":{}},{\"id\":\"p-simple-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The server does not need to understand the user's natural-language request. The host\u002Fmodel decides which capability is useful; the MCP server executes the structured request under its own security rules.\"},\"tunes\":{}},{\"id\":\"simple-flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"A basic MCP tool call\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Host connects to server\",\"description\":\"The MCP-capable application configures access to the external MCP server.\"},{\"label\":\"2. Capabilities are discovered\",\"description\":\"The client learns which tools, resources or prompts the server exposes.\"},{\"label\":\"3. Model or runtime selects a capability\",\"description\":\"The AI application decides that one exposed capability is needed.\"},{\"label\":\"4. Client sends structured request\",\"description\":\"Arguments are sent through MCP to the server.\"},{\"label\":\"5. Server authorizes and executes\",\"description\":\"The server validates the request and calls its underlying system.\"},{\"label\":\"6. Result returns to host\",\"description\":\"The result becomes an observation or context input.\"},{\"label\":\"7. Host decides what happens next\",\"description\":\"The model\u002Fruntime may answer, call another tool or continue a workflow.\"}]},\"tunes\":{}},{\"id\":\"h-stops\",\"type\":\"header\",\"data\":{\"text\":\"Where the simple example stops\",\"level\":2},\"tunes\":{}},{\"id\":\"p-stops-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP does not define how the host chooses a tool, how an agent plans, how a business workflow is modeled or how a domain object such as an invoice or deployment should behave.\"},\"tunes\":{}},{\"id\":\"p-stops-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A protocol can make the integration interoperable while the underlying application remains incorrect, insecure or badly designed. A perfectly valid MCP request can still call the wrong business capability.\"},\"tunes\":{}},{\"id\":\"p-stops-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The central boundary is: MCP standardizes integration semantics, not application truth or business correctness.\"},\"tunes\":{}},{\"id\":\"h-architecture\",\"type\":\"header\",\"data\":{\"text\":\"The MCP architecture: host, client and server\",\"level\":2},\"tunes\":{}},{\"id\":\"architecture-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Component\",\"Responsibility\"],[\"AI host\",\"User-facing AI application or runtime that owns model interaction, context and overall workflow\"],[\"MCP client\",\"Protocol-side component used by the host to communicate with an MCP server\"],[\"MCP server\",\"Publishes capabilities and handles MCP requests\"],[\"Underlying system\",\"Application, API, database, filesystem, SaaS platform or service behind the MCP server\"],[\"Model\",\"Chooses or reasons about capabilities according to the host\u002Fruntime design; it is not necessarily inside the MCP server\"],[\"Authorization\u002Fbusiness policy\",\"Determines whether a requested operation is actually permitted\"]]},\"tunes\":{}},{\"id\":\"p-architecture-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A host can connect to multiple MCP servers, and one MCP server can front one or several underlying systems. The host remains responsible for integrating MCP results into the broader AI application.\"},\"tunes\":{}},{\"id\":\"p-architecture-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The server can be local to the host, run as a separate process or be remote over a network transport. Hosting topology and model location are independent decisions.\"},\"tunes\":{}},{\"id\":\"h-primitives\",\"type\":\"header\",\"data\":{\"text\":\"The three core server primitives\",\"level\":2},\"tunes\":{}},{\"id\":\"primitives-comparison\",\"type\":\"comparison\",\"data\":{\"title\":\"Tools, resources and prompts solve different needs\",\"layout\":\"table\",\"columns\":[{\"id\":\"tools\",\"label\":\"Tools\"},{\"id\":\"resources\",\"label\":\"Resources\"},{\"id\":\"prompts\",\"label\":\"Prompts\"}],\"rows\":[{\"id\":\"purpose\",\"label\":\"Primary purpose\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"interaction\",\"label\":\"Typical interaction\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"example\",\"label\":\"Example\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"risk\",\"label\":\"Typical risk\",\"values\":[\"\",\"\",\"\"]}]},\"tunes\":{}},{\"id\":\"h-tools\",\"type\":\"header\",\"data\":{\"text\":\"Tools: callable capabilities\",\"level\":2},\"tunes\":{}},{\"id\":\"p-tools-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Tools are structured operations an MCP server makes available to the host. A tool has a name, description and input schema; modern implementations can also provide structured output.\"},\"tunes\":{}},{\"id\":\"p-tools-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Examples include searching a repository, reading a customer record, creating a ticket, running a build or sending a message. Tools can be read-only or have side effects.\"},\"tunes\":{}},{\"id\":\"p-tools-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"A good MCP tool surface should represent coherent user or agent goals rather than mechanically mirror every internal API endpoint. Operations with different permissions, confirmation requirements or blast radius should usually be separate tools.\"},\"tunes\":{}},{\"id\":\"h-resources\",\"type\":\"header\",\"data\":{\"text\":\"Resources: readable context and data\",\"level\":2},\"tunes\":{}},{\"id\":\"p-res-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Resources expose data or content that a client can list or read. They fit naturally when the semantic operation is “give me this artifact or information” rather than “perform this action.”\"},\"tunes\":{}},{\"id\":\"p-res-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A resource URI is not an authorization grant. The server still owns access control and must verify which principal may read the underlying object.\"},\"tunes\":{}},{\"id\":\"p-res-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The 2026-07-28 protocol revision adds cache semantics for list and resource-read responses, including freshness and cache scope, making caching behavior more explicit.\"},\"tunes\":{}},{\"id\":\"h-prompts\",\"type\":\"header\",\"data\":{\"text\":\"Prompts: reusable templates\",\"level\":2},\"tunes\":{}},{\"id\":\"p-prompts-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP prompts let a server publish reusable prompt templates to compatible clients. This can keep domain-specific instructions close to the capability provider.\"},\"tunes\":{}},{\"id\":\"p-prompts-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A prompt supplied by an MCP server does not automatically outrank the host's system or security instructions. The host decides how prompt material enters its context hierarchy.\"},\"tunes\":{}},{\"id\":\"p-prompts-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Protocol-provided prompt content should therefore be treated as capability data with explicit trust semantics, not as unrestricted instruction authority.\"},\"tunes\":{}},{\"id\":\"h-tool-vs-resource\",\"type\":\"header\",\"data\":{\"text\":\"Tool or resource?\",\"level\":2},\"tunes\":{}},{\"id\":\"tool-resource-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Need\",\"Prefer\"],[\"Perform an action with structured arguments\",\"Tool\"],[\"Read a specific stable artifact\",\"Resource\"],[\"Search or calculate dynamically\",\"Usually tool\"],[\"Modify external state\",\"Tool\"],[\"Package reusable prompt instructions\",\"Prompt\"],[\"Long-running asynchronous execution\",\"Tool plus application\u002Fruntime task handling or an MCP extension\"]]},\"tunes\":{}},{\"id\":\"h-model-location\",\"type\":\"header\",\"data\":{\"text\":\"Where is the AI model?\",\"level\":2},\"tunes\":{}},{\"id\":\"p-location-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP does not require the model to run on the MCP server. The model can be cloud-hosted, locally hosted, embedded in the desktop application or reached through another provider.\"},\"tunes\":{}},{\"id\":\"p-location-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The host normally owns the model interaction. The MCP server exposes external capability. A local MCP server can therefore be used by a host whose model runs in the cloud, and a remote MCP server can be used by a host whose model runs locally.\"},\"tunes\":{}},{\"id\":\"p-location-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"If the MCP server itself calls an LLM internally, that model is part of the server's implementation behind the protocol boundary; it is not required by MCP.\"},\"tunes\":{}},{\"id\":\"location-rule\",\"type\":\"callout\",\"data\":{\"variant\":\"success\",\"title\":\"Protocol location ≠ inference location\",\"body\":\"\u003Cstrong>Local MCP does not imply local inference, and remote MCP does not imply remote inference.\u003C\u002Fstrong> Connection location, tool-execution location and model\u002Fprovider location are separate architecture dimensions.\"},\"tunes\":{}},{\"id\":\"h-mcp-vs-api\",\"type\":\"header\",\"data\":{\"text\":\"MCP does not replace APIs\",\"level\":2},\"tunes\":{}},{\"id\":\"p-api-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"An MCP server often wraps existing APIs or services. REST, GraphQL, SQL, SDK calls and internal service contracts can remain exactly where they are.\"},\"tunes\":{}},{\"id\":\"p-api-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP adds an AI-facing interoperability layer. The underlying domain API can remain the authoritative application contract for ordinary deterministic clients.\"},\"tunes\":{}},{\"id\":\"p-api-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The usual architecture is therefore API\u002Fservice first, selected AI-facing capability second — not “replace every API with MCP.”\"},\"tunes\":{}},{\"id\":\"h-function-calling\",\"type\":\"header\",\"data\":{\"text\":\"MCP vs function calling\",\"level\":2},\"tunes\":{}},{\"id\":\"function-comparison\",\"type\":\"comparison\",\"data\":{\"title\":\"Function calling and MCP are related but not identical\",\"layout\":\"table\",\"columns\":[{\"id\":\"function\",\"label\":\"Function calling\"},{\"id\":\"mcp\",\"label\":\"MCP\"}],\"rows\":[{\"id\":\"scope\",\"label\":\"Scope\",\"values\":[\"\",\"\"]},{\"id\":\"definition\",\"label\":\"Tool definition\",\"values\":[\"\",\"\"]},{\"id\":\"portability\",\"label\":\"Portability\",\"values\":[\"\",\"\"]},{\"id\":\"coexist\",\"label\":\"Can they coexist?\",\"values\":[\"\",\"\"]}]},\"tunes\":{}},{\"id\":\"p-function-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"OpenAI currently exposes remote MCP servers as one tool type alongside ordinary function calling, web search, shell and other tools. That implementation illustrates the architectural relationship: MCP connectivity and the model's own tool-call interface can be composed.\"},\"tunes\":{}},{\"id\":\"h-agent\",\"type\":\"header\",\"data\":{\"text\":\"MCP does not create the agent loop\",\"level\":2},\"tunes\":{}},{\"id\":\"p-agent-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"An AI agent needs a runtime that can decide, invoke tools, observe results, update state and continue or stop. MCP can supply some of the tools and data used by that loop.\"},\"tunes\":{}},{\"id\":\"p-agent-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The MCP server does not automatically become the planner, memory system or orchestrator. Those responsibilities normally remain in the host or agent runtime.\"},\"tunes\":{}},{\"id\":\"p-agent-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"A non-agentic application can also use MCP. One deterministic MCP tool call does not require an autonomous multi-step agent.\"},\"tunes\":{}},{\"id\":\"h-a2a\",\"type\":\"header\",\"data\":{\"text\":\"MCP vs A2A\",\"level\":2},\"tunes\":{}},{\"id\":\"p-a2a-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP primarily connects an AI host or agent to capabilities such as tools, resources and data. A2A targets collaboration between independent agent systems.\"},\"tunes\":{}},{\"id\":\"p-a2a-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A remote agent can internally use MCP to reach databases and tools while exposing an A2A interface to other agents. The protocols can therefore be layered rather than substituted.\"},\"tunes\":{}},{\"id\":\"p-a2a-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The existing protocol-stack article owns the broader MCP\u002FA2A\u002FUCP\u002FAP2\u002FA2UI comparison; G02 remains the canonical MCP definition.\"},\"tunes\":{}},{\"id\":\"ref-protocol-stack\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fde\u002Fblog\u002Fmcp-vs-a2a-vs-ucp-vs-ap2-vs-a2ui-the-agent-protocol-stack-explained\",\"title\":\"MCP vs A2A vs UCP vs AP2 vs A2UI: The Agent Protocol Stack Explained\",\"excerpt\":\"A broader responsibility map showing how MCP composes with agent collaboration, commerce, payment authority and agent-driven UI protocols.\",\"ctaLabel\":\"Read the protocol stack\"},\"tunes\":{}},{\"id\":\"h-transport\",\"type\":\"header\",\"data\":{\"text\":\"Local and remote MCP use different transport realities\",\"level\":2},\"tunes\":{}},{\"id\":\"p-transport-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP can connect to local and remote servers. Local desktop integrations commonly use process-level transports such as stdio; remote servers use HTTP-oriented transport.\"},\"tunes\":{}},{\"id\":\"p-transport-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The 2026-07-28 revision makes the protocol core stateless. Requests carry the information needed for protocol handling instead of depending on the earlier protocol-level session model.\"},\"tunes\":{}},{\"id\":\"p-transport-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The current revision also places method and capability names in HTTP headers so gateways, WAFs, rate limiters and load balancers can route and meter MCP traffic more naturally.\"},\"tunes\":{}},{\"id\":\"h-version\",\"type\":\"header\",\"data\":{\"text\":\"Why MCP version awareness matters\",\"level\":2},\"tunes\":{}},{\"id\":\"version-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Protocol era\",\"Operational characteristic\"],[\"2025-11-25 and earlier\",\"Handshake\u002Fsession-oriented lifecycle and older Streamable HTTP behavior\"],[\"2026-07-28\",\"Stateless core, optional server discovery, self-describing requests, routing headers, cache hints, MRTR and authorization hardening\"],[\"Extensions\",\"Capabilities such as Tasks and MCP Apps can version separately from the base protocol\"]]},\"tunes\":{}},{\"id\":\"p-version-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"SDK version and protocol version are also different things. The current TypeScript v2 SDK is the stable line for the 2026-07-28 revision, while older v1.x remains a maintenance line for 2025-era behavior.\"},\"tunes\":{}},{\"id\":\"p-version-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Architecture documentation should record both the SDK\u002Flibrary version and the protocol revision where interoperability behavior depends on them.\"},\"tunes\":{}},{\"id\":\"h-modern\",\"type\":\"header\",\"data\":{\"text\":\"What changed in MCP 2026-07-28\",\"level\":2},\"tunes\":{}},{\"id\":\"modern-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Change\",\"Why it matters\"],[\"Stateless core\",\"Remote servers can scale behind ordinary load balancers without protocol-level sticky sessions\"],[\"server\u002Fdiscover\",\"Clients can inspect server capabilities when needed\"],[\"Self-describing requests\",\"Protocol version and client capability metadata travel per request\"],[\"Mcp-Method \u002F Mcp-Name headers\",\"Gateways can route, meter and apply policy without parsing bodies\"],[\"Cache hints\",\"Lists\u002Fresource reads communicate freshness and sharing scope\"],[\"Multi Round-Trip Requests\",\"Servers can require additional input without the older bidirectional request model\"],[\"Authorization hardening\",\"Issuer validation and credential binding strengthen remote auth behavior\"],[\"Extensions framework\",\"Tasks, MCP Apps and other capabilities can evolve separately\"]]},\"tunes\":{}},{\"id\":\"h-deprecations\",\"type\":\"header\",\"data\":{\"text\":\"Roots, sampling and logging are no longer the direction for new implementations\",\"level\":2},\"tunes\":{}},{\"id\":\"p-dep-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The 2026-07-28 release marks roots, sampling and logging as deprecated protocol capabilities with a defined compatibility window.\"},\"tunes\":{}},{\"id\":\"p-dep-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Older tutorials may still show these features as central primitives. New implementation work should follow the current specification rather than copy older lifecycle diagrams blindly.\"},\"tunes\":{}},{\"id\":\"p-dep-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Deprecation does not mean immediate removal. It means new systems should avoid unnecessary new dependencies on capabilities the protocol is moving away from.\"},\"tunes\":{}},{\"id\":\"h-tasks\",\"type\":\"header\",\"data\":{\"text\":\"Long-running work is not the same as ordinary MCP tool invocation\",\"level\":2},\"tunes\":{}},{\"id\":\"p-task-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Long-running operations need lifecycle semantics beyond a simple immediate tool result. In the current ecosystem, Tasks moved into a dedicated MCP extension.\"},\"tunes\":{}},{\"id\":\"p-task-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"This reinforces a useful design principle: the base protocol does not need to absorb every agent-runtime concern.\"},\"tunes\":{}},{\"id\":\"p-task-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"An application can also keep long-running workflow ownership entirely in its own runtime and use ordinary MCP tools as underlying operations.\"},\"tunes\":{}},{\"id\":\"h-apps\",\"type\":\"header\",\"data\":{\"text\":\"MCP Apps extend UI capability without redefining the core protocol\",\"level\":2},\"tunes\":{}},{\"id\":\"p-apps-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP Apps associate richer interactive UI experiences with MCP tools through the extension model.\"},\"tunes\":{}},{\"id\":\"p-apps-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The host still controls how that UI is embedded, sandboxed and secured.\"},\"tunes\":{}},{\"id\":\"p-apps-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Core capability exchange and UI rendering should therefore remain separate architecture responsibilities.\"},\"tunes\":{}},{\"id\":\"h-auth\",\"type\":\"header\",\"data\":{\"text\":\"MCP authorization is not your complete authorization model\",\"level\":2},\"tunes\":{}},{\"id\":\"p-auth-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Remote MCP needs protocol-level authentication and authorization mechanisms so clients and servers can establish trusted access. The current specification continues to harden OAuth\u002FOIDC-related behavior.\"},\"tunes\":{}},{\"id\":\"p-auth-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"That layer answers whether a client is allowed to connect or request protocol scopes. It does not automatically answer whether Alice may refund order 123, whether an agent may write production configuration or whether Tenant A may read Tenant B data.\"},\"tunes\":{}},{\"id\":\"p-auth-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Those domain decisions belong in the server\u002Fapplication authorization model and must be enforced before invoking the underlying operation.\"},\"tunes\":{}},{\"id\":\"auth-rule\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"Never map “authenticated MCP client” to “trusted for every tool”\",\"body\":\"Connection trust, tool visibility, tool permission, user authorization, tenant isolation and business approval are different controls. Keep them separate.\"},\"tunes\":{}},{\"id\":\"h-identity\",\"type\":\"header\",\"data\":{\"text\":\"Identity can cross several boundaries\",\"level\":2},\"tunes\":{}},{\"id\":\"p-id-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"An MCP request may involve the MCP client application, the signed-in human, an agent\u002Fsession identity and a downstream service account.\"},\"tunes\":{}},{\"id\":\"p-id-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The server needs an explicit policy for which principal the operation is performed on behalf of. Otherwise a powerful service credential can become a confused-deputy path.\"},\"tunes\":{}},{\"id\":\"p-id-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"For enterprise use, correlation between user identity, agent identity, MCP connection and downstream authorization is as important as protocol compatibility.\"},\"tunes\":{}},{\"id\":\"h-tenant\",\"type\":\"header\",\"data\":{\"text\":\"Tenant isolation remains outside MCP capability discovery\",\"level\":2},\"tunes\":{}},{\"id\":\"p-tenant-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A multi-tenant MCP server must apply tenant scope when it reads or changes tenant-owned resources. Returning a tool named search_documents does not define which tenant's documents are eligible.\"},\"tunes\":{}},{\"id\":\"p-tenant-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Tenant scope should be derived from trusted identity or membership and carried into databases, caches, vector search, object storage and downstream APIs.\"},\"tunes\":{}},{\"id\":\"p-tenant-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Retrieving cross-tenant content and asking the model not to use it is already an isolation failure.\"},\"tunes\":{}},{\"id\":\"h-source\",\"type\":\"header\",\"data\":{\"text\":\"MCP does not define Source of Truth\",\"level\":2},\"tunes\":{}},{\"id\":\"p-source-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"An MCP server can expose a database, document repository, web search service or AI-generated summary. The protocol does not declare which source is authoritative for a claim.\"},\"tunes\":{}},{\"id\":\"p-source-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Source-of-Truth rules belong to application\u002Fdomain architecture. The host or server can encode authority through tool design, metadata, access policy or validation, but MCP itself does not make one capability “true.”\"},\"tunes\":{}},{\"id\":\"p-source-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"A tool can therefore be perfectly callable through MCP and still return stale, secondary or non-authoritative information.\"},\"tunes\":{}},{\"id\":\"h-context\",\"type\":\"header\",\"data\":{\"text\":\"MCP and context engineering\",\"level\":2},\"tunes\":{}},{\"id\":\"p-context-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP can increase the capabilities and information available to an AI application, but context engineering still determines what reaches the model.\"},\"tunes\":{}},{\"id\":\"p-context-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Tool catalogs consume model-visible context in many hosts. Tool results can be large. Resources can be numerous. A host needs selection, filtering, dynamic loading and compaction rather than exposing everything on every turn.\"},\"tunes\":{}},{\"id\":\"p-context-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Capability availability and model-visible context should therefore be treated as separate layers.\"},\"tunes\":{}},{\"id\":\"h-tool-design\",\"type\":\"header\",\"data\":{\"text\":\"Design MCP tools around outcomes and risk boundaries\",\"level\":2},\"tunes\":{}},{\"id\":\"tool-design-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Weak tool design\",\"Stronger tool design\"],[\"execute_api(method,url,body)\",\"Narrow domain tools with validated operations\"],[\"One admin tool for all actions\",\"Separate read\u002Fwrite\u002Fapproval operations\"],[\"Raw internal API mirrored 1:1\",\"AI-facing contract around coherent user goals\"],[\"One broad filesystem tool\",\"Workspace-scoped read\u002Fwrite operations\"],[\"Security policy only in description\",\"Server enforces policy in code\"],[\"Unbounded raw response\",\"Structured decision-relevant output\"],[\"Delete\u002Fupdate mixed with read\",\"Separate side-effect tools with confirmation policy\"]]},\"tunes\":{}},{\"id\":\"h-approvals\",\"type\":\"header\",\"data\":{\"text\":\"Approvals belong in the execution architecture\",\"level\":2},\"tunes\":{}},{\"id\":\"p-approve-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A host can require user approval before invoking selected MCP tools. OpenAI's current MCP integration supports automatic or explicit-approval execution patterns.\"},\"tunes\":{}},{\"id\":\"p-approve-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Host approval is useful but should not be the server's only protection because another compatible MCP client may use a different approval model.\"},\"tunes\":{}},{\"id\":\"p-approve-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"For destructive or financially consequential actions, use defense in depth: clear tool contract, runtime approval where appropriate, server-side authorization, business validation and audit.\"},\"tunes\":{}},{\"id\":\"h-observability\",\"type\":\"header\",\"data\":{\"text\":\"MCP observability should connect protocol calls to domain actions\",\"level\":2},\"tunes\":{}},{\"id\":\"p-obs-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"An MCP trace is most useful when it can be correlated with the underlying application call, database change or business transaction.\"},\"tunes\":{}},{\"id\":\"p-obs-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The 2026-07-28 ecosystem standardizes W3C Trace Context propagation conventions, making it easier to follow a request across host, client, server and downstream services.\"},\"tunes\":{}},{\"id\":\"p-obs-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Protocol logs alone are not enough for consequential operations. Audit evidence should also record relevant principal, tenant, target resource, approval and resulting state change.\"},\"tunes\":{}},{\"id\":\"h-failure\",\"type\":\"header\",\"data\":{\"text\":\"What MCP cannot fix\",\"level\":2},\"tunes\":{}},{\"id\":\"failure-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Problem\",\"Why MCP does not solve it\"],[\"Bad business API\",\"MCP can expose the bad API more consistently\"],[\"Wrong data\",\"Protocol validity does not create factual correctness\"],[\"Missing tenant isolation\",\"Tool discovery does not enforce resource ownership\"],[\"Excessive privileges\",\"A standardized tool can still be overprivileged\"],[\"Poor agent planning\",\"MCP exposes capabilities; runtime\u002Fmodel still chooses how to use them\"],[\"Bad retry\u002Fidempotency design\",\"Protocol calls do not make side effects safe\"],[\"No Source of Truth\",\"MCP does not decide which system owns a fact\"],[\"Weak evaluation\",\"Interoperability does not prove task success\"],[\"No audit policy\",\"Transport traces do not define retention or accountability\"],[\"Protocol mismatch\",\"Old\u002Fnew versions can still require migration or compatibility handling\"]]},\"tunes\":{}},{\"id\":\"h-implementation\",\"type\":\"header\",\"data\":{\"text\":\"Original implementation evidence: Aaasaasa AI Client\",\"level\":2},\"tunes\":{}},{\"id\":\"impl-note\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"Implementation evidence\",\"body\":\"Aaasaasa AI Client contains an authenticated local MCP connector\u002Fbroker for approved local directories and integration through Secure MCP Tunnel. This is concrete implementation evidence for the protocol boundary and permission architecture, not a claim of a general-purpose commercial MCP platform.\"},\"tunes\":{}},{\"id\":\"p-impl-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The application can run an authenticated Streamable HTTP MCP endpoint on loopback. The endpoint exposes only directories selected through the central workspace permission broker.\"},\"tunes\":{}},{\"id\":\"p-impl-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The local endpoint and remote route are separate concerns: the local connector can bind only to loopback, while a Secure MCP Tunnel can make the approved MCP service reachable to a permitted external AI client without exposing the whole local machine.\"},\"tunes\":{}},{\"id\":\"p-impl-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The central permission model distinguishes chat-only, read-only, project-write and custom-directory profiles. Direct Chat has no filesystem or shell access; tool-capable agent runtimes use the selected permission profile.\"},\"tunes\":{}},{\"id\":\"p-impl-4\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is a direct implementation of the G02 boundary: MCP provides the standardized capability connection, while the application-owned permission broker decides which directories the server may expose.\"},\"tunes\":{}},{\"id\":\"impl-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Implemented element\",\"Architecture evidence\"],[\"Authenticated local MCP endpoint\",\"MCP server can be a local deterministic capability service\"],[\"Loopback binding\",\"Network exposure and protocol capability are separate decisions\"],[\"Secure MCP Tunnel integration\",\"Private\u002Flocal MCP can be bridged through a controlled route\"],[\"Central permission broker\",\"MCP capability is constrained by application policy\"],[\"Selected directory scope\",\"Filesystem visibility is explicitly bounded\"],[\"Direct Chat without OS tools\",\"Model access does not automatically imply tool access\"]]},\"tunes\":{}},{\"id\":\"impl-boundary\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"Evidence boundary\",\"body\":\"The implementation demonstrates MCP connectivity and permission-scoped local directory exposure. It does not imply that every MCP primitive, every 2026-07-28 feature or every enterprise authorization extension is implemented.\"},\"tunes\":{}},{\"id\":\"h-use\",\"type\":\"header\",\"data\":{\"text\":\"When MCP is a good fit\",\"level\":2},\"tunes\":{}},{\"id\":\"use-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"MCP is a strong fit when\",\"A direct integration may be simpler when\"],[\"The same capability should be reusable across multiple AI hosts\",\"One application owns both sides and portability has little value\"],[\"An external system wants to publish discoverable AI-facing tools\u002Fresources\",\"A single stable internal API call is sufficient\"],[\"You want a standard boundary around local tools\u002Fdata\",\"There is no AI-facing interoperability requirement\"],[\"Tool providers and AI clients evolve independently\",\"The integration is intentionally private and tightly coupled\"],[\"You want ecosystem-compatible capability discovery\",\"The capability set is tiny and fixed in application code\"]]},\"tunes\":{}},{\"id\":\"h-not-need\",\"type\":\"header\",\"data\":{\"text\":\"When you do not need MCP\",\"level\":2},\"tunes\":{}},{\"id\":\"p-not-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Do not add MCP merely because the application uses AI. If your backend already calls one internal API and no independent MCP client needs that capability, an ordinary function or service call may be clearer.\"},\"tunes\":{}},{\"id\":\"p-not-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP adds value at an interoperability boundary. Without that boundary, the protocol can become an unnecessary adapter layer.\"},\"tunes\":{}},{\"id\":\"p-not-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The architectural question is not “Does this project have AI?” but “Do independently evolving AI hosts and capability providers benefit from a standard contract?”\"},\"tunes\":{}},{\"id\":\"h-security\",\"type\":\"header\",\"data\":{\"text\":\"MCP security checklist\",\"level\":2},\"tunes\":{}},{\"id\":\"security-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Boundary\",\"Question\"],[\"Server identity\",\"Which MCP server am I actually connected to?\"],[\"Client identity\",\"Which application\u002Fclient is requesting access?\"],[\"End-user identity\",\"On whose behalf is the operation performed?\"],[\"Tool allowlist\",\"Which capabilities may this host\u002Fagent discover and call?\"],[\"Business permission\",\"May this principal perform this operation?\"],[\"Tenant scope\",\"Which tenant\u002Fresource boundary applies?\"],[\"Credential isolation\",\"Are credentials bound correctly and kept outside model context?\"],[\"Approval\",\"Which side effects require human confirmation?\"],[\"Input validation\",\"Are tool arguments validated independently of model output?\"],[\"Output trust\",\"Can returned content contain untrusted instructions or sensitive data?\"],[\"Network exposure\",\"Is a local server accidentally exposed beyond intended interfaces?\"],[\"Audit\",\"Can a protocol call be correlated with the downstream action?\"]]},\"tunes\":{}},{\"id\":\"h-misconceptions\",\"type\":\"header\",\"data\":{\"text\":\"Common misconceptions\",\"level\":2},\"tunes\":{}},{\"id\":\"misconceptions-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Misconception\",\"Correction\"],[\"“An MCP server is an AI server.”\",\"It can be ordinary deterministic software exposing capabilities.\"],[\"“I need my own LLM on the MCP server.”\",\"No. The model can live entirely on the host side.\"],[\"“MCP replaces REST APIs.”\",\"MCP often wraps existing APIs for AI-facing interoperability.\"],[\"“MCP is an agent framework.”\",\"MCP supplies capabilities; an agent runtime manages iteration and state.\"],[\"“MCP and function calling compete.”\",\"A host can bridge MCP capabilities into its model tool interface.\"],[\"“MCP replaces A2A.”\",\"MCP focuses on capability integration; A2A focuses on agent collaboration.\"],[\"“If a tool is listed, the user may call it.”\",\"Discovery is not authorization.\"],[\"“OAuth solves business permissions.”\",\"Connection authorization does not replace domain authorization or tenant isolation.\"],[\"“Local MCP means local AI.”\",\"Tool-server location and inference location are independent.\"],[\"“MCP makes tool output trustworthy.”\",\"Data quality, authority and provenance still belong to the source\u002Fapplication.\"],[\"“One giant generic tool is flexible.”\",\"Over-broad tools weaken permissions, validation and observability.\"],[\"“Old tutorials are implementation-current.”\",\"The 2026-07-28 revision materially changed lifecycle and transport behavior.\"]]},\"tunes\":{}},{\"id\":\"h-design\",\"type\":\"header\",\"data\":{\"text\":\"A practical MCP design sequence\",\"level\":2},\"tunes\":{}},{\"id\":\"design-flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"Design the boundary before implementing the server\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Identify the interoperability boundary\",\"description\":\"Confirm that independent AI hosts actually need reusable access.\"},{\"label\":\"2. Keep the domain API authoritative\",\"description\":\"Preserve the real application\u002Fservice contract behind MCP.\"},{\"label\":\"3. Choose primitives deliberately\",\"description\":\"Use tools, resources and prompts according to their semantics.\"},{\"label\":\"4. Split by risk and permission\",\"description\":\"Separate read, write, destructive and approval-required operations.\"},{\"label\":\"5. Define identity propagation\",\"description\":\"Know which client, user, agent and downstream principal each call represents.\"},{\"label\":\"6. Enforce business authorization\",\"description\":\"Validate permissions, tenant scope and target ownership.\"},{\"label\":\"7. Choose local or remote transport\",\"description\":\"Match deployment topology to the real need.\"},{\"label\":\"8. Pin protocol\u002FSDK expectations\",\"description\":\"Document 2026-07-28 versus older compatibility.\"},{\"label\":\"9. Add approvals for consequential actions\",\"description\":\"Use risk-appropriate confirmation controls.\"},{\"label\":\"10. Design structured outputs\",\"description\":\"Return concise machine-usable results.\"},{\"label\":\"11. Add tracing and audit correlation\",\"description\":\"Connect MCP calls to downstream service\u002Fbusiness events.\"},{\"label\":\"12. Test portability\",\"description\":\"Verify more than one client where interoperability is a stated requirement.\"}]},\"tunes\":{}},{\"id\":\"h-checklist\",\"type\":\"header\",\"data\":{\"text\":\"MCP architecture checklist\",\"level\":2},\"tunes\":{}},{\"id\":\"checklist-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Question\",\"Expected answer\"],[\"Why is MCP needed?\",\"A real AI-facing interoperability boundary\"],[\"What does the server expose?\",\"Explicit tools\u002Fresources\u002Fprompts\"],[\"Where does the model run?\",\"Independent host\u002Fprovider decision\"],[\"Where does tool execution run?\",\"Named server\u002Fruntime location\"],[\"Which protocol revision is expected?\",\"Version-aware contract\"],[\"Who is the requesting principal?\",\"Client\u002Fuser\u002Fagent identity model\"],[\"Which tools may be discovered?\",\"Allowlist\u002Fcapability policy\"],[\"Which operations may execute?\",\"Server-side business authorization\"],[\"How is tenant\u002Fresource scope enforced?\",\"Trusted tenant\u002Fresource ownership checks\"],[\"Which actions need approval?\",\"Risk-based confirmation policy\"],[\"How are credentials protected?\",\"Trusted runtime storage, not model-visible secrets\"],[\"How is output bounded?\",\"Structured relevant result contract\"],[\"How are calls traced?\",\"Correlation through MCP to downstream action\"],[\"What happens if MCP is unavailable?\",\"Defined fallback\u002Ffailure behavior\"],[\"Can another compatible host use it?\",\"Portability validated where required\"]]},\"tunes\":{}},{\"id\":\"h-edge\",\"type\":\"header\",\"data\":{\"text\":\"Edge cases and limitations\",\"level\":2},\"tunes\":{}},{\"id\":\"p-edge-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A local stdio MCP server can have little network exposure while still be dangerous if the process itself has excessive filesystem or shell permissions.\"},\"tunes\":{}},{\"id\":\"p-edge-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A remote MCP server may expose only public documentation or highly sensitive enterprise actions. “Remote MCP” says little about risk without the capability and authorization context.\"},\"tunes\":{}},{\"id\":\"p-edge-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Some servers may use only tools and ignore resources\u002Fprompts. MCP compatibility does not require every optional primitive to be equally important.\"},\"tunes\":{}},{\"id\":\"p-edge-4\",\"type\":\"paragraph\",\"data\":{\"text\":\"A host can translate between its own internal tool model and MCP. Users may never see the protocol boundary directly, which is acceptable if security and attribution remain clear.\"},\"tunes\":{}},{\"id\":\"p-edge-5\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP continues to evolve rapidly. Extensions, authorization patterns, SDK APIs and ecosystem conventions can change faster than the core architectural distinction.\"},\"tunes\":{}},{\"id\":\"h-change\",\"type\":\"header\",\"data\":{\"text\":\"What would change this answer?\",\"level\":2},\"tunes\":{}},{\"id\":\"p-change-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Future MCP revisions can change lifecycle, transports, authorization and extension mechanisms. The July 2026 revision already demonstrates why implementation-specific claims must be dated.\"},\"tunes\":{}},{\"id\":\"p-change-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The canonical boundary would change only if MCP expanded from an interoperability protocol into an end-to-end application\u002Fagent architecture standard. That is not what the current protocol defines.\"},\"tunes\":{}},{\"id\":\"p-change-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"For implementation work, always check the current specification and exact SDK line instead of copying version-sensitive examples from older tutorials.\"},\"tunes\":{}},{\"id\":\"h-related\",\"type\":\"header\",\"data\":{\"text\":\"Related canonical knowledge\",\"level\":2},\"tunes\":{}},{\"id\":\"p-related-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP belongs downstream of Agentic AI: first understand the agent\u002Fruntime\u002Ftool boundary, then use MCP when external capabilities need a portable protocol contract.\"},\"tunes\":{}},{\"id\":\"p-related-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP also depends on RBAC and tenant isolation because protocol-level capability exposure does not determine application authorization.\"},\"tunes\":{}},{\"id\":\"p-related-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The broader protocol-stack article explains where MCP sits beside A2A, UCP, AP2 and A2UI. G02 remains the canonical source for MCP itself.\"},\"tunes\":{}},{\"id\":\"ref-reliability\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough\",\"title\":\"AI Agent Reliability: Why the Final Answer Is Not Enough\",\"excerpt\":\"MCP tool calls become part of an agent trajectory; reliable systems need to evaluate actions and observations, not only final text.\",\"ctaLabel\":\"Read the agent reliability article\"},\"tunes\":{}},{\"id\":\"h-faq\",\"type\":\"header\",\"data\":{\"text\":\"Frequently asked questions\",\"level\":2},\"tunes\":{}},{\"id\":\"faq\",\"type\":\"faq\",\"data\":{\"title\":\"Model Context Protocol FAQ\",\"items\":[{\"id\":\"faq1\",\"question\":\"What is MCP?\",\"answer\":\"The Model Context Protocol is an open client-server protocol for connecting AI applications to external tools, resources, prompts and capability providers through a standardized contract.\"},{\"id\":\"faq2\",\"question\":\"Does an MCP server need an AI model?\",\"answer\":\"No. An MCP server can be completely deterministic software. The model normally runs in the AI host or agent runtime, although a server may optionally use AI internally.\"},{\"id\":\"faq3\",\"question\":\"What is the difference between an MCP client and server?\",\"answer\":\"The client is the protocol component used by an AI host to communicate with capability providers. The server publishes and executes the capabilities it exposes.\"},{\"id\":\"faq4\",\"question\":\"Does MCP replace function calling?\",\"answer\":\"No. Function\u002Ftool calling is how a model invokes configured capabilities. MCP standardizes discovery and communication with external capability servers. A host can bridge the two.\"},{\"id\":\"faq5\",\"question\":\"Does MCP replace REST APIs?\",\"answer\":\"No. MCP servers frequently wrap existing REST, GraphQL, database or service APIs and provide an AI-facing interoperability layer.\"},{\"id\":\"faq6\",\"question\":\"Is MCP an agent framework?\",\"answer\":\"No. MCP exposes capabilities. Agent planning, state, memory, context management, retries, orchestration and stopping belong to the surrounding runtime.\"},{\"id\":\"faq7\",\"question\":\"What is the difference between MCP and A2A?\",\"answer\":\"MCP primarily connects an AI host or agent to tools and data providers. A2A connects independent agent systems for collaboration and delegation.\"},{\"id\":\"faq8\",\"question\":\"Does MCP handle authorization?\",\"answer\":\"MCP includes protocol-level authorization mechanisms, especially for remote servers, but the application must still enforce business permissions, resource ownership and tenant isolation.\"},{\"id\":\"faq9\",\"question\":\"Can MCP work with local models?\",\"answer\":\"Yes. Model location is independent of MCP. A local-model host can call local or remote MCP servers, and a cloud-model host can use approved local or remote MCP servers through an appropriate connection architecture.\"},{\"id\":\"faq10\",\"question\":\"What is the current MCP specification version?\",\"answer\":\"As of 8 October 2026, the current specification revision is 2026-07-28. Older 2025-era implementations remain in use, so compatibility must be checked.\"}]},\"tunes\":{}},{\"id\":\"h-glossary\",\"type\":\"header\",\"data\":{\"text\":\"Glossary\",\"level\":2},\"tunes\":{}},{\"id\":\"glossary\",\"type\":\"glossary\",\"data\":{\"title\":\"Key MCP terms\",\"entries\":[{\"term\":\"MCP\",\"definition\":\"Model Context Protocol, an open protocol for interoperable connections between AI hosts\u002Fclients and external capability servers.\",\"anchor\":\"mcp\"},{\"term\":\"MCP host\",\"definition\":\"The AI application or runtime that owns model interaction and uses MCP clients to connect to servers.\",\"anchor\":\"mcp-host\"},{\"term\":\"MCP client\",\"definition\":\"Protocol component on the host side that communicates with an MCP server.\",\"anchor\":\"mcp-client\"},{\"term\":\"MCP server\",\"definition\":\"Capability provider that implements MCP and exposes tools, resources, prompts or supported extensions.\",\"anchor\":\"mcp-server\"},{\"term\":\"Tool\",\"definition\":\"Callable structured capability exposed by an MCP server.\",\"anchor\":\"mcp-tool\"},{\"term\":\"Resource\",\"definition\":\"Readable data or content exposed through MCP resource methods.\",\"anchor\":\"mcp-resource\"},{\"term\":\"Prompt\",\"definition\":\"Reusable prompt template exposed by an MCP server for compatible hosts.\",\"anchor\":\"mcp-prompt\"},{\"term\":\"Streamable HTTP\",\"definition\":\"HTTP-oriented MCP transport used for remote\u002Fnetworked server communication.\",\"anchor\":\"streamable-http\"},{\"term\":\"stdio\",\"definition\":\"Process standard-input\u002Foutput transport commonly used for local MCP server integrations.\",\"anchor\":\"stdio\"},{\"term\":\"server\u002Fdiscover\",\"definition\":\"Modern MCP method that lets a client inspect server capabilities in the 2026-07-28 protocol era.\",\"anchor\":\"server-discover\"},{\"term\":\"MRTR\",\"definition\":\"Multi Round-Trip Requests, a mechanism for obtaining additional input during a request in the 2026-07-28 protocol era.\",\"anchor\":\"mrtr\"},{\"term\":\"MCP extension\",\"definition\":\"Capability that composes with the base protocol and can evolve\u002Fversion separately, such as Tasks or MCP Apps.\",\"anchor\":\"mcp-extension\"}]},\"tunes\":{}},{\"id\":\"h-conclusion\",\"type\":\"header\",\"data\":{\"text\":\"Conclusion\",\"level\":2},\"tunes\":{}},{\"id\":\"p-conclusion-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP is easiest to understand when its boundary stays narrow: it connects AI applications to external capabilities through a standard protocol.\"},\"tunes\":{}},{\"id\":\"p-conclusion-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The model does not have to live on the MCP server. The server does not become the agent runtime. A listed tool does not become an authorized business action. And MCP does not replace the underlying API, Source of Truth, tenant isolation or domain architecture.\"},\"tunes\":{}},{\"id\":\"p-conclusion-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"That narrowness is the protocol's strength. MCP can standardize how AI systems reach tools and data while leaving application ownership, security, business semantics and model choice in the layers that actually own them.\"},\"tunes\":{}},{\"id\":\"h-sources\",\"type\":\"header\",\"data\":{\"text\":\"Primary sources and current documentation\",\"level\":2},\"tunes\":{}},{\"id\":\"p-sources-note\",\"type\":\"paragraph\",\"data\":{\"text\":\"MCP is evolving quickly, so version-sensitive claims in this article are tied to the 8 October 2026 state. The Aaasaasa AI Client section is original implementation evidence and is explicitly limited to the verified MCP connector and permission-broker scope.\"},\"tunes\":{}},{\"id\":\"src-mcp-ts\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fts.sdk.modelcontextprotocol.io\u002Fv2\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Model Context Protocol — TypeScript SDK v2\",\"description\":\"Current stable TypeScript SDK documentation implementing the 2026-07-28 MCP specification and server\u002Fclient primitives.\"}},\"tunes\":{}},{\"id\":\"src-mcp-release\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fblog.modelcontextprotocol.io\u002Fposts\u002F2026-07-28\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Model Context Protocol — 2026-07-28 Specification Release\",\"description\":\"Official release explanation for the current MCP protocol revision, including stateless core, MRTR, routing, caching, authorization hardening, extensions and deprecations.\"}},\"tunes\":{}},{\"id\":\"src-mcp-migration\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fts.sdk.modelcontextprotocol.io\u002Fv2\u002Fmigration\u002Fsupport-2026-07-28\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"MCP TypeScript SDK — Supporting protocol revision 2026-07-28\",\"description\":\"Version-specific implementation guidance for the current protocol revision and earlier-era compatibility.\"}},\"tunes\":{}},{\"id\":\"src-openai-mcp\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ftools-connectors-mcp\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — MCP servers\",\"description\":\"Current OpenAI guidance for connecting models to remote MCP servers and local\u002Fprivate MCP servers through Secure MCP Tunnel.\"}},\"tunes\":{}},{\"id\":\"src-openai-agent-mcp\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Ftools\u002Fmcp\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — MCP connections for Agents API\",\"description\":\"Current MCP connection guidance covering service, environment and stdio locations plus allowed-tool controls.\"}},\"tunes\":{}},{\"id\":\"src-openai-tools\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ftools\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Tools\",\"description\":\"Current overview placing remote MCP servers alongside function calling, web search, shell and other model tools.\"}},\"tunes\":{}},{\"id\":\"src-openai-plugin-mcp\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fplugins\u002Fconcepts\u002Fmcp-server\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — MCP server concept\",\"description\":\"Current description of MCP servers exposing tools, resources and prompts for external service integrations.\"}},\"tunes\":{}}],\"version\":\"2.31.6\"}",{"time":1655,"blocks":1656,"version":2810},1791486641380,[1657,1661,1666,1671,1676,1681,1685,1689,1693,1697,1701,1705,1709,1713,1717,1743,1747,1751,1755,1759,1763,1786,1790,1794,1798,1822,1826,1830,1834,1838,1842,1846,1850,1854,1858,1862,1866,1870,1874,1897,1901,1905,1909,1913,1918,1922,1926,1930,1934,1937,1957,1961,1965,1969,1973,1977,1980,1984,1988,1992,1998,2002,2006,2010,2014,2018,2033,2037,2041,2045,2075,2079,2083,2087,2091,2095,2099,2103,2107,2111,2115,2119,2123,2127,2131,2135,2139,2144,2148,2152,2156,2160,2164,2168,2172,2176,2180,2184,2188,2192,2196,2200,2204,2208,2212,2239,2243,2247,2251,2255,2259,2263,2267,2271,2275,2312,2316,2321,2325,2329,2333,2337,2362,2367,2371,2393,2397,2401,2405,2409,2413,2455,2459,2502,2506,2547,2551,2602,2606,2610,2614,2618,2622,2626,2630,2634,2638,2642,2646,2650,2654,2658,2665,2669,2704,2708,2738,2742,2746,2750,2754,2758,2762,2768,2775,2782,2789,2796,2803],{"id":215,"data":1658,"type":218,"tunes":1660},{"text":1659},"The Model Context Protocol (MCP) is an open protocol for connecting AI applications to external capabilities and information through standardized client-server contracts. An MCP server can expose tools, resources and prompts; an MCP-compatible host or client discovers and uses those capabilities on behalf of an AI application. MCP does not require the server to run its own language model, and it does not replace the agent runtime, business authorization, tenant isolation, application APIs or domain architecture behind the exposed capabilities.",{},{"id":221,"data":1662,"type":226,"tunes":1665},{"body":1663,"title":1664,"variant":225},"\u003Cstrong>MCP standardizes the boundary between an AI host and external capability providers.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>A useful mental model is:\u003Cbr>\u003Cstrong>User → AI host \u002F agent runtime → MCP client → MCP server → application\u002FAPI\u002Fdata\u002Ftool\u003C\u002Fstrong>.\u003Cbr>\u003Cbr>The model can remain entirely on the host side. The MCP server may be ordinary deterministic software that exposes structured capabilities.","Direct answer",{},{"id":229,"data":1667,"type":226,"tunes":1670},{"body":1668,"title":1669,"variant":233},"A filesystem MCP server can list or read files. A database MCP server can run approved queries. A Jira MCP server can expose issue operations. None of those servers needs an LLM to satisfy the MCP contract. If a server internally uses AI, that is an implementation choice behind the protocol boundary, not an MCP requirement.","An MCP server does not need its own AI model",{},{"id":236,"data":1672,"type":226,"tunes":1675},{"body":1673,"title":1674,"variant":240},"If an MCP server exposes \u003Ccode>delete_file\u003C\u002Fcode>, \u003Ccode>refund_order\u003C\u002Fcode> or \u003Ccode>deploy_service\u003C\u002Fcode>, that only means the capability exists. The server\u002Fapplication must still enforce identity, permissions, tenant scope, business rules, confirmation requirements and audit controls. Protocol discovery must never silently become authorization.","MCP capability is not business authority",{},{"id":243,"data":1677,"type":226,"tunes":1680},{"body":1678,"title":1679,"variant":247},"The current MCP specification revision is \u003Cstrong>2026-07-28\u003C\u002Fstrong>. Its major change is a stateless protocol core with self-describing requests, optional \u003Ccode>server\u002Fdiscover\u003C\u002Fcode>, routable HTTP headers, cacheable list\u002Fresource responses, authorization hardening and a formal extension model. The TypeScript SDK v2 is the current stable SDK line implementing this revision. Older 2025-era clients and servers still exist, so implementation guidance must remain version-aware.","Current-source note — 8 October 2026",{},{"id":250,"data":1682,"type":255,"tunes":1684},{"title":1683,"maxLevel":253,"minLevel":254},"Contents",{},{"id":258,"data":1686,"type":42,"tunes":1688},{"text":1687,"level":254},"What MCP really standardizes",{},{"id":263,"data":1690,"type":218,"tunes":1692},{"text":1691},"Before MCP, every AI application could integrate external systems through its own tool schema, plugin format, authentication convention and connection code. The same service could need different adapters for a desktop AI client, an IDE agent and a custom application.",{},{"id":268,"data":1694,"type":218,"tunes":1696},{"text":1695},"MCP creates a reusable protocol boundary. The external system exposes capabilities through an MCP server, while compatible AI hosts implement an MCP client. This reduces integration coupling between the AI application and the underlying tool or data provider.",{},{"id":273,"data":1698,"type":218,"tunes":1700},{"text":1699},"The protocol does not standardize the entire application. It standardizes how capabilities are described, discovered and invoked across that boundary.",{},{"id":278,"data":1702,"type":42,"tunes":1704},{"text":1703,"level":254},"The simplest example",{},{"id":283,"data":1706,"type":218,"tunes":1708},{"text":1707},"Suppose an AI coding application needs access to a local project directory. Without MCP, the application might implement its own filesystem integration directly.",{},{"id":288,"data":1710,"type":218,"tunes":1712},{"text":1711},"With MCP, a filesystem server can expose capabilities such as listing directories, reading approved files or writing inside an allowed workspace. The AI host connects through an MCP client and presents those capabilities to the model or agent runtime.",{},{"id":293,"data":1714,"type":218,"tunes":1716},{"text":1715},"The server does not need to understand the user's natural-language request. The host\u002Fmodel decides which capability is useful; the MCP server executes the structured request under its own security rules.",{},{"id":298,"data":1718,"type":324,"tunes":1742},{"steps":1719,"title":1741,"orientation":323},[1720,1723,1726,1729,1732,1735,1738],{"label":1721,"description":1722},"1. Host connects to server","The MCP-capable application configures access to the external MCP server.",{"label":1724,"description":1725},"2. Capabilities are discovered","The client learns which tools, resources or prompts the server exposes.",{"label":1727,"description":1728},"3. Model or runtime selects a capability","The AI application decides that one exposed capability is needed.",{"label":1730,"description":1731},"4. Client sends structured request","Arguments are sent through MCP to the server.",{"label":1733,"description":1734},"5. Server authorizes and executes","The server validates the request and calls its underlying system.",{"label":1736,"description":1737},"6. Result returns to host","The result becomes an observation or context input.",{"label":1739,"description":1740},"7. Host decides what happens next","The model\u002Fruntime may answer, call another tool or continue a workflow.","A basic MCP tool call",{},{"id":327,"data":1744,"type":42,"tunes":1746},{"text":1745,"level":254},"Where the simple example stops",{},{"id":332,"data":1748,"type":218,"tunes":1750},{"text":1749},"MCP does not define how the host chooses a tool, how an agent plans, how a business workflow is modeled or how a domain object such as an invoice or deployment should behave.",{},{"id":337,"data":1752,"type":218,"tunes":1754},{"text":1753},"A protocol can make the integration interoperable while the underlying application remains incorrect, insecure or badly designed. A perfectly valid MCP request can still call the wrong business capability.",{},{"id":342,"data":1756,"type":218,"tunes":1758},{"text":1757},"The central boundary is: MCP standardizes integration semantics, not application truth or business correctness.",{},{"id":347,"data":1760,"type":42,"tunes":1762},{"text":1761,"level":254},"The MCP architecture: host, client and server",{},{"id":352,"data":1764,"type":376,"tunes":1785},{"content":1765,"stretched":43,"withHeadings":14},[1766,1769,1772,1774,1776,1779,1782],[1767,1768],"Component","Responsibility",[1770,1771],"AI host","User-facing AI application or runtime that owns model interaction, context and overall workflow",[1481,1773],"Protocol-side component used by the host to communicate with an MCP server",[1485,1775],"Publishes capabilities and handles MCP requests",[1777,1778],"Underlying system","Application, API, database, filesystem, SaaS platform or service behind the MCP server",[1780,1781],"Model","Chooses or reasons about capabilities according to the host\u002Fruntime design; it is not necessarily inside the MCP server",[1783,1784],"Authorization\u002Fbusiness policy","Determines whether a requested operation is actually permitted",{},{"id":379,"data":1787,"type":218,"tunes":1789},{"text":1788},"A host can connect to multiple MCP servers, and one MCP server can front one or several underlying systems. The host remains responsible for integrating MCP results into the broader AI application.",{},{"id":384,"data":1791,"type":218,"tunes":1793},{"text":1792},"The server can be local to the host, run as a separate process or be remote over a network transport. Hosting topology and model location are independent decisions.",{},{"id":389,"data":1795,"type":42,"tunes":1797},{"text":1796,"level":254},"The three core server primitives",{},{"id":394,"data":1799,"type":425,"tunes":1821},{"rows":1800,"title":1813,"layout":376,"columns":1814},[1801,1804,1807,1810],{"id":398,"label":1802,"values":1803},"Primary purpose",[401,401,401],{"id":403,"label":1805,"values":1806},"Typical interaction",[401,401,401],{"id":407,"label":1808,"values":1809},"Example",[401,401,401],{"id":411,"label":1811,"values":1812},"Typical risk",[401,401,401],"Tools, resources and prompts solve different needs",[1815,1817,1819],{"id":417,"label":1816},"Tools",{"id":420,"label":1818},"Resources",{"id":423,"label":1820},"Prompts",{},{"id":428,"data":1823,"type":42,"tunes":1825},{"text":1824,"level":254},"Tools: callable capabilities",{},{"id":433,"data":1827,"type":218,"tunes":1829},{"text":1828},"Tools are structured operations an MCP server makes available to the host. A tool has a name, description and input schema; modern implementations can also provide structured output.",{},{"id":438,"data":1831,"type":218,"tunes":1833},{"text":1832},"Examples include searching a repository, reading a customer record, creating a ticket, running a build or sending a message. Tools can be read-only or have side effects.",{},{"id":443,"data":1835,"type":218,"tunes":1837},{"text":1836},"A good MCP tool surface should represent coherent user or agent goals rather than mechanically mirror every internal API endpoint. Operations with different permissions, confirmation requirements or blast radius should usually be separate tools.",{},{"id":448,"data":1839,"type":42,"tunes":1841},{"text":1840,"level":254},"Resources: readable context and data",{},{"id":453,"data":1843,"type":218,"tunes":1845},{"text":1844},"Resources expose data or content that a client can list or read. They fit naturally when the semantic operation is “give me this artifact or information” rather than “perform this action.”",{},{"id":458,"data":1847,"type":218,"tunes":1849},{"text":1848},"A resource URI is not an authorization grant. The server still owns access control and must verify which principal may read the underlying object.",{},{"id":463,"data":1851,"type":218,"tunes":1853},{"text":1852},"The 2026-07-28 protocol revision adds cache semantics for list and resource-read responses, including freshness and cache scope, making caching behavior more explicit.",{},{"id":468,"data":1855,"type":42,"tunes":1857},{"text":1856,"level":254},"Prompts: reusable templates",{},{"id":473,"data":1859,"type":218,"tunes":1861},{"text":1860},"MCP prompts let a server publish reusable prompt templates to compatible clients. This can keep domain-specific instructions close to the capability provider.",{},{"id":478,"data":1863,"type":218,"tunes":1865},{"text":1864},"A prompt supplied by an MCP server does not automatically outrank the host's system or security instructions. The host decides how prompt material enters its context hierarchy.",{},{"id":483,"data":1867,"type":218,"tunes":1869},{"text":1868},"Protocol-provided prompt content should therefore be treated as capability data with explicit trust semantics, not as unrestricted instruction authority.",{},{"id":488,"data":1871,"type":42,"tunes":1873},{"text":1872,"level":254},"Tool or resource?",{},{"id":493,"data":1875,"type":376,"tunes":1896},{"content":1876,"stretched":43,"withHeadings":14},[1877,1880,1883,1886,1889,1891,1893],[1878,1879],"Need","Prefer",[1881,1882],"Perform an action with structured arguments","Tool",[1884,1885],"Read a specific stable artifact","Resource",[1887,1888],"Search or calculate dynamically","Usually tool",[1890,1882],"Modify external state",[1892,424],"Package reusable prompt instructions",[1894,1895],"Long-running asynchronous execution","Tool plus application\u002Fruntime task handling or an MCP extension",{},{"id":517,"data":1898,"type":42,"tunes":1900},{"text":1899,"level":254},"Where is the AI model?",{},{"id":522,"data":1902,"type":218,"tunes":1904},{"text":1903},"MCP does not require the model to run on the MCP server. The model can be cloud-hosted, locally hosted, embedded in the desktop application or reached through another provider.",{},{"id":527,"data":1906,"type":218,"tunes":1908},{"text":1907},"The host normally owns the model interaction. The MCP server exposes external capability. A local MCP server can therefore be used by a host whose model runs in the cloud, and a remote MCP server can be used by a host whose model runs locally.",{},{"id":532,"data":1910,"type":218,"tunes":1912},{"text":1911},"If the MCP server itself calls an LLM internally, that model is part of the server's implementation behind the protocol boundary; it is not required by MCP.",{},{"id":537,"data":1914,"type":226,"tunes":1917},{"body":1915,"title":1916,"variant":233},"\u003Cstrong>Local MCP does not imply local inference, and remote MCP does not imply remote inference.\u003C\u002Fstrong> Connection location, tool-execution location and model\u002Fprovider location are separate architecture dimensions.","Protocol location ≠ inference location",{},{"id":543,"data":1919,"type":42,"tunes":1921},{"text":1920,"level":254},"MCP does not replace APIs",{},{"id":548,"data":1923,"type":218,"tunes":1925},{"text":1924},"An MCP server often wraps existing APIs or services. REST, GraphQL, SQL, SDK calls and internal service contracts can remain exactly where they are.",{},{"id":553,"data":1927,"type":218,"tunes":1929},{"text":1928},"MCP adds an AI-facing interoperability layer. The underlying domain API can remain the authoritative application contract for ordinary deterministic clients.",{},{"id":558,"data":1931,"type":218,"tunes":1933},{"text":1932},"The usual architecture is therefore API\u002Fservice first, selected AI-facing capability second — not “replace every API with MCP.”",{},{"id":563,"data":1935,"type":42,"tunes":1936},{"text":565,"level":254},{},{"id":568,"data":1938,"type":425,"tunes":1956},{"rows":1939,"title":1952,"layout":376,"columns":1953},[1940,1943,1946,1949],{"id":572,"label":1941,"values":1942},"Scope",[401,401],{"id":576,"label":1944,"values":1945},"Tool definition",[401,401],{"id":580,"label":1947,"values":1948},"Portability",[401,401],{"id":584,"label":1950,"values":1951},"Can they coexist?",[401,401],"Function calling and MCP are related but not identical",[1954,1955],{"id":590,"label":591},{"id":593,"label":594},{},{"id":597,"data":1958,"type":218,"tunes":1960},{"text":1959},"OpenAI currently exposes remote MCP servers as one tool type alongside ordinary function calling, web search, shell and other tools. That implementation illustrates the architectural relationship: MCP connectivity and the model's own tool-call interface can be composed.",{},{"id":602,"data":1962,"type":42,"tunes":1964},{"text":1963,"level":254},"MCP does not create the agent loop",{},{"id":607,"data":1966,"type":218,"tunes":1968},{"text":1967},"An AI agent needs a runtime that can decide, invoke tools, observe results, update state and continue or stop. MCP can supply some of the tools and data used by that loop.",{},{"id":612,"data":1970,"type":218,"tunes":1972},{"text":1971},"The MCP server does not automatically become the planner, memory system or orchestrator. Those responsibilities normally remain in the host or agent runtime.",{},{"id":617,"data":1974,"type":218,"tunes":1976},{"text":1975},"A non-agentic application can also use MCP. One deterministic MCP tool call does not require an autonomous multi-step agent.",{},{"id":622,"data":1978,"type":42,"tunes":1979},{"text":624,"level":254},{},{"id":627,"data":1981,"type":218,"tunes":1983},{"text":1982},"MCP primarily connects an AI host or agent to capabilities such as tools, resources and data. A2A targets collaboration between independent agent systems.",{},{"id":632,"data":1985,"type":218,"tunes":1987},{"text":1986},"A remote agent can internally use MCP to reach databases and tools while exposing an A2A interface to other agents. The protocols can therefore be layered rather than substituted.",{},{"id":637,"data":1989,"type":218,"tunes":1991},{"text":1990},"The existing protocol-stack article owns the broader MCP\u002FA2A\u002FUCP\u002FAP2\u002FA2UI comparison; G02 remains the canonical MCP definition.",{},{"id":642,"data":1993,"type":648,"tunes":1997},{"url":644,"title":1994,"excerpt":1995,"ctaLabel":1996},"MCP vs A2A vs UCP vs AP2 vs A2UI: The Agent Protocol Stack Explained","A broader responsibility map showing how MCP composes with agent collaboration, commerce, payment authority and agent-driven UI protocols.","Read the protocol stack",{},{"id":651,"data":1999,"type":42,"tunes":2001},{"text":2000,"level":254},"Local and remote MCP use different transport realities",{},{"id":656,"data":2003,"type":218,"tunes":2005},{"text":2004},"MCP can connect to local and remote servers. Local desktop integrations commonly use process-level transports such as stdio; remote servers use HTTP-oriented transport.",{},{"id":661,"data":2007,"type":218,"tunes":2009},{"text":2008},"The 2026-07-28 revision makes the protocol core stateless. Requests carry the information needed for protocol handling instead of depending on the earlier protocol-level session model.",{},{"id":666,"data":2011,"type":218,"tunes":2013},{"text":2012},"The current revision also places method and capability names in HTTP headers so gateways, WAFs, rate limiters and load balancers can route and meter MCP traffic more naturally.",{},{"id":671,"data":2015,"type":42,"tunes":2017},{"text":2016,"level":254},"Why MCP version awareness matters",{},{"id":676,"data":2019,"type":376,"tunes":2032},{"content":2020,"stretched":43,"withHeadings":14},[2021,2024,2027,2029],[2022,2023],"Protocol era","Operational characteristic",[2025,2026],"2025-11-25 and earlier","Handshake\u002Fsession-oriented lifecycle and older Streamable HTTP behavior",[686,2028],"Stateless core, optional server discovery, self-describing requests, routing headers, cache hints, MRTR and authorization hardening",[2030,2031],"Extensions","Capabilities such as Tasks and MCP Apps can version separately from the base protocol",{},{"id":693,"data":2034,"type":218,"tunes":2036},{"text":2035},"SDK version and protocol version are also different things. The current TypeScript v2 SDK is the stable line for the 2026-07-28 revision, while older v1.x remains a maintenance line for 2025-era behavior.",{},{"id":698,"data":2038,"type":218,"tunes":2040},{"text":2039},"Architecture documentation should record both the SDK\u002Flibrary version and the protocol revision where interoperability behavior depends on them.",{},{"id":703,"data":2042,"type":42,"tunes":2044},{"text":2043,"level":254},"What changed in MCP 2026-07-28",{},{"id":708,"data":2046,"type":376,"tunes":2074},{"content":2047,"stretched":43,"withHeadings":14},[2048,2051,2054,2056,2059,2062,2065,2068,2071],[2049,2050],"Change","Why it matters",[2052,2053],"Stateless core","Remote servers can scale behind ordinary load balancers without protocol-level sticky sessions",[718,2055],"Clients can inspect server capabilities when needed",[2057,2058],"Self-describing requests","Protocol version and client capability metadata travel per request",[2060,2061],"Mcp-Method \u002F Mcp-Name headers","Gateways can route, meter and apply policy without parsing bodies",[2063,2064],"Cache hints","Lists\u002Fresource reads communicate freshness and sharing scope",[2066,2067],"Multi Round-Trip Requests","Servers can require additional input without the older bidirectional request model",[2069,2070],"Authorization hardening","Issuer validation and credential binding strengthen remote auth behavior",[2072,2073],"Extensions framework","Tasks, MCP Apps and other capabilities can evolve separately",{},{"id":740,"data":2076,"type":42,"tunes":2078},{"text":2077,"level":254},"Roots, sampling and logging are no longer the direction for new implementations",{},{"id":745,"data":2080,"type":218,"tunes":2082},{"text":2081},"The 2026-07-28 release marks roots, sampling and logging as deprecated protocol capabilities with a defined compatibility window.",{},{"id":750,"data":2084,"type":218,"tunes":2086},{"text":2085},"Older tutorials may still show these features as central primitives. New implementation work should follow the current specification rather than copy older lifecycle diagrams blindly.",{},{"id":755,"data":2088,"type":218,"tunes":2090},{"text":2089},"Deprecation does not mean immediate removal. It means new systems should avoid unnecessary new dependencies on capabilities the protocol is moving away from.",{},{"id":760,"data":2092,"type":42,"tunes":2094},{"text":2093,"level":254},"Long-running work is not the same as ordinary MCP tool invocation",{},{"id":765,"data":2096,"type":218,"tunes":2098},{"text":2097},"Long-running operations need lifecycle semantics beyond a simple immediate tool result. In the current ecosystem, Tasks moved into a dedicated MCP extension.",{},{"id":770,"data":2100,"type":218,"tunes":2102},{"text":2101},"This reinforces a useful design principle: the base protocol does not need to absorb every agent-runtime concern.",{},{"id":775,"data":2104,"type":218,"tunes":2106},{"text":2105},"An application can also keep long-running workflow ownership entirely in its own runtime and use ordinary MCP tools as underlying operations.",{},{"id":780,"data":2108,"type":42,"tunes":2110},{"text":2109,"level":254},"MCP Apps extend UI capability without redefining the core protocol",{},{"id":785,"data":2112,"type":218,"tunes":2114},{"text":2113},"MCP Apps associate richer interactive UI experiences with MCP tools through the extension model.",{},{"id":790,"data":2116,"type":218,"tunes":2118},{"text":2117},"The host still controls how that UI is embedded, sandboxed and secured.",{},{"id":795,"data":2120,"type":218,"tunes":2122},{"text":2121},"Core capability exchange and UI rendering should therefore remain separate architecture responsibilities.",{},{"id":800,"data":2124,"type":42,"tunes":2126},{"text":2125,"level":254},"MCP authorization is not your complete authorization model",{},{"id":805,"data":2128,"type":218,"tunes":2130},{"text":2129},"Remote MCP needs protocol-level authentication and authorization mechanisms so clients and servers can establish trusted access. The current specification continues to harden OAuth\u002FOIDC-related behavior.",{},{"id":810,"data":2132,"type":218,"tunes":2134},{"text":2133},"That layer answers whether a client is allowed to connect or request protocol scopes. It does not automatically answer whether Alice may refund order 123, whether an agent may write production configuration or whether Tenant A may read Tenant B data.",{},{"id":815,"data":2136,"type":218,"tunes":2138},{"text":2137},"Those domain decisions belong in the server\u002Fapplication authorization model and must be enforced before invoking the underlying operation.",{},{"id":820,"data":2140,"type":226,"tunes":2143},{"body":2141,"title":2142,"variant":240},"Connection trust, tool visibility, tool permission, user authorization, tenant isolation and business approval are different controls. Keep them separate.","Never map “authenticated MCP client” to “trusted for every tool”",{},{"id":826,"data":2145,"type":42,"tunes":2147},{"text":2146,"level":254},"Identity can cross several boundaries",{},{"id":831,"data":2149,"type":218,"tunes":2151},{"text":2150},"An MCP request may involve the MCP client application, the signed-in human, an agent\u002Fsession identity and a downstream service account.",{},{"id":836,"data":2153,"type":218,"tunes":2155},{"text":2154},"The server needs an explicit policy for which principal the operation is performed on behalf of. Otherwise a powerful service credential can become a confused-deputy path.",{},{"id":841,"data":2157,"type":218,"tunes":2159},{"text":2158},"For enterprise use, correlation between user identity, agent identity, MCP connection and downstream authorization is as important as protocol compatibility.",{},{"id":846,"data":2161,"type":42,"tunes":2163},{"text":2162,"level":254},"Tenant isolation remains outside MCP capability discovery",{},{"id":851,"data":2165,"type":218,"tunes":2167},{"text":2166},"A multi-tenant MCP server must apply tenant scope when it reads or changes tenant-owned resources. Returning a tool named search_documents does not define which tenant's documents are eligible.",{},{"id":856,"data":2169,"type":218,"tunes":2171},{"text":2170},"Tenant scope should be derived from trusted identity or membership and carried into databases, caches, vector search, object storage and downstream APIs.",{},{"id":861,"data":2173,"type":218,"tunes":2175},{"text":2174},"Retrieving cross-tenant content and asking the model not to use it is already an isolation failure.",{},{"id":866,"data":2177,"type":42,"tunes":2179},{"text":2178,"level":254},"MCP does not define Source of Truth",{},{"id":871,"data":2181,"type":218,"tunes":2183},{"text":2182},"An MCP server can expose a database, document repository, web search service or AI-generated summary. The protocol does not declare which source is authoritative for a claim.",{},{"id":876,"data":2185,"type":218,"tunes":2187},{"text":2186},"Source-of-Truth rules belong to application\u002Fdomain architecture. The host or server can encode authority through tool design, metadata, access policy or validation, but MCP itself does not make one capability “true.”",{},{"id":881,"data":2189,"type":218,"tunes":2191},{"text":2190},"A tool can therefore be perfectly callable through MCP and still return stale, secondary or non-authoritative information.",{},{"id":886,"data":2193,"type":42,"tunes":2195},{"text":2194,"level":254},"MCP and context engineering",{},{"id":891,"data":2197,"type":218,"tunes":2199},{"text":2198},"MCP can increase the capabilities and information available to an AI application, but context engineering still determines what reaches the model.",{},{"id":896,"data":2201,"type":218,"tunes":2203},{"text":2202},"Tool catalogs consume model-visible context in many hosts. Tool results can be large. Resources can be numerous. A host needs selection, filtering, dynamic loading and compaction rather than exposing everything on every turn.",{},{"id":901,"data":2205,"type":218,"tunes":2207},{"text":2206},"Capability availability and model-visible context should therefore be treated as separate layers.",{},{"id":906,"data":2209,"type":42,"tunes":2211},{"text":2210,"level":254},"Design MCP tools around outcomes and risk boundaries",{},{"id":911,"data":2213,"type":376,"tunes":2238},{"content":2214,"stretched":43,"withHeadings":14},[2215,2218,2220,2223,2226,2229,2232,2235],[2216,2217],"Weak tool design","Stronger tool design",[918,2219],"Narrow domain tools with validated operations",[2221,2222],"One admin tool for all actions","Separate read\u002Fwrite\u002Fapproval operations",[2224,2225],"Raw internal API mirrored 1:1","AI-facing contract around coherent user goals",[2227,2228],"One broad filesystem tool","Workspace-scoped read\u002Fwrite operations",[2230,2231],"Security policy only in description","Server enforces policy in code",[2233,2234],"Unbounded raw response","Structured decision-relevant output",[2236,2237],"Delete\u002Fupdate mixed with read","Separate side-effect tools with confirmation policy",{},{"id":940,"data":2240,"type":42,"tunes":2242},{"text":2241,"level":254},"Approvals belong in the execution architecture",{},{"id":945,"data":2244,"type":218,"tunes":2246},{"text":2245},"A host can require user approval before invoking selected MCP tools. OpenAI's current MCP integration supports automatic or explicit-approval execution patterns.",{},{"id":950,"data":2248,"type":218,"tunes":2250},{"text":2249},"Host approval is useful but should not be the server's only protection because another compatible MCP client may use a different approval model.",{},{"id":955,"data":2252,"type":218,"tunes":2254},{"text":2253},"For destructive or financially consequential actions, use defense in depth: clear tool contract, runtime approval where appropriate, server-side authorization, business validation and audit.",{},{"id":960,"data":2256,"type":42,"tunes":2258},{"text":2257,"level":254},"MCP observability should connect protocol calls to domain actions",{},{"id":965,"data":2260,"type":218,"tunes":2262},{"text":2261},"An MCP trace is most useful when it can be correlated with the underlying application call, database change or business transaction.",{},{"id":970,"data":2264,"type":218,"tunes":2266},{"text":2265},"The 2026-07-28 ecosystem standardizes W3C Trace Context propagation conventions, making it easier to follow a request across host, client, server and downstream services.",{},{"id":975,"data":2268,"type":218,"tunes":2270},{"text":2269},"Protocol logs alone are not enough for consequential operations. Audit evidence should also record relevant principal, tenant, target resource, approval and resulting state change.",{},{"id":980,"data":2272,"type":42,"tunes":2274},{"text":2273,"level":254},"What MCP cannot fix",{},{"id":985,"data":2276,"type":376,"tunes":2311},{"content":2277,"stretched":43,"withHeadings":14},[2278,2281,2284,2287,2290,2293,2296,2299,2302,2305,2308],[2279,2280],"Problem","Why MCP does not solve it",[2282,2283],"Bad business API","MCP can expose the bad API more consistently",[2285,2286],"Wrong data","Protocol validity does not create factual correctness",[2288,2289],"Missing tenant isolation","Tool discovery does not enforce resource ownership",[2291,2292],"Excessive privileges","A standardized tool can still be overprivileged",[2294,2295],"Poor agent planning","MCP exposes capabilities; runtime\u002Fmodel still chooses how to use them",[2297,2298],"Bad retry\u002Fidempotency design","Protocol calls do not make side effects safe",[2300,2301],"No Source of Truth","MCP does not decide which system owns a fact",[2303,2304],"Weak evaluation","Interoperability does not prove task success",[2306,2307],"No audit policy","Transport traces do not define retention or accountability",[2309,2310],"Protocol mismatch","Old\u002Fnew versions can still require migration or compatibility handling",{},{"id":1023,"data":2313,"type":42,"tunes":2315},{"text":2314,"level":254},"Original implementation evidence: Aaasaasa AI Client",{},{"id":1028,"data":2317,"type":226,"tunes":2320},{"body":2318,"title":2319,"variant":247},"Aaasaasa AI Client contains an authenticated local MCP connector\u002Fbroker for approved local directories and integration through Secure MCP Tunnel. This is concrete implementation evidence for the protocol boundary and permission architecture, not a claim of a general-purpose commercial MCP platform.","Implementation evidence",{},{"id":1034,"data":2322,"type":218,"tunes":2324},{"text":2323},"The application can run an authenticated Streamable HTTP MCP endpoint on loopback. The endpoint exposes only directories selected through the central workspace permission broker.",{},{"id":1039,"data":2326,"type":218,"tunes":2328},{"text":2327},"The local endpoint and remote route are separate concerns: the local connector can bind only to loopback, while a Secure MCP Tunnel can make the approved MCP service reachable to a permitted external AI client without exposing the whole local machine.",{},{"id":1044,"data":2330,"type":218,"tunes":2332},{"text":2331},"The central permission model distinguishes chat-only, read-only, project-write and custom-directory profiles. Direct Chat has no filesystem or shell access; tool-capable agent runtimes use the selected permission profile.",{},{"id":1049,"data":2334,"type":218,"tunes":2336},{"text":2335},"This is a direct implementation of the G02 boundary: MCP provides the standardized capability connection, while the application-owned permission broker decides which directories the server may expose.",{},{"id":1054,"data":2338,"type":376,"tunes":2361},{"content":2339,"stretched":43,"withHeadings":14},[2340,2343,2346,2349,2352,2355,2358],[2341,2342],"Implemented element","Architecture evidence",[2344,2345],"Authenticated local MCP endpoint","MCP server can be a local deterministic capability service",[2347,2348],"Loopback binding","Network exposure and protocol capability are separate decisions",[2350,2351],"Secure MCP Tunnel integration","Private\u002Flocal MCP can be bridged through a controlled route",[2353,2354],"Central permission broker","MCP capability is constrained by application policy",[2356,2357],"Selected directory scope","Filesystem visibility is explicitly bounded",[2359,2360],"Direct Chat without OS tools","Model access does not automatically imply tool access",{},{"id":1080,"data":2363,"type":226,"tunes":2366},{"body":2364,"title":2365,"variant":240},"The implementation demonstrates MCP connectivity and permission-scoped local directory exposure. It does not imply that every MCP primitive, every 2026-07-28 feature or every enterprise authorization extension is implemented.","Evidence boundary",{},{"id":1086,"data":2368,"type":42,"tunes":2370},{"text":2369,"level":254},"When MCP is a good fit",{},{"id":1091,"data":2372,"type":376,"tunes":2392},{"content":2373,"stretched":43,"withHeadings":14},[2374,2377,2380,2383,2386,2389],[2375,2376],"MCP is a strong fit when","A direct integration may be simpler when",[2378,2379],"The same capability should be reusable across multiple AI hosts","One application owns both sides and portability has little value",[2381,2382],"An external system wants to publish discoverable AI-facing tools\u002Fresources","A single stable internal API call is sufficient",[2384,2385],"You want a standard boundary around local tools\u002Fdata","There is no AI-facing interoperability requirement",[2387,2388],"Tool providers and AI clients evolve independently","The integration is intentionally private and tightly coupled",[2390,2391],"You want ecosystem-compatible capability discovery","The capability set is tiny and fixed in application code",{},{"id":1114,"data":2394,"type":42,"tunes":2396},{"text":2395,"level":254},"When you do not need MCP",{},{"id":1119,"data":2398,"type":218,"tunes":2400},{"text":2399},"Do not add MCP merely because the application uses AI. If your backend already calls one internal API and no independent MCP client needs that capability, an ordinary function or service call may be clearer.",{},{"id":1124,"data":2402,"type":218,"tunes":2404},{"text":2403},"MCP adds value at an interoperability boundary. Without that boundary, the protocol can become an unnecessary adapter layer.",{},{"id":1129,"data":2406,"type":218,"tunes":2408},{"text":2407},"The architectural question is not “Does this project have AI?” but “Do independently evolving AI hosts and capability providers benefit from a standard contract?”",{},{"id":1134,"data":2410,"type":42,"tunes":2412},{"text":2411,"level":254},"MCP security checklist",{},{"id":1139,"data":2414,"type":376,"tunes":2454},{"content":2415,"stretched":43,"withHeadings":14},[2416,2419,2422,2425,2428,2431,2434,2437,2440,2443,2446,2449,2452],[2417,2418],"Boundary","Question",[2420,2421],"Server identity","Which MCP server am I actually connected to?",[2423,2424],"Client identity","Which application\u002Fclient is requesting access?",[2426,2427],"End-user identity","On whose behalf is the operation performed?",[2429,2430],"Tool allowlist","Which capabilities may this host\u002Fagent discover and call?",[2432,2433],"Business permission","May this principal perform this operation?",[2435,2436],"Tenant scope","Which tenant\u002Fresource boundary applies?",[2438,2439],"Credential isolation","Are credentials bound correctly and kept outside model context?",[2441,2442],"Approval","Which side effects require human confirmation?",[2444,2445],"Input validation","Are tool arguments validated independently of model output?",[2447,2448],"Output trust","Can returned content contain untrusted instructions or sensitive data?",[2450,2451],"Network exposure","Is a local server accidentally exposed beyond intended interfaces?",[1179,2453],"Can a protocol call be correlated with the downstream action?",{},{"id":1183,"data":2456,"type":42,"tunes":2458},{"text":2457,"level":254},"Common misconceptions",{},{"id":1188,"data":2460,"type":376,"tunes":2501},{"content":2461,"stretched":43,"withHeadings":14},[2462,2465,2468,2471,2474,2477,2480,2483,2486,2489,2492,2495,2498],[2463,2464],"Misconception","Correction",[2466,2467],"“An MCP server is an AI server.”","It can be ordinary deterministic software exposing capabilities.",[2469,2470],"“I need my own LLM on the MCP server.”","No. The model can live entirely on the host side.",[2472,2473],"“MCP replaces REST APIs.”","MCP often wraps existing APIs for AI-facing interoperability.",[2475,2476],"“MCP is an agent framework.”","MCP supplies capabilities; an agent runtime manages iteration and state.",[2478,2479],"“MCP and function calling compete.”","A host can bridge MCP capabilities into its model tool interface.",[2481,2482],"“MCP replaces A2A.”","MCP focuses on capability integration; A2A focuses on agent collaboration.",[2484,2485],"“If a tool is listed, the user may call it.”","Discovery is not authorization.",[2487,2488],"“OAuth solves business permissions.”","Connection authorization does not replace domain authorization or tenant isolation.",[2490,2491],"“Local MCP means local AI.”","Tool-server location and inference location are independent.",[2493,2494],"“MCP makes tool output trustworthy.”","Data quality, authority and provenance still belong to the source\u002Fapplication.",[2496,2497],"“One giant generic tool is flexible.”","Over-broad tools weaken permissions, validation and observability.",[2499,2500],"“Old tutorials are implementation-current.”","The 2026-07-28 revision materially changed lifecycle and transport behavior.",{},{"id":1232,"data":2503,"type":42,"tunes":2505},{"text":2504,"level":254},"A practical MCP design sequence",{},{"id":1237,"data":2507,"type":324,"tunes":2546},{"steps":2508,"title":2545,"orientation":323},[2509,2512,2515,2518,2521,2524,2527,2530,2533,2536,2539,2542],{"label":2510,"description":2511},"1. Identify the interoperability boundary","Confirm that independent AI hosts actually need reusable access.",{"label":2513,"description":2514},"2. Keep the domain API authoritative","Preserve the real application\u002Fservice contract behind MCP.",{"label":2516,"description":2517},"3. Choose primitives deliberately","Use tools, resources and prompts according to their semantics.",{"label":2519,"description":2520},"4. Split by risk and permission","Separate read, write, destructive and approval-required operations.",{"label":2522,"description":2523},"5. Define identity propagation","Know which client, user, agent and downstream principal each call represents.",{"label":2525,"description":2526},"6. Enforce business authorization","Validate permissions, tenant scope and target ownership.",{"label":2528,"description":2529},"7. Choose local or remote transport","Match deployment topology to the real need.",{"label":2531,"description":2532},"8. Pin protocol\u002FSDK expectations","Document 2026-07-28 versus older compatibility.",{"label":2534,"description":2535},"9. Add approvals for consequential actions","Use risk-appropriate confirmation controls.",{"label":2537,"description":2538},"10. Design structured outputs","Return concise machine-usable results.",{"label":2540,"description":2541},"11. Add tracing and audit correlation","Connect MCP calls to downstream service\u002Fbusiness events.",{"label":2543,"description":2544},"12. Test portability","Verify more than one client where interoperability is a stated requirement.","Design the boundary before implementing the server",{},{"id":1279,"data":2548,"type":42,"tunes":2550},{"text":2549,"level":254},"MCP architecture checklist",{},{"id":1284,"data":2552,"type":376,"tunes":2601},{"content":2553,"stretched":43,"withHeadings":14},[2554,2556,2559,2562,2565,2568,2571,2574,2577,2580,2583,2586,2589,2592,2595,2598],[2418,2555],"Expected answer",[2557,2558],"Why is MCP needed?","A real AI-facing interoperability boundary",[2560,2561],"What does the server expose?","Explicit tools\u002Fresources\u002Fprompts",[2563,2564],"Where does the model run?","Independent host\u002Fprovider decision",[2566,2567],"Where does tool execution run?","Named server\u002Fruntime location",[2569,2570],"Which protocol revision is expected?","Version-aware contract",[2572,2573],"Who is the requesting principal?","Client\u002Fuser\u002Fagent identity model",[2575,2576],"Which tools may be discovered?","Allowlist\u002Fcapability policy",[2578,2579],"Which operations may execute?","Server-side business authorization",[2581,2582],"How is tenant\u002Fresource scope enforced?","Trusted tenant\u002Fresource ownership checks",[2584,2585],"Which actions need approval?","Risk-based confirmation policy",[2587,2588],"How are credentials protected?","Trusted runtime storage, not model-visible secrets",[2590,2591],"How is output bounded?","Structured relevant result contract",[2593,2594],"How are calls traced?","Correlation through MCP to downstream action",[2596,2597],"What happens if MCP is unavailable?","Defined fallback\u002Ffailure behavior",[2599,2600],"Can another compatible host use it?","Portability validated where required",{},{"id":1336,"data":2603,"type":42,"tunes":2605},{"text":2604,"level":254},"Edge cases and limitations",{},{"id":1341,"data":2607,"type":218,"tunes":2609},{"text":2608},"A local stdio MCP server can have little network exposure while still be dangerous if the process itself has excessive filesystem or shell permissions.",{},{"id":1346,"data":2611,"type":218,"tunes":2613},{"text":2612},"A remote MCP server may expose only public documentation or highly sensitive enterprise actions. “Remote MCP” says little about risk without the capability and authorization context.",{},{"id":1351,"data":2615,"type":218,"tunes":2617},{"text":2616},"Some servers may use only tools and ignore resources\u002Fprompts. MCP compatibility does not require every optional primitive to be equally important.",{},{"id":1356,"data":2619,"type":218,"tunes":2621},{"text":2620},"A host can translate between its own internal tool model and MCP. Users may never see the protocol boundary directly, which is acceptable if security and attribution remain clear.",{},{"id":1361,"data":2623,"type":218,"tunes":2625},{"text":2624},"MCP continues to evolve rapidly. Extensions, authorization patterns, SDK APIs and ecosystem conventions can change faster than the core architectural distinction.",{},{"id":1366,"data":2627,"type":42,"tunes":2629},{"text":2628,"level":254},"What would change this answer?",{},{"id":1371,"data":2631,"type":218,"tunes":2633},{"text":2632},"Future MCP revisions can change lifecycle, transports, authorization and extension mechanisms. The July 2026 revision already demonstrates why implementation-specific claims must be dated.",{},{"id":1376,"data":2635,"type":218,"tunes":2637},{"text":2636},"The canonical boundary would change only if MCP expanded from an interoperability protocol into an end-to-end application\u002Fagent architecture standard. That is not what the current protocol defines.",{},{"id":1381,"data":2639,"type":218,"tunes":2641},{"text":2640},"For implementation work, always check the current specification and exact SDK line instead of copying version-sensitive examples from older tutorials.",{},{"id":1386,"data":2643,"type":42,"tunes":2645},{"text":2644,"level":254},"Related canonical knowledge",{},{"id":1391,"data":2647,"type":218,"tunes":2649},{"text":2648},"MCP belongs downstream of Agentic AI: first understand the agent\u002Fruntime\u002Ftool boundary, then use MCP when external capabilities need a portable protocol contract.",{},{"id":1396,"data":2651,"type":218,"tunes":2653},{"text":2652},"MCP also depends on RBAC and tenant isolation because protocol-level capability exposure does not determine application authorization.",{},{"id":1401,"data":2655,"type":218,"tunes":2657},{"text":2656},"The broader protocol-stack article explains where MCP sits beside A2A, UCP, AP2 and A2UI. G02 remains the canonical source for MCP itself.",{},{"id":1406,"data":2659,"type":648,"tunes":2664},{"url":2660,"title":2661,"excerpt":2662,"ctaLabel":2663},"https:\u002F\u002Fstajic.de\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough","AI Agent Reliability: Why the Final Answer Is Not Enough","MCP tool calls become part of an agent trajectory; reliable systems need to evaluate actions and observations, not only final text.","Read the agent reliability article",{},{"id":1414,"data":2666,"type":42,"tunes":2668},{"text":2667,"level":254},"Frequently asked questions",{},{"id":1419,"data":2670,"type":1419,"tunes":2703},{"items":2671,"title":2702},[2672,2675,2678,2681,2684,2687,2690,2693,2696,2699],{"id":1423,"answer":2673,"question":2674},"The Model Context Protocol is an open client-server protocol for connecting AI applications to external tools, resources, prompts and capability providers through a standardized contract.","What is MCP?",{"id":1427,"answer":2676,"question":2677},"No. An MCP server can be completely deterministic software. The model normally runs in the AI host or agent runtime, although a server may optionally use AI internally.","Does an MCP server need an AI model?",{"id":1431,"answer":2679,"question":2680},"The client is the protocol component used by an AI host to communicate with capability providers. The server publishes and executes the capabilities it exposes.","What is the difference between an MCP client and server?",{"id":1435,"answer":2682,"question":2683},"No. Function\u002Ftool calling is how a model invokes configured capabilities. MCP standardizes discovery and communication with external capability servers. A host can bridge the two.","Does MCP replace function calling?",{"id":1439,"answer":2685,"question":2686},"No. MCP servers frequently wrap existing REST, GraphQL, database or service APIs and provide an AI-facing interoperability layer.","Does MCP replace REST APIs?",{"id":1443,"answer":2688,"question":2689},"No. MCP exposes capabilities. Agent planning, state, memory, context management, retries, orchestration and stopping belong to the surrounding runtime.","Is MCP an agent framework?",{"id":1447,"answer":2691,"question":2692},"MCP primarily connects an AI host or agent to tools and data providers. A2A connects independent agent systems for collaboration and delegation.","What is the difference between MCP and A2A?",{"id":1451,"answer":2694,"question":2695},"MCP includes protocol-level authorization mechanisms, especially for remote servers, but the application must still enforce business permissions, resource ownership and tenant isolation.","Does MCP handle authorization?",{"id":1455,"answer":2697,"question":2698},"Yes. Model location is independent of MCP. A local-model host can call local or remote MCP servers, and a cloud-model host can use approved local or remote MCP servers through an appropriate connection architecture.","Can MCP work with local models?",{"id":1459,"answer":2700,"question":2701},"As of 8 October 2026, the current specification revision is 2026-07-28. Older 2025-era implementations remain in use, so compatibility must be checked.","What is the current MCP specification version?","Model Context Protocol FAQ",{},{"id":1465,"data":2705,"type":42,"tunes":2707},{"text":2706,"level":254},"Glossary",{},{"id":1470,"data":2709,"type":1470,"tunes":2737},{"title":2710,"entries":2711},"Key MCP terms",[2712,2714,2716,2718,2720,2722,2724,2726,2728,2730,2732,2734],{"term":594,"anchor":593,"definition":2713},"Model Context Protocol, an open protocol for interoperable connections between AI hosts\u002Fclients and external capability servers.",{"term":1477,"anchor":1478,"definition":2715},"The AI application or runtime that owns model interaction and uses MCP clients to connect to servers.",{"term":1481,"anchor":1482,"definition":2717},"Protocol component on the host side that communicates with an MCP server.",{"term":1485,"anchor":1486,"definition":2719},"Capability provider that implements MCP and exposes tools, resources, prompts or supported extensions.",{"term":1882,"anchor":1489,"definition":2721},"Callable structured capability exposed by an MCP server.",{"term":1885,"anchor":1492,"definition":2723},"Readable data or content exposed through MCP resource methods.",{"term":424,"anchor":1495,"definition":2725},"Reusable prompt template exposed by an MCP server for compatible hosts.",{"term":1498,"anchor":1499,"definition":2727},"HTTP-oriented MCP transport used for remote\u002Fnetworked server communication.",{"term":1502,"anchor":1502,"definition":2729},"Process standard-input\u002Foutput transport commonly used for local MCP server integrations.",{"term":718,"anchor":1505,"definition":2731},"Modern MCP method that lets a client inspect server capabilities in the 2026-07-28 protocol era.",{"term":1508,"anchor":1509,"definition":2733},"Multi Round-Trip Requests, a mechanism for obtaining additional input during a request in the 2026-07-28 protocol era.",{"term":2735,"anchor":1513,"definition":2736},"MCP extension","Capability that composes with the base protocol and can evolve\u002Fversion separately, such as Tasks or MCP Apps.",{},{"id":1517,"data":2739,"type":42,"tunes":2741},{"text":2740,"level":254},"Conclusion",{},{"id":1522,"data":2743,"type":218,"tunes":2745},{"text":2744},"MCP is easiest to understand when its boundary stays narrow: it connects AI applications to external capabilities through a standard protocol.",{},{"id":1527,"data":2747,"type":218,"tunes":2749},{"text":2748},"The model does not have to live on the MCP server. The server does not become the agent runtime. A listed tool does not become an authorized business action. And MCP does not replace the underlying API, Source of Truth, tenant isolation or domain architecture.",{},{"id":1532,"data":2751,"type":218,"tunes":2753},{"text":2752},"That narrowness is the protocol's strength. MCP can standardize how AI systems reach tools and data while leaving application ownership, security, business semantics and model choice in the layers that actually own them.",{},{"id":1537,"data":2755,"type":42,"tunes":2757},{"text":2756,"level":254},"Primary sources and current documentation",{},{"id":1542,"data":2759,"type":218,"tunes":2761},{"text":2760},"MCP is evolving quickly, so version-sensitive claims in this article are tied to the 8 October 2026 state. The Aaasaasa AI Client section is original implementation evidence and is explicitly limited to the verified MCP connector and permission-broker scope.",{},{"id":1547,"data":2763,"type":1554,"tunes":2767},{"link":1549,"meta":2764},{"image":2765,"title":1552,"description":2766},{"url":401},"Current stable TypeScript SDK documentation implementing the 2026-07-28 MCP specification and server\u002Fclient primitives.",{},{"id":1557,"data":2769,"type":1554,"tunes":2774},{"link":1559,"meta":2770},{"image":2771,"title":2772,"description":2773},{"url":401},"Model Context Protocol — 2026-07-28 Specification Release","Official release explanation for the current MCP protocol revision, including stateless core, MRTR, routing, caching, authorization hardening, extensions and deprecations.",{},{"id":1566,"data":2776,"type":1554,"tunes":2781},{"link":1568,"meta":2777},{"image":2778,"title":2779,"description":2780},{"url":401},"MCP TypeScript SDK — Supporting protocol revision 2026-07-28","Version-specific implementation guidance for the current protocol revision and earlier-era compatibility.",{},{"id":1575,"data":2783,"type":1554,"tunes":2788},{"link":1577,"meta":2784},{"image":2785,"title":2786,"description":2787},{"url":401},"OpenAI — MCP servers","Current OpenAI guidance for connecting models to remote MCP servers and local\u002Fprivate MCP servers through Secure MCP Tunnel.",{},{"id":1584,"data":2790,"type":1554,"tunes":2795},{"link":1586,"meta":2791},{"image":2792,"title":2793,"description":2794},{"url":401},"OpenAI — MCP connections for Agents API","Current MCP connection guidance covering service, environment and stdio locations plus allowed-tool controls.",{},{"id":1593,"data":2797,"type":1554,"tunes":2802},{"link":1595,"meta":2798},{"image":2799,"title":2800,"description":2801},{"url":401},"OpenAI — Tools","Current overview placing remote MCP servers alongside function calling, web search, shell and other model tools.",{},{"id":1602,"data":2804,"type":1554,"tunes":2809},{"link":1604,"meta":2805},{"image":2806,"title":2807,"description":2808},{"url":401},"OpenAI — MCP server concept","Current description of MCP servers exposing tools, resources and prompts for external service integrations.",{},"2.31.6","Model Context Protocol connects AI applications to external tools, resources and prompts through a standard client-server boundary. Learn what MCP does, what it does not do, and where it fits in agent architecture.",{"lang":7,"title":208,"content":210,"contentJson":2813,"excerpt":1611},{"time":212,"blocks":2814,"version":1610},[2815,2818,2821,2824,2827,2830,2833,2836,2839,2842,2845,2848,2851,2854,2857,2868,2871,2874,2877,2880,2883,2894,2897,2900,2903,2919,2922,2925,2928,2931,2934,2937,2940,2943,2946,2949,2952,2955,2958,2969,2972,2975,2978,2981,2984,2987,2990,2993,2996,2999,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3067,3070,3073,3076,3089,3092,3095,3098,3101,3104,3107,3110,3113,3116,3119,3122,3125,3128,3131,3134,3137,3140,3143,3146,3149,3152,3155,3158,3161,3164,3167,3170,3173,3176,3179,3182,3185,3188,3191,3203,3206,3209,3212,3215,3218,3221,3224,3227,3230,3245,3248,3251,3254,3257,3260,3263,3274,3277,3280,3290,3293,3296,3299,3302,3305,3322,3325,3342,3345,3361,3364,3384,3387,3390,3393,3396,3399,3402,3405,3408,3411,3414,3417,3420,3423,3426,3429,3432,3446,3449,3465,3468,3471,3474,3477,3480,3483,3488,3493,3498,3503,3508,3513],{"id":215,"data":2816,"type":218,"tunes":2817},{"text":217},{},{"id":221,"data":2819,"type":226,"tunes":2820},{"body":223,"title":224,"variant":225},{},{"id":229,"data":2822,"type":226,"tunes":2823},{"body":231,"title":232,"variant":233},{},{"id":236,"data":2825,"type":226,"tunes":2826},{"body":238,"title":239,"variant":240},{},{"id":243,"data":2828,"type":226,"tunes":2829},{"body":245,"title":246,"variant":247},{},{"id":250,"data":2831,"type":255,"tunes":2832},{"title":252,"maxLevel":253,"minLevel":254},{},{"id":258,"data":2834,"type":42,"tunes":2835},{"text":260,"level":254},{},{"id":263,"data":2837,"type":218,"tunes":2838},{"text":265},{},{"id":268,"data":2840,"type":218,"tunes":2841},{"text":270},{},{"id":273,"data":2843,"type":218,"tunes":2844},{"text":275},{},{"id":278,"data":2846,"type":42,"tunes":2847},{"text":280,"level":254},{},{"id":283,"data":2849,"type":218,"tunes":2850},{"text":285},{},{"id":288,"data":2852,"type":218,"tunes":2853},{"text":290},{},{"id":293,"data":2855,"type":218,"tunes":2856},{"text":295},{},{"id":298,"data":2858,"type":324,"tunes":2867},{"steps":2859,"title":322,"orientation":323},[2860,2861,2862,2863,2864,2865,2866],{"label":302,"description":303},{"label":305,"description":306},{"label":308,"description":309},{"label":311,"description":312},{"label":314,"description":315},{"label":317,"description":318},{"label":320,"description":321},{},{"id":327,"data":2869,"type":42,"tunes":2870},{"text":329,"level":254},{},{"id":332,"data":2872,"type":218,"tunes":2873},{"text":334},{},{"id":337,"data":2875,"type":218,"tunes":2876},{"text":339},{},{"id":342,"data":2878,"type":218,"tunes":2879},{"text":344},{},{"id":347,"data":2881,"type":42,"tunes":2882},{"text":349,"level":254},{},{"id":352,"data":2884,"type":376,"tunes":2893},{"content":2885,"stretched":43,"withHeadings":14},[2886,2887,2888,2889,2890,2891,2892],[356,357],[359,360],[362,363],[365,366],[368,369],[371,372],[374,375],{},{"id":379,"data":2895,"type":218,"tunes":2896},{"text":381},{},{"id":384,"data":2898,"type":218,"tunes":2899},{"text":386},{},{"id":389,"data":2901,"type":42,"tunes":2902},{"text":391,"level":254},{},{"id":394,"data":2904,"type":425,"tunes":2918},{"rows":2905,"title":414,"layout":376,"columns":2914},[2906,2908,2910,2912],{"id":398,"label":399,"values":2907},[401,401,401],{"id":403,"label":404,"values":2909},[401,401,401],{"id":407,"label":408,"values":2911},[401,401,401],{"id":411,"label":412,"values":2913},[401,401,401],[2915,2916,2917],{"id":417,"label":418},{"id":420,"label":421},{"id":423,"label":424},{},{"id":428,"data":2920,"type":42,"tunes":2921},{"text":430,"level":254},{},{"id":433,"data":2923,"type":218,"tunes":2924},{"text":435},{},{"id":438,"data":2926,"type":218,"tunes":2927},{"text":440},{},{"id":443,"data":2929,"type":218,"tunes":2930},{"text":445},{},{"id":448,"data":2932,"type":42,"tunes":2933},{"text":450,"level":254},{},{"id":453,"data":2935,"type":218,"tunes":2936},{"text":455},{},{"id":458,"data":2938,"type":218,"tunes":2939},{"text":460},{},{"id":463,"data":2941,"type":218,"tunes":2942},{"text":465},{},{"id":468,"data":2944,"type":42,"tunes":2945},{"text":470,"level":254},{},{"id":473,"data":2947,"type":218,"tunes":2948},{"text":475},{},{"id":478,"data":2950,"type":218,"tunes":2951},{"text":480},{},{"id":483,"data":2953,"type":218,"tunes":2954},{"text":485},{},{"id":488,"data":2956,"type":42,"tunes":2957},{"text":490,"level":254},{},{"id":493,"data":2959,"type":376,"tunes":2968},{"content":2960,"stretched":43,"withHeadings":14},[2961,2962,2963,2964,2965,2966,2967],[497,498],[500,501],[503,504],[506,507],[509,501],[511,424],[513,514],{},{"id":517,"data":2970,"type":42,"tunes":2971},{"text":519,"level":254},{},{"id":522,"data":2973,"type":218,"tunes":2974},{"text":524},{},{"id":527,"data":2976,"type":218,"tunes":2977},{"text":529},{},{"id":532,"data":2979,"type":218,"tunes":2980},{"text":534},{},{"id":537,"data":2982,"type":226,"tunes":2983},{"body":539,"title":540,"variant":233},{},{"id":543,"data":2985,"type":42,"tunes":2986},{"text":545,"level":254},{},{"id":548,"data":2988,"type":218,"tunes":2989},{"text":550},{},{"id":553,"data":2991,"type":218,"tunes":2992},{"text":555},{},{"id":558,"data":2994,"type":218,"tunes":2995},{"text":560},{},{"id":563,"data":2997,"type":42,"tunes":2998},{"text":565,"level":254},{},{"id":568,"data":3000,"type":425,"tunes":3013},{"rows":3001,"title":587,"layout":376,"columns":3010},[3002,3004,3006,3008],{"id":572,"label":573,"values":3003},[401,401],{"id":576,"label":577,"values":3005},[401,401],{"id":580,"label":581,"values":3007},[401,401],{"id":584,"label":585,"values":3009},[401,401],[3011,3012],{"id":590,"label":591},{"id":593,"label":594},{},{"id":597,"data":3015,"type":218,"tunes":3016},{"text":599},{},{"id":602,"data":3018,"type":42,"tunes":3019},{"text":604,"level":254},{},{"id":607,"data":3021,"type":218,"tunes":3022},{"text":609},{},{"id":612,"data":3024,"type":218,"tunes":3025},{"text":614},{},{"id":617,"data":3027,"type":218,"tunes":3028},{"text":619},{},{"id":622,"data":3030,"type":42,"tunes":3031},{"text":624,"level":254},{},{"id":627,"data":3033,"type":218,"tunes":3034},{"text":629},{},{"id":632,"data":3036,"type":218,"tunes":3037},{"text":634},{},{"id":637,"data":3039,"type":218,"tunes":3040},{"text":639},{},{"id":642,"data":3042,"type":648,"tunes":3043},{"url":644,"title":645,"excerpt":646,"ctaLabel":647},{},{"id":651,"data":3045,"type":42,"tunes":3046},{"text":653,"level":254},{},{"id":656,"data":3048,"type":218,"tunes":3049},{"text":658},{},{"id":661,"data":3051,"type":218,"tunes":3052},{"text":663},{},{"id":666,"data":3054,"type":218,"tunes":3055},{"text":668},{},{"id":671,"data":3057,"type":42,"tunes":3058},{"text":673,"level":254},{},{"id":676,"data":3060,"type":376,"tunes":3066},{"content":3061,"stretched":43,"withHeadings":14},[3062,3063,3064,3065],[680,681],[683,684],[686,687],[689,690],{},{"id":693,"data":3068,"type":218,"tunes":3069},{"text":695},{},{"id":698,"data":3071,"type":218,"tunes":3072},{"text":700},{},{"id":703,"data":3074,"type":42,"tunes":3075},{"text":705,"level":254},{},{"id":708,"data":3077,"type":376,"tunes":3088},{"content":3078,"stretched":43,"withHeadings":14},[3079,3080,3081,3082,3083,3084,3085,3086,3087],[712,713],[715,716],[718,719],[721,722],[724,725],[727,728],[730,731],[733,734],[736,737],{},{"id":740,"data":3090,"type":42,"tunes":3091},{"text":742,"level":254},{},{"id":745,"data":3093,"type":218,"tunes":3094},{"text":747},{},{"id":750,"data":3096,"type":218,"tunes":3097},{"text":752},{},{"id":755,"data":3099,"type":218,"tunes":3100},{"text":757},{},{"id":760,"data":3102,"type":42,"tunes":3103},{"text":762,"level":254},{},{"id":765,"data":3105,"type":218,"tunes":3106},{"text":767},{},{"id":770,"data":3108,"type":218,"tunes":3109},{"text":772},{},{"id":775,"data":3111,"type":218,"tunes":3112},{"text":777},{},{"id":780,"data":3114,"type":42,"tunes":3115},{"text":782,"level":254},{},{"id":785,"data":3117,"type":218,"tunes":3118},{"text":787},{},{"id":790,"data":3120,"type":218,"tunes":3121},{"text":792},{},{"id":795,"data":3123,"type":218,"tunes":3124},{"text":797},{},{"id":800,"data":3126,"type":42,"tunes":3127},{"text":802,"level":254},{},{"id":805,"data":3129,"type":218,"tunes":3130},{"text":807},{},{"id":810,"data":3132,"type":218,"tunes":3133},{"text":812},{},{"id":815,"data":3135,"type":218,"tunes":3136},{"text":817},{},{"id":820,"data":3138,"type":226,"tunes":3139},{"body":822,"title":823,"variant":240},{},{"id":826,"data":3141,"type":42,"tunes":3142},{"text":828,"level":254},{},{"id":831,"data":3144,"type":218,"tunes":3145},{"text":833},{},{"id":836,"data":3147,"type":218,"tunes":3148},{"text":838},{},{"id":841,"data":3150,"type":218,"tunes":3151},{"text":843},{},{"id":846,"data":3153,"type":42,"tunes":3154},{"text":848,"level":254},{},{"id":851,"data":3156,"type":218,"tunes":3157},{"text":853},{},{"id":856,"data":3159,"type":218,"tunes":3160},{"text":858},{},{"id":861,"data":3162,"type":218,"tunes":3163},{"text":863},{},{"id":866,"data":3165,"type":42,"tunes":3166},{"text":868,"level":254},{},{"id":871,"data":3168,"type":218,"tunes":3169},{"text":873},{},{"id":876,"data":3171,"type":218,"tunes":3172},{"text":878},{},{"id":881,"data":3174,"type":218,"tunes":3175},{"text":883},{},{"id":886,"data":3177,"type":42,"tunes":3178},{"text":888,"level":254},{},{"id":891,"data":3180,"type":218,"tunes":3181},{"text":893},{},{"id":896,"data":3183,"type":218,"tunes":3184},{"text":898},{},{"id":901,"data":3186,"type":218,"tunes":3187},{"text":903},{},{"id":906,"data":3189,"type":42,"tunes":3190},{"text":908,"level":254},{},{"id":911,"data":3192,"type":376,"tunes":3202},{"content":3193,"stretched":43,"withHeadings":14},[3194,3195,3196,3197,3198,3199,3200,3201],[915,916],[918,919],[921,922],[924,925],[927,928],[930,931],[933,934],[936,937],{},{"id":940,"data":3204,"type":42,"tunes":3205},{"text":942,"level":254},{},{"id":945,"data":3207,"type":218,"tunes":3208},{"text":947},{},{"id":950,"data":3210,"type":218,"tunes":3211},{"text":952},{},{"id":955,"data":3213,"type":218,"tunes":3214},{"text":957},{},{"id":960,"data":3216,"type":42,"tunes":3217},{"text":962,"level":254},{},{"id":965,"data":3219,"type":218,"tunes":3220},{"text":967},{},{"id":970,"data":3222,"type":218,"tunes":3223},{"text":972},{},{"id":975,"data":3225,"type":218,"tunes":3226},{"text":977},{},{"id":980,"data":3228,"type":42,"tunes":3229},{"text":982,"level":254},{},{"id":985,"data":3231,"type":376,"tunes":3244},{"content":3232,"stretched":43,"withHeadings":14},[3233,3234,3235,3236,3237,3238,3239,3240,3241,3242,3243],[989,990],[992,993],[995,996],[998,999],[1001,1002],[1004,1005],[1007,1008],[1010,1011],[1013,1014],[1016,1017],[1019,1020],{},{"id":1023,"data":3246,"type":42,"tunes":3247},{"text":1025,"level":254},{},{"id":1028,"data":3249,"type":226,"tunes":3250},{"body":1030,"title":1031,"variant":247},{},{"id":1034,"data":3252,"type":218,"tunes":3253},{"text":1036},{},{"id":1039,"data":3255,"type":218,"tunes":3256},{"text":1041},{},{"id":1044,"data":3258,"type":218,"tunes":3259},{"text":1046},{},{"id":1049,"data":3261,"type":218,"tunes":3262},{"text":1051},{},{"id":1054,"data":3264,"type":376,"tunes":3273},{"content":3265,"stretched":43,"withHeadings":14},[3266,3267,3268,3269,3270,3271,3272],[1058,1059],[1061,1062],[1064,1065],[1067,1068],[1070,1071],[1073,1074],[1076,1077],{},{"id":1080,"data":3275,"type":226,"tunes":3276},{"body":1082,"title":1083,"variant":240},{},{"id":1086,"data":3278,"type":42,"tunes":3279},{"text":1088,"level":254},{},{"id":1091,"data":3281,"type":376,"tunes":3289},{"content":3282,"stretched":43,"withHeadings":14},[3283,3284,3285,3286,3287,3288],[1095,1096],[1098,1099],[1101,1102],[1104,1105],[1107,1108],[1110,1111],{},{"id":1114,"data":3291,"type":42,"tunes":3292},{"text":1116,"level":254},{},{"id":1119,"data":3294,"type":218,"tunes":3295},{"text":1121},{},{"id":1124,"data":3297,"type":218,"tunes":3298},{"text":1126},{},{"id":1129,"data":3300,"type":218,"tunes":3301},{"text":1131},{},{"id":1134,"data":3303,"type":42,"tunes":3304},{"text":1136,"level":254},{},{"id":1139,"data":3306,"type":376,"tunes":3321},{"content":3307,"stretched":43,"withHeadings":14},[3308,3309,3310,3311,3312,3313,3314,3315,3316,3317,3318,3319,3320],[1143,1144],[1146,1147],[1149,1150],[1152,1153],[1155,1156],[1158,1159],[1161,1162],[1164,1165],[1167,1168],[1170,1171],[1173,1174],[1176,1177],[1179,1180],{},{"id":1183,"data":3323,"type":42,"tunes":3324},{"text":1185,"level":254},{},{"id":1188,"data":3326,"type":376,"tunes":3341},{"content":3327,"stretched":43,"withHeadings":14},[3328,3329,3330,3331,3332,3333,3334,3335,3336,3337,3338,3339,3340],[1192,1193],[1195,1196],[1198,1199],[1201,1202],[1204,1205],[1207,1208],[1210,1211],[1213,1214],[1216,1217],[1219,1220],[1222,1223],[1225,1226],[1228,1229],{},{"id":1232,"data":3343,"type":42,"tunes":3344},{"text":1234,"level":254},{},{"id":1237,"data":3346,"type":324,"tunes":3360},{"steps":3347,"title":1276,"orientation":323},[3348,3349,3350,3351,3352,3353,3354,3355,3356,3357,3358,3359],{"label":1241,"description":1242},{"label":1244,"description":1245},{"label":1247,"description":1248},{"label":1250,"description":1251},{"label":1253,"description":1254},{"label":1256,"description":1257},{"label":1259,"description":1260},{"label":1262,"description":1263},{"label":1265,"description":1266},{"label":1268,"description":1269},{"label":1271,"description":1272},{"label":1274,"description":1275},{},{"id":1279,"data":3362,"type":42,"tunes":3363},{"text":1281,"level":254},{},{"id":1284,"data":3365,"type":376,"tunes":3383},{"content":3366,"stretched":43,"withHeadings":14},[3367,3368,3369,3370,3371,3372,3373,3374,3375,3376,3377,3378,3379,3380,3381,3382],[1144,1288],[1290,1291],[1293,1294],[1296,1297],[1299,1300],[1302,1303],[1305,1306],[1308,1309],[1311,1312],[1314,1315],[1317,1318],[1320,1321],[1323,1324],[1326,1327],[1329,1330],[1332,1333],{},{"id":1336,"data":3385,"type":42,"tunes":3386},{"text":1338,"level":254},{},{"id":1341,"data":3388,"type":218,"tunes":3389},{"text":1343},{},{"id":1346,"data":3391,"type":218,"tunes":3392},{"text":1348},{},{"id":1351,"data":3394,"type":218,"tunes":3395},{"text":1353},{},{"id":1356,"data":3397,"type":218,"tunes":3398},{"text":1358},{},{"id":1361,"data":3400,"type":218,"tunes":3401},{"text":1363},{},{"id":1366,"data":3403,"type":42,"tunes":3404},{"text":1368,"level":254},{},{"id":1371,"data":3406,"type":218,"tunes":3407},{"text":1373},{},{"id":1376,"data":3409,"type":218,"tunes":3410},{"text":1378},{},{"id":1381,"data":3412,"type":218,"tunes":3413},{"text":1383},{},{"id":1386,"data":3415,"type":42,"tunes":3416},{"text":1388,"level":254},{},{"id":1391,"data":3418,"type":218,"tunes":3419},{"text":1393},{},{"id":1396,"data":3421,"type":218,"tunes":3422},{"text":1398},{},{"id":1401,"data":3424,"type":218,"tunes":3425},{"text":1403},{},{"id":1406,"data":3427,"type":648,"tunes":3428},{"url":1408,"title":1409,"excerpt":1410,"ctaLabel":1411},{},{"id":1414,"data":3430,"type":42,"tunes":3431},{"text":1416,"level":254},{},{"id":1419,"data":3433,"type":1419,"tunes":3445},{"items":3434,"title":1462},[3435,3436,3437,3438,3439,3440,3441,3442,3443,3444],{"id":1423,"answer":1424,"question":1425},{"id":1427,"answer":1428,"question":1429},{"id":1431,"answer":1432,"question":1433},{"id":1435,"answer":1436,"question":1437},{"id":1439,"answer":1440,"question":1441},{"id":1443,"answer":1444,"question":1445},{"id":1447,"answer":1448,"question":1449},{"id":1451,"answer":1452,"question":1453},{"id":1455,"answer":1456,"question":1457},{"id":1459,"answer":1460,"question":1461},{},{"id":1465,"data":3447,"type":42,"tunes":3448},{"text":1467,"level":254},{},{"id":1470,"data":3450,"type":1470,"tunes":3464},{"title":1472,"entries":3451},[3452,3453,3454,3455,3456,3457,3458,3459,3460,3461,3462,3463],{"term":594,"anchor":593,"definition":1475},{"term":1477,"anchor":1478,"definition":1479},{"term":1481,"anchor":1482,"definition":1483},{"term":1485,"anchor":1486,"definition":1487},{"term":501,"anchor":1489,"definition":1490},{"term":504,"anchor":1492,"definition":1493},{"term":424,"anchor":1495,"definition":1496},{"term":1498,"anchor":1499,"definition":1500},{"term":1502,"anchor":1502,"definition":1503},{"term":718,"anchor":1505,"definition":1506},{"term":1508,"anchor":1509,"definition":1510},{"term":1512,"anchor":1513,"definition":1514},{},{"id":1517,"data":3466,"type":42,"tunes":3467},{"text":1519,"level":254},{},{"id":1522,"data":3469,"type":218,"tunes":3470},{"text":1524},{},{"id":1527,"data":3472,"type":218,"tunes":3473},{"text":1529},{},{"id":1532,"data":3475,"type":218,"tunes":3476},{"text":1534},{},{"id":1537,"data":3478,"type":42,"tunes":3479},{"text":1539,"level":254},{},{"id":1542,"data":3481,"type":218,"tunes":3482},{"text":1544},{},{"id":1547,"data":3484,"type":1554,"tunes":3487},{"link":1549,"meta":3485},{"image":3486,"title":1552,"description":1553},{"url":401},{},{"id":1557,"data":3489,"type":1554,"tunes":3492},{"link":1559,"meta":3490},{"image":3491,"title":1562,"description":1563},{"url":401},{},{"id":1566,"data":3494,"type":1554,"tunes":3497},{"link":1568,"meta":3495},{"image":3496,"title":1571,"description":1572},{"url":401},{},{"id":1575,"data":3499,"type":1554,"tunes":3502},{"link":1577,"meta":3500},{"image":3501,"title":1580,"description":1581},{"url":401},{},{"id":1584,"data":3504,"type":1554,"tunes":3507},{"link":1586,"meta":3505},{"image":3506,"title":1589,"description":1590},{"url":401},{},{"id":1593,"data":3509,"type":1554,"tunes":3512},{"link":1595,"meta":3510},{"image":3511,"title":1598,"description":1599},{"url":401},{},{"id":1602,"data":3514,"type":1554,"tunes":3517},{"link":1604,"meta":3515},{"image":3516,"title":1607,"description":1608},{"url":401},{},"Post erfolgreich abgerufen",{"items":3520,"source":3605,"manualIds":3606,"manualMatchedIds":3607},[3521,3528,3535,3542,3549,3556,3563,3570,3577,3584,3591,3598],{"id":3522,"slug":3523,"title":3524,"excerpt":3525,"featuredImage":3526,"publishedAt":3527},"479","where-does-an-llm-get-its-data-rag-data-sources-in-python","Da dove prende i dati un LLM? Fonti di dati RAG in Python","Un LLM non conosce magicamente i tuoi file, database o API. Questa continuazione pratica della serie RAG mostra, con semplice Python, come i dati esterni diventano prove recuperabili: dai file di testo e SQL alla ricerca full-text, agli embedding, all'assemblaggio del contesto e alla chiamata finale all'LLM.","\u002Fuploads\u002F2026\u002F09\u002Fwhere-does-an-llm-get-its-data-rag-data-sources-in-python-1790517200521-nfsi5i.webp","2026-09-27T05:51:00.000Z",{"id":3529,"slug":3530,"title":3531,"excerpt":3532,"featuredImage":3533,"publishedAt":3534},"480","when-should-an-ai-stop-trusting-its-own-knowledge-the-retrieval-trigger","Quando dovrebbe un'IA smettere di fidarsi della propria conoscenza? — Il grilletto del recupero","Un modello di IA non necessita del recupero per ogni domanda. Il problema importante è sapere quando la sua conoscenza interna non è più sufficiente. Il Trigger di Recupero è un confine decisionale pratico che determina quando un sistema di IA dovrebbe smettere di affidarsi esclusivamente alla conoscenza del modello e ottenere prove esterne prima di rispondere.","\u002Fuploads\u002F2026\u002F09\u002Fwhen-should-an-ai-stop-trusting-its-own-knowledge-the-retrieval-trigger-1790574991244-f4rpyg.webp","2026-09-28T01:49:00.000Z",{"id":3536,"slug":3537,"title":3538,"excerpt":3539,"featuredImage":3540,"publishedAt":3541},"470","what-should-an-ai-agent-remember-forget-recompute-or-retrieve-again","Cosa dovrebbe ricordare, dimenticare, ricalcolare o recuperare di nuovo un agente IA?","Gli agenti a lunga esecuzione non dovrebbero ricordare tutto. Questo articolo fornisce un modello pratico di ciclo di vita per decidere cosa appartiene alla memoria durevole, cosa dovrebbe essere recuperato di nuovo, cosa è più sicuro ricalcolare e cosa dovrebbe scadere o essere sostituito.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-should-an-ai-agent-remember-forget-recompute-or-retrieve-again-1790351131087-iehz28.webp","2026-09-25T09:43:00.000Z",{"id":3543,"slug":3544,"title":3545,"excerpt":3546,"featuredImage":3547,"publishedAt":3548},"476","mcp-vs-a2a-vs-ucp-vs-ap2-vs-a2ui-the-agent-protocol-stack-explained","MCP vs A2A vs UCP vs AP2 vs A2UI: Lo stack di protocolli degli agenti spiegato","MCP, A2A, UCP, AP2 e A2UI sono spesso presentati come standard per agenti concorrenti. Per lo più risolvono problemi di interoperabilità diversi. Questa guida mappa ciascun protocollo sul confine che effettivamente standardizza—e mostra come possano lavorare insieme in un unico sistema di produzione.","\u002Fuploads\u002F2026\u002F09\u002Fmcp-vs-a2a-vs-ucp-vs-ap2-vs-a2ui-the-agent-protocol-stack-explained-1790352625869-2ezle0.webp","2026-09-25T12:09:00.000Z",{"id":3550,"slug":3551,"title":3552,"excerpt":3553,"featuredImage":3554,"publishedAt":3555},"486","source-of-truth-in-ai-systems-where-reliable-knowledge-actually-comes-from","Fonte di verità nei sistemi di IA: da dove proviene realmente la conoscenza affidabile","Una Fonte di Verità definisce quale fonte è autorevole per un fatto o uno stato specifico. Scopri come si differenzia da RAG, provenienza, memoria, contesto, database vettoriali e sistemi di registrazione.","\u002Fuploads\u002F2026\u002F10\u002Fsource-of-truth-in-ai-systems-where-reliable-knowledge-actually-comes-from-1791479103235-6bq9em.webp","2026-10-08T13:02:00.000Z",{"id":3557,"slug":3558,"title":3559,"excerpt":3560,"featuredImage":3561,"publishedAt":3562},"382","a-practical-monorepo-architecture-next-js-platform-admin-fastify-api-prisma-and-nginx","Un'Architettura Monorepo Pratica con Next.js, Fastify, Prisma e NGINX","Esplora un'architettura monorepo pratica che utilizza Next.js, Fastify, Prisma e NGINX, evidenziando l'integrazione e il flusso di lavoro nel mondo reale.","\u002Fuploads\u002F2026\u002F01\u002Fa-practical-monorepo-architecture-next-js-platform-admin-fastify-api-prisma-and-nginx-1769885526116-q1100n.webp","2026-01-31T08:18:00.000Z",{"id":3564,"slug":3565,"title":3566,"excerpt":3567,"featuredImage":3568,"publishedAt":3569},"468","ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","La memoria dell'agente IA non è RAG: come separare memoria, recupero, stato e contesto","Memoria dell'agente, RAG, stato e contesto vengono spesso usati come se fossero intercambiabili. Non lo sono. Questo pratico modello architetturale separa i quattro livelli, mostra dove si colloca ciascuno e spiega cosa si rompe quando i sistemi li fanno collassare in uno solo.","\u002Fuploads\u002F2026\u002F09\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context-1790350560308-np0xy6.webp","2026-09-25T11:34:00.000Z",{"id":3571,"slug":3572,"title":3573,"excerpt":3574,"featuredImage":3575,"publishedAt":3576},"485","enterprise-ai-architecture-what-changes-when-ai-enters-a-company","Architettura AI aziendale: cosa cambia quando l'AI entra in un'azienda","L'architettura AI aziendale spiega come l'AI cambia i sistemi aziendali attraverso autorità sui dati, identità, permessi, fornitori, rischio, governance, valutazione, conformità e operazioni.","\u002Fuploads\u002F2026\u002F10\u002Fenterprise-ai-architecture-what-changes-when-ai-enters-a-company-1791478161363-czrwaq.webp","2026-10-08T10:48:00.000Z",{"id":3578,"slug":3579,"title":3580,"excerpt":3581,"featuredImage":3582,"publishedAt":3583},"466","the-gpu-is-not-the-product-future-proof-private-ai-architecture","La GPU non è il prodotto: architettura di IA privata a prova di futuro","L'infrastruttura di IA privata non dovrebbe essere progettata attorno a una sola GPU o a un solo modello. Un approccio più resiliente combina GPU veloci per l'inferenza, sistemi di IA ricchi di memoria, nodi di IA fisica e modelli cloud di frontiera opzionali dietro un livello di routing consapevole delle capacità.","\u002Fuploads\u002F2026\u002F09\u002Fthe-gpu-is-not-the-product-future-proof-private-ai-architecture-1790140878812-8hsl39.webp","2026-09-23T01:19:00.000Z",{"id":3585,"slug":3586,"title":3587,"excerpt":3588,"featuredImage":3589,"publishedAt":3590},"490","rbac-vs-tenant-isolation-two-different-security-boundaries","RBAC vs Isolamento dei Tenant: Due Confini di Sicurezza Diversi","Il controllo RBAC stabilisce cosa può fare un utente; l'isolamento dei tenant stabilisce a quali risorse di quale tenant può accedere tale azione. Scopri perché la sicurezza SaaS multi-tenant richiede entrambi i confini.","\u002Fuploads\u002F2026\u002F10\u002Frbac-vs-tenant-isolation-two-different-security-boundaries-1791485111528-qqtzby.webp","2026-10-08T14:43:00.000Z",{"id":3592,"slug":3593,"title":3594,"excerpt":3595,"featuredImage":3596,"publishedAt":3597},"471","how-to-know-whether-an-ai-agent-actually-used-the-right-evidence","Come sapere se un agente IA ha effettivamente usato le prove giuste","Un agente IA può citare fonti e comunque utilizzare le prove sbagliate. Questo articolo introduce un metodo pratico per verificare il supporto delle affermazioni, l'autorevolezza della fonte, l'applicabilità, la provenienza e se le prove abbiano effettivamente influenzato la risposta.","\u002Fuploads\u002F2026\u002F09\u002Fhow-to-know-whether-an-ai-agent-actually-used-the-right-evidence-1790351317188-o5z9ve.webp","2026-09-25T11:47:00.000Z",{"id":3599,"slug":3600,"title":3601,"excerpt":3602,"featuredImage":3603,"publishedAt":3604},"478","what-is-rag-the-simplest-explanation-of-how-it-works","Cos'è il RAG? La spiegazione più semplice di come funziona","RAG sembra complicato, ma l'idea è semplice: prima che un'IA risponda, cerca prima informazioni utili da una fonte di conoscenza e fornisce tali informazioni al modello linguistico. Questa guida spiega RAG, LLM, stato, memoria e strumenti utilizzando un semplice modello mentale.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works-1790377492124-khjagt.webp","2026-09-25T19:03:00.000Z","fallback",[],[]]