Trasforma il tuo AI Agent in un server MCP per ChatGPT, Claude e Cursor

Piotr Grudzień
Pubblicato 20 min di lettura
Trasforma il tuo AI Agent in un server MCP per ChatGPT, Claude e Cursor

Introduzione

Finora ogni tutorial di questa serie ha collegato un Quickchat AI Agent a qualcosa: Telegram, Google Sheets, Discord. Questo inverte la direzione. Il tuo agent diventa l’elemento a cui altre AI si collegano: uno strumento che ChatGPT, Claude e Cursor chiamano quando i loro utenti chiedono qualcosa che solo il tuo agent sa.

Il meccanismo è un server MCP e la configurazione è volutamente semplice: ogni Quickchat AI Agent ne ha già uno, ospitato a un URL nel formato https://app.quickchat.ai/mcp/your-agent-id. Lo attivi, copi l’URL e lo incolli nell’app di AI come connector. Questa è l’intera integrazione, e non richiede codice. L’accesso è privato per impostazione predefinita: la connessione richiede l’accesso con il tuo account Quickchat AI finché non decidi diversamente.

Alla fine di questa guida avrai creato un agent di supporto per un’azienda fittizia di strumenti per sviluppatori, gli avrai dato conoscenza reale, lo avrai esposto come server MCP, lo avrai collegato ad app di AI reali e avrai visto qualcosa di nuovo nella tua Inbox: due AI che parlano tra loro del tuo prodotto, con il tuo agent che acquisisce un lead commerciale dall’interno di un’app di chat lungo il percorso. Trattiamo anche che cosa l’AI chiamante si rifiuta di fare, che si è rivelato il risultato più interessante di questo articolo.

Ti servono due cose:

Il riferimento canonico per questa funzionalità è nella documentazione su docs.quickchat.ai/channels/mcp. Se MCP è nuovo per te, la nostra spiegazione di MCP copre il protocollo in dettaglio; per questo articolo basta la versione in un paragrafo qui sotto.

Che cosa costruirai

Un’azienda fittizia, Orbit, vende agli sviluppatori un’API di vector search ospitata. Il suo agent di supporto conosce la documentazione: piani, rate limit, regioni, autenticazione, SDK. Esporrai quell’agent come server MCP e proverai cinque comportamenti da app di AI reali:

#Chiedi all’app di AIChe cosa fa il tuo agentDove lo vedi
1”What are Orbit’s rate limits on the free plan?”Risponde dalla Knowledge BaseLa chat dell’app + la tua Inbox
2”Does Orbit have a Ruby SDK?”Dice che non lo sa (il fatto manca di proposito)L’app inoltra il no onesto
3”Get me a demo, here are my details”Acquisisce il lead con Smart Data GatheringDettagli di contatto nella Inbox
4”Put me through to a human”Attiva Human HandoffConversazione riassegnata al tuo team
5Una domanda di follow-upContinua la stessa conversazioneUn thread nella Inbox

Tutto ciò che segue è stato creato e testato realmente sul prodotto in esecuzione, e ogni screenshot è una cattura autentica. Quando una schermata appartiene a un’app esterna, indichiamo esattamente dove cliccare.

Chi chiama chi: client MCP, server MCP, AI Agent, AI Action

Questi quattro termini vengono confusi continuamente, anche da persone che distribuiscono server MCP di lavoro. Una frase per ciascuno:

  • Un client MCP è l’app di AI con cui parla il tuo utente (ChatGPT, Claude, Cursor). Decide quando chiamare uno strumento.
  • Un server MCP è ciò che offre strumenti. Qui Quickchat AI ne ospita uno per agent a https://app.quickchat.ai/mcp/<your-agent-id>.
  • L’AI Agent è il tuo agent: la Knowledge Base, il prompt, il comportamento che hai configurato. Il server MCP è solo il suo socket.
  • Le AI Actions sono ciò che il tuo agent può fare durante una risposta (chiamare API, acquisire lead, passare a un umano). Continuano a funzionare quando la domanda arriva tramite MCP.

Questa guida usa un client MCP collegato esplicitamente. Pubblicare un URL del server o aggiungere il widget del sito web non collega, da solo, l’account ChatGPT o Claude di un visitatore a quel server. Se un assistente non collegato scoprirà e userà una route su un sito web è una questione separata.

Diagramma della catena di chiamata MCP: un utente chiede a un'app di AI, il client MCP chiama lo strumento ask_orbit sul server MCP ospitato su app.quickchat.ai, e l'Orbit AI Agent risponde dalla sua Knowledge Base La catena completa. Nota chi decide di chiamare lo strumento: il client MCP, non tu e non il tuo agent.

MCP (Model Context Protocol) è lo standard che fa funzionare le frecce centrali: un modo uniforme per un’app di AI di scoprire gli strumenti di un server e chiamarli. Il trasporto è semplice HTTPS (streamable HTTP, se ti interessano i dettagli del protocollo), ed è per questo che un URL è l’intera superficie di integrazione.

L’inversione importante da interiorizzare: il modello chiamante legge il nome e la descrizione del tuo strumento e decide da solo quando vale la pena chiamare il tuo agent. Non puoi forzarlo. Tutto nella sezione di tuning deriva da questo.

Tre cose da sapere prima di costruire

Prima della guida passo passo, tre fatti sul comportamento del server:

  • Uno strumento per agent. Il server espone un singolo strumento (lo nominerai tu; il nostro è ask_orbit) che accetta un argomento stringa, message, e restituisce la risposta del tuo agent. La sua pipeline di risposta può eseguire Actions abilitate, incluse chiamate che modificano sistemi esterni.
  • Le sessioni corrispondono a conversazioni. Ogni sessione MCP corrisponde a una conversazione nella tua Inbox. Un client che mantiene viva la sessione tra le chiamate inserisce i follow-up nella stessa conversazione; molte app di chat, però, aprono una nuova sessione per ogni domanda, quindi in pratica vedrai spesso ogni domanda arrivare come conversazione autonoma. Le sessioni inattive scadono dopo alcune ore.
  • È il tuo vero agent. La chiamata attraversa la stessa pipeline di risposta del widget del tuo sito web. Recupero dalla Knowledge Base, AI Actions, Smart Data Gathering e Human Handoff si comportano esattamente come sul tuo sito, e ogni risposta consuma gli stessi crediti per messaggi AI.

Passaggio 1: crea l’agent Orbit e dagli conoscenza

Crea il tuo agent (il flusso Getting Started richiede pochi minuti) e imposta la sua identità. Il prompt principale di Orbit è un paragrafo:

Sei l'assistente di supporto per sviluppatori di Orbit. Orbit è un'API di vector search ospitata per sviluppatori. Rispondi a domande sui piani, rate limit, regioni, autenticazione, SDK e funzionalità di ricerca di Orbit usando la tua Knowledge Base. Sii conciso e tecnico. Se qualcosa non è coperto dalla tua conoscenza, dì chiaramente che non lo sai.

Poi apri Knowledge Base e aggiungi articoli. Orbit ne ha sei brevi: piani e prezzi, rate limit, regioni e residenza dei dati, autenticazione e chiavi API, SDK e client API, ricerca ibrida. Fatti reali che il tuo agent deve riportare esattamente, per esempio:

Rate limit per piano: Free consente 60 query al minuto e 120 scritture al minuto. Pro consente 600 query al minuto e 1.200 scritture al minuto. I limiti Scale sono personalizzati. I limiti vengono applicati per progetto con un token bucket. Quando superi un limite, l'API restituisce HTTP 429 con un header Retry-After. Un batch upsert conta come una scrittura ogni 100 vettori.

La pagina Quickchat AI Knowledge Base per l'agent Orbit con sei articoli, tutti con stato Ready La Knowledge Base di Orbit. Sei articoli coprono il prodotto; l’articolo sugli SDK elenca deliberatamente Python, TypeScript e Go ma non Ruby.

Nota la lacuna deliberata: l’articolo sugli SDK non menziona Ruby. È intenzionale. Il comportamento più importante di un agent di supporto è ciò che fa quando non sa, e vogliamo testarlo onestamente invece di limitarci a domande facili.

Se vuoi la guida più approfondita sulla Knowledge Base, la pagina della documentazione su come creare una Knowledge Base efficace copre fonti, tag e retraining.

Passaggio 2: attiva il tuo server MCP

Apri External Apps nella sidebar e clicca sul riquadro MCP.

La pagina External Applications nella dashboard Quickchat AI con il riquadro MCP che mostra "Let ChatGPT/Claude talk to your AI Agent via MCP" MCP si trova accanto alle altre superfici esterne: API e integrazioni per piattaforma.

Il pannello MCP ha tutto in un’unica schermata: un toggle Enable MCP, una finestra Configure MCP, una finestra Connect MCP e il toggle Require sign-in (private).

Il pannello MCP nella dashboard Quickchat AI con Enable MCP attivo, i pulsanti Configure MCP e Connect MCP, e il toggle Require sign-in L’intera superficie MCP. Attivalo, descrivi il tuo agent, copia l’URL.

Attiva Enable MCP, poi apri Configure MCP. Questa finestra è più importante di quanto sembri; dedicheremo un’intera sezione al perché. Ha tre campi:

La finestra Configure MCP con Name "Orbit Docs Assistant", una descrizione di ciò che l'agent conosce, e Command "ask_orbit" Le tre stringhe che l’AI chiamante legge. Sono l’interfaccia tra il tuo agent e ogni app di AI che si connette.

  • Name: come le app di AI vedono il tuo agent. Il nostro: Orbit Docs Assistant.
  • Description: 2 o 3 frasi su ciò che il tuo agent sa e può fare, e su ciò che non può fare. Il modello chiamante la usa per decidere quando chiamare il tuo agent, quindi scrivila come un contratto API, non come testo marketing. La nostra:
Risponde a domande tecniche degli sviluppatori su Orbit, l'API di vector search ospitata: piani e prezzi, rate limit, regioni, autenticazione e SDK. Risponde solo dalla documentazione di Orbit e lo dichiara quando qualcosa non è coperto. Può anche registrare una richiesta di follow-up (una demo, prezzi del piano Scale, un aumento del rate limit): inoltra i dettagli di contatto dell'utente e il team Orbit ricontatterà l'utente.
  • Command: il nome dello strumento visto dall’app di AI, lettere e underscore. Il nostro: ask_orbit. Scegli qualcosa che un modello userebbe naturalmente.

Poi apri Connect MCP e copia il tuo URL del server MCP:

https://app.quickchat.ai/mcp/<your-agent-id>

La finestra Connect MCP che mostra l'URL del server MCP dell'agent con un pulsante Copy e i passaggi per app per Claude, Cursor e ChatGPT L’intera superficie di integrazione: un URL, un pulsante Copy e il passaggio per app. Copialo, incollalo, fatto.

La stessa finestra elenca i passaggi per app che seguiremo ora. Lascia Require sign-in (private) attivo per ora; è l’impostazione predefinita e significa che nessuno può usare il tuo agent tramite MCP senza accedere al tuo workspace Quickchat AI. Lo renderemo pubblico più avanti, intenzionalmente, quando avrai capito il compromesso.

Passaggio 3: connettiti da Claude

In Claude, apri Settings, trova Connectors (attualmente sotto la sezione Customize), clicca Add, poi Add custom connector. Assegna un nome e incolla l’URL del tuo server MCP. Claude supporta i connector personalizzati in ogni piano, incluso quello gratuito (gli account gratuiti possono aggiungere un connector personalizzato).

La finestra Add custom connector di Claude con il nome Orbit e l'URL del server MCP incollato L’intera configurazione in Claude: un nome e l’URL. I campi OAuth restano vuoti; Quickchat AI gestisce l’autenticazione per te.

Poiché il tuo server è privato, Claude ti invierà a un passaggio di accesso la prima volta: si apre una normale pagina di login Quickchat AI, accedi e il connector viene completato. Nessuna schermata di consenso, nessun token da copiare. Chi non è membro del tuo workspace si ferma qui.

La pagina di accesso Quickchat AI a cui un server MCP privato reindirizza un'app di AI durante la connessione Modalità privata in pratica: l’app di AI ti rimanda al normale accesso Quickchat AI. Il tuo team entra, nessun altro.

Ora chiedi a Claude qualcosa che solo Orbit sa:

What are Orbit's rate limits on the free plan?

Claude riconosce che la domanda rientra nel territorio di ask_orbit, chiama lo strumento e inoltra la risposta del tuo agent: 60 query al minuto, 120 scritture al minuto e le tre regioni. Quei numeri vengono dal tuo articolo della Knowledge Base, non dall’immaginazione del modello.

Una conversazione Claude in cui Claude usa il connector Orbit e risponde con i rate limit del piano gratuito di Orbit e le regioni dalla knowledge base “Loaded tools, used Orbit integration”: Claude ha chiamato il tuo agent e ha inoltrato esattamente ciò che dice la sua Knowledge Base. Il lettore sta parlando con Claude; i fatti sono tuoi.

Poi fai la domanda trappola:

Does Orbit have a Ruby SDK?

Il tuo agent dice che la documentazione non ne menziona uno, e Claude inoltra il no onesto. Nel nostro test ha controllato la Knowledge Base, ha riportato che non esiste un SDK Ruby ufficiale, ha elencato correttamente gli SDK che esistono (Python, TypeScript, Go) e ha suggerito di chiamare invece la normale API REST da Ruby:

Una conversazione Claude che risponde che Orbit non ha un SDK Ruby ufficiale, suggerisce l'API REST da Ruby tramite Faraday o Net::HTTP, ed elenca correttamente i veri SDK Python, TypeScript e Go Il no onesto, con un’alternativa utile. Claude non ha inventato un SDK Ruby; ha inoltrato ciò che dice davvero la tua Knowledge Base e ha indicato invece il percorso REST.

Lo stesso scambio ti aspetta nella Inbox come normale conversazione MCP, quindi vedi la domanda posta al tuo agent e la risposta che ha dato:

La trascrizione nella Quickchat AI Inbox della domanda sull'SDK Ruby nel canale MCP, con la domanda del visitatore e la risposta onesta dell'agent secondo cui non esiste un SDK Ruby Il tuo lato della stessa conversazione. L’agent ha risposto dalla Knowledge Base e ha detto chiaramente ciò che non copre, senza SDK inventati.

Questo è il risultato della lacuna deliberata del Passaggio 1: hai visto l’intera catena di onestà funzionare end to end, da agent a modello a utente.

Passaggio 4: connettiti da ChatGPT

ChatGPT mette i connector MCP personalizzati dietro developer mode, che richiede un piano a pagamento. Vai su Settings, poi Apps, apri Advanced settings e attiva Developer mode. ChatGPT la etichetta come “elevated risk”, perché in developer mode un connector può fare tutto ciò che i suoi strumenti consentono, quindi ChatGPT vuole che tu faccia opt-in consapevolmente.

Advanced settings di ChatGPT con il toggle Developer mode attivato, etichettato "elevated risk" Developer mode sblocca i connector personalizzati in ChatGPT. Controlla la conoscenza dell’agent e le Actions abilitate prima di collegarlo.

Ora clicca Create app: imposta la connessione su Server URL, incolla l’URL del tuo server MCP e (per un agent pubblico) scegli No Auth.

La finestra New App di ChatGPT con la connessione impostata su Server URL, l'URL del server MCP Orbit incollato, No Auth selezionato e la conferma del rischio della developer mode Dai un nome, incolla l’URL, spunta la conferma, Create. Il testo sul rischio è di ChatGPT, ed è corretto: aggiungi solo server di cui ti fidi, e il tuo è uno che controlli.

ChatGPT mostra una conferma finale, e un clic aggiunge il connector:

La finestra di conferma di ChatGPT "Add Orbit to ChatGPT" con i pulsanti Connect e Cancel Connect, e Orbit è ora uno strumento che ChatGPT può chiamare in qualsiasi conversazione.

Due note specifiche su ChatGPT:

  • Quando ChatGPT ti chiede di approvare una chiamata allo strumento, considera le Actions abilitate dell’agent oltre alla domanda inviata. Quelle Actions possono apportare modifiche in servizi collegati.
  • ChatGPT si connette dai server di OpenAI, così come Claude si connette da quelli di Anthropic. Il tuo server MCP è raggiungibile da entrambi perché Quickchat AI lo ospita; questa è esattamente la parte che non devi più costruire.

Fai la stessa domanda sui rate limit e ottieni la stessa risposta basata sulla Knowledge Base, questa volta in ChatGPT:

Una conversazione ChatGPT in cui ChatGPT chiama il connector Orbit e risponde con i rate limit del piano gratuito di Orbit e le regioni distribuibili dalla knowledge base “Called tool”, poi gli stessi fatti: 60/120, limiti per progetto, le tre regioni. ChatGPT inoltra perfino il dettaglio HTTP 429, perché è nell’articolo.

Passaggio 5: connettiti da Cursor

In Cursor, vai su Settings, poi Tools & MCPs, e clicca Add Custom MCP. Cursor apre ~/.cursor/mcp.json per modificarlo; un server MCP remoto è una voce "url":

{
  "mcpServers": {
    "orbit": {
      "url": "https://app.quickchat.ai/mcp/<your-agent-id>"
    }
  }
}

Salva il file e Cursor lo rileva: il server orbit appare sotto Tools & MCPs con il suo strumento ask_orbit. Fai una domanda su Orbit nel pannello Agent, e la prima volta che vuole chiamare lo strumento, Cursor ti chiede di approvarlo:

Il prompt di approvazione dello strumento di Cursor che mostra "Run Ask Orbit in orbit" con il messaggio che sta per inviare, e i pulsanti Run / Skip Cursor ti mostra il messaggio esatto che sta per inviare al tuo agent prima di eseguire lo strumento. Approva una volta, e risponde inline.

Una conversazione Cursor Agent in cui Cursor esegue lo strumento Ask Orbit e risponde con i rate limit del piano gratuito di Orbit e una tabella delle regioni di deployment dalla knowledge base Cursor chiama lo stesso strumento dall’interno dell’editor. “These limits and regions come from Orbit’s own docs via the Orbit MCP server”, nota spontaneamente.

Cursor è il punto in cui il valore per gli sviluppatori diventa evidente: stai scrivendo codice, chiedi “che cosa restituisce Orbit quando raggiungo il rate limit?”, e la risposta arriva dalla documentazione reale di Orbit senza lasciare l’editor. Se il tuo prodotto ha un SDK, questa è la nuova superficie di documentazione per i tuoi utenti.

Bonus: un comando per chi usa il terminale

Claude Code (la CLI di Anthropic) aggiunge server MCP remoti con un solo comando, il che lo rende anche il modo più rapido per fare un controllo di sanità del server:

claude mcp add --transport http orbit https://app.quickchat.ai/mcp/<your-agent-id>

Poi fai una domanda su Orbit in una sessione e chiama ask_orbit e inoltra la risposta del tuo agent, come i client desktop. È anche il controllo end-to-end più rapido per verificare che il server sia live prima di parlarne ad altri.

E se vuoi vedere il protocollo stesso, il server parla JSON-RPC semplice su HTTPS. Questo è l’intero handshake, eseguibile da qualsiasi terminale:

curl -X POST https://app.quickchat.ai/mcp/<your-agent-id> \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

La risposta elenca il tuo unico strumento con il nome, la descrizione e lo schema di input che hai scritto in Configure MCP. Chiamarlo richiede un’altra richiesta:

curl -X POST https://app.quickchat.ai/mcp/<your-agent-id> \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"ask_orbit","arguments":{"message":"What are Orbit rate limits on the free plan?"}}}'

La risposta torna come {"reply": "..."} nel risultato dello strumento. Nessun SDK e nessuna gestione di sessione necessari per un test rapido; l’header Mcp-Session-Id conta solo quando un client vuole inserire i follow-up in un’unica conversazione.

Guarda due AI parlare nella tua Inbox

Questa è la parte che rende interessante gestire questa configurazione. Apri la tua Inbox e guarda le conversazioni create dal tuo traffico MCP. Sono conversazioni normali, contrassegnate con l’origine MCP, accanto al traffico del tuo widget e dei tuoi canali.

L'elenco della Quickchat AI Inbox che mostra conversazioni create dal traffico MCP, contrassegnate con l'icona rossa di origine MCP Ogni scambio MCP è una conversazione normale nella tua Inbox, con trascrizione completa e tutto il resto che già tracci.

La Inbox registra persino quale app ha effettuato la chiamata. Apri una conversazione e controlla i suoi Details: il campo Channel indica il client. Cursor si identifica, quindi le sue conversazioni mostrano “MCP Cursor”; ChatGPT e Claude non inviano un nome distintivo, quindi arrivano sotto un generico “MCP.”

Il pannello Details di una conversazione MCP guidata da Cursor, con il campo Channel che mostra "MCP Cursor" e la conversazione assegnata all'AI Agent Una conversazione guidata da Cursor, taggata “MCP Cursor” e gestita dal tuo AI Agent come qualsiasi altra risposta automatizzata.

Ora il dettaglio che rende tutto questo davvero nuovo: il “visitatore” non è una persona. È l’AI chiamante, che scrive con parole proprie per conto del suo utente. L’umano ha digitato qualcosa in Cursor o Claude; ciò che raggiunge il tuo agent è la riformulazione di quell’AI. A volte sono quasi le parole esatte dell’utente; altre volte l’AI compone un messaggio del tutto nuovo e rifinito. Ecco due esempi reali, affiancati:

Un diagramma intitolato "The visitor is another AI" che confronta due richieste reali. Cursor ha inoltrato una domanda sui rate limit quasi parola per parola, mentre Claude ha trasformato una richiesta informale di demo in un messaggio educato e ben formato con saluto e riepilogo ordinato dei dettagli di contatto A sinistra: Cursor ha passato la domanda quasi verbatim. A destra: Claude ha composto un intero messaggio cortese da una richiesta informale di demo. In entrambi i casi, nessuno ha digitato il testo ricevuto dal tuo agent: sono parole proprie dell’AI chiamante.

Questo è ciò che la tua Inbox registra ora: una negoziazione tra due sistemi AI sul tuo prodotto, ed è stranamente professionale. Metti le due conversazioni affiancate e il gioco di prestigio è chiaro. A sinistra c’è ciò che lo sviluppatore ha digitato in Claude, e la risposta di Claude; a destra c’è lo stesso scambio nella tua Inbox, dove il messaggio composto da Claude arriva come “visitatore” e il tuo agent risponde come a qualunque altro:

Diagramma affiancato di uno scambio in due stanze. A sinistra, una richiesta informale di demo digitata in Claude e la risposta di Claude. A destra, lo stesso scambio nella Quickchat AI Inbox, dove il messaggio rifinito di Claude arriva come visitatore e l'agent risponde e acquisisce il lead Due stanze, una conversazione. Tu parli con Claude; Claude riscrive la tua richiesta e parla con il tuo agent. Il messaggio “visitatore” rifinito a destra è formulato da Claude, non da una persona, e il tuo agent ringrazia “Jan” e risponde come a qualsiasi altro visitatore.

Tutto ciò per cui usi già la Inbox si applica: la vista Why AI said that, topic, rating, export. Il tuo traffico MCP non è un mondo separato; è un canale.

Il tuo agent conserva i suoi superpoteri su MCP

Una chiamata MCP esegue la stessa pipeline di risposta del widget del tuo sito web, quindi le capacità che hai configurato per il tuo sito funzionano anche quando chiamano ChatGPT o Claude. La dimostrazione più chiara è la lead capture. L’agent di Orbit usa Smart Data Gathering: nella pagina Actions & MCPs apri la scheda Smart Data Gathering, clicchi Edit Action e la configuri. Abbiamo chiamato la campagna “Demo and Scale plan leads”, aggiunto due campi da raccogliere (email e azienda) e indicato di chiedere solo quando uno sviluppatore richiede una demo, prezzi Scale o un aumento del rate limit, mai per normali domande sulla documentazione.

L'editor della campagna Smart Data Gathering chiamata "Demo and Scale plan leads", con una tabella dei dati da raccogliere che elenca email e company, e una descrizione che la limita a richieste esplicite di demo o prezzi L’editor reale. Il nome della campagna, i campi e la descrizione “ask only when…” sono tutti impostati da te. Da qui deriva il comportamento di lead capture, ed è la stessa configurazione che useresti sul tuo sito web.

Ora guardalo funzionare end to end. Uno sviluppatore fornisce i propri dettagli in Claude, il tuo agent risponde dalla Knowledge Base, e Smart Data Gathering salva il contatto nella conversazione nello stesso turno, contrassegnato direttamente sul messaggio:

Un messaggio visitatore composto da Claude nella Quickchat AI Inbox che chiede informazioni sul piano Scale e una demo, con la risposta dell'agent e un indicatore evidenziato "1 action called" che mostra che il lead è stato acquisito nello stesso turno Il messaggio composto da Claude nella tua Inbox, gestito come quello di qualunque visitatore. L’indicatore evidenziato “1 action called” è Smart Data Gathering che acquisisce il lead nello stesso turno.

Il tuo team vede poi il contatto acquisito nel pannello Details e nelle esportazioni dei lead:

La sezione Visitor del pannello Inbox Details che mostra l'email acquisita e l'azienda Acme Robotics Il lead acquisito nel pannello Details della conversazione. Il pannello tronca l’email lunga per motivi di spazio; l’indirizzo completo è nel messaggio stesso.

Un lead commerciale è appena arrivato tramite Claude. Nessun form, nessun widget, nessuna visita al tuo sito web.

Lo stesso vale per il resto del toolkit del tuo agent. Le AI Actions personalizzate si attivano quando la domanda arriva tramite MCP esattamente come sul widget, quindi un agent che registra richieste di funzionalità in un foglio di calcolo o chiama la tua API interna continua a farlo indipendentemente dall’app di AI che ha posto la domanda. La Inbox contrassegna quelle chiamate nello stesso modo (“N actions called” sul messaggio), quindi puoi verificare che cosa è stato eseguito.

Che cosa l’AI chiamante inoltra e che cosa non inoltra

Questa è la sezione che non avevamo pianificato di scrivere. Esiste perché il nostro primo test ci ha sorpreso, e la sorpresa è la cosa più utile di questo articolo.

Run 1: l’AI chiamante ci ha contestato. Smart Data Gathering di Orbit era impostato per chiedere dettagli di contatto in modo proattivo, e la MCP Description diceva solo che l’agent rispondeva a domande sulla documentazione. Abbiamo fatto a Claude l’innocua domanda sui rate limit. Ha inoltrato correttamente i fatti, poi ha segnalato la domanda di lead capture che il nostro agent aveva aggiunto:

Una scheda citazione: Claude nota che la risposta dello strumento ha aggiunto una domanda su per quale azienda stai costruendo, dice che sembra un prompt iniettato invece di contenuto reale della documentazione, e che la sta ignorando

Rileggilo: l’AI chiamante ha segnalato la nostra lead capture come tentativo di prompt injection. È diventata ancora più esplicita quando le abbiamo chiesto di passare dettagli per una demo, e ha rifiutato; uno strumento di Q&A sulla documentazione che improvvisamente chiede dati personali non è un canale legittimo per quello.

La diagnosi, una volta vista, è il modello mentale da mantenere. Per il modello chiamante, la Description dichiarata è un contratto e l’output è dato. Il nostro contratto diceva “risponde a domande sulla documentazione”, quindi una richiesta di dettagli di contatto nascosta nei dati non era mai stata promessa, e sembrava esattamente un attacco di injection. Cambiare una frase del contratto ha trasformato la stessa identica risposta da ignorata a fidata:

Un diagramma prima e dopo. La stessa risposta dell'agent contiene una domanda di contatto aggiunta. Con una Description che promette solo risposte alla documentazione, l'AI chiamante la segnala come prompt injection e la ignora. Con una Description che promette anche di registrare richieste di follow-up, l'AI chiamante passa il contatto e il lead viene acquisito Run 2 ha aggiunto una frase alla Description (“it can also register a follow-up request: pass along the user’s contact details”). Stessi dati, ora dentro il contratto, quindi Claude li ha inoltrati e il lead è stato acquisito.

Restava un fastidio. Con la campagna ancora impostata per chiedere in modo proattivo, anche le domande semplici ricevevano un invito alla lead capture, quindi in Run 3 abbiamo limitato la descrizione della campagna a chiedere solo quando uno sviluppatore richiede esplicitamente una demo, prezzi o un aumento del limite. Dopo questo, le domande semplici ricevono risposte semplici, e l’AI chiamante ha persino iniziato a proporre il percorso di follow-up con parole proprie: “If you outgrow these limits, I can pass along a request to Orbit’s team for a rate limit increase or Scale plan pricing.”

Tre schede di riepilogo. Primo, la Description è il contratto: dichiara che cosa può fare il tuo agent, incluso il percorso di follow-up. Secondo, il modello chiamante è un filtro, non un tubo: inoltra ciò che corrisponde al contratto e mette in quarantena ciò che non corrisponde. Terzo, limita la raccolta dati a segnali espliciti, perché ora due giudizi AI si trovano tra l'utente e il tuo agent

La regola che collega tutto: le tre stringhe di Configure MCP (Name, Description, Command) decidono se e quando il tuo agent viene chiamato, e la configurazione del tuo agent decide che cosa dice una volta chiamato. Quando il comportamento sembra sbagliato, chiediti prima quale dei due livelli lo ha prodotto.

Human handoff: escalation senza lasciare l’app di AI

Human Handoff funziona anche su MCP, ed è davvero utile: una domanda che richiede una persona può raggiungere il tuo team senza che l’utente lasci mai ChatGPT o Claude. Abbiamo chiesto a Claude qualcosa a cui la documentazione non può rispondere (un DPA firmato e deployment on-prem per un cliente del settore difesa). Orbit ha riconosciuto che era fuori portata, lo ha detto e ha eseguito l’handoff:

Uno scambio di handoff nella Inbox: il messaggio visitatore scritto dall'AI su un DPA e deployment on-prem, e la risposta dell'agent che segnala un follow-up umano L’agent sapeva ciò che non sapeva e ha fatto escalation in modo pulito. La richiesta, e i dettagli di contatto raccolti, arrivano nella tua Inbox come conversazione non assegnata che il tuo team può prendere in carico.

Questo è il vantaggio: un lead che richiede una persona è ora nella tua coda, acquisito, con tutto ciò che serve al tuo team per fare follow-up. Poiché MCP è una domanda e una risposta, il follow-up avviene dal tuo lato (un’email, una chiamata) invece che dentro l’app di AI, ed è esattamente per questo che l’handoff raccoglie i dettagli di contatto. Per le molte domande in cui basta una risposta rapida e documentata, il tuo agent le gestisce; per le poche che richiedono una persona, le instrada a te.

È sicuro?

Versione breve: è sicuro quanto il widget del tuo sito web, con un’impostazione predefinita più restrittiva. Per capire perché il confine è l’elenco degli strumenti, e non il prompt, 70,000 messages inside a package manager è il riferimento.

  • Privato per impostazione predefinita. Un nuovo server MCP richiede l’accesso. L’app di AI reindirizza al login standard Quickchat AI, e solo i membri del tuo workspace passano. Puoi creare, testare e usare un oracolo interno della documentazione senza esporre nulla. Una richiesta non autenticata riceve una semplice challenge 401:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer error="invalid_token",
  resource_metadata="https://app.quickchat.ai/.well-known/oauth-protected-resource/mcp/<id>"
  • L’URL è un indirizzo, non un segreto. L’agent id nell’URL è lo stesso identificatore che il widget del tuo sito web espone pubblicamente. Conoscerlo non basta: il toggle di visibilità è il controllo di accesso.
  • Lo strumento chiede al tuo agent; i suoi effetti dipendono dalle capacità dell’agent. Il canale non espone gli strumenti separati di gestione dell’account. Salva conversazioni, consuma crediti AI, risponde dalla Knowledge Base ed esegue Actions abilitate. Un’Action può modificare un sistema esterno, quindi controlla i suoi permessi e la conoscenza disponibile per l’agent prima di condividere l’accesso. Un’interfaccia di domanda e risposta non garantisce un comportamento di sola lettura.
  • Passare a pubblico è anche una decisione di fatturazione. Disattiva Require sign-in (private) e chiunque abbia il link potrà usare il tuo agent senza accedere. Questo è lo scopo di condividere uno strumento pubblico, e si applicano le stesse regole del widget: ogni risposta consuma i crediti messaggio del tuo piano, e tutti i chiamanti condividono il rate limit del tuo agent (limiti al minuto e al giorno dal nostro lato impediscono a un solo chiamante di consumarlo tutto). Se i crediti finiscono, lo strumento inizia a rispondere che l’agent non è al momento disponibile invece di fallire silenziosamente.
  • Tratta le domande in ingresso come input non attendibile. Un modello chiamante può filtrare richieste inattese dal tuo agent, ma questo non è un confine di sicurezza per le tue Actions. Limita l’ambito dei servizi collegati e applica autorizzazioni nei sistemi che ricevono quelle chiamate. I chiamanti pubblici possono chiedere qualsiasi cosa consentita dalle capacità abilitate dell’agent; le istruzioni da sole non devono proteggere dati privati o operazioni privilegiate.

Andare live

La checklist di lancio, in ordine:

  1. Prima la conoscenza. Il tuo agent sta per essere citabile dentro le app di AI di altre persone. Assicurati che la Knowledge Base contenga i fatti che vuoi vengano ripetuti, e distribuiscila.
  2. Scrivi le tre stringhe come un contratto API. Name, Description, Command. Dichiara la capacità di follow-up se usi lead capture.
  3. Testa in privato. Mantieni Require sign-in attivo, collega il tuo Claude o ChatGPT, ed esegui i cinque comportamenti dalla tabella iniziale: una domanda coperta, una non coperta, un lead, un handoff, un follow-up.
  4. Osserva la Inbox per un giorno. La Inbox segnala il tuo traffico MCP (e nomina specificamente Cursor), e le trascrizioni ti mostrano come le AI chiamanti formulano le cose. Imparerai di più da dieci scambi reali che da qualsiasi specifica.
  5. Poi decidi sul pubblico. Disattiva il toggle solo quando vuoi che chiunque abbia il link venga servito usando i tuoi crediti. Per un assistente alla documentazione collegato a un prodotto, pubblico di solito è corretto; per un oracolo interno della conoscenza, privato è già la funzionalità.
  6. Condividi l’URL dove i tuoi utenti sono già: la pagina della documentazione, il README, il tuo Discord. L’URL è l’intero onboarding.

Guide correlate

Domande frequenti

Che cos’è un server MCP per un AI agent?

Un server MCP (Model Context Protocol) è un endpoint standard che espone le capacità di un AI agent come strumenti che altre app di AI possono chiamare. Dopo che un utente collega il server del tuo Quickchat AI Agent in un’app compatibile come ChatGPT, Claude o Cursor, l’app può scoprire il suo strumento di domanda e risposta e richiedere una risposta dalla sua Knowledge Base. È la stessa idea del widget del tuo sito web, con la differenza che il chiamante è un’altra app di AI invece di una persona, e l’intera connessione è un URL ospitato.

Devo scrivere codice o ospitare qualcosa per dare al mio AI agent un server MCP?

No. Ogni Quickchat AI Agent ha un server MCP ospitato integrato. Lo attivi nella dashboard, copi un URL nel formato https://app.quickchat.ai/mcp/your-agent-id e lo incolli in ChatGPT, Claude, Cursor o in qualsiasi altro client MCP. È ospitato e mantenuto per te, e la connessione non richiede codice.

ChatGPT, Claude o Cursor possono rispondere a domande dalla mia knowledge base?

Sì. Collega l’URL del server MCP del tuo Quickchat AI Agent come connector e l’app di AI ottiene uno strumento che pone una domanda al tuo agent. Il tuo agent risponde dalla sua Knowledge Base e l’app inoltra la risposta, quindi gli utenti ricevono i fatti che hai documentato invece delle ipotesi del modello.

Esporre il mio AI agent come server MCP è gratuito?

Sì. MCP è incluso in ogni piano Quickchat AI, incluso il piano Free, quindi puoi seguire tutta questa guida con un account gratuito. Ogni risposta prodotta dal tuo agent consuma crediti per messaggi AI del tuo piano, come una risposta nel widget del tuo sito web.

Quali piani ChatGPT supportano i connector MCP personalizzati?

I connector MCP personalizzati sono dietro la modalità developer di ChatGPT, che richiede un piano ChatGPT a pagamento. Claude supporta i connector personalizzati nel suo piano gratuito (limitati a uno) e Cursor supporta i server MCP remoti in tutti i piani. Il lato Quickchat AI funziona allo stesso modo indipendentemente dall’app che si connette.

Che cosa può fare concretamente il server MCP? Può modificare il mio account Quickchat AI?

Espone uno strumento che pone una domanda al tuo agent. Non espone gli strumenti separati di gestione dell’account per modificare impostazioni, gestire la Knowledge Base o gestire altri agent. Il tuo agent può rispondere dalla sua Knowledge Base, salvare la conversazione, consumare crediti AI ed eseguire le Actions abilitate, incluse chiamate che modificano sistemi esterni. Controlla la conoscenza e le Actions disponibili per questo agent prima di condividere l’accesso. I limiti dei crediti messaggio e i rate limit continuano ad applicarsi.

L’URL del server MCP è un segreto? Che cosa succede se qualcuno lo trova?

L’URL contiene lo scenario id pubblico del tuo agent, lo stesso identificatore che il widget del tuo sito web espone già, quindi trattalo come un indirizzo e non come un segreto. L’accesso è controllato dal toggle Require sign-in (private). Private (l’impostazione predefinita) significa che solo i membri autenticati del tuo team possono connettersi. Public significa che chiunque abbia il link può usare l’agent, ogni risposta viene addebitata a te e i chiamanti condividono il rate limit del tuo agent.

AI Actions e human handoff funzionano ancora quando il mio agent viene chiamato tramite MCP?

Sì. Una chiamata MCP attraversa la stessa pipeline di risposta del widget del tuo sito web, quindi le risposte della Knowledge Base, le AI Actions personalizzate, Smart Data Gathering (lead capture) e Human Handoff vengono eseguiti tutti quando ChatGPT, Claude o Cursor chiamano il tuo agent. Un handoff, per esempio, inserisce la conversazione e i dettagli di contatto raccolti nella tua Inbox perché il tuo team possa fare follow-up, senza che l’utente lasci l’app di AI.

Come collego i miei dati o la mia knowledge base a ChatGPT?

Metti i tuoi dati nella Knowledge Base di un Quickchat AI Agent, attiva il suo server MCP e aggiungi l’URL del server a ChatGPT come connector. ChatGPT ottiene quindi uno strumento che chiede al tuo agent, e il tuo agent risponde dai tuoi dati. Non serve codice: la tua Knowledge Base è la sorgente dati e il server MCP è la connessione, quindi non c’è altro da collegare. Lo stesso URL funziona in Claude e Cursor.

Come creo un server MCP senza scrivere codice?

Non devi crearne uno. Ogni Quickchat AI Agent è già un server MCP, ospitato per te. Aggiungi conoscenza nella dashboard, attivi il server MCP, assegni un nome al suo unico strumento di richiesta e copi l’URL. Quickchat AI esegue e mantiene il server per te, quindi un server MCP no-code richiede pochi minuti.

Perché ChatGPT o Claude rifiutano di inoltrare le domande di follow-up del mio agent?

Perché l’AI chiamante tratta la descrizione del tuo strumento come un contratto. Se il tuo agent chiede dettagli di contatto ma la descrizione MCP dice che risponde solo a domande sulla documentazione, il modello chiamante interpreta quella richiesta inattesa come una possibile prompt injection e la filtra. Descrivere quella capacità nel campo MCP Description e limitare la raccolta dati a richieste esplicite può aiutare il client a capire il comportamento previsto. Il client decide comunque se inoltrare una domanda di follow-up o richiedere autorizzazione.

Qual è la differenza tra esporre il mio agent come server MCP e collegarlo a uno?

Direzione. Questa guida riguarda il servire: il tuo agent diventa uno strumento che ChatGPT, Claude e Cursor chiamano. La direzione opposta è consumare: il tuo agent chiama il server MCP di qualcun altro come strumento, per esempio quello di Shopify, per agire su dati live dello store. Un Quickchat AI Agent può fare entrambe le cose contemporaneamente.

Come vedo che cosa ChatGPT o Claude hanno chiesto davvero al mio agent?

Apri la Quickchat AI Inbox. Ogni scambio MCP viene registrato come conversazione con un badge di origine MCP, e i messaggi del visitatore sono le parole scritte dall’AI chiamante, di solito una parafrasi di ciò che il suo utente ha digitato. Le domande di follow-up nella stessa sessione arrivano nella stessa conversazione.

Il tuo Quickchat AI Agent ora funziona in entrambe le direzioni: parla con i tuoi utenti sui tuoi canali, e risponde ad altre AI come strumento. L’intera integrazione è un URL ospitato, privato per impostazione predefinita, con piano gratuito incluso. La conoscenza che già mantieni diventa ciò che ChatGPT, Claude e Cursor citano quando i loro utenti chiedono del tuo prodotto, i tuoi lead arrivano dall’interno delle app di AI di altre persone, e ogni scambio sta nella tua Inbox come conversazione leggibile tra due AI.

La costruzione richiede trenta minuti. Il lavoro interessante, come al solito, sono le parole: le tre stringhe che dicono ai modelli chiamanti a che cosa serve il tuo agent, e la conoscenza che rende le sue risposte degne di essere inoltrate.

Riferimento per la configurazione: Ottieni l’URL del tuo server MCP nella documentazione.