Skip to content

Conversation

@duboff
Copy link
Contributor

@duboff duboff commented Feb 1, 2026

Motivation and Context

Currently server launched enforces the latest protocol regardless of the protocols supported by the client. This leads to issues when a client (eg. Claude Desktop) supports only protocol versions (2025-06-18) behind the current version supported by the server (2025-11-25).

This PR adds full protocol version negotiation logic (as per the MCP Spec), including dropping parameters not supported by each individual protocol version, to maximize compatibility.

How Has This Been Tested?

Tested with the Chattermill MCP (proprietary).

Breaking Changes

No breaking changes expected.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

A potential consideration could be to add a config option to enumerate supported protocols if the server developer wants to explicitly avoid supporting all possible protocols. Not implemented here as doesn't seem necessary.

@duboff duboff force-pushed the md-protocol-negotiation branch from 92a0880 to 3c3f0d5 Compare February 1, 2026 14:49
@duboff duboff marked this pull request as ready for review February 1, 2026 14:59
@duboff duboff force-pushed the md-protocol-negotiation branch from 3c3f0d5 to 1c14f65 Compare February 1, 2026 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant