Skip to content

Commit d8b7d0c

Browse files
committed
Server.version is a plain str defaulting to empty
None and the empty string were never distinguished (the old fallback used a falsy check, and version, unlike title or description, can never be omitted from the wire), so the str|None type encoded the same state twice. The constructor takes version: str = "" on both server tiers, MCPServer.version returns str, and the two 'or empty' patches at the identity sites disappear. No-Verification-Needed: type-narrowing refactor, zero behavior change, full suite green
1 parent 476d758 commit d8b7d0c

2 files changed

Lines changed: 7 additions & 7 deletions

File tree

src/mcp/server/lowlevel/server.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ def __init__(
131131
self,
132132
name: str,
133133
*,
134-
version: str | None = None,
134+
version: str = "",
135135
title: str | None = None,
136136
description: str | None = None,
137137
instructions: str | None = None,
@@ -214,7 +214,7 @@ def __init__(
214214
self,
215215
name: str,
216216
*,
217-
version: str | None = None,
217+
version: str = "",
218218
title: str | None = None,
219219
description: str | None = None,
220220
instructions: str | None = None,
@@ -306,7 +306,7 @@ def __init__(
306306
self,
307307
name: str,
308308
*,
309-
version: str | None = None,
309+
version: str = "",
310310
title: str | None = None,
311311
description: str | None = None,
312312
instructions: str | None = None,
@@ -539,7 +539,7 @@ def create_initialization_options(
539539
"""
540540
return InitializationOptions(
541541
server_name=self.name,
542-
server_version=self.version or "",
542+
server_version=self.version,
543543
title=self.title,
544544
description=self.description,
545545
capabilities=self.get_capabilities(
@@ -633,7 +633,7 @@ def server_info(self) -> types.Implementation:
633633
"""
634634
return types.Implementation(
635635
name=self.name,
636-
version=self.version or "",
636+
version=self.version,
637637
title=self.title,
638638
description=self.description,
639639
website_url=self.website_url,

src/mcp/server/mcpserver/server.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ def __init__(
165165
instructions: str | None = None,
166166
website_url: str | None = None,
167167
icons: list[Icon] | None = None,
168-
version: str | None = None,
168+
version: str = "",
169169
auth_server_provider: OAuthAuthorizationServerProvider[Any, Any, Any] | None = None,
170170
token_verifier: TokenVerifier | None = None,
171171
*,
@@ -290,7 +290,7 @@ def icons(self) -> list[Icon] | None:
290290
return self._lowlevel_server.icons
291291

292292
@property
293-
def version(self) -> str | None:
293+
def version(self) -> str:
294294
return self._lowlevel_server.version
295295

296296
@property

0 commit comments

Comments
 (0)