Sende fremdrift for lange oppgaver
Strøm oppdateringer om prosentvis fremdrift til klienten.
Sende fremdrift for lange oppgaver er en gratis leksjon i MCP Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i MCP Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i MCP Academy inneholder totalt 4 leksjoner.
Hvorfor fremdrift er viktig
Når et verktøy bruker sekunder eller minutter, bør ikke klienten bare henge. MCP lar serveren sende oppdateringer om fremdrift, slik at brukeren ser at arbeidet går fremover.
Fremdriftstokenet
Klienten melder seg på ved å legge til et progressToken i forespørselen. Uten dette tokenet hopper serveren ganske enkelt over å sende oppdateringer.
Nå kontekstobjektet
I Python SDK-et mottar et verktøy et Context-objekt. Det er håndtaket ditt for å kommunisere tilbake med klienten underveis i kallet, også for fremdrift.
from mcp.server.fastmcp import Context
@mcp.tool()
async def crunch(n: int, ctx: Context) -> str:
return "done"Kall report_progress
For å sende en oppdatering kaller du ctx.report_progress. Hvert kall forteller klienten hvor langt arbeidet har kommet.
await ctx.report_progress(progress=3, total=10)Fremdrift og total
Argumentet total er målstreken. Klienten kan dele fremdriften på totalen for å tegne en fremdriftslinje i prosent for brukeren.
await ctx.report_progress(progress=5, total=10) # 50%Oppdater inne i en løkke
Det naturlige stedet å rapportere er inne i arbeids-løkken. Når hver del er ferdig, sender du én oppdatering slik at linjen stiger jevnt.
for i, item in enumerate(items):
process(item)
await ctx.report_progress(i + 1, len(items))Fremdrift uten total
Noen ganger kan du ikke vite totalen på forhånd. Du kan utelate den; klienten viser da en ubestemt spinner i stedet for en nøyaktig linje.
await ctx.report_progress(progress=42) # total unknownLegg til en valgfri melding
Mange SDK-versjoner lar deg legge ved en kort melding i et fremdriftskall, for eksempel «Indekserer filer», slik at brukeren får en vennlig forklaring på hva som skjer.
await ctx.report_progress(2, 5, message="Fetching pages")Det er et varsel
Fremdrift sendes som et JSON-RPC-varsel, så det har ikke noe svar og blokkerer aldri. Verktøyet fortsetter å arbeide mens oppdateringene sendes.
Hold oppdateringene på et fornuftig nivå
Ikke oversvøm klienten med tusenvis av små oppdateringer. Rapporter ved meningsfulle trinn, slik at strømmen forblir nyttig og lett.
Fremdrift pluss et resultat
Fremdriftsvarsler er separate fra verktøyets returverdi. Du strømmer oppdateringer underveis og leverer deretter det endelige resultatet til slutt.
await ctx.report_progress(10, 10)
return "index built"Rask kontroll
Test hvor godt du forstår hvordan fremdriftsrapportering starter.
Oppsummering: Fremdrift
Du har lært å kalle ctx.report_progress med fremdrift og total, sende oppdateringer i en løkke og la klienten tegne en løpende fremdriftslinje. Godt jobbet!
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Sende fremdrift for lange oppgaver» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien MCP Academy, inkludert «Sende fremdrift for lange oppgaver», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i MCP Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Sende fremdrift for lange oppgaver»?
Strøm oppdateringer om prosentvis fremdrift til klienten. Du øver på MCP Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med MCP Academy?
Ingen tidligere erfaring er nødvendig. MCP Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Sende fremdrift for lange oppgaver»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne MCP Academy-leksjonen?
Ja. Alle MCP Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Sende fremdrift for lange oppgaver
- Håndtere avbruddsforespørsler
- Strukturerte logger til klienten
- Angi loggnivåer under kjøring