Skip to content

Commit eca75ea

Browse files
committed
Remove circular import
1 parent 512cf58 commit eca75ea

File tree

2 files changed

+12
-15
lines changed

2 files changed

+12
-15
lines changed

src/mcp/server/fastmcp/server.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
from mcp.server.session import ServerSession, ServerSessionT
4545
from mcp.server.sse import SseServerTransport
4646
from mcp.server.stdio import stdio_server
47-
from mcp.server.streamable_http import EventStore, StreamableHTTPASGIApp
47+
from mcp.server.streamable_http import EventStore
4848
from mcp.server.streamable_http_manager import StreamableHTTPSessionManager
4949
from mcp.server.transport_security import TransportSecuritySettings
5050
from mcp.shared.context import LifespanContextT, RequestContext, RequestT
@@ -969,6 +969,16 @@ async def get_prompt(self, name: str, arguments: dict[str, Any] | None = None) -
969969
logger.exception(f"Error getting prompt {name}")
970970
raise ValueError(str(e))
971971

972+
class StreamableHTTPASGIApp:
973+
"""
974+
ASGI application for Streamable HTTP server transport.
975+
"""
976+
977+
def __init__(self, session_manager: StreamableHTTPSessionManager):
978+
self.session_manager = session_manager
979+
980+
async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None:
981+
await self.session_manager.handle_request(scope, receive, send)
972982

973983
class Context(BaseModel, Generic[ServerSessionT, LifespanContextT, RequestT]):
974984
"""Context object providing access to MCP capabilities.

src/mcp/server/streamable_http.py

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
TransportSecurityMiddleware,
2929
TransportSecuritySettings,
3030
)
31-
from mcp.server.streamable_http_manager import StreamableHTTPSessionManager
3231
from mcp.shared.message import ServerMessageMetadata, SessionMessage
3332
from mcp.shared.version import SUPPORTED_PROTOCOL_VERSIONS
3433
from mcp.types import (
@@ -901,16 +900,4 @@ async def message_router():
901900
await write_stream.aclose()
902901
except Exception as e:
903902
# During cleanup, we catch all exceptions since streams might be in various states
904-
logger.debug(f"Error closing streams: {e}")
905-
906-
907-
class StreamableHTTPASGIApp:
908-
"""
909-
ASGI application for StreamableHTTP server transport.
910-
"""
911-
912-
def __init__(self, session_manager: StreamableHTTPSessionManager):
913-
self.session_manager = session_manager
914-
915-
async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None:
916-
await self.session_manager.handle_request(scope, receive, send)
903+
logger.debug(f"Error closing streams: {e}")

0 commit comments

Comments
 (0)