From 3c8ea1207da460809ac98646fc63ec05436694b6 Mon Sep 17 00:00:00 2001 From: William Easton Date: Wed, 13 Aug 2025 17:58:14 -0500 Subject: [PATCH] Small updates from PR feedback --- src/fastmcp/client/transports.py | 2 +- src/fastmcp/mcp_config.py | 10 ++++++---- src/fastmcp/utilities/mcp_config.py | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/fastmcp/client/transports.py b/src/fastmcp/client/transports.py index bbf5ebfa0..6923079f4 100644 --- a/src/fastmcp/client/transports.py +++ b/src/fastmcp/client/transports.py @@ -879,7 +879,7 @@ class MCPConfigTransport(ClientTransport): # if there's exactly one server, create a client for that server elif len(self.config.mcpServers) == 1: self.transport = list(self.config.mcpServers.values())[0].to_transport() - self._underlying_transport = self.transport + self._underlying_transports.append(self.transport) # otherwise create a composite client else: diff --git a/src/fastmcp/mcp_config.py b/src/fastmcp/mcp_config.py index 5c2a54ded..7745d7a2c 100644 --- a/src/fastmcp/mcp_config.py +++ b/src/fastmcp/mcp_config.py @@ -90,10 +90,10 @@ class _TransformingMCPServerMixin(FastMCPBaseModel): description="The tags to exclude in the proxy.", ) - def _to_server_and_transport( + def _to_server_and_underlying_transport( self, ) -> tuple[FastMCP[Any], ClientTransport]: - """Get the server and transport for the server.""" + """Turn the Transforming MCPServer into a FastMCP Server and also return the underlying transport.""" from fastmcp import FastMCP transport: ClientTransport = super().to_transport() # pyright: ignore[reportUnknownMemberType, reportAttributeAccessIssue, reportUnknownVariableType] @@ -108,8 +108,10 @@ class _TransformingMCPServerMixin(FastMCPBaseModel): return wrapped_mcp_server, transport def to_transport(self) -> ClientTransport: - """Get the transport for the server.""" - return self._to_server_and_transport()[1] + """Get the transport for the transforming MCP server.""" + from fastmcp.client.transports import FastMCPTransport + + return FastMCPTransport(mcp=self._to_server_and_underlying_transport()[0]) class StdioMCPServer(BaseModel): diff --git a/src/fastmcp/utilities/mcp_config.py b/src/fastmcp/utilities/mcp_config.py index 5138b4e46..48cb3fb9a 100644 --- a/src/fastmcp/utilities/mcp_config.py +++ b/src/fastmcp/utilities/mcp_config.py @@ -32,7 +32,7 @@ def mcp_server_type_to_servers_and_transports( transport: ClientTransport if isinstance(mcp_server, TransformingRemoteMCPServer | TransformingStdioMCPServer): - server, transport = mcp_server._to_server_and_transport() + server, transport = mcp_server._to_server_and_underlying_transport() else: transport = mcp_server.to_transport() server = FastMCP.as_proxy(backend=transport)