Descriere & Utilizare
Într-un server MCP de producție, nu vrei să deschizi și să închizi conexiunea la baza de date PostgreSQL sau clientul HTTP la fiecare apel de unealtă. De asemenea, când o unealtă durează 15 secunde, utilizatorul și Host-ul au nevoie de feedback că operațiunea avansează.
În FastMCP, poți defini un context manager asincron lifespan la inițializarea serverului: acesta creează pool-ul de conexiuni o singură dată la pornirea serverului și îl închide curat la oprire.
În interiorul oricărei unelte, adăugarea parametrului tipizat ctx: Context îți oferă acces la conexiunile din lifespan, la logare structurată către client (ctx.info(), ctx.warning(), ctx.error()) și la bara de progres în timp real (ctx.report_progress(curent, total)).
Cum să o reții ușor
💡 Lifespan este încălzirea motorului și deschiderea atelierului dimineața (o singură dată), iar obiectul Context este stația walkie-talkie prin care îi transmiți clientului „Sunt la pasul 3 din 5, mai durează puțin”.
Opțiuni și parametri tehnici
ctx: Context: injectat automat de FastMCP în orice unealtă care declară acest parametru (nu apare în schema văzută de LLM!).await ctx.report_progress(progress, total): trimite notificărinotifications/progresscătre aplicația Host.await ctx.info(...) / ctx.error(...): trimite mesaje de log oficiale prin protocolul MCP fără a polua fluxulstdout.ctx.request_context.lifespan_context: accesează obiectele partajate (pool DB, client API) inițializate la pornire.
Exemple practice și cazuri de utilizare
- Citirea unei resurse din interiorul unei unelte:
date = await ctx.read_resource("config://app/setari") - Solicitarea unei completări LLM (Sampling) din unealtă:
rezultat = await ctx.session.create_message(...) - Raportare progres la descărcări sau indexări: apelează
await ctx.report_progress(pas, total_pasi)în buclafor.
Sfaturi de configurare & capcane
Parametrul ctx: Context este invizibil pentru LLM — FastMCP îl exclude automat din JSON Schema și îl populează singur la momentul execuției.
Comenzi și ghiduri înrudite
fastmcp-python-server: Resursă asociată din acest modul.mcp-tools-primitive: Resursă asociată din acest modul.mcp-transport-stdio-http: Resursă asociată din acest modul.