mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-22 13:34:17 +02:00
Fix keep_alive passthrough in StdioMCPServer.to_transport() (#2791)
This commit is contained in:
parent
da965db5cb
commit
a117316ba1
2 changed files with 35 additions and 0 deletions
|
|
@ -143,6 +143,9 @@ class StdioMCPServer(BaseModel):
|
|||
# Execution context
|
||||
cwd: str | None = None # Working directory for command execution
|
||||
timeout: int | None = None # Maximum response time in milliseconds
|
||||
keep_alive: bool | None = (
|
||||
None # Whether to keep the subprocess alive between connections
|
||||
)
|
||||
|
||||
# Metadata
|
||||
description: str | None = None # Human-readable server description
|
||||
|
|
@ -161,6 +164,7 @@ class StdioMCPServer(BaseModel):
|
|||
args=self.args,
|
||||
env=self.env,
|
||||
cwd=self.cwd,
|
||||
keep_alive=self.keep_alive,
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -70,6 +70,37 @@ def test_parse_single_stdio_config():
|
|||
assert transport.args == ["hello"]
|
||||
|
||||
|
||||
def test_stdio_config_keep_alive_passthrough():
|
||||
"""Test that keep_alive parameter is passed through from StdioMCPServer to StdioTransport."""
|
||||
# Test with keep_alive=False
|
||||
server = StdioMCPServer(command="test", keep_alive=False)
|
||||
assert server.keep_alive is False
|
||||
transport = server.to_transport()
|
||||
assert isinstance(transport, StdioTransport)
|
||||
assert transport.keep_alive is False
|
||||
|
||||
# Test with keep_alive=True
|
||||
server = StdioMCPServer(command="test", keep_alive=True)
|
||||
assert server.keep_alive is True
|
||||
transport = server.to_transport()
|
||||
assert isinstance(transport, StdioTransport)
|
||||
assert transport.keep_alive is True
|
||||
|
||||
# Test with keep_alive=None (should default to True in StdioTransport)
|
||||
server = StdioMCPServer(command="test", keep_alive=None)
|
||||
assert server.keep_alive is None
|
||||
transport = server.to_transport()
|
||||
assert isinstance(transport, StdioTransport)
|
||||
assert transport.keep_alive is True # StdioTransport defaults to True
|
||||
|
||||
# Test with keep_alive not specified (should default to None, then True in StdioTransport)
|
||||
server = StdioMCPServer(command="test")
|
||||
assert server.keep_alive is None
|
||||
transport = server.to_transport()
|
||||
assert isinstance(transport, StdioTransport)
|
||||
assert transport.keep_alive is True # StdioTransport defaults to True
|
||||
|
||||
|
||||
def test_parse_extra_keys():
|
||||
config = {
|
||||
"mcpServers": {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue