1111__version__ = "0.1.0"
1212
1313
14- def track (server : Any , options : Optional [ MCPCatOptions ] = None ) -> Any :
14+ def track (server : Any , options : MCPCatOptions | None = None ) -> Any :
1515 """
1616 Enable analytics tracking for an MCP server.
1717
@@ -28,13 +28,13 @@ def track(server: Any, options: Optional[MCPCatOptions] = None) -> Any:
2828 # Use default options if not provided
2929 if options is None :
3030 options = MCPCatOptions ()
31-
31+
3232 # Validate server compatibility
3333 if not is_compatible_server (server ):
3434 raise TypeError (
3535 "Server must be a FastMCP instance or implement the MCP server protocol"
3636 )
37-
37+
3838 # Check if already tracked
3939 if has_mcpcat_data (server ):
4040 log_info (
@@ -43,15 +43,15 @@ def track(server: Any, options: Optional[MCPCatOptions] = None) -> Any:
4343 options
4444 )
4545 return server
46-
46+
4747 # Create and store tracking data
4848 data = MCPCatData (options = options )
4949 set_mcpcat_data (server , data )
50-
50+
5151 try :
5252 # Set up tool handlers
5353 setup_tool_handlers (server , data )
54-
54+
5555 # Log initialization
5656 log_info (
5757 "MCPCat tracking initialized" ,
@@ -70,36 +70,36 @@ def track(server: Any, options: Optional[MCPCatOptions] = None) -> Any:
7070 if has_mcpcat_data (server ):
7171 # Remove from tracking
7272 get_mcpcat_data (server ) # This will remove the weak reference
73-
73+
7474 log_error (
7575 "Failed to initialize MCPCat" ,
7676 e ,
7777 {"server" : server .__class__ .__name__ },
7878 options
7979 )
80-
80+
8181 raise
82-
82+
8383 # Return the server (like TypeScript version)
8484 return server
8585
8686
8787def get_unknown_or_stdio_session (server : Any ) -> dict :
8888 """Get or create an unknown/STDIO session for the server."""
8989 from .modules .session import get_or_create_unknown_session
90-
90+
9191 data = get_mcpcat_data (server )
9292 if not data :
9393 raise Exception ("Server tracking data not found" )
94-
94+
9595 session_id = get_or_create_unknown_session (data )
9696 return {
9797 "sessionId" : session_id ,
9898 "expiresIn" : data .unknown_session .last_used if data .unknown_session else None
9999 }
100100
101101
102- def _getServerTrackingData (server : Any ) -> Optional [ MCPCatData ] :
102+ def _getServerTrackingData (server : Any ) -> MCPCatData | None :
103103 """Get server tracking data (for testing)."""
104104 return get_mcpcat_data (server )
105105
@@ -108,19 +108,19 @@ async def handleReportMissing(arguments: dict) -> None:
108108 """Handle report missing tool call (for testing)."""
109109 from .modules .logging import log_info
110110 from .types import MCPCatOptions
111-
111+
112112 # Create minimal options for logging
113113 options = MCPCatOptions ()
114-
114+
115115 log_info ("Missing tool reported" , arguments , options )
116116
117117
118118__all__ = [
119119 "track" ,
120120 "get_unknown_or_stdio_session" ,
121- "_getServerTrackingData" ,
121+ "_getServerTrackingData" ,
122122 "handleReportMissing" ,
123- "MCPCatOptions" ,
123+ "MCPCatOptions" ,
124124 "UserData" ,
125125 "__version__" ,
126- ]
126+ ]
0 commit comments