MCP Task Trace

2026 Tasks extension

Keep long-running tools recoverable.

Paste MCP Task JSON or JSONL snapshots. Catch invalid state payloads, timestamp regressions, missing input requests, terminal-state changes and legacy 2025 task APIs before clients begin polling.

Task JSON / JSONL

Lifecycle report

Why this tool exists

Task correctness lives between polls.

The MCP Tasks extension lets a server return a durable handle for a long-running tool call. Clients can reconnect, poll tasks/get, answer mid-flight input through tasks/update, and request cooperative cancellation without keeping one connection open.

Each snapshot can look plausible while the lifecycle is impossible. A completed task may omit its result, a failed task may not carry a JSON-RPC error, timestamps may move backwards, or a terminal state may return to working. This checker validates both each object and the sequence.

Checks included

  • Five status values: working, input_required, completed, failed and cancelled.
  • Required task ID, creation/update timestamps and nullable TTL.
  • Positive polling interval and chronological updates.
  • resultType task/complete discriminator usage.
  • Required inputRequests, result and error payloads by status.
  • Immutable creation time and terminal state enforcement.
  • Legacy tasks/result, task parameter and capability migration warnings.
  • A compact lifecycle timeline across JSONL snapshots.

This independent static tool does not test durable storage, routing headers, entropy, authorization or real polling behavior. Use it before SDK and integration tests.

Implementation flow

Persist first, respond second.

  1. Negotiate the extension. Both parties declare io.modelcontextprotocol/tasks.
  2. Create durable state. Do not return a task handle until the next get can resolve it.
  3. Respect polling. Clients should follow the server’s changing poll interval.
  4. Handle input safely. Deduplicate request keys and preserve the normal elicitation trust model.
  5. Freeze terminal states. Completed, failed and cancelled tasks never transition again.

Focused references

Debug the part that changed.

MCP Tasks validator guide

Capture task snapshots and interpret field versus lifecycle findings.

Read the guide →

MCP task statuses

Understand status-specific input, result and error payloads.

Review statuses →

FAQ

Before production polling.

What should I paste?

Paste one task object, an array ordered over time, or one JSON task snapshot per line.

Can input_required return no requests?

No. The current extension requires the complete map of outstanding input requests in that state.

Does isError make a task failed?

No. A tool result with isError still completes with result. Failed is reserved for JSON-RPC execution errors.

Is cancellation guaranteed?

No. tasks/cancel acknowledges intent; work may finish in another terminal state before cancellation is honored.

Is this official conformance testing?

No. MCP Task Trace is an independent, browser-based preparation tool.