Jeremiah Lowin commited on
Commit
208bdd7
·
unverified ·
2 Parent(s): f19a1cca5b615c

Merge pull request #842 from mkyutani/feature/add-version-parameter

Browse files
src/fastmcp/server/server.py CHANGED
@@ -110,6 +110,7 @@ class FastMCP(Generic[LifespanResultT]):
110
  def __init__(
111
  self,
112
  name: str | None = None,
 
113
  instructions: str | None = None,
114
  auth: OAuthProvider | None = None,
115
  lifespan: (
@@ -175,6 +176,7 @@ class FastMCP(Generic[LifespanResultT]):
175
  self._has_lifespan = True
176
  self._mcp_server = MCPServer[LifespanResultT](
177
  name=name or "FastMCP",
 
178
  instructions=instructions,
179
  lifespan=_lifespan_wrapper(self, lifespan),
180
  )
 
110
  def __init__(
111
  self,
112
  name: str | None = None,
113
+ version: str | None = None,
114
  instructions: str | None = None,
115
  auth: OAuthProvider | None = None,
116
  lifespan: (
 
176
  self._has_lifespan = True
177
  self._mcp_server = MCPServer[LifespanResultT](
178
  name=name or "FastMCP",
179
+ version=version,
180
  instructions=instructions,
181
  lifespan=_lifespan_wrapper(self, lifespan),
182
  )
tests/client/test_client.py CHANGED
@@ -321,6 +321,31 @@ async def test_initialize_result_disconnected(fastmcp_server):
321
  _ = client.initialize_result
322
 
323
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
324
  async def test_client_nested_context_manager(fastmcp_server):
325
  """Test that the client connects and disconnects once in nested context manager."""
326
 
 
321
  _ = client.initialize_result
322
 
323
 
324
+ async def test_server_info_custom_version():
325
+ """Test that custom version is properly set in serverInfo."""
326
+ # Test with custom version
327
+ server_with_version = FastMCP("CustomVersionServer", version="1.2.3")
328
+ client = Client(transport=FastMCPTransport(server_with_version))
329
+
330
+ async with client:
331
+ result = client.initialize_result
332
+ assert result.serverInfo.name == "CustomVersionServer"
333
+ assert result.serverInfo.version == "1.2.3"
334
+
335
+ # Test without version (backward compatibility)
336
+ server_without_version = FastMCP("DefaultVersionServer")
337
+ client = Client(transport=FastMCPTransport(server_without_version))
338
+
339
+ async with client:
340
+ result = client.initialize_result
341
+ assert result.serverInfo.name == "DefaultVersionServer"
342
+ # Should fall back to MCP library version
343
+ assert result.serverInfo.version is not None
344
+ assert (
345
+ result.serverInfo.version != "1.2.3"
346
+ ) # Should be different from custom version
347
+
348
+
349
  async def test_client_nested_context_manager(fastmcp_server):
350
  """Test that the client connects and disconnects once in nested context manager."""
351