L'implementazione pratica è il momento in cui la potenza del Model Context Protocol (MCP) diventa tangibile. Sebbene comprendere la teoria e l'architettura dietro MCP sia importante, il vero valore emerge quando applichi questi concetti per costruire, testare e distribuire soluzioni che risolvono problemi reali. Questo capitolo colma il divario tra conoscenza concettuale e sviluppo pratico, guidandoti nel processo di realizzazione di applicazioni basate su MCP.
Che tu stia sviluppando assistenti intelligenti, integrando l'IA nei flussi di lavoro aziendali o creando strumenti personalizzati per l'elaborazione dei dati, MCP offre una base flessibile. Il suo design indipendente dal linguaggio e gli SDK ufficiali per i linguaggi di programmazione più diffusi lo rendono accessibile a un ampio spettro di sviluppatori. Sfruttando questi SDK, puoi prototipare rapidamente, iterare e scalare le tue soluzioni su diverse piattaforme e ambienti.
Nelle sezioni seguenti troverai esempi pratici, codice di esempio e strategie di distribuzione che mostrano come implementare MCP in C#, Java, TypeScript, JavaScript e Python. Imparerai anche come eseguire il debug e testare i server MCP, gestire le API e distribuire soluzioni nel cloud usando Azure. Queste risorse pratiche sono pensate per accelerare il tuo apprendimento e aiutarti a costruire con sicurezza applicazioni MCP robuste e pronte per la produzione.
Questa lezione si concentra sugli aspetti pratici dell'implementazione MCP in diversi linguaggi di programmazione. Esploreremo come utilizzare gli SDK MCP in C#, Java, TypeScript, JavaScript e Python per costruire applicazioni robuste, eseguire il debug e testare i server MCP, e creare risorse, prompt e strumenti riutilizzabili.
Al termine di questa lezione, sarai in grado di:
- Implementare soluzioni MCP utilizzando gli SDK ufficiali in vari linguaggi di programmazione
- Eseguire il debug e testare sistematicamente i server MCP
- Creare e utilizzare funzionalità server (Risorse, Prompt e Strumenti)
- Progettare flussi di lavoro MCP efficaci per compiti complessi
- Ottimizzare le implementazioni MCP per prestazioni e affidabilità
Il Model Context Protocol offre SDK ufficiali per diversi linguaggi:
Questa sezione fornisce esempi pratici di implementazione MCP in diversi linguaggi di programmazione. Puoi trovare codice di esempio nella directory samples organizzata per linguaggio.
Il repository include implementazioni di esempio nei seguenti linguaggi:
Ogni esempio dimostra i concetti chiave di MCP e i modelli di implementazione specifici per quel linguaggio ed ecosistema.
I server MCP possono implementare qualsiasi combinazione di queste funzionalità:
Le risorse forniscono contesto e dati da utilizzare per l'utente o il modello AI:
- Archivi di documenti
- Basi di conoscenza
- Fonti di dati strutturati
- Sistemi di file
I prompt sono messaggi e flussi di lavoro predefiniti per gli utenti:
- Template di conversazione predefiniti
- Modelli di interazione guidata
- Strutture di dialogo specializzate
Gli strumenti sono funzioni che il modello AI può eseguire:
- Utilità per l'elaborazione dei dati
- Integrazioni con API esterne
- Capacità computazionali
- Funzionalità di ricerca
Il repository ufficiale del C# SDK contiene diversi esempi che mostrano vari aspetti di MCP:
- Basic MCP Client: esempio semplice che mostra come creare un client MCP e chiamare strumenti
- Basic MCP Server: implementazione minima di un server con registrazione base degli strumenti
- Advanced MCP Server: server completo con registrazione strumenti, autenticazione e gestione degli errori
- Integrazione ASP.NET: esempi che mostrano l'integrazione con ASP.NET Core
- Pattern di Implementazione degli Strumenti: vari pattern per implementare strumenti con diversi livelli di complessità
L’SDK MCP per C# è in anteprima e le API potrebbero cambiare. Aggiorneremo continuamente questo blog man mano che l’SDK evolve.
-
Costruisci il tuo primo MCP Server.
Per esempi completi di implementazione in C#, visita il repository ufficiale degli esempi C# SDK
Il Java SDK offre opzioni robuste per l’implementazione MCP con funzionalità di livello enterprise.
- Integrazione con Spring Framework
- Forte tipizzazione
- Supporto alla programmazione reattiva
- Gestione completa degli errori
Per un esempio completo di implementazione Java, consulta Java sample nella directory degli esempi.
Il JavaScript SDK offre un approccio leggero e flessibile all’implementazione MCP.
- Supporto per Node.js e browser
- API basata su Promise
- Facile integrazione con Express e altri framework
- Supporto WebSocket per lo streaming
Per un esempio completo di implementazione JavaScript, consulta JavaScript sample nella directory degli esempi.
Il Python SDK offre un approccio "pythonic" all’implementazione MCP con ottime integrazioni per framework ML.
- Supporto async/await con asyncio
- Integrazione con FastAPI
- Registrazione semplice degli strumenti
- Integrazione nativa con librerie ML popolari
Per un esempio completo di implementazione Python, consulta Python sample nella directory degli esempi.
Azure API Management è una soluzione efficace per proteggere i server MCP. L’idea è mettere un’istanza di Azure API Management davanti al tuo server MCP e lasciargli gestire funzionalità che probabilmente vorrai come:
- limitazione del traffico (rate limiting)
- gestione dei token
- monitoraggio
- bilanciamento del carico
- sicurezza
Ecco un esempio Azure che fa esattamente questo, cioè creare un MCP Server e proteggerlo con Azure API Management.
Guarda come avviene il flusso di autorizzazione nell’immagine sottostante:
Nell’immagine precedente, avvengono le seguenti operazioni:
- Autenticazione/Autorizzazione tramite Microsoft Entra.
- Azure API Management agisce come gateway e utilizza policy per indirizzare e gestire il traffico.
- Azure Monitor registra tutte le richieste per analisi successive.
Vediamo più nel dettaglio il flusso di autorizzazione:
Scopri di più sulla specifica di autorizzazione MCP
Vediamo se riusciamo a distribuire l’esempio menzionato prima:
-
Clona il repository
git clone https://github.com/Azure-Samples/remote-mcp-apim-functions-python.git cd remote-mcp-apim-functions-python -
Registra il provider di risorse
Microsoft.App.- Se usi Azure CLI, esegui
az provider register --namespace Microsoft.App --wait. - Se usi Azure PowerShell, esegui
Register-AzResourceProvider -ProviderNamespace Microsoft.App. Poi esegui(Get-AzResourceProvider -ProviderNamespace Microsoft.App).RegistrationStatedopo un po’ per verificare se la registrazione è completata.
- Se usi Azure CLI, esegui
-
Esegui questo comando azd per predisporre il servizio di API Management, la function app (con codice) e tutte le altre risorse Azure necessarie
azd up
Questo comando dovrebbe distribuire tutte le risorse cloud su Azure
-
In una nuova finestra del terminale, installa ed esegui MCP Inspector
npx @modelcontextprotocol/inspector
Dovresti vedere un’interfaccia simile a:
-
CTRL clicca per caricare l’app web MCP Inspector dall’URL mostrato dall’app (es. http://127.0.0.1:6274/#resources)
-
Imposta il tipo di trasporto su
SSE -
Imposta l’URL sul tuo endpoint SSE di API Management in esecuzione mostrato dopo
azd upe Connetti:https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse
-
Elenca gli Strumenti. Clicca su uno strumento e Esegui Strumento.
Se tutti i passaggi sono andati a buon fine, ora dovresti essere connesso al server MCP e aver potuto chiamare uno strumento.
Remote-mcp-functions: Questa serie di repository è un template quickstart per costruire e distribuire server MCP remoti personalizzati usando Azure Functions con Python, C# .NET o Node/TypeScript.
Gli esempi forniscono una soluzione completa che permette agli sviluppatori di:
- Costruire ed eseguire localmente: sviluppare e fare il debug di un server MCP su macchina locale
- Distribuire su Azure: distribuire facilmente nel cloud con un semplice comando azd up
- Connettersi dai client: connettersi al server MCP da vari client, incluso il modo agente Copilot di VS Code e lo strumento MCP Inspector
- Sicurezza by design: il server MCP è protetto tramite chiavi e HTTPS
- Opzioni di autenticazione: supporta OAuth usando autenticazione integrata e/o API Management
- Isolamento di rete: permette isolamento di rete usando Azure Virtual Networks (VNET)
- Architettura serverless: sfrutta Azure Functions per esecuzione scalabile e basata su eventi
- Sviluppo locale: supporto completo per sviluppo e debug locale
- Distribuzione semplice: processo di distribuzione semplificato su Azure
Il repository include tutti i file di configurazione necessari, codice sorgente e definizioni infrastrutturali per iniziare rapidamente con un’implementazione MCP pronta per la produzione.
-
Azure Remote MCP Functions Python - Esempio di implementazione MCP usando Azure Functions con Python
-
Azure Remote MCP Functions .NET - Esempio di implementazione MCP usando Azure Functions con C# .NET
-
Azure Remote MCP Functions Node/Typescript - Esempio di implementazione MCP usando Azure Functions con Node/TypeScript.
- Gli SDK MCP forniscono strumenti specifici per linguaggio per implementare soluzioni MCP robuste
- Il processo di debug e test è fondamentale per applicazioni MCP affidabili
- I template di prompt riutilizzabili permettono interazioni AI coerenti
- Flussi di lavoro ben progettati possono orchestrare compiti complessi usando più strumenti
- Implementare soluzioni MCP richiede attenzione a sicurezza, prestazioni e gestione degli errori
Progetta un flusso di lavoro MCP pratico che affronti un problema reale nel tuo ambito:
- Identifica 3-4 strumenti che sarebbero utili per risolvere questo problema
- Crea un diagramma del flusso di lavoro che mostri come questi strumenti interagiscono
- Implementa una versione base di uno degli strumenti usando il linguaggio che preferisci
- Crea un template di prompt che aiuti il modello a usare efficacemente il tuo strumento
Successivo: Argomenti Avanzati
Disclaimer:
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica Co-op Translator. Pur impegnandoci per garantire l’accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un umano. Non ci assumiamo alcuna responsabilità per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione.


