Spaces:
Running
Running
Merge pull request #475 from Maxi91f/feat/middleware-on-run
Browse files
src/fastmcp/server/server.py
CHANGED
|
@@ -189,15 +189,13 @@ class FastMCP(Generic[LifespanResultT]):
|
|
| 189 |
"""
|
| 190 |
if transport is None:
|
| 191 |
transport = "stdio"
|
| 192 |
-
if transport not in
|
| 193 |
raise ValueError(f"Unknown transport: {transport}")
|
| 194 |
|
| 195 |
if transport == "stdio":
|
| 196 |
await self.run_stdio_async(**transport_kwargs)
|
| 197 |
-
elif transport
|
| 198 |
-
await self.run_http_async(transport=
|
| 199 |
-
elif transport == "sse":
|
| 200 |
-
await self.run_http_async(transport="sse", **transport_kwargs)
|
| 201 |
else:
|
| 202 |
raise ValueError(f"Unknown transport: {transport}")
|
| 203 |
|
|
@@ -744,6 +742,7 @@ class FastMCP(Generic[LifespanResultT]):
|
|
| 744 |
log_level: str | None = None,
|
| 745 |
path: str | None = None,
|
| 746 |
uvicorn_config: dict | None = None,
|
|
|
|
| 747 |
) -> None:
|
| 748 |
"""Run the server using HTTP transport.
|
| 749 |
|
|
@@ -760,7 +759,7 @@ class FastMCP(Generic[LifespanResultT]):
|
|
| 760 |
# lifespan is required for streamable http
|
| 761 |
uvicorn_config["lifespan"] = "on"
|
| 762 |
|
| 763 |
-
app = self.http_app(path=path, transport=transport)
|
| 764 |
|
| 765 |
config = uvicorn.Config(
|
| 766 |
app,
|
|
|
|
| 189 |
"""
|
| 190 |
if transport is None:
|
| 191 |
transport = "stdio"
|
| 192 |
+
if transport not in {"stdio", "streamable-http", "sse"}:
|
| 193 |
raise ValueError(f"Unknown transport: {transport}")
|
| 194 |
|
| 195 |
if transport == "stdio":
|
| 196 |
await self.run_stdio_async(**transport_kwargs)
|
| 197 |
+
elif transport in {"streamable-http", "sse"}:
|
| 198 |
+
await self.run_http_async(transport=transport, **transport_kwargs)
|
|
|
|
|
|
|
| 199 |
else:
|
| 200 |
raise ValueError(f"Unknown transport: {transport}")
|
| 201 |
|
|
|
|
| 742 |
log_level: str | None = None,
|
| 743 |
path: str | None = None,
|
| 744 |
uvicorn_config: dict | None = None,
|
| 745 |
+
middleware: list[Middleware] | None = None,
|
| 746 |
) -> None:
|
| 747 |
"""Run the server using HTTP transport.
|
| 748 |
|
|
|
|
| 759 |
# lifespan is required for streamable http
|
| 760 |
uvicorn_config["lifespan"] = "on"
|
| 761 |
|
| 762 |
+
app = self.http_app(path=path, transport=transport, middleware=middleware)
|
| 763 |
|
| 764 |
config = uvicorn.Config(
|
| 765 |
app,
|