Copertina: FastMCP: il framework Python per costruire server MCP in poche righe

FastMCP: il framework Python per costruire server MCP in poche righe

Il modo più rapido e 'pythonico' per esporre tool, dati e prompt ai modelli linguistici tramite il Model Context Protocol.

24 luglio 20265 min di lettura
FastMCPModel Context ProtocolMCP server Pythonframework open-sourceintegrazione LLMPrefecttool AIagenti AI

Cos'è FastMCP

FastMCP è un framework open-source in Python, mantenuto da Prefect (PrefectHQ), che semplifica radicalmente la creazione di server e client basati sul Model Context Protocol (MCP), lo standard aperto — introdotto da Anthropic a fine 2024 — che definisce come i modelli linguistici (LLM) si collegano a strumenti, dati e servizi esterni. Se MCP è il 'protocollo', FastMCP è il modo più veloce di parlarlo: invece di gestire manualmente JSON-RPC, handshake di capacità, trasporti e schemi di validazione, lo sviluppatore scrive normali funzioni Python e le decora con @mcp.tool, @mcp.resource o @mcp.prompt. Tutto il resto — generazione degli schemi dai type hint, documentazione automatica, serializzazione, gestione degli errori — viene gestito dal framework.

La storia del progetto è istruttiva. FastMCP 1.0, scritto da Jeremiah Lowin (fondatore di Prefect) pochi giorni dopo la pubblicazione della specifica MCP, è stato accolto nel SDK Python ufficiale del protocollo nel 2024: chi oggi importa mcp.server.fastmcp sta usando, di fatto, quella prima versione. Il progetto standalone, pubblicato su GitHub come PrefectHQ/fastmcp con licenza Apache-2.0, è proseguito come FastMCP 2.0 e oltre, diventando la versione attivamente mantenuta e molto più ricca di funzionalità. A inizio 2026 è arrivata la versione 3.0, con un'architettura a provider e trasformazioni che rende il framework estensibile, osservabile e componibile. Secondo i dati del progetto, qualche versione di FastMCP alimenta la grande maggioranza dei server MCP in circolazione, con download giornalieri nell'ordine del milione.

A cosa serve

Un server MCP espone a un LLM tre tipi di primitive:

  • Tool: funzioni che il modello può invocare per agire (calcoli, chiamate API, scritture su database, invio email).
  • Resource: fonti dati in sola lettura (documenti, record, configurazioni), anche parametriche tramite template di URI.
  • Prompt: modelli di messaggio riutilizzabili che guidano l'interazione con il modello.

FastMCP serve a costruire questi server senza boilerplate. Il caso d'uso tipico per una PMI, un'agenzia o un team di prodotto è: 'voglio che il mio assistente AI (Claude Desktop, Cursor, un agente custom) possa interrogare il gestionale, leggere il CRM o creare una fattura'. Con FastMCP quel ponte si scrive in un pomeriggio, non in una settimana. Il framework copre però anche il lato opposto: include un client completo per connettersi programmaticamente a qualsiasi server MCP, locale o remoto, gestendo negoziazione del trasporto, autenticazione e ciclo di vita del protocollo. Utile per test, per pipeline agentiche e per integrare server di terze parti nelle proprie applicazioni.

Come funziona

L'API è deliberatamente modellata su FastAPI: si crea un'istanza FastMCP, si decorano funzioni Python (sincrone o asincrone) e si avvia il server. Un esempio minimale:

from fastmcp import FastMCP

mcp = FastMCP("Contabilità")

@mcp.tool
def calcola_iva(imponibile: float, aliquota: float = 22.0) -> float:
    """Calcola l'IVA su un imponibile."""
    return round(imponibile * aliquota / 100, 2)

@mcp.resource("config://aliquote")
def aliquote() -> dict:
    return {"ordinaria": 22, "ridotta": 10, "minima": 4}

if __name__ == "__main__":
    mcp.run()

Da type hint e docstring, FastMCP genera automaticamente lo schema JSON che il client MCP userà per capire come chiamare il tool e validarne gli argomenti. Si avvia con fastmcp run server.py, si ispeziona e si debugga con fastmcp dev server.py (che apre l'MCP Inspector, un'interfaccia web di test) e si installa direttamente in Claude Desktop, Cursor o Goose con fastmcp install.

Sotto il cofano, il framework supporta i trasporti standard del protocollo: stdio per l'esecuzione locale come sottoprocesso, Streamable HTTP e SSE per il deployment in rete. Le funzionalità avanzate sono il vero valore aggiunto rispetto all'SDK grezzo:

  • Generazione da OpenAPI e FastAPI: FastMCP.from_openapi() e FastMCP.from_fastapi() trasformano automaticamente una specifica OpenAPI o un'applicazione FastAPI esistente in un server MCP, esponendo ogni endpoint come tool. Per chi ha già API REST interne, è il percorso più breve verso l'integrazione con gli agenti.
  • Proxying e composizione: FastMCP.as_proxy() crea un intermediario verso un altro server MCP (per cambiare trasporto, aggiungere logica o filtri), mentre mount() e import_server() permettono di comporre applicazioni modulari unendo più server in uno.
  • Autenticazione: supporto integrato per pattern enterprise — OAuth, JWT con verifica JWKS, provider come Clerk o Azure — sia lato server che lato client.
  • Provider e trasformazioni (v3): componenti caricabili da filesystem (con hot-reload), da skill, da API; trasformazioni componibili per rinominare, filtrare, versionare e proteggere tool prima di esporli ai client.
  • Produzione: versioning dei componenti, autorizzazione granulare per singolo tool, tracing OpenTelemetry, task in background, CLI completa (fastmcp list, call, discover).

Perché conta

Tre ragioni concrete. Primo, la velocità: rispetto all'SDK ufficiale di basso livello, il tempo di sviluppo di un server MCP si riduce di un fattore 5 circa; la curva di apprendimento è quella di una qualsiasi libreria Python moderna, e chi conosce FastAPI si sente a casa. Secondo, il percorso verso la produzione: autenticazione, osservabilità, testing e deployment non sono lasciati come esercizio allo sviluppatore ma sono integrati, il che fa la differenza tra una demo e un servizio affidabile esposto ai clienti o ai colleghi. Terzo, l'ecosistema: MCP è diventato lo standard di fatto per collegare LLM e sistemi esterni — supportato da Anthropic, OpenAI, Google e da decine di client — e FastMCP è il suo framework di riferimento in Python, con migliaia di progetti dipendenti, una documentazione completa su gofastmcp.com (disponibile anche in formato llms.txt per farla leggere direttamente agli agenti) e una community molto attiva.

Per una PMI o un'agenzia italiana il senso pratico è questo: i propri sistemi — gestionale, CRM, e-commerce, archivio documentale — possono diventare 'parlabili' dagli assistenti AI con un investimento minimo, senza riscrivere nulla e mantenendo il controllo su autenticazione e permessi. Le alternative principali sono l'SDK Python ufficiale (più controllo, molto più codice), l'SDK TypeScript (per chi vive in Node.js) e librerie specializzate come fastapi_mcp (se l'obiettivo è solo esporre un backend FastAPI esistente). FastMCP resta la scelta più equilibrata tra semplicità e completezza. Da tenere d'occhio la sicurezza: un server MCP espone funzioni eseguibili, quindi autenticazione, validazione degli input e principio del minimo privilegio non sono opzionali quando si va oltre il localhost.

Dove trovarlo

  • Repository GitHub: github.com/PrefectHQ/fastmcp (licenza Apache-2.0, decine di migliaia di stelle)
  • Documentazione: gofastmcp.com
  • Pacchetto: pip install fastmcp (oppure uv pip install fastmcp), distribuito via PyPI e conda-forge
  • Per iniziare: scrivere un server.py con un tool decorato, lanciare fastmcp dev server.py per testarlo nell'Inspector e poi fastmcp install server.py per collegarlo al proprio client AI preferito.

Hai letto fino a qui

🤔 Hai domande su questo argomento?

Posso aiutarti a capire come applicarlo al tuo business. Scegli come vuoi parlarmi.

— oppure —

💬 Chat: risposta immediata · 📧 Email: risposta personale entro 24h · 🔒 Niente spam

Continua a leggere