MCP: Nuova Era Integrazione AI Azure

L’avvento dei Large Language Models (LLM) ha indubbiamente rivoluzionato il panorama dell’intelligenza artificiale. Tuttavia, una sfida persistente rimane: integrare efficacemente questi modelli con dati proprietari. Mentre gli LLM sono esperti nell’elaborazione di vaste quantità di informazioni da Internet, il loro vero potenziale risiede nel servire come interfacce di linguaggio naturale per le nostre applicazioni e dati, permettendoci di sfruttare le loro capacità predittive e generative all’interno di un ambiente controllato.

Per garantire l’affidabilità e la pertinenza degli output degli LLM, sono emerse diverse strategie, ciascuna progettata per colmare il divario tra questi modelli e set di dati specifici. Queste strategie vanno dalla creazione di embedding personalizzati e dall’impiego di tecniche di generazione aumentata dal recupero (RAG) - sfruttando database grafici per scoprire intricate relazioni all’interno dei dati - all’utilizzo di LLM per distillare e presentare dati ottenuti tramite chiamate OpenAPI attivate da prompt utente. Inoltre, il modello plug-in reso popolare da ChatGPT di OpenAI offre un’altra via per l’integrazione dei dati. Tra questi diversi approcci, il Model Context Protocol (MCP) si distingue come una soluzione promettente per standardizzare la connessione tra LLM e fonti di dati esterne.

Svelare il Model Context Protocol

Il Model Context Protocol, svelato da Anthropic alla fine del 2024, rappresenta un passo significativo verso la semplificazione dell’interazione tra LLM e dati specifici dell’utente. Questo protocollo sottolinea il ruolo critico del contesto nelle applicazioni AI, riconoscendo che la capacità dell’AI di fornire output coerenti e significativi dipende dalla disponibilità di informazioni contestuali pertinenti. Affidarsi esclusivamente ai prompt di chat per ottenere risposte sensate è, nel migliore dei casi, un esercizio di ottimismo e, nel peggiore dei casi, una ricetta per risultati inaccurati o fuorvianti. Per costruire agenti robusti e semi-autonomi capaci di orchestrare flussi di lavoro attorno ai nostri dati, è essenziale un meccanismo affidabile per fornire tali dati a questi agenti.

Come iniziativa open-source, MCP fornisce implementazioni SDK per una vasta gamma di linguaggi di programmazione, accompagnate da una documentazione completa all’interno del suo repository GitHub. Questa documentazione consente agli sviluppatori di implementare o utilizzare server MCP in modo efficace. La descrizione del progetto di MCP come una ‘porta USB-C per applicazioni AI’ cattura giustamente la sua essenza, evidenziando la sua capacità di standardizzare le connessioni a diverse fonti di dati. Costruito su una base standardizzata, MCP si integra facilmente con i progetti esistenti, interfacciandosi senza problemi con vari LLM e provider di inferenza.

L’architettura di MCP segue un modello client/server ben consolidato, in cui un broker si assume la responsabilità di tradurre le richieste MCP in richieste locali o remote. Questo design rispecchia la funzionalità di linguaggi di definizione dell’interfaccia come CORBA, trasformando MCP in un versatile livello di interoperabilità che facilita il passaggio senza soluzione di continuità tra fonti di informazione e applicazioni LLM. Sfruttando una connessione JSON RPC, MCP consente un controllo preciso a livello di singolo utente tramite strumenti come Azure API Management.

MCP promuove lo sviluppo di interfacce generiche per codice guidato dall’AI, come evidenziato dalla sua crescente adozione attraverso le piattaforme di sviluppo AI di Microsoft. Dalla sua integrazione all’interno dello strumento di orchestrazione del modello Semantic Kernel alla sua implementazione come server MCP compatibili con Azure OpenAI e Azure AI Foundry, MCP sta guadagnando rapidamente terreno. Microsoft sta anche migliorando Azure API Management con funzionalità per controllare l’accesso ai dati in base alle credenziali utente, rafforzando ulteriormente il ruolo di MCP in implementazioni AI sicure e governate.

Azure MCP Server: Una Prima Implementazione

L’Azure MCP Server open-source, recentemente rilasciato in anteprima pubblica, esemplifica una prima implementazione di MCP sulla piattaforma Microsoft. Questo server funge da broker comune per l’accesso AI ai principali servizi Azure, aderendo ai principi open-source abbracciati da molti recenti progetti Azure. Il suo codice è facilmente accessibile su GitHub. L’Azure MCP Server fornisce l’accesso a una parte sostanziale della piattaforma Azure, inclusi database, soluzioni di storage e servizi come l’interfaccia della riga di comando di Azure (Azure CLI).

L’inclusione del supporto per l’Azure CLI (e la Developer CLI) è particolarmente degna di nota, poiché consente agli agenti guidati da MCP di interagire direttamente con Azure, trattando le chiamate MCP come operatori. Questa capacità apre la strada alla costruzione di agenti che offrono un’interfaccia self-service in linguaggio naturale ad Azure. Ad esempio, un agente potrebbe prendere una descrizione di un’infrastruttura e generare automaticamente i modelli ARM necessari per la sua implementazione. Estendendo ulteriormente questo concetto, si potrebbe immaginare un agente multimodale che analizza uno schizzo su una lavagna, deriva una descrizione delle risorse necessarie e quindi implementa l’infrastruttura, consentendo lo sviluppo immediato del codice. Ulteriori servizi di amministrazione del sistema accessibili tramite l’Azure MCP Server comprendono l’elenco dei gruppi di risorse correnti e lo sfruttamento di KQL per interrogare i log di monitoraggio di Azure.

Integrazione di Azure MCP Server con GitHub Copilot Chat

Poiché aderisce allo standard MCP, l’Azure MCP Server si integra perfettamente con qualsiasi strumento AI che supporti MCP, come la modalità agente di GitHub Copilot. Semplicemente aggiungendo il server al tuo tenant, puoi iniziare a porre domande tramite Copilot, direttamente o tramite l’integrazione di Visual Studio Code. Quest’ultima opzione fornisce un mezzo efficace per imparare a sfruttare MCP e costruire prompt per le tue applicazioni AI basate su MCP.

Attualmente, Microsoft non ha ancora rilasciato uno strumento MCP dedicato per i suoi linguaggi di programmazione, rendendo necessario l’uso di SDK ufficiali per sviluppare codice personalizzato. Con il supporto per TypeScript, C# e Python, gli sviluppatori hanno accesso agli strumenti necessari per creare i propri agenti Azure MCP. La sperimentazione può essere condotta all’interno di Visual Studio Code, utilizzando le credenziali Azure esistenti.

Il server opera sul tuo PC di sviluppo e richiede Node.js. L’installazione viene eseguita direttamente dal repository GitHub del progetto in VS Code. Una volta installato, assicurati che sia l’estensione GitHub Copilot che l’estensione GitHub Copilot Chat siano configurate per utilizzare la modalità agente sperimentale (accessibile tramite lo strumento di impostazioni di VS Code). Successivamente, apri il riquadro della chat di GitHub Copilot e passa alla modalità agente. Verifica che l’Azure MCP Server sia installato all’interno del menu a tendina degli strumenti. Ora puoi inviare query, come ‘Elenca le mie sottoscrizioni Azure’.

Lo strumento risultante si rivela prezioso per chiunque lavori con Azure e si estende oltre l’integrazione di Copilot. L’Azure MCP Server può essere installato ovunque sia supportato Node.js, consentendo la sua integrazione in agenti personalizzati.

Il Ruolo di MCP in Azure AI Foundry

Microsoft sta rapidamente espandendo il suo portafoglio di strumenti MCP, esponendo le funzionalità esistenti tramite MCP o abilitandone il consumo all’interno di applicazioni agentiche. Questo rapido lancio include strumenti per lo sviluppo di agenti no-code di Copilot Studio, annunciato durante la stesura di questo articolo.

Azure AI Foundry, la principale piattaforma di sviluppo di Microsoft per lo sviluppo di applicazioni AI su larga scala, sta anche attivamente sviluppando un server MCP per integrare l’AI Agent Service di Azure. Questa integrazione mira a connettere gli agenti in esecuzione all’interno di Azure AI Foundry con i client che operano come parte di altre applicazioni AI.

Questo servizio ti consente di riutilizzare rapidamente il codice e i servizi AI esistenti e collegarli a nuove applicazioni. Servizi come Fabric espongono le loro funzionalità di agente come endpoint AI Agent Service, consentendo alle applicazioni AI di connettersi senza problemi ai dati di base line-of-business, fornendo un ancoraggio essenziale per mitigare i rischi di allucinazioni ed errori.

Una volta installato, il server fornisce una serie di azioni MCP per connettersi agli agenti e inviare loro query. Può anche elencare gli agenti disponibili o utilizzare un agente predefinito per attività specifiche. È incluso il supporto per i thread di conversazione, fornendo agli agenti una memoria semantica di base per conversazioni contestuali. Avrai bisogno degli ID agente di Azure AI Agent Service per invocarli tramite MCP.

Il server è implementato in Python e può essere installato utilizzando l’Azure CLI tramite pip. In alternativa, è disponibile una versione TypeScript per coloro che la preferiscono. Simile all’Azure MCP Server, questo server opera al di fuori dell’ambiente AI Foundry, consentendogli di essere installato su un PC di sviluppo o come parte di un’applicazione ospitata nel cloud all’interno del proprio contenitore o VM, con supporto per Windows, macOS e Linux.

Sfruttare i Server MCP dalle Applicazioni AI di Semantic Kernel

Come standard aperto, MCP consente la compatibilità del server con qualsiasi client. Il repository GitHub fornisce istruzioni su come stabilire una connessione utilizzando Claude Desktop di Anthropic, ma il vero valore risiede nella creazione di flussi di lavoro di agenti personalizzati all’interno di Semantic Kernel.

Microsoft fornisce codice di esempio che dimostra come integrare il supporto MCP in un’orchestrazione di Semantic Kernel, trattandolo come un plug-in del kernel che si integra con le familiari chiamate di funzione. Queste integrazioni possono essere incapsulate come agenti e accessibili secondo necessità. Mentre l’integrazione di MCP all’interno di Semantic Kernel è ancora in fase di sviluppo, si integra perfettamente con il suo set di funzionalità esistente, richiedendo un codice aggiuntivo minimo per esporre gli strumenti MCP da un server alle applicazioni AI.

Strumenti come MCP sono componenti critici di uno stack AI moderno, fornendo un approccio standardizzato per la creazione di interfacce individuabili sia per applicazioni locali che remote. Una volta definiti, gli strumenti MCP vengono facilmente invocati, con un server che fornisce un elenco di strumenti disponibili e MCP che fornisce agli LLM un mezzo standardizzato per chiamare tali strumenti e utilizzare i loro output. Questo approccio contribuisce in modo significativo a fornire uno strumento di ancoraggio universale per le applicazioni AI, lavorando con API standard, query di database e agenti AI allo stesso modo.