From 66d35df858a3ef73a816ae4a82df861c35c9025a Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 27 Apr 2025 16:41:06 +0000 Subject: [PATCH] Fix type-checker issues in SSE client and MCP connector Co-Authored-By: Joe Moura --- src/crewai/tools/mcp_connector.py | 2 +- src/crewai/utilities/sse_client.py | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/crewai/tools/mcp_connector.py b/src/crewai/tools/mcp_connector.py index 708ca5a50..29accfb91 100644 --- a/src/crewai/tools/mcp_connector.py +++ b/src/crewai/tools/mcp_connector.py @@ -31,7 +31,7 @@ class MCPToolConnector: def connect(self) -> None: """Connect to the MCP SSE server for tools.""" - token = self.token_manager.get_access_token() + token = self.token_manager.get_token() if not token: self.logger.error("Authentication token not found. Please log in first.") raise ValueError("Authentication token not found. Please log in first.") diff --git a/src/crewai/utilities/sse_client.py b/src/crewai/utilities/sse_client.py index 3fb77ec22..8ebc68c2a 100644 --- a/src/crewai/utilities/sse_client.py +++ b/src/crewai/utilities/sse_client.py @@ -78,9 +78,9 @@ class SSEClient: stream=True, timeout=self.timeout ) - self._response.raise_for_status() - - self._client = sseclient.SSEClient(self._response) + if self._response is not None: + self._response.raise_for_status() + self._client = sseclient.SSEClient(self._response) except Exception as e: self.logger.error(f"Error connecting to SSE server: {str(e)}") @@ -93,7 +93,7 @@ class SSEClient: ) raise - def listen(self, event_handlers: Dict[str, Callable[[Any], None]] = None) -> None: + def listen(self, event_handlers: Optional[Dict[str, Callable[[Any], None]]] = None) -> None: """Listen for SSE events and process them with registered handlers. Args: @@ -105,6 +105,10 @@ class SSEClient: event_handlers = event_handlers or {} try: + if self._client is None: + self.logger.error("SSE client is not initialized") + return + for event in self._client: event_type = event.event or "message" data = None