Skip to content

Stateless streamable HTTP: tools/call with progress returns notification as response body #980

Description

@DaleSeo

Part of #977.

On the 2026-07-28 suite (0.2.0-alpha.9), tools-call-with-progress fails against the stateless conformance server:

Failed: HTTP 200: expected a JSON-RPC result for 'tools/call', got unexpected body
{"jsonrpc":"2.0","method":"notifications/progress","params":{"message":"Starting","progress":0,"progressToken":"progress-test-1","total":100}}

In stateless mode the progress notification is emitted as the POST response body instead of (or before) the final tools/call result. The scenario passes against the stateful server on the 2025-11-25 suite, so this is specific to the stateless lifecycle.

Repro:

cargo build -p mcp-conformance
STATELESS=1 PORT=8002 ./target/debug/conformance-server &
npx -y @modelcontextprotocol/conformance@0.2.0-alpha.9 server \
  --url http://127.0.0.1:8002/mcp \
  --scenario tools-call-with-progress -o results

Metadata

Metadata

Assignees

No one assigned

    Labels

    2026-07-28P1High: significant functionality gap or spec violationT-bugBug fixes and error correctionsT-transportTransport layer changes

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions