mirror of
https://github.com/aljazceru/mcp-python-sdk.git
synced 2025-12-23 16:54:24 +01:00
This commit is contained in:
@@ -44,7 +44,6 @@ from mcp.server.lowlevel.helper_types import ReadResourceContents
|
||||
from mcp.server.lowlevel.server import LifespanResultT
|
||||
from mcp.server.lowlevel.server import Server as MCPServer
|
||||
from mcp.server.lowlevel.server import lifespan as default_lifespan
|
||||
from mcp.server.message_queue import MessageDispatch
|
||||
from mcp.server.session import ServerSession, ServerSessionT
|
||||
from mcp.server.sse import SseServerTransport
|
||||
from mcp.server.stdio import stdio_server
|
||||
@@ -92,11 +91,6 @@ class Settings(BaseSettings, Generic[LifespanResultT]):
|
||||
sse_path: str = "/sse"
|
||||
message_path: str = "/messages/"
|
||||
|
||||
# SSE message queue settings
|
||||
message_dispatch: MessageDispatch | None = Field(
|
||||
None, description="Custom message dispatch instance"
|
||||
)
|
||||
|
||||
# resource settings
|
||||
warn_on_duplicate_resources: bool = True
|
||||
|
||||
@@ -607,13 +601,6 @@ class FastMCP:
|
||||
|
||||
def sse_app(self, mount_path: str | None = None) -> Starlette:
|
||||
"""Return an instance of the SSE server app."""
|
||||
message_dispatch = self.settings.message_dispatch
|
||||
if message_dispatch is None:
|
||||
from mcp.server.message_queue import InMemoryMessageDispatch
|
||||
|
||||
message_dispatch = InMemoryMessageDispatch()
|
||||
logger.info("Using default in-memory message dispatch")
|
||||
|
||||
from starlette.middleware import Middleware
|
||||
from starlette.routing import Mount, Route
|
||||
|
||||
@@ -625,12 +612,11 @@ class FastMCP:
|
||||
normalized_message_endpoint = self._normalize_path(
|
||||
self.settings.mount_path, self.settings.message_path
|
||||
)
|
||||
|
||||
|
||||
# Set up auth context and dependencies
|
||||
|
||||
sse = SseServerTransport(
|
||||
normalized_message_endpoint,
|
||||
message_dispatch=message_dispatch
|
||||
normalized_message_endpoint,
|
||||
)
|
||||
|
||||
async def handle_sse(scope: Scope, receive: Receive, send: Send):
|
||||
@@ -646,14 +632,7 @@ class FastMCP:
|
||||
streams[1],
|
||||
self._mcp_server.create_initialization_options(),
|
||||
)
|
||||
return Response()
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: Starlette):
|
||||
try:
|
||||
yield
|
||||
finally:
|
||||
await message_dispatch.close()
|
||||
return Response()
|
||||
|
||||
# Create routes
|
||||
routes: list[Route | Mount] = []
|
||||
@@ -730,10 +709,7 @@ class FastMCP:
|
||||
|
||||
# Create Starlette app with routes and middleware
|
||||
return Starlette(
|
||||
debug=self.settings.debug,
|
||||
routes=routes,
|
||||
middleware=middleware,
|
||||
lifespan=lifespan,
|
||||
debug=self.settings.debug, routes=routes, middleware=middleware
|
||||
)
|
||||
|
||||
async def list_prompts(self) -> list[MCPPrompt]:
|
||||
|
||||
Reference in New Issue
Block a user