In questo tutorial, creerai un semplice Model Context Protocol server (MCP) che espone un unico strumento per la ricerca di tutorial IBM. Utilizzando il framework fastmcp e la libreria delle richieste, lo script scarica un indice JSON di tutorial da un URL remoto. Cerca quindi le corrispondenze con la query di un utente e restituisce un elenco di risultati formattato in modo ordinato. Aggiungerai anche la gestione degli errori per problemi di rete, JSON errato e problemi imprevisti, rendendo lo strumento robusto e adatto ai principianti. Infine, eseguirai il server MCP in modo che possa essere collegato e testato con un client come Cursor.
Sia gli sviluppatori enterprise che quelli di startup stanno sviluppando sempre più soluzioni basate su intelligenze artificiali (AI) generative. Per rendere le soluzioni più utili, hanno bisogno di informazioni e contesto aggiornati. Machine learning modelli hanno bisogno di interagire con strumenti, [interfacce di programmazione delle applicazioni] (https://www.ibm.com/it-it/think/topics/api)(API), kit di sviluppo software (SDK) e sistemi front-end affinché ciò avvenga.
MCP standardizza il modo in cui il contesto viene trasferito tra modelli AI e sistemi. Semplifica il coordinamento tra un modello linguistico di grandi dimensioni (LLM) e fonti di dati e strumenti esterni. Un'analogia comune è quella di pensare a MCP come a una porta USB-C per un LLM. Rendono un LLM molto più utile perché il modello ha accesso a funzionalità e dati che non facevano parte dell'addestramento del modello. Questa capacità è particolarmente utile quando si creano agenti AI.
MCP è stato sviluppato da Anthropic ed è stato adottato dai principali fornitori di AI tra cui OpenAI, Google DeepMind e il settore in generale. Fornisce un modo sicuro e standardizzato per i modelli AI di accedere e utilizzare dati, risorse (come i modelli di prompt) e strumenti esterni.
Inoltre, anche ambienti di sviluppo integrati (IDE) come Cursor e Visual Studio Code hanno adottato l'MCP, consentendo ai loro assistenti AI di accedere ai server MCP per renderne l'uso più pertinente al contesto e intuitivo per gli sviluppatori. Costruito come standard aperto, le organizzazioni utilizzano l'MCP come ponte tra il mondo stocastico dell'AI generativa e il mondo deterministico della maggior parte dei sistemi aziendali esistenti oggi. L'MCP fornisce a un LLM informazioni contestuali in modo simile ad altri modelli di progettazione che hanno iniziato a emergere come [retrieval-augmented generation] (https://www.ibm.com/it-it/think/topics/retrieval-augmented-generation) (RAG), tool calling e gli agenti AI.
Alcuni vantaggi dell'utilizzo di MCP rispetto a queste altre soluzioni includono:
- Scalabilità: i server MCP possono essere definiti e ospitati una sola volta e utilizzati da molti sistemi AI. Questa capacità limita la necessità di definire l'accesso agli stessi dati di origine, risorse e strumenti di AI per più sistemi di AI generativa.
- Recupero dei dati: a differenza dei RAG, in cui il recupero dei dati richiede la pre-elaborazione e la vettorializzazione prima della query, l'MCP è dinamico e consente fluttuazioni e aggiornamenti dalle fonti di informazioni in tempo reale.
- Complessità: l'MCP è abbastanza semplice da configurare e incorporare nelle applicazioni AI, come dimostriamo qui. È possibile utilizzare facilmente i file di configurazione per rendere portabile un server MCP in tutti gli ambienti.
- Indipendenza dalla piattaforma: oltre al fatto che è possibile creare server MCP con Python, TypeScript o altri linguaggi, non sono nemmeno accoppiati a una soluzione LLM specifica.
- Debug tramite un modello client/server: il client MCP invia richieste al server MCP, che quindi recupera i dati necessari da vari sistemi e fonti esterne, che si tratti di API, database o file locali. Questo approccio strutturato garantisce che il modello AI riceva un contesto coerente e pertinente, portando a output più precisi e affidabili. MCP utilizza JSON-RPC per codificare i messaggi e supporta 2 meccanismi di trasporto, stdio e HTTP in streaming. Nelle precedenti iterazioni del protocollo, supportava anche HTTP con eventi inviati dal server (SSE)
La necessità di tenersi costantemente aggiornati con le informazioni più recenti di cui la tua azienda ha bisogno può essere scoraggiante. MCP può aiutare a creare un contesto e incorporare nuove informazioni per i contratti man mano che vengono eseguiti, informazioni legacy che vengono digitalizzate ma non necessariamente rese digeribili e altro ancora. Queste informazioni possono essere sia interne che esterne, ma l'aggiunta del contesto evita la lunga necessità di riqualificare un LLM per essere utile.
Sono disponibili molti server MCP remoti e numerose implementazioni di riferimento da github.com
Questa guida dettagliata può essere trovata sul nostro repository GitHub insieme allo script server.py a cui farai riferimento durante la creazione del tuo server MCP. In questo tutorial verrà illustrata la creazione di un server MCP personalizzato di base in grado di:
Per facilitare la creazione di questo tutorial, abbiamo creato un meccanismo in base al quale il server che creerai potrà utilizzare facilmente i contenuti del nostro tutorial senza l'autenticazione richiesta.
- Python 3.11 o più recente installato sul tuo computer (controlla eseguendo python3 --version nel tuo terminale).
- Il modulo venv integrato è disponibile (viene fornito con Python sulla maggior parte dei sistemi; su alcune distribuzioni Linux potrebbe essere necessario installarlo separatamente con sudo apt install python3-venv).
- Un terminale a riga di comando (CLI):
- macOS o Linux: usa l'app Terminal (questi ambienti sono simili a Unix).
- Windows: usa PowerShell o prompt, con piccole differenze di sintassi spiegate nei prossimi passi.
- Un editor di testo o IDE a tua scelta
Crea una nuova directory e digita cd al suo interno
Assicurarsi di essere nella directory
Nota: su Windows, potresti essere in grado di sostituire
Una volta creato l'ambiente virtuale, è necessario attivarlo utilizzando il seguente comando
Una volta attivato, la tua shell ti mostrerà probabilmente
Ora è necessario installare il pacchetto Python per
Installa il
Al termine di questo passaggio, è possibile verificare che fastMCP sia installato correttamente eseguendo il seguente comando
Se ottieni un output simile al seguente, hai installato fastMCP nel tuo ambiente virtuale.
FastMCP version: 2.10.1
MCP version: 1.10.1
Python version: 3.11.13
Platform: macOS-15.5-arm64-arm-64bit
FastMCP root path: /opt/homebrew/lib/python3.11/site-packages
Ora che hai installato fastMCP, creiamo il nostro server MCP.
Creiamo un nuovo file nella directory e diamogli il nome
Una volta ottenuto quel file, aprilo e copia e incolla al suo interno il seguente frammento di codice
Esaminiamo il codice precedente e spieghiamo a cosa servono le parti principali.
Lo script inizia con l'importazione di FastMCP, che fornisce il framework per la creazione di un server MCP, e delle richieste utilizzate per scaricare i dati tramite HTTP. Abbiamo aggiunto una costante
Creiamo quindi un'istanza del server MCP con
The
La ricerca non distingue tra maiuscole e minuscole: la query viene convertita in minuscolo e anche il titolo e l'URL di ciascun tutorial vengono trasformati in minuscolo per consentire la corrispondenza. Se un tutorial contiene il termine di ricerca nel titolo o nell'URL, viene aggiunto a un elenco di risultati pertinenti.
Se nessun tutorial corrisponde alla ricerca, la funzione restituisce un messaggio descrittivo con l'indicazione che non è stato trovato nulla. Se ci sono corrispondenze, la funzione crea un elenco formattato e numerato che mostra il titolo, l'URL, la data e, se disponibile, l'autore di ogni tutorial. La formattazione utilizza il grassetto in stile Markdown per i titoli in modo che si distinguano nei client che lo supportano. Il testo formattato finale viene restituito come una singola stringa.
La funzione include la gestione mirata delle eccezioni:
Un gestore generale di
Ogni errore restituisce un messaggio descrittivo al chiamante invece di arrestare il programma.
In basso, lo
Ora che hai creato il server, devi abilitarlo nel tuo IDE prima di poterlo utilizzare. Esistono molti client che supportano l'MCP con vari livelli di integrazione con il protocollo. Il sito Web ufficiale di MCP fornisce un elenco esaustivo di client di esempio.
Se Cursor è installato, è possibile aggiungere il server MCP all'interno di Cursor seguendo queste istruzioni.
Apri le impostazioni di Cursor e vai su Strumenti e integrazioni. Seleziona Nuovo server MCP e incollalo nel file mcp.json che Cursor apre in una nuova scheda. Assicurati di sostituire <YOUR PATH> con la directory in cui ti trovi. Puoi eseguire il pwd nel tuo terminale per ottenere il percorso completo. Per ulteriori informazioni su Cursor e MCP, consulta la documentazione di Cursor.
{
"mcpServers": {
"tutorials": {
"command": "fastmcp",
"args": ["run <YOUR PATH>/ibmtutorialmcpserver/server.py"],
"env": {
}
}
}
}
Se sei un utente di Microsoft VS Code, puoi aggiungere il server MCP seguendo le istruzioni riportate qui. Prima di procedere, assicurati che Copilot sia configurato in VS Code.
Se desideri abilitare il server MCP utilizzando un file, crea un file .vscode/mcp.json nella directory di questo progetto e copia e incolla questo codice nel file. Assicurati di sostituire <IL TUO PERCORSO> con la directory in cui ti trovi. Puoi eseguire pwd nel tuo terminale per ottenere il percorso completo.
"servers": {
"IBM Tutorials": {
"type": "stdio",
"command": "fastmcp",
"args": [
"run",
"<YOUR PATH>/ibmtutorialmcpserver/server.py"
]
},
},
Ora che hai abilitato il tuo server MCP, facciamo in modo che il server sia in grado di utilizzare lo strumento creato in server.py. Se utilizzi VS Code, dai un'occhiata a questa documentazione.
Nella chat dell'IDE chiederò: "Quali sono alcuni tutorial IBM sulle serie temporali?" Quanto segue mostra l'output ricevuto, ma la tua risposta può variare a seconda del modello utilizzato e del tuo IDE.
Output:
Here are some IBM time series tutorials:
Time series forecasting with Lag-Llama (zero-shot learning)
Tutorial link
Predict overnight low temperatures using the Lag-Llama model in a zero-shot learning scenario.
Using the watsonx.ai Time Series Forecasting API to predict energy demand
Tutorial link
Predict energy demand with the watsonx.ai Time Series Forecasting API.
Authors: Aleksandra Kłeczek and Meredith Syed
Let me know if you want details or help with a specific tutorial.
Fantastico! L'agente è stato in grado di utilizzare lo
In questo tutorial hai imparato a creare un server MCP per effettuare ricerche in tutti i nostri tutorial utilizzando il client MCP che preferisci. Hai creato un server MCP con un unico strumento di ricerca che recupera un indice remoto JSON di tutorial, filtra i risultati in base a un termine di ricerca e li restituisce in un formato leggibile. Utilizza fastmcp per registrare ed eseguire lo strumento, richiede il recupero dei dati e include la gestione degli errori di rete, l'analisi e i problemi imprevisti. Una volta eseguito, il server può essere connesso dai client MCP per interrogare in tempo reale tutti i nostri tutorial.
Crea, implementa e gestisci assistenti e agenti AI potenti che automatizzano workflow e processi con l'AI generativa.
Costruisci il futuro della tua azienda con soluzioni AI di cui puoi fidarti.
I servizi di AI di IBM Consulting aiutano a reinventare il modo in cui le aziende lavorano con l'AI per la trasformazione.