Il Model Context Protocol (MCP) è un protocollo aperto sviluppato da Anthropic che fornisce una modalità standardizzata per collegare modelli linguistici a qualsiasi fonte di dati o strumento. MCP consente di esporre i dati attraverso server MCP leggeri, mentre si costruiscono applicazioni AI come client MCP che si connettono a questi server.

La necessità di MCP deriva dalle sfide che le organizzazioni affrontano nell'implementazione di agenti e sistemi basati su agenti. Gli agenti utilizzano funzioni esterne per eseguire azioni specifiche o recuperare informazioni che non possiedono internamente. Tuttavia, l'integrazione di questi strumenti può essere difficile, soprattutto quando si tratta di implementare multiple strumenti, chiamate di funzioni e orchestrazione dei flussi di lavoro.

Il Model Context Protocol (MCP) risolve questi problemi fornendo una soluzione standardizzata per l'integrazione di strumenti e dati esterni con i modelli linguistici. MCP utilizza un'architettura client-server che include i seguenti componenti: host, client, server e fonti di dati.

Architettura MCP

L'architettura MCP si basa su un protocollo di comunicazione che consente la connessione tra client e server. Il protocollo utilizza JSON-RPC 2.0 per lo scambio di messaggi e definisce le regole e gli standard per l'interazione tra client e server.

Il workflow di MCP prevede che il client (l'applicazione host) identifichi la necessità di dati esterni e si connetta al server MCP corrispondente. Il server MCP restituisce i dati richiesti, che vengono poi integrati con il prompt originale per generare una risposta completa e arricchita.

Componenti dell'architettura MCP

I componenti dell'architettura MCP sono:

    • Host: il programma o lo strumento AI che richiede l'accesso ai dati attraverso il protocollo MCP.
    • Client: il client MCP che mantiene una connessione one-to-one con il server.
    • Server: il server MCP che espone le capacità attraverso il protocollo MCP standardizzato.
    • Fonti di dati: le fonti di dati locali o esterne che il server MCP può connettersi per recuperare i dati richiesti.

Implementazione di MCP con FastMCP e FastAPI

Esistono due approcci per implementare server MCP: FastMCP e FastAPI. Entrambi sono compatibili con l'architettura MCP e possono essere utilizzati a seconda delle esigenze.

FastMCP è una soluzione leggera e semplice per il prototipazione rapida e gli scenari in cui la velocità di sviluppo è fondamentale. FastAPI è una soluzione più completa e flessibile per gli scenari più complessi che richiedono personalizzazioni avanzate.

La scelta tra FastMCP e FastAPI dipende dalle esigenze specifiche del progetto. FastMCP è ideale per i progetti che richiedono una rapida implementazione e una semplicità di utilizzo, mentre FastAPI è più adatto per i progetti che richiedono una maggiore flessibilità e personalizzazione.

Solution Overview

La soluzione proposta utilizza Amazon SageMaker AI come ambiente di hosting per i modelli linguistici e i fondamenti della ragione (FMs). L'architettura può essere facilmente adattata per supportare anche Amazon Bedrock.

La soluzione prevede l'utilizzo di MCP come protocollo di comunicazione tra il client e il server. Il client si connette al server MCP per recuperare i dati richiesti, che vengono poi integrati con il prompt originale per generare una risposta completa e arricchita.

La soluzione proposta offre una serie di vantaggi rispetto alle tradizionali API e microservizi, tra cui una maggiore efficienza, sicurezza e scalabilità. Inoltre, MCP consente una comunicazione bidirezionale in tempo reale e una migliore isolazione delle problematiche.