Advanced MCP Capabilities

Explore the parts of MCP that matter when systems become interactive, discoverable, long-running or enterprise-managed.

Practical mini-lab

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.