Skip to content

Version negotiation is wrongly implemented #34

@marcod85

Description

@marcod85

Version: 3.1.0

References:

Issue Description:
Using the MCP server with latest Claude Desktop (Claude for Mac 0.10.38 e55f4e) fails.
Clause Desktop is sending initialize message with"protocolVersion": "2024-11-05", but the server responds with "protocolVersion": "2025-03-26".

Could not attach to MCP server: Error: Server's protocol version is not supported: 2025-03-26

According to the specs:

...
If the server supports the requested protocol version, it MUST respond with the same version.
...

Checking the implementation, it seems it is always forced to the latest version currently:

server/src/Dispatcher.php

Lines 120 to 128 in 2b4f1d4

public function handleInitialize(InitializeRequest $request, SessionInterface $session): InitializeResult
{
if (! in_array($request->protocolVersion, Protocol::SUPPORTED_PROTOCOL_VERSIONS)) {
$this->logger->warning("Unsupported protocol version: {$request->protocolVersion}", [
'supportedVersions' => Protocol::SUPPORTED_PROTOCOL_VERSIONS,
]);
}
$protocolVersion = Protocol::LATEST_PROTOCOL_VERSION;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions