Advanced MCP Capabilities
Explore the parts of MCP that matter when systems become interactive, discoverable, long-running or enterprise-managed.
Model a long-running report as a task
Generating a 300-page compliance report may take minutes. Do not keep one request open and hope the connection survives. Return a task ID and let the client observe progress.
task = await reports.start(customer_id="acme")
return {"task_id": task.id, "status": "running"}
# later
status = await reports.status(task_id)
# {"status":"running", "progress":62}Good fit
Exports, migrations, batch analysis and jobs whose duration is unpredictable.
Bad fit
A fast lookup that can complete inside a normal tool request; tasks would just add protocol overhead.
Design idea: advanced protocol features are valuable when they remove a real product constraint, not because they exist.