Thanks to visit codestin.com
Credit goes to github.com

Skip to content

When using HTTP, Version Negotiation is not communicated for subsequent requests without session id #478

@kurtisvg

Description

@kurtisvg

Describe the bug
The current spec indicates that the version should be negotiated in the initial initialize request: https://modelcontextprotocol.io/specification/2025-03-26/basic/lifecycle#version-negotiation

However, Session Management specifies that a Session-Id header MAY be returned: https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#session-management

The Tool protocol doesn't convey any information about which version was previously negotiated. The server doesn't have a way to know which version was previously negotiated.

Separately, the auth part of the spec mentions a "MCP-Protocol-Version" that SHOULD be included: https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization#2-3-1-server-metadata-discovery-headers

To Reproduce
N/A

Expected behavior
The negotiated version in the "MCP-Protocol-Version" should be changed to MUST, and should be mentioned in the "version negotiation" part of the spec.

Logs
N/A

Additional context
N/A

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions