nothingworry commited on
Commit
d0d37b9
·
1 Parent(s): 301c8c7

fix(analytics): make Supabase optional and update websockets for MCP server

Browse files
backend/mcp_server/common/database.py CHANGED
@@ -14,7 +14,16 @@ from typing import Optional, List, Dict, Any
14
  import psycopg2
15
  import psycopg2.extras
16
  from dotenv import load_dotenv
17
- from supabase import Client, create_client
 
 
 
 
 
 
 
 
 
18
 
19
  # Load environment variables
20
  load_dotenv()
@@ -28,7 +37,7 @@ SUPABASE_URL = os.getenv("SUPABASE_URL")
28
  SUPABASE_KEY = os.getenv("SUPABASE_SERVICE_KEY") # MUST be service role key
29
 
30
  # Global Supabase client instance
31
- _supabase_client: Optional[Client] = None
32
 
33
 
34
  # -----------------------------------
@@ -399,6 +408,12 @@ def get_supabase_client() -> Client:
399
  """
400
  global _supabase_client
401
 
 
 
 
 
 
 
402
  if _supabase_client is None:
403
  if not SUPABASE_URL or not SUPABASE_KEY:
404
  raise ValueError(
 
14
  import psycopg2
15
  import psycopg2.extras
16
  from dotenv import load_dotenv
17
+
18
+ try:
19
+ # Supabase client is optional; in environments without Supabase (e.g. HF Spaces demo),
20
+ # we don't want import errors (including websockets.asyncio) to crash the MCP server.
21
+ from supabase import Client, create_client # type: ignore
22
+ SUPABASE_AVAILABLE = True
23
+ except Exception:
24
+ Client = None # type: ignore
25
+ create_client = None # type: ignore
26
+ SUPABASE_AVAILABLE = False
27
 
28
  # Load environment variables
29
  load_dotenv()
 
37
  SUPABASE_KEY = os.getenv("SUPABASE_SERVICE_KEY") # MUST be service role key
38
 
39
  # Global Supabase client instance
40
+ _supabase_client: Optional["Client"] = None
41
 
42
 
43
  # -----------------------------------
 
408
  """
409
  global _supabase_client
410
 
411
+ if not SUPABASE_AVAILABLE:
412
+ raise RuntimeError(
413
+ "Supabase client is not available in this deployment. "
414
+ "Install and configure Supabase to use MCP Supabase features."
415
+ )
416
+
417
  if _supabase_client is None:
418
  if not SUPABASE_URL or not SUPABASE_KEY:
419
  raise ValueError(