Questo repository contiene un'implementazione in Python del Protocollo Model Context (MCP), che mostra come creare sia un'applicazione server che client che comunicano utilizzando lo standard MCP.
L'implementazione MCP è composta da due componenti principali:
-
MCP Server (
server.py) - Un server che espone:- Tools: Funzioni che possono essere chiamate da remoto
- Resources: Dati che possono essere recuperati
- Prompts: Modelli per generare prompt per modelli linguistici
-
MCP Client (
client.py) - Un'applicazione client che si connette al server e utilizza le sue funzionalità
Questa implementazione dimostra diverse funzionalità chiave di MCP:
completion- Genera completamenti di testo da modelli AI (simulato)add- Calcolatrice semplice che somma due numeri
models://- Restituisce informazioni sui modelli AI disponibiligreeting://{name}- Restituisce un saluto personalizzato per un nome specifico
review_code- Genera un prompt per la revisione del codice
Per utilizzare questa implementazione MCP, installa i pacchetti richiesti:
pip install mcp-server mcp-clientEsegui il server in una finestra del terminale:
python server.pyIl server può anche essere eseguito in modalità sviluppo usando la CLI MCP:
mcp dev server.pyOppure installato in Claude Desktop (se disponibile):
mcp install server.pyEsegui il client in un'altra finestra del terminale:
python client.pyQuesto si connetterà al server e dimostrerà tutte le funzionalità disponibili.
Il client (client.py) dimostra tutte le capacità MCP:
python client.pyQuesto si connetterà al server e utilizzerà tutte le funzionalità, inclusi tools, resources e prompts. L'output mostrerà:
- Risultato dello strumento calcolatrice (5 + 7 = 12)
- Risposta dello strumento completion a "Qual è il significato della vita?"
- Elenco dei modelli AI disponibili
- Saluto personalizzato per "MCP Explorer"
- Modello di prompt per la revisione del codice
Il server è implementato usando l'API FastMCP, che fornisce astrazioni di alto livello per definire servizi MCP. Ecco un esempio semplificato di come vengono definiti i tools:
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers together
Args:
a: First number
b: Second number
Returns:
The sum of the two numbers
"""
logger.info(f"Adding {a} and {b}")
return a + bIl client utilizza la libreria client MCP per connettersi e chiamare il server:
async with stdio_client(server_params) as (reader, writer):
async with ClientSession(reader, writer) as session:
await session.initialize()
result = await session.call_tool("add", arguments={"a": 5, "b": 7})Per maggiori informazioni su MCP, visita: https://modelcontextprotocol.io/
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.