Un nuovo sistema operativo? App in ChatGPT e Apps SDK (basato su MCP): Sbloccare una nuova piattaforma

Autore: Boxu Li di Macaron
Introduzione:
App in ChatGPT ora consentono agli sviluppatori di terze parti di creare mini-applicazioni interattive che vivono all'interno dell'interfaccia chat. Invece di indirizzare gli utenti verso siti web o app mobili, queste app funzionano all'interno della conversazione e sfruttano il ragionamento del modello per guidare le azioni. Partner iniziali come Canva, Coursera, Expedia e Zillow hanno mostrato come gli utenti possano chiedere una playlist, progettare un poster o cercare immobili senza lasciare ChatGPT[1]. Il nuovo Apps SDK è costruito sul Model Context Protocol (MCP), uno standard aperto che permette ai modelli di interagire con strumenti esterni e interfacce utente[2]. Questo blog approfondisce l'architettura delle app basate su MCP, spiega le capacità dell'SDK, guida passo passo nella costruzione di un'app, esplora come gli utenti scoprono e utilizzano le app, e discute considerazioni su privacy e sicurezza. In tutto il testo citiamo documentazione ufficiale e giornalismo affidabile per ancorare l'analisi a fonti credibili.
Comprendere il Model Context Protocol (MCP)
Perché gli standard aperti sono importanti
Il Protocollo di Contesto del Modello è la base dell'SDK delle App. Secondo la documentazione per gli sviluppatori, ogni integrazione dell'SDK delle App utilizza un server MCP per esporre strumenti, gestire l'autenticazione e pacchettizzare sia i dati strutturati che l'HTML che viene visualizzato in ChatGPT[2]. MCP è uno standard aperto—chiunque può implementare un server in qualsiasi linguaggio e connettere un modello come GPT‑4 o Codex. La natura open‑source significa che non c'è nessun vincolo dal fornitore; la stessa app può teoricamente funzionare su qualsiasi piattaforma AI che implementa il protocollo. Questa apertura incoraggia i contributi della comunità e favorisce un ecosistema analogo al web degli inizi, dove standard come HTTP hanno abilitato siti web interoperabili.
Server, Strumenti e Risorse
Un server MCP espone uno o più strumenti. Uno strumento definisce un'azione che il modello può chiamare, come “creare una bacheca kanban,” “cercare case” o “generare una playlist.” Ogni strumento è descritto da un nome macchina, un titolo amichevole e uno schema JSON che indica al modello quali argomenti accetta. Quando ChatGPT decide che lo strumento deve essere invocato, invia una chiamata strutturata al server. Il server esegue la logica—sia interrogando un'API, eseguendo un calcolo o interagendo con un database—e poi restituisce una risposta dello strumento. Questa risposta include tre campi:
- structuredContent – dati visibili al modello che descrivono lo stato attuale. Ad esempio, una bacheca kanban potrebbe includere un array di colonne e compiti[3].
- content – testo opzionale che l'assistente comunica all'utente. Questo può riassumere il risultato o dare istruzioni all'utente.
- _meta – metadati nascosti non visibili al modello. Gli sviluppatori usano questo per memorizzare ID o elenchi utilizzati nei componenti dell'interfaccia utente. Ad esempio, nell'esempio della bacheca, viene utilizzata una mappa tasksById in _meta per mantenere i dettagli dei compiti senza esporli al modello[4].
Gli strumenti possono anche riferirsi a risorse, come modelli HTML o immagini, facendo riferimento a un URL ui://. Il server registra queste risorse durante l'avvio. La documentazione avverte che, poiché le risorse sono memorizzate nella cache dall'infrastruttura di OpenAI, gli sviluppatori dovrebbero versionarle includendo un hash di build nel nome del file[5]. Altrimenti, gli utenti potrebbero vedere un'interfaccia utente obsoleta dopo i deployment.
Contenuto strutturato vs. Metadati
La distinzione tra structuredContent e _meta è fondamentale. Secondo la documentazione, structuredContent è visibile al modello ed è utilizzato per arricchire il componente UI; _meta è nascosto dal modello e può contenere dati extra per l'interfaccia utente, come elenchi per i menu a tendina[3]. Separando i dati visibili da quelli nascosti, gli sviluppatori possono proteggere informazioni sensibili dal modello, mantenendo comunque interfacce ricche. Questo design incoraggia anche la condivisione minima dei dati; viene esposto solo ciò che è necessario per completare il compito, in linea con i principi di privacy.
Autenticazione e Sessioni
Quando un utente chiama un'app per la prima volta, il server potrebbe doverlo autenticare. L'SDK per le app supporta i flussi OAuth 2.1; gli sviluppatori specificano gli ambiti e reindirizzano gli utenti al provider di identità. Una volta che l'utente concede il consenso, l'app ottiene un token e può accedere ai dati dell'utente. Il compito del server è gestire lo stato della sessione, spesso memorizzando i token in un database associato all'account ChatGPT dell'utente. Questo garantisce che le chiamate successive agli strumenti possano riutilizzare la sessione senza richiedere nuovamente l'utente.
Principi di Sicurezza
OpenAI enfatizza il minimo privilegio, il consenso esplicito dell'utente e la difesa in profondità[6]. Le app dovrebbero richiedere solo le autorizzazioni minime necessarie e gli utenti devono autorizzare esplicitamente la condivisione dei dati; il modello stesso non dovrebbe mai indovinare le credenziali. La conservazione dei dati è limitata: il contenuto strutturato rimane solo mentre il prompt dell'utente è attivo e i log vengono redatti prima di essere condivisi con gli sviluppatori[6]. L'accesso alla rete per i componenti dell'app è limitato da una politica di sicurezza dei contenuti; gli iframe non possono accedere arbitrariamente alle API del browser e tutte le richieste HTTP devono originare dal server piuttosto che dal client[7]. Questo previene il cross-site scripting e l'esfiltrazione di token.
SDK per App: Creare Applicazioni Reali in ChatGPT

L'Esperienza dello Sviluppatore
L'SDK delle app avvolge l'MCP in librerie client idiomatiche (attualmente Python e TypeScript) e strumenti di scaffolding. Quando crei un'app, definisci gli strumenti, registri i modelli di interfaccia utente e implementi la logica del server. Il server può funzionare sulla tua infrastruttura e utilizzare qualsiasi framework (FastAPI, Express, ecc.), ma deve implementare gli endpoint MCP. OpenAI fornisce server di sviluppo e un MCP Inspector per testare le chiamate localmente.
Gli sviluppatori progettano sia la logica che l'interfaccia utente. Le interfacce utente sono solitamente scritte in React e compilate in risorse statiche. Sono servite all'interno di un iframe isolato in ChatGPT. All'interno di questo iframe, gli sviluppatori possono accedere a un oggetto globale window.openai per interagire con l'host. Secondo la guida Crea un'esperienza utente personalizzata, questa API fornisce:
- Globali – displayMode, maxHeight, theme e locale informano il componente riguardo al layout e allo stile[8].
- Payload degli strumenti – toolInput, toolOutput e widgetState permettono di leggere gli argomenti, i risultati e lo stato persistente tra i render[8].
- Azioni – setWidgetState() salva lo stato che persiste tra i messaggi; callTool() attiva un'azione del server; sendFollowupTurn() invia un prompt di follow-up al modello; requestDisplayMode() richiede di andare a schermo intero o picture-in-picture[8].
- Eventi – il componente può abbonarsi a openai:set_globals quando l'host aggiorna il layout o il tema, e a openai:tool_response quando una chiamata allo strumento si risolve[8].
Queste API permettono agli sviluppatori di costruire componenti interattivi ricchi che rimangono sincronizzati con il ragionamento del modello. Ad esempio, se un utente trascina un compito in una nuova colonna in una bacheca kanban, il componente può inviare un callTool per aggiornare il server, mantenere lo stato nuovo e quindi restituire un nuovo structuredContent. Nel frattempo, il modello vede solo lo stato generale della bacheca; l'interfaccia gestisce i dettagli come il drag-and-drop.
Registrazione di Strumenti e Modelli
In the server code you register a tool and its template. For instance, in a TypeScript server you might write:
import { Tool, StructuredToolResponse } from "@openai/apps";
// Register UI template
server.registerResource("ui://kanban-board/abc123", buildHtml());
// Define tool schema
const createBoard: Tool = {
name: "createKanbanBoard",
description: "Create a new kanban board with given tasks and columns",
inputSchema: z.object({
title: z.string(),
columns: z.array(z.object({ name: z.string() })),
tasks: z.array(z.object({ name: z.string(), columnIndex: z.number() }))
}),
async execute(input, ctx): Promise<StructuredToolResponse> {
// compute board state
const columns = input.columns.map((col, i) => ({
id: i,
title: col.name,
taskIds: input.tasks.filter(t => t.columnIndex === i).map((_t, idx) => idx)
}));
const tasksById = input.tasks.map((task, id) => ({ id, name: task.name }));
return {
content: `Created board '${input.title}'`,
structuredContent: { title: input.title, columns },
_meta: { tasksById, uiTemplate: "ui://kanban-board/abc123" }
};
}
};
The _meta field includes tasksById for hidden metadata and uiTemplate referencing the registered HTML. When ChatGPT receives this response, it will render the template with the structured content. The window.openai.toolOutput object in the component can then read the board data and display it.
Versionamento e Caching
Poiché risorse come i modelli UI sono memorizzate nella cache sui server di OpenAI, gli sviluppatori dovrebbero includere un hash univoco o una versione nell'identificatore ui://. I documenti avvertono che se si distribuisce una nuova versione senza aggiornare il percorso, gli utenti potrebbero continuare a vedere la vecchia UI a causa della cache[5]. Una buona pratica è incorporare lo SHA del commit o l'ID della build nell'URL. Questo assicura che ogni distribuzione porti a una risorsa fresca.
Persistenza dello Stato e Seguiti
I componenti spesso hanno bisogno di mantenere lo stato. Ad esempio, un'app di playlist potrebbe permettere agli utenti di aggiungere ai preferiti delle canzoni; questi preferiti dovrebbero rimanere anche quando l'utente fa un'altra domanda. Il metodo setWidgetState() memorizza i dati al di fuori di structuredContent e persiste tra i turni[8]. Il modello non vede questo stato, garantendo la privacy.
A volte un'app ha bisogno di fare all'utente una domanda di chiarimento. Il metodo sendFollowupTurn() consente al componente di inviare un nuovo prompt a ChatGPT, che apparirà quindi nella trascrizione come se il modello avesse posto la domanda[8]. Questo è utile per flussi di lavoro a più fasi: ad esempio, un'app di prenotazione viaggi potrebbe chiedere "Quante notti resterai?" dopo che l'utente seleziona un hotel.
Building Your First App: Step‑By‑Step Guide
In this section we will build a simple Task Tracker app that demonstrates the core concepts of the Apps SDK. The app will let a user create tasks and organise them into categories. We choose this example because it is generic, easy to extend and showcases structured content, metadata, custom UI and tool calls.
- Set up the MCP Server
First install the TypeScript SDK and scaffolding tool:
npm install -g @openai/apps-generator
apps init task-tracker
cd task-tracker
npm install
This command scaffolds a project with a server, a React frontend and build scripts. The server uses Express and the @openai/apps library. Run npm run dev to start the development server; the project includes an MCP Inspector that opens in your browser and simulates ChatGPT calling your app.
- Define the Tool
Open src/server.ts and define a tool called createTasks. The tool accepts an array of tasks and returns structured content grouping them by category. It also provides a summary in the content field.
import { Tool, StructuredToolResponse } from "@openai/apps";
export const createTasks: Tool = {
name: "createTasks",
description: "Create a list of tasks grouped by category",
inputSchema: z.object({ tasks: z.array(z.object({ name: z.string(), category: z.string() })) }),
async execute({ tasks }): Promise<StructuredToolResponse> {
const categories = Array.from(new Set(tasks.map(t => t.category)));
const grouped = categories.map(category => ({
name: category,
taskIds: tasks.filter(t => t.category === category).map((_, i) => i)
}));
const tasksById = tasks.map((task, id) => ({ id, name: task.name, category: task.category }));
return {
content: `Created ${tasks.length} tasks in ${categories.length} categories`,
structuredContent: { categories: grouped },
_meta: { tasksById, uiTemplate: "ui://task-tracker/1.0.0" }
};
}
};
Register the template before using it:
server.registerResource("ui://task-tracker/1.0.0", fs.readFileSync(path.join(__dirname, "../dist/index.html"), "utf8"));
server.registerTool(createTasks);
- Build the Custom UI
Next open src/frontend/App.tsx. This React component will read the structuredContent and display categories and tasks. It will also allow users to mark tasks as complete and persist that state using setWidgetState.
import { useEffect, useState } from "react";
declare global {
interface Window {
openai: any;
}
}
export default function App() {
const [complete, setComplete] = useState<{ [id: string]: boolean }>(() => window.openai.widgetState?.complete || {});
const output = window.openai.toolOutput;
const tasksById = output?._meta?.tasksById || [];
const categories = output?.structuredContent?.categories || [];
// persistenza dello stato di completamento
useEffect(() => {
window.openai.setWidgetState({ complete });
}, [complete]);
return (
<div className="task-tracker">
{categories.map((cat: any, ci: number) => (
<div key={ci} className="category">
<h3>{cat.name}</h3>
<ul>
{cat.taskIds.map((tid: number) => (
<li key={tid}>
<label>
<input type="checkbox" checked={complete[tid]} onChange={() => setComplete(prev => ({ ...prev, [tid]: !prev[tid] }))} />
{tasksById[tid].name}
</label>
</li>
))}
</ul>
</div>
))}
</div>
);
}
Questo componente utilizza window.openai.toolOutput per accedere ai campi structuredContent e \_meta. Memorizza lo stato di completamento in widgetState affinché, selezionando una casella, la scelta venga mantenuta anche quando l'utente continua la conversazione. Nei successivi richiami dello strumento, il componente può recuperare nuovi compiti o aggiornare quelli esistenti. Questo dimostra come combinare il ragionamento del modello con le interazioni lato client.
* Test e Iterazione
Run npm run dev again and open the MCP Inspector. In the prompt area, type:
```sql
@task‑tracker create a list of tasks: buy milk in shopping, finish report in work, call mom in personal
The inspector will show the structured content and render the task list UI. You can check tasks off; the state persists across turns. You can then ask ChatGPT: “Remind me of my tasks later.” Because the model retains context, it can call the tool again, display the UI and summarise your progress.
How Users Discover and Use Apps

Named Mention and In‑Conversation Discovery
ChatGPT surfaces apps when it believes they can assist the user. There are two primary discovery modes. Named mention occurs when the user explicitly mentions the app name at the beginning of a prompt; in this case, the app will be surfaced automatically[9]. For instance, “@Spotify create a workout playlist” immediately invokes the Spotify integration. The user must place the app name at the start; otherwise the assistant may treat it as part of the conversation.
In‑conversation discovery happens when the model infers that an app could help based on context. The documentation explains that the model evaluates the conversation context, prior tool results and the user’s linked apps to determine which app might be relevant[9]. For example, if you are discussing travel plans, ChatGPT might suggest the Expedia app to book flights. The algorithm uses metadata like tool descriptions and keywords to match the conversation with potential actions[10]. Developers can improve discoverability by writing action‑oriented descriptions and clear UI component names.
Directory and Launcher
OpenAI plans to release an app directory where users can browse and discover new apps[10]. Each listing will include the app name, description, supported prompts and any onboarding instructions. Users can also access the launcher via the “+” button in chat; this shows a menu of available apps based on context. These entry points will help less technical users find and enable apps without memorising names.
Onboarding and Consent
La prima volta che un utente attiva un'app, ChatGPT avvia un flusso di onboarding. Il modello chiede all'utente di connettere il proprio account (se necessario) e spiega quali dati l'app necessita. Le linee guida per gli sviluppatori sottolineano che le app devono rispettare la privacy degli utenti, comportarsi in modo prevedibile e avere politiche chiare[11]. Gli utenti devono esplicitamente concedere o negare il permesso; non c'è accesso ai dati in silenzio. Una volta connessa, l'app può rimanere collegata per interazioni successive, ma gli utenti hanno sempre la possibilità di disconnetterla e revocare i permessi.
Privacy, Sicurezza e Design Responsabile
Principi di App Affidabili
Le Linee guida per gli sviluppatori di app di OpenAI definiscono diversi principi per garantire che l'ecosistema rimanga sicuro e affidabile. Le app devono fornire un servizio legittimo, avere una chiara politica sulla privacy e pratiche di conservazione dei dati, e rispettare le politiche di utilizzo[11]. Devono minimizzare la raccolta dei dati, evitare di memorizzare informazioni personali sensibili e non condividere i dati degli utenti senza consenso[12]. Le app devono comportarsi in modo prevedibile; non possono manipolare il modello per produrre contenuti dannosi o fuorvianti.
Limiti e minimizzazione dei dati
Le linee guida sottolineano che le app dovrebbero raccogliere solo i dati essenziali per il loro funzionamento e non devono richiedere o memorizzare dati sensibili come cartelle cliniche o documenti d'identità governativi[12]. I contenuti strutturati inviati al modello non devono contenere segreti; i metadati nascosti non devono memorizzare token utente o dettagli privati. Gli sviluppatori devono implementare una crittografia forte e uno storage sicuro per qualsiasi token ottenuto durante l'OAuth. Il server deve mantenere rigide separazioni tra le sessioni utente; i dati di un utente non devono mai trapelare nel contesto di un altro.
Misure di Sicurezza nell'SDK
La Guida alla Sicurezza e Privacy descrive i meccanismi di difesa integrati nella piattaforma. Sottolinea il principio del minimo privilegio e il consenso esplicito dell'utente come principi fondamentali[6]. La conservazione dei dati è limitata; i log accessibili agli sviluppatori sono redatti per eliminare le informazioni personali identificabili, e il contenuto strutturato è conservato solo per il tempo richiesto dal prompt[6]. L'accesso alla rete dall'interno dell'iframe è limitato dalla politica di sicurezza dei contenuti; le richieste esterne devono passare attraverso il server, prevenendo richieste cross-origin non autorizzate[7]. L'autenticazione utilizza flussi OAuth standard del settore con token a breve durata. Gli sviluppatori sono tenuti a implementare revisioni di sicurezza, canali di segnalazione bug e monitoraggio degli incidenti per mantenere la prontezza operativa[7].
Equità e Appropriatezza
Le app devono essere appropriate per un vasto pubblico. Le linee guida vietano le app che forniscono contenuti di lunga durata, automazione complessa o pubblicità. Ad esempio, un'app non dovrebbe tentare di fornire un video di 30 minuti o replicare un intero social network all'interno di ChatGPT. La piattaforma incoraggia interazioni concise che completino il flusso della conversazione. Le violazioni possono portare al rifiuto o alla rimozione.
Opportunità e Considerazioni
Un nuovo canale di distribuzione per gli sviluppatori
Aprendo ChatGPT alle app di terze parti, OpenAI si posiziona come uno "strato di intenti" tra utenti e servizi. Gli sviluppatori possono ora raggiungere milioni di utenti attraverso l'interfaccia chat senza costruire app web o mobili separate. Le app hanno il potenziale di ridurre gli attriti: invece di scaricare un'app o visitare un sito web, gli utenti menzionano semplicemente il servizio nella conversazione. Questo potrebbe democratizzare l'accesso agli strumenti e livellare il campo di gioco per i piccoli sviluppatori.
Le prime collaborazioni mostrano le possibilità: gli utenti possono guardare le lezioni di Coursera mentre fanno domande a ChatGPT; progettare poster su Canva; sfogliare opzioni di viaggio su Expedia o annunci immobiliari su Zillow; generare playlist su Spotify; o creare diagrammi di idee con Figma[14][13]. Poiché le app funzionano all'interno della chat, il modello può riassumere, analizzare e generare raccomandazioni, trasformando contenuti statici in lezioni interattive. Le app offrono anche diversi modi di visualizzazione—schede inline, schermo intero o picture-in-picture—offrendo flessibilità per diversi compiti[15].
Trasformare le aspettative degli utenti
La capacità di utilizzare app senza cambiare contesto potrebbe rimodellare il modo in cui le persone interagiscono con i servizi. ChatGPT diventa non solo un chatbot ma un sistema operativo universale per gli intenti. Come ha osservato Casey Newton, questo ci sposta dal lancio di app discrete al semplice esprimere cosa vogliamo[16]. Alcuni analisti paragonano questo cambiamento al lancio dell'App Store o del browser: una piattaforma unica che aggrega funzionalità e competizione.
Tuttavia, questa trasformazione solleva domande sul controllo e il potere. Se ChatGPT determina quali app visualizzare, potrebbe diventare un guardiano. Newton avverte che un “grafico AI” costruito sulle preferenze degli utenti potrebbe creare rischi per la privacy più seri di quelli dei social network[16]. Gli incentivi economici potrebbero portare a posizionamenti o classifiche a pagamento per le app. Gli sviluppatori potrebbero sentirsi spinti a progettare per ChatGPT invece di mantenere la loro relazione con gli utenti. È cruciale che la piattaforma rimanga trasparente e equa per mantenere la fiducia.
Implicazioni Regolatorie ed Etiche
Poiché le app possono accedere a dati personali, come la posizione, i contatti e i metodi di pagamento, i regolatori potrebbero esaminare come i dati fluiscono attraverso ChatGPT. Gli sviluppatori devono rispettare le leggi sulla privacy come il GDPR, anche se la piattaforma non è ancora disponibile nell'Unione Europea[17]. OpenAI ha promesso controlli sulla privacy più dettagliati e opzioni di monetizzazione, inclusi un protocollo di commercio agentico che permetterà il pagamento immediato all'interno della chat[18]. Il successo di questo ecosistema dipenderà da una sicurezza robusta, un chiaro consenso degli utenti e modelli economici equi.
Direzioni Future e Ricerca
L'SDK delle App è ancora in anteprima, e molte funzionalità devono essere sviluppate. La roadmap per gli sviluppatori include:
- Flusso di invio e revisione – Attualmente gli sviluppatori possono creare app ma non possono elencarle pubblicamente. Un processo di revisione formale garantirà la conformità alle linee guida e la fiducia.
- Condivisione dei ricavi e monetizzazione – OpenAI ha accennato a un protocollo di commercio agentico che potrebbe consentire agli utenti di acquistare beni direttamente in chat. Questo apre opportunità per l'e-commerce ma solleva anche domande su commissioni, classifiche e concorrenza.
- Strumenti per sviluppatori – Più linguaggi e framework, strumenti di debug migliorati e pipeline di distribuzione più semplici abbasseranno la barriera all'ingresso. La natura aperta dello standard MCP potrebbe portare a implementazioni guidate dalla comunità e fornitori di hosting.
- Interoperabilità – Poiché MCP è aperto, altre piattaforme o modelli potrebbero adottarlo. Ciò potrebbe consentire un ecosistema di app cross-model dove gli sviluppatori scrivono una volta e eseguono ovunque. Sarà importante la ricerca sulla standardizzazione dei protocolli degli agenti e sulla condivisione del contesto.
- Ricerca sulla sicurezza – Valutare come prevenire l'iniezione di prompt, codice dannoso o uso improprio dei dati degli utenti rimane un'area di ricerca principale. Gli articoli sugli attacchi avversari contro applicazioni integrate con LLM informeranno le migliori pratiche e linee guida.
Conclusione: Un nuovo sistema operativo in fase di creazione
L'introduzione delle App in ChatGPT e dell'SDK per App basato su MCP segna un cambiamento significativo nel modo in cui interagiamo con il software. Portando applicazioni di terze parti direttamente nell'interfaccia di chat, OpenAI ha creato una nuova piattaforma che combina linguaggio naturale, ragionamento e interfacce utente interattive. Il Model Context Protocol fornisce un modo aperto e standardizzato per i modelli di chiamare strumenti e rendere componenti; l'SDK per App semplifica lo sviluppo gestendo la comunicazione server, l'integrazione dell'interfaccia utente e la gestione dello stato. Esempi passo dopo passo come il Task Tracker dimostrano quanto sia facile costruire un'app utile mantenendo rigidi confini di dati e privacy.
Tuttavia, questa innovazione comporta delle responsabilità. Gli sviluppatori devono seguire linee guida che diano priorità alla privacy degli utenti, alla sicurezza e all'equità[11][12]. Meccanismi di sicurezza come il principio del minimo privilegio e il consenso esplicito proteggono gli utenti[6]. Allo stesso tempo, gli osservatori del settore avvertono che la piattaforma potrebbe creare nuove forme di controllo e rischi per la privacy[16]. Man mano che l'ecosistema matura, la trasparenza, gli standard aperti e il coinvolgimento della comunità determineranno se la piattaforma di app di ChatGPT diventerà un livello trasformativo e affidabile per le attività quotidiane.
[1] Ultime notizie sulla corsa agli armamenti dell'IA: ChatGPT ora consente agli utenti di connettersi con Spotify e Zillow nelle chat
[2] [3] [4] [5] Configura il tuo server
https://developers.openai.com/apps-sdk/build/mcp-server
https://developers.openai.com/apps-sdk/guides/security-privacy
[8] Crea un'esperienza utente personalizzata
https://developers.openai.com/apps-sdk/build/custom-ux
[9] [10] Interazione con l'utente
https://developers.openai.com/apps-sdk/concepts/user-interaction
[11] [12] Linee guida per sviluppatori di app
https://developers.openai.com/apps-sdk/app-developer-guidelines/
[13] Le app di ChatGPT sono attive: Ecco le prime che puoi provare | The Verge
https://www.theverge.com/news/793081/chagpt-apps-sdk-spotify-zillow-openai
[14] OpenAI DevDay 2025: ChatGPT ottiene app, AgentKit per sviluppatori e modelli GPT più economici
[15] OpenAI annuncia l'SDK per app che consente a ChatGPT di lanciare ed eseguire app di terze parti come Zillow, Canva, Spotify | VentureBeat
https://venturebeat.com/ai/openai-announces-apps-sdk-allowing-chatgpt-to-launch-and-run-third-party
[16] Nuova piattaforma, rischi familiari: Zillow ed Expedia scommettono sul lancio delle app ChatGPT di OpenAI – GeekWire
[17] OpenAI DevDay: App ChatGPT, AgentKit e rilascio GA di Codex - SD Times
https://sdtimes.com/ai/openai-devday-chatgpt-apps-agentkit-and-ga-release-of-codex/
[18] OpenAI vuole trasformare ChatGPT in un'interfaccia universale per app - Ars Technica
https://arstechnica.com/ai/2025/10/openai-wants-to-make-chatgpt-into-a-universal-app-frontend/










