Spaces:
Running
Running
| from typing import Any | |
| from mcp.server.lowlevel.server import ( | |
| LifespanResultT, | |
| NotificationOptions, | |
| RequestT, | |
| ) | |
| from mcp.server.lowlevel.server import ( | |
| Server as _Server, | |
| ) | |
| from mcp.server.models import InitializationOptions | |
| class LowLevelServer(_Server[LifespanResultT, RequestT]): | |
| def __init__(self, *args, **kwargs): | |
| super().__init__(*args, **kwargs) | |
| # FastMCP servers support notifications for all components | |
| self.notification_options = NotificationOptions( | |
| prompts_changed=True, | |
| resources_changed=True, | |
| tools_changed=True, | |
| ) | |
| def create_initialization_options( | |
| self, | |
| notification_options: NotificationOptions | None = None, | |
| experimental_capabilities: dict[str, dict[str, Any]] | None = None, | |
| **kwargs: Any, | |
| ) -> InitializationOptions: | |
| # ensure we use the FastMCP notification options | |
| if notification_options is None: | |
| notification_options = self.notification_options | |
| return super().create_initialization_options( | |
| notification_options=notification_options, | |
| experimental_capabilities=experimental_capabilities, | |
| **kwargs, | |
| ) | |