0Pricing
MCP Academy · Leçon

Envoyer la progression des tâches longues

Diffusez au client des mises à jour du pourcentage d’avancement.

Envoyer la progression des tâches longues est une leçon MCP Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage MCP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours MCP Academy comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Why Progress Matters

When a tool takes seconds or minutes, the client should not just hang. MCP lets your server send progress updates so the user sees movement.

The Progress Token

The client opts in by attaching a progressToken to the request. Without that token, your server simply skips sending updates.

Reach the Context Object

In the Python SDK, a tool receives a Context object. It is your handle for talking back to the client mid-call, including progress.

from mcp.server.fastmcp import Context

@mcp.tool()
async def crunch(n: int, ctx: Context) -> str:
    return "done"

Call report_progress

To push an update, you call ctx.report_progress. Each call tells the client how far along the work has come.

await ctx.report_progress(progress=3, total=10)

Progress and Total

The total argument is the finish line. The client can divide progress by total to draw a percent-done bar for the user.

await ctx.report_progress(progress=5, total=10)  # 50%

Update Inside a Loop

The natural place to report is inside your work loop. After each chunk finishes, send one update so the bar climbs steadily.

for i, item in enumerate(items):
    process(item)
    await ctx.report_progress(i + 1, len(items))

Progress Without a Total

Sometimes you cannot know the total upfront. You may omit it; the client then shows an indeterminate spinner instead of a precise bar.

await ctx.report_progress(progress=42)  # total unknown

Add an Optional Message

Many SDK versions let you attach a short message to a progress call, like "Indexing files", giving the user friendly human context.

await ctx.report_progress(2, 5, message="Fetching pages")

It Is a Notification

Progress travels as a JSON-RPC notification, so it has no reply and never blocks. Your tool keeps working while updates flow out.

Keep Updates Reasonable

Do not flood the client with thousands of tiny updates. Report at meaningful steps so the stream stays useful and lightweight.

Progress Plus a Result

Progress notifications are separate from your tool's return value. You stream updates as you go, then hand back the final result at the end.

await ctx.report_progress(10, 10)
return "index built"

Quick Check

Test your grasp of how progress reporting begins.

Recap: Progress

You learned to call ctx.report_progress with progress and total, loop your updates, and let the client draw a live bar. Nice work!

Questions Fréquemment Posées

La leçon « Envoyer la progression des tâches longues » est-elle gratuite ?

Oui — le texte complet de « Envoyer la progression des tâches longues » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours MCP Academy, passe à CoddyKit PRO. Le cours MCP Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Envoyer la progression des tâches longues » ?

Diffusez au client des mises à jour du pourcentage d’avancement. Tu pratiques MCP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer MCP Academy ?

Aucune expérience préalable n'est requise. MCP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Envoyer la progression des tâches longues » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon MCP Academy ?

Oui. Chaque leçon MCP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Envoyer la progression des tâches longues
  2. Gérer les demandes d’annulation
  3. Journalisation structurée vers le client
  4. Définir les niveaux de journalisation à l’exécution
← Retour à MCP Academy