Awesome Testing

MCP lesson 06 · Handle round trips and Tasks

When should a request ask for more input, and when should it become a Task?

2026-07-28 core · deterministic JSON-RPC fixtures

Atlas Release Evidence Server. Read-only evidence, deterministic scoring, and an explicit evaluation Task across replicas and protocol eras.

01 · Smallest useful mechanism

Use MRTR for bounded clarification and Tasks for durable long-running work.

Modern multi-round-trip requests return input_required and the client retries the original request with inputResponses. The official Tasks extension adds task handles and lifecycle operations after extension negotiation.

Both flows keep continuation explicit, typed, correlated, and subject to current authority.

02 · Experiment

Test the prediction

Deterministic protocol fixture

This workbench uses inspectable JSON-RPC fixtures and injected failures. It does not make live calls or execute external effects.

Protocol workbench · atlas-tasks-v1

Choose the flow for profile selection followed by a ten-minute evaluation.

Injected failure

The client disconnects after starting work and later requests cancellation.

Choose the implementation

The trace has not run.

Commit to an implementation, then inject the failure and inspect the actual state transitions.

03 · Implementation brief

Build it, break it, prove the outcome.

Implement
Model one MRTR clarification and one durable Task with explicit states, limits, and current authorization.
Break it on purpose
Disconnect, duplicate creation, refuse input, race cancellation with completion, expire a handle, and swap tenants.
Completion evidence
The product can resume truthfully, never exposes another tenant, and distinguishes requested, running, cancelled, failed, and completed outcomes.

Your learning artifact

Write the argument you would defend

Stored only in this browser. No account required; course reset does not delete it.

04 · Check your understanding

How are Tasks available in MCP 2026-07-28?

Primary sources · verified 2026-08-02

What the fixture does not prove

Treating every pause as a Task creates infrastructure overhead; treating durable work as an in-memory clarification loses recovery, cancellation, and observability.

Common mistake: Tasks are still part of the modern core protocol. Tasks moved into the official io.modelcontextprotocol/tasks extension and must be negotiated by both parties.

Transfer exercise: Use MRTR to choose an evaluation profile, then run the selected evaluation as a Task that survives client disconnect.

Optional referenceDeep dive / reference chapterOpen the complete essay, diagrams, mathematics, exercises, glossary, and sources when you want more depth.

Next: Explicit continuations are only useful if identity, authorization, hostile content, compatibility, and contract tests hold around every call.