Skip to content

Commit eb1024c

Browse files
committed
Update protocol version handling
1 parent 2d55eab commit eb1024c

File tree

5 files changed

+15
-11
lines changed

5 files changed

+15
-11
lines changed

mcp_python/client/session.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
from pydantic import AnyUrl
33

44
from mcp_python.shared.session import BaseSession
5-
from mcp_python.shared.version import SUPPORTED_PROTOCOL_VERSION
5+
from mcp_python.shared.version import SUPPORTED_PROTOCOL_VERSIONS
66
from mcp_python.types import (
7+
LATEST_PROTOCOL_VERSION,
78
CallToolResult,
89
ClientCapabilities,
910
ClientNotification,
@@ -49,7 +50,7 @@ async def initialize(self) -> InitializeResult:
4950
InitializeRequest(
5051
method="initialize",
5152
params=InitializeRequestParams(
52-
protocolVersion=SUPPORTED_PROTOCOL_VERSION,
53+
protocolVersion=LATEST_PROTOCOL_VERSION,
5354
capabilities=ClientCapabilities(
5455
sampling=None, experimental=None
5556
),
@@ -60,7 +61,7 @@ async def initialize(self) -> InitializeResult:
6061
InitializeResult,
6162
)
6263

63-
if result.protocolVersion != SUPPORTED_PROTOCOL_VERSION:
64+
if result.protocolVersion not in SUPPORTED_PROTOCOL_VERSIONS:
6465
raise RuntimeError(
6566
"Unsupported protocol version from the server: "
6667
f"{result.protocolVersion}"

mcp_python/server/session.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
BaseSession,
1212
RequestResponder,
1313
)
14-
from mcp_python.shared.version import SUPPORTED_PROTOCOL_VERSION
1514
from mcp_python.types import (
15+
LATEST_PROTOCOL_VERSION,
1616
ClientNotification,
1717
ClientRequest,
1818
CreateMessageResult,
@@ -67,7 +67,7 @@ async def _received_request(
6767
await responder.respond(
6868
ServerResult(
6969
InitializeResult(
70-
protocolVersion=SUPPORTED_PROTOCOL_VERSION,
70+
protocolVersion=LATEST_PROTOCOL_VERSION,
7171
capabilities=self._init_options.capabilities,
7272
serverInfo=Implementation(
7373
name=self._init_options.server_name,

mcp_python/shared/version.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
SUPPORTED_PROTOCOL_VERSION = 1
1+
from mcp_python.types import LATEST_PROTOCOL_VERSION
2+
3+
SUPPORTED_PROTOCOL_VERSIONS = [1, LATEST_PROTOCOL_VERSION]

tests/client/test_session.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from mcp_python.client.session import ClientSession
55
from mcp_python.types import (
6+
LATEST_PROTOCOL_VERSION,
67
ClientNotification,
78
ClientRequest,
89
Implementation,
@@ -41,7 +42,7 @@ async def mock_server():
4142

4243
result = ServerResult(
4344
InitializeResult(
44-
protocolVersion=1,
45+
protocolVersion=LATEST_PROTOCOL_VERSION,
4546
capabilities=ServerCapabilities(
4647
logging=None,
4748
resources=None,
@@ -88,7 +89,7 @@ async def listen_session():
8889

8990
# Assert the result
9091
assert isinstance(result, InitializeResult)
91-
assert result.protocolVersion == 1
92+
assert result.protocolVersion == LATEST_PROTOCOL_VERSION
9293
assert isinstance(result.capabilities, ServerCapabilities)
9394
assert result.serverInfo == Implementation(name="mock-server", version="0.1.0")
9495

tests/test_types.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from mcp_python.types import ClientRequest, JSONRPCMessage, JSONRPCRequest
1+
from mcp_python.types import LATEST_PROTOCOL_VERSION, ClientRequest, JSONRPCMessage, JSONRPCRequest
22

33

44
def test_jsonrpc_request():
@@ -7,7 +7,7 @@ def test_jsonrpc_request():
77
"id": 1,
88
"method": "initialize",
99
"params": {
10-
"protocolVersion": 1,
10+
"protocolVersion": LATEST_PROTOCOL_VERSION,
1111
"capabilities": {"batch": None, "sampling": None},
1212
"clientInfo": {"name": "mcp_python", "version": "0.1.0"},
1313
},
@@ -21,4 +21,4 @@ def test_jsonrpc_request():
2121
assert request.root.id == 1
2222
assert request.root.method == "initialize"
2323
assert request.root.params is not None
24-
assert request.root.params["protocolVersion"] == 1
24+
assert request.root.params["protocolVersion"] == LATEST_PROTOCOL_VERSION

0 commit comments

Comments
 (0)