Cos'è il Model Context Protocol
Il Model Context Protocol (MCP) è un protocollo aperto presentato da Anthropic a novembre 2024 per collegare le applicazioni di intelligenza artificiale a fonti di dati e strumenti esterni. Prima di MCP ogni assistente aveva le sue integrazioni, scritte una per una; con MCP un servizio si collega una volta e qualunque client compatibile lo può usare. Per questo viene spesso descritto come una porta standard per l'AI.
Nel protocollo ci sono tre ruoli. L'host è l'applicazione che la persona usa, per esempio Claude o ChatGPT. Il client è la parte dell'host che parla con un server, uno per ogni collegamento. Il server è il servizio che offre dati e azioni: un archivio di documenti, un CRM, una piattaforma dati. I messaggi viaggiano in formato JSON-RPC 2.0, lo stesso per tutti.
Cosa fa un server MCP (strumenti, risorse, permessi)
Un server MCP dichiara cosa sa fare, e il client lo mostra al modello. Le specifiche prevedono tre tipi di capacità.
| Capacità | Cosa è | Esempio su dati aziendali |
|---|---|---|
| Strumenti (tools) | Funzioni che il modello può chiamare, con argomenti descritti | Eseguire una query in sola lettura, elencare i dataset di un progetto, creare una dashboard |
| Risorse (resources) | Contenuti che l'applicazione può leggere e dare al modello come contesto | La descrizione di un dataset, un documento, lo schema delle colonne |
| Prompt | Modelli di richiesta preparati dal server | Un'analisi guidata del margine mensile |
Il punto più importante è che il server decide cosa esporre e a chi. Il modello non vede il database: vede gli strumenti che il server gli offre, e ogni chiamata passa dai permessi del server. Un buon server MCP per dati aziendali espone dati già governati, come dataset con campi stabili e definizioni condivise, invece delle tabelle grezze, perché un modello che sceglie da solo tra cento tabelle con nomi simili sbaglia più spesso.
Locale o remoto: le differenze
| Server locale | Server remoto | |
|---|---|---|
| Dove gira | Sul computer della persona, avviato dall'applicazione | Su un servizio in rete, raggiunto con un indirizzo HTTPS |
| Trasporto | stdio (ingresso e uscita del processo) | Streamable HTTP |
| Accesso | Le credenziali stanno nella configurazione locale | Login con OAuth: la persona accede al servizio e concede i permessi |
| Adatto a | Sviluppatori, file locali, strumenti personali | Dati aziendali condivisi, più persone, controllo centrale |
| Revoca | Togliere il server dalla configurazione | Revocare il collegamento dal servizio, con effetto immediato |
Sicurezza: OAuth, permessi, revoca
Per i server remoti le specifiche MCP adottano OAuth 2.1: l'assistente non riceve mai la password, ma un token limitato nel tempo e nei permessi, ottenuto dopo che la persona ha fatto il login sul servizio e ha approvato una pagina di consenso. Le domande da fare a qualunque server MCP prima di collegarlo sono sempre le stesse.
- Con quali permessi lavora l'assistente? Quelli della persona che l'ha collegato, mai di più, e solo quelli che ha concesso.
- Cosa può modificare? Le letture sono una cosa, le scritture un'altra: chi approva una modifica proposta dall'assistente?
- Chi lo può collegare? Un amministratore deve poter decidere se i connettori sono attivi e quali assistenti sono ammessi.
- Come si revoca? Il collegamento va revocato dal servizio, con effetto alla chiamata successiva, senza dipendere dall'assistente.
- Cosa resta registrato? Ogni chiamata, con l'assistente e il collegamento che l'ha fatta.
Il server MCP di Muvia risponde così: un collegamento è sempre una persona, un'azienda e un assistente; il login è quello di Muvia, con il secondo fattore se l'azienda lo chiede; ciò che l'assistente può fare è l'intersezione tra i ruoli attuali della persona, i permessi concessi, i moduli dell'azienda e il consenso dell'amministratore, ricalcolata a ogni chiamata. Ogni scrittura è una proposta che una persona approva in Muvia, salvo l'autonomia che un amministratore sceglie tipo per tipo, e le azioni sulle macchine aspettano sempre una persona. La guida al collegamento descrive i sei permessi uno per uno.
Esempio: chiedere a Claude il margine del mese
Una controller ha collegato Claude a Muvia concedendo la lettura e le letture SQL. Scrive in chat: «Nel progetto Controllo, qual è stato il margine di settembre per business unit, rispetto ad agosto?». Ecco cosa succede.
- Claude legge gli strumenti disponibili e chiama quello che elenca i dataset del progetto: trova il dataset del conto economico mensile, con le sue colonne.
- Costruisce una query SQL sul dataset e la passa allo strumento
query_sql. Muvia la esegue in sola lettura, con i permessi della controller, nei soli progetti a cui è assegnata. - Muvia restituisce le righe; Claude scrive la risposta con la tabella del margine per business unit e la differenza su agosto.
- Nella conversazione la chiamata allo strumento resta visibile con la sua query, che la controller può aprire e leggere.
Lo strumento whoami è il controllo più semplice: alla domanda «Chi sono su Muvia?» l'assistente risponde con il nome della persona, l'azienda e i permessi concessi. È la prima cosa da chiedere dopo un collegamento.
Come verificare una risposta (la query sotto)
Un assistente collegato ai dati sbaglia in modi diversi da uno che inventa: di solito il numero è calcolato davvero, ma su una definizione sbagliata. Per esempio il margine calcolato sulle fatture senza togliere le note di credito, o un mese preso per data di consegna invece che di fattura. Per questo la risposta va giudicata dalla query, non dal tono.
- Leggi la query: tabella o dataset usato, filtri sul periodo, cosa viene sommato. Chi non conosce l'SQL può chiedere all'assistente di spiegarla riga per riga.
- Controlla la fonte: un dataset certificato, con una definizione condivisa, vale più di una tabella grezza scelta dal modello.
- Confronta con un numero noto: il totale del mese in un cruscotto o in un report che l'azienda usa già.
- Rieseguila: la stessa query, incollata nell'editor SQL di Muvia, deve dare lo stesso risultato.
È il principio su cui sono costruiti gli agenti di Muvia: ogni risposta, dentro Muvia con Athena o fuori con l'assistente che l'azienda ha già scelto, arriva con la query che l'ha prodotta.
Elenco dei client compatibili
MCP è supportato da un numero crescente di applicazioni. Tra le più diffuse ci sono Claude (sul web, nell'app desktop e in Claude Code), ChatGPT con i connettori, Visual Studio Code, Cursor e Microsoft Copilot. Le modalità cambiano da un client all'altro e nel tempo: alcuni accettano solo server remoti con OAuth, altri anche server locali, alcuni richiedono un piano a pagamento o l'abilitazione da parte di un amministratore.
Il server di Muvia è un server remoto: per impostazione predefinita un'azienda ammette solo gli assistenti verificati da Muvia, cioè Claude, ChatGPT e Visual Studio Code, e un amministratore può ammetterne altri. Claude Code si collega con il comando claude mcp add --transport http. I passi per ogni client sono nella guida al collegamento; i dettagli tecnici del protocollo, dei token e dei permessi in Agenti e MCP e nella documentazione per sviluppatori.
Domande frequenti
È un servizio che un assistente AI può interrogare con un protocollo standard, il Model Context Protocol, per leggere dati o compiere azioni, con i permessi di chi lo usa. Si collega una volta e funziona con tutti i client compatibili.
No, se è progettato bene. Il modello vede solo gli strumenti che il server espone e ogni chiamata passa dai permessi della persona collegata. Nel server di Muvia l'assistente raggiunge solo ciò che il ruolo della persona e i permessi concessi consentono, e le query sono in sola lettura.
Il server locale gira sul computer della persona e comunica con l'applicazione attraverso il processo; il server remoto è un servizio in rete raggiunto con un indirizzo HTTPS e un login OAuth. Per dati aziendali condivisi si usa di solito il server remoto.
Dipende dal server e dai permessi. Con Muvia ogni scrittura è una proposta che una persona approva in Muvia, a meno che un amministratore non scelga l'esecuzione immediata per quel tipo di modifica; le azioni sulle macchine aspettano sempre una persona.
Revocando il collegamento dal servizio. In Muvia ogni persona revoca i propri collegamenti in Impostazioni → Connettori AI e un amministratore quelli di tutta l'azienda; la revoca vale dalla chiamata successiva.