|
33 | 33 | from mcp.server.fastmcp.utilities.context_injection import find_context_parameter |
34 | 34 | from mcp.server.fastmcp.utilities.logging import configure_logging, get_logger |
35 | 35 | from mcp.server.lowlevel.helper_types import ReadResourceContents |
36 | | -from mcp.server.lowlevel.server import LifespanResultT |
| 36 | +from mcp.server.lowlevel.server import LifespanResultT, NotificationOptions |
37 | 37 | from mcp.server.lowlevel.server import Server as MCPServer |
38 | 38 | from mcp.server.lowlevel.server import lifespan as default_lifespan |
39 | 39 | from mcp.server.session import ServerSession, ServerSessionT |
@@ -148,6 +148,7 @@ def __init__( # noqa: PLR0913 |
148 | 148 | lifespan: Callable[[FastMCP[LifespanResultT]], AbstractAsyncContextManager[LifespanResultT]] | None = None, |
149 | 149 | auth: AuthSettings | None = None, |
150 | 150 | transport_security: TransportSecuritySettings | None = None, |
| 151 | + notification_options: NotificationOptions | None = None, |
151 | 152 | ): |
152 | 153 | self.settings = Settings( |
153 | 154 | debug=debug, |
@@ -177,6 +178,7 @@ def __init__( # noqa: PLR0913 |
177 | 178 | # TODO(Marcelo): It seems there's a type mismatch between the lifespan type from an FastMCP and Server. |
178 | 179 | # We need to create a Lifespan type that is a generic on the server type, like Starlette does. |
179 | 180 | lifespan=(lifespan_wrapper(self, self.settings.lifespan) if self.settings.lifespan else default_lifespan), # type: ignore |
| 181 | + notification_options=notification_options, |
180 | 182 | ) |
181 | 183 | self._tool_manager = ToolManager(tools=tools, warn_on_duplicate_tools=self.settings.warn_on_duplicate_tools) |
182 | 184 | self._resource_manager = ResourceManager(warn_on_duplicate_resources=self.settings.warn_on_duplicate_resources) |
|
0 commit comments