Il muro di testo che l’intelligenza artificiale sta finalmente abbattendo
Se avete mai chiesto a un agente AI di mostrarvi qualcosa di complesso – un grafico, un form, una visualizzazione – sapete di cosa sto parlando. Ottieni un blob di JSON, magari formattato bene, ma comunque… testo. Sempre testo. Il modello può orchestrare venti tool diversi, chiamare API, ragionare su problemi intricati, e poi? Ti restituisce una risposta che devi copiare altrove per vedere qualcosa di utile.
Ecco, MCP Apps affronta esattamente questo problema. È un’estensione ufficiale del Model Context Protocol che permette ai tool di restituire vere interfacce grafiche interattive direttamente dentro i client MCP – Claude, editor, app custom, quello che volete. La chat diventa un contenitore di mini-app HTML. E no, non è un hack o un workaround: è uno standard.
Da dove viene e perché adesso
La community MCP chiedeva da tempo un modo per avere interfacce interattive first-class. Non link a dashboard esterne, non soluzioni custom che funzionano solo su un prodotto specifico. Qualcosa di standard, condiviso, che funzioni ovunque.
Progetti come MCP-UI – nato in ambito Shopify, poi adottato da Postman, Hugging Face, ElevenLabs – avevano dimostrato che il concetto funziona. L’OpenAI Apps SDK pure. Ma mancava il pezzo che unificasse tutto. I maintainer di MCP (Anthropic, OpenAI, la community MCP-UI) hanno definito la MCP Apps Extension, ora promossa a estensione ufficiale e pronta per la produzione.
Cosa fa MCP Apps in pratica
In termini concreti: un server MCP può dichiarare e servire “UI resources” – pagine HTML con JS e CSS – che vengono renderizzate in un iframe sandboxato dentro il client. Dal punto di vista del modello, un tool non restituisce solo dati, ma può indicare che per quella risposta va mostrata un’app interattiva.
L’host carica la UI e la rende inline nella conversazione. L’utente non deve più saltare tra chat e strumenti esterni. E la cosa interessante è che non è statica: tramite un canale JSON-RPC dedicato, app e host comunicano bidirezionalmente. Eventi, richieste di tool call, aggiornamenti di stato, messaggi da e verso il modello.
Un esempio per capirci
Immagina uno “Scenario Modeler” che appare come pannello interattivo dentro la chat. Slider per gli assunti, grafici what-if, pulsanti per salvare scenari. Dietro le quinte la UI invia eventi al server MCP, che lancia tool di calcolo, aggiorna i grafici e mantiene il modello informato su ogni cambiamento. Tutto senza uscire dalla conversazione.
L’architettura sotto il cofano
La specifica vive nel repository ufficiale modelcontextprotocol/ext-apps. Contiene la descrizione formale (SEP-1865) e l’SDK TypeScript/JavaScript per costruire server e app.
Il cuore sono le risorse UI, identificabili tramite URI – tipicamente con schema ui:// – che i server MCP dichiarano esplicitamente. Gli host possono valutarle, approvarle, gestirne il lifecycle. Quando un tool espone una UI, il client crea un iframe isolato, applica una Content Security Policy configurabile e apre un canale postMessage verso la UI.
Su questo canale gira un dialetto MCP basato su JSON-RPC:
- Chiamate condivise con MCP core come tools/call
- Chiamate specifiche della UI: ui/initialize, notifiche ui/…
- L’app può chiedere tool call, aggiornare il contesto del modello, ricevere dati dal server
Dal lato front-end, lo SDK espone una classe App che incapsula il protocollo di comunicazione. Ma se volete il controllo totale o zero dipendenze, potete implementare il protocollo a mano usando solo postMessage.
MCP Apps vs MCP-UI: facciamo chiarezza
Qui c’è un po’ di confusione che vale la pena chiarire. MCP Apps è la specifica standard, MCP-UI è un toolkit e community che la implementa.
MCP-UI è stato il laboratorio che ha dimostrato che le agentic app con UI embedded funzionano. MCP Apps prende quei concetti, li consolida e li rende portabili in tutto l’ecosistema MCP. Una frase sintetica: MCP-UI ha inventato il pattern, MCP Apps lo ha standardizzato.
Per i dev: MCP Apps = spec + estensione MCP; MCP-UI = SDK e reference implementation che segue (e spesso anticipa) la spec. MCP-UI ha introdotto feature come l’intent system – eventi tipo add_to_cart, checkout, view_details – per mantenere l’agente al centro. MCP Apps incorpora questi pattern rendendoli applicabili non solo al commerce ma a qualunque dominio.
Sicurezza e governance enterprise
Un punto che mi ha colpito riguarda l’adozione enterprise. MCP Apps specifica che le UI girano in iframe sandboxati, con CSP che definisce esplicitamente quali origini sono permesse per script, asset e richieste esterne.
L’uso di JSON-RPC su postMessage permette di tracciare e auditare tutte le interazioni tra UI e host. I team di sicurezza possono vedere esattamente quali azioni una MCP App può compiere, soprattutto quando chiede tool call o accesso a dati. Le risorse UI, essendo pre-dichiarate tramite URI, possono essere sottoposte a review e approvazione prima dell’esecuzione.
Questo rende MCP Apps appetibile per casi come approvazioni di spesa, workflow HR, processi regolamentati – dove serve automazione agentica, UI dedicata e controlli forti su chi può fare cosa.
Cosa si può costruire: gli esempi nel repository
Il repository ext-apps include esempi che coprono diversi domini:
- Visualizzazioni 3D con globi CesiumJS e scene Three.js
- Data exploration: heatmap di cohort, segmentazione clienti, explorer wiki
- Applicazioni business: modeler di scenari, budget allocator
- Media: viewer PDF, server video, musica, text-to-speech
- Utility: QR code, system monitor, trascrizione audio
Ci sono template per i principali framework front-end – React, Vue, Svelte, Preact, Solid, vanilla JS. Puoi iniziare creando un’app MCP come se fosse una normale SPA e poi collegarla al server MCP via SDK. Per debugging c’è un “basic host” che simula un client MCP, permettendo di testare il flusso completo senza dipendere subito da client di terze parti.
L’esperienza utente: da chat a mini-app
Per l’utente finale, MCP Apps trasforma l’esperienza da “chiedo qualcosa e leggo una risposta” a “interagisco con una vera app, guidata dal modello, senza uscire dalla conversazione”.
Un tool di analytics può mostrare un dashboard con grafici, filtri, pulsanti e controlli complessi, gestendo aggiornamenti in tempo reale. Il modello resta nel loop per spiegare, suggerire, automatizzare. Un’azienda di e-commerce può esporre selettori di prodotti, gallerie, configuratori, carrelli e checkout in-chat.
VS Code ha annunciato supporto a MCP Apps, permettendo agli agent di mostrare pannelli integrati per analisi del codice, configurazione, deploy.
Perché questo cambia il gioco per gli agenti AI
MCP di base risolve il problema “ogni modello parla con ogni tool in modo standard”. MCP Apps aggiunge il pezzo che mancava: esperienze utente paragonabili alle app tradizionali, ma orchestrate da un agente, dentro un’unica interfaccia conversazionale.
Questo sposta il baricentro. Non più “assistant dentro le app” – un copilot diverso per ogni prodotto – ma “app come plugin dentro l’assistant”. MCP fornisce il layer di integrazione, MCP Apps quello di presentazione interattiva.
La combinazione di modello, tool MCP e MCP Apps apre la porta a prodotti dove la chat non è solo un canale di supporto, ma il runtime principale per applicazioni complesse. UI rich e workflow guidati che si adattano dinamicamente a contesto, ruolo e obiettivi dell’utente. È un cambio di paradigma che vale la pena seguire da vicino.
