Condividi tramite


Introduzione all'intelligenza artificiale .NET e al protocollo del contesto del modello

Il protocollo MCP (Model Context Protocol) è un protocollo aperto progettato per standardizzare le integrazioni tra app di intelligenza artificiale e strumenti esterni e origini dati. Usando MCP, gli sviluppatori possono migliorare le funzionalità dei modelli di intelligenza artificiale, consentendo loro di produrre risposte più accurate, pertinenti e consapevoli del contesto.

Ad esempio, usando MCP, è possibile connettere l'LLM alle risorse, ad esempio:

  • Database di documenti o servizi di archiviazione.
  • API Web che espongono dati aziendali o logica.
  • Strumenti che gestiscono i file o eseguono attività locali nel dispositivo di un utente.

Molti prodotti Microsoft supportano già MCP, tra cui:

È possibile usare MCP C# SDK per creare rapidamente integrazioni MCP e passare da modelli di intelligenza artificiale diversi senza modifiche significative al codice.

Architettura MCP client-server

MCP usa un'architettura client-server che consente a un'app basata su intelligenza artificiale (l'host) di connettersi a più server MCP tramite client MCP:

  • Host MCP: strumenti di intelligenza artificiale, editor di codice o altro software che migliorano i modelli di intelligenza artificiale usando risorse contestuali tramite MCP. Ad esempio, GitHub Copilot in Visual Studio Code può fungere da host MCP e usare client e server MCP per espanderne le funzionalità.
  • Client MCP: client usati dall'applicazione host per connettersi ai server MCP per recuperare i dati contestuali.
  • Server MCP: servizi che espongono funzionalità ai client tramite MCP. Ad esempio, un server MCP potrebbe fornire un'astrazione su un'API REST o un'origine dati locale per fornire dati aziendali al modello di intelligenza artificiale.

Il diagramma seguente illustra questa architettura:

Diagramma che mostra il modello di architettura di MCP, inclusi host, client e server.

Il client e il server MCP possono scambiare un set di messaggi standard:

Messaggio Descrizione
InitializeRequest Questa richiesta viene inviata dal client al server quando si connette per la prima volta, chiedendo di iniziare l'inizializzazione.
ListToolsRequest Inviato dal client per richiedere un elenco di strumenti del server.
CallToolRequest Utilizzato dal client per richiamare uno strumento fornito dal server.
ListResourcesRequest Inviato dal client per richiedere un elenco delle risorse del server disponibili.
ReadResourceRequest Inviato dal client al server per leggere un URI di risorsa specifico.
ListPromptsRequest Inviato dal client per richiedere un elenco di prompt e modelli di prompt disponibili dal server.
GetPromptRequest Usato dal client per ottenere una richiesta fornita dal server.
PingRequest Ping, emesso dal server o dal client, per verificare che l'altra parte sia ancora attiva.
CreateMessageRequest Richiesta da parte del server di effettuare un campionamento su un LLM attraverso il client. Il client ha la massima discrezione su quale modello selezionare. Il cliente deve anche informare l'utente prima di iniziare il campionamento, per consentire loro di esaminare la richiesta (intervento umano) e decidere se approvarla.
SetLevelRequest Richiesta inviata dal client al server per abilitare o regolare la registrazione.

Sviluppare con MCP C# SDK

Gli sviluppatori .NET possono usare MCP creando client e server MCP per migliorare le app con integrazioni personalizzate. MCP riduce la complessità della connessione di un modello di intelligenza artificiale a vari strumenti, servizi e origini dati.

McP C# SDK ufficiale è disponibile tramite NuGet e consente di creare client e server MCP per app e librerie .NET. L'SDK viene gestito tramite la collaborazione tra Microsoft, Anthropic e l'organizzazione del protocollo aperto MCP.

Per iniziare, aggiungere MCP C# SDK al progetto:

dotnet add package ModelContextProtocol --prerelease

Invece di creare connettori univoci per ogni punto di integrazione, è spesso possibile sfruttare o fare riferimento a integrazioni predefinite di diversi provider, ad esempio GitHub e Docker:

Integrazione con Microsoft.Extensions.AI

MCP C# SDK dipende dalle librerie Microsoft.Extensions.AI per gestire varie interazioni e attività di intelligenza artificiale. Queste librerie di estensioni forniscono tipi di base e astrazioni per l'uso dei servizi di intelligenza artificiale, in modo che gli sviluppatori possano concentrarsi sulla scrittura di codice sulle funzionalità di intelligenza artificiale concettuali anziché su piattaforme o implementazioni di provider specifiche.

Visualizzare le dipendenze di MCP C# SDK nella pagina del pacchetto NuGet.

Altre risorse di sviluppo MCP .NET

Vari strumenti, servizi e risorse di apprendimento sono disponibili negli ecosistemi .NET e Azure per facilitare la creazione di client e server MCP o l'integrazione con i server MCP esistenti.

Introduzione agli strumenti di sviluppo seguenti:

Altre informazioni su .NET e MCP usando queste risorse: