@@ -41,12 +41,16 @@ async def wrapped_initialize_handler(request: InitializeRequest) -> ServerResult
4141 """Intercept initialize requests to add MCPCat data to the request context."""
4242 session_id = get_server_session_id (server )
4343 request_context = safe_request_context (server )
44- identify_session (server , request , request_context )
44+ identity = identify_session (server , request , request_context )
45+
4546 event = UnredactedEvent (
4647 session_id = session_id ,
4748 timestamp = datetime .now (timezone .utc ),
4849 parameters = request .params .model_dump () if request .params else {},
4950 event_type = EventType .MCP_INITIALIZE .value ,
51+ identify_actor_given_id = identity .user_id if identity else None ,
52+ identify_actor_name = identity .user_name if identity else None ,
53+ identify_data = identity .user_data if identity else None ,
5054 )
5155
5256 # Call the original handler
@@ -64,14 +68,18 @@ async def wrapped_list_tools_handler(request: ListToolsRequest) -> ServerResult:
6468 session_id = get_server_session_id (server )
6569 request_context = safe_request_context (server )
6670 get_client_info_from_request_context (server , request_context )
67- identify_session (server , request , request_context )
71+ identity = identify_session (server , request , request_context )
72+
6873 event = UnredactedEvent (
6974 session_id = session_id ,
7075 timestamp = datetime .now (timezone .utc ),
7176 parameters = request .params .model_dump ()
7277 if request and request .params
7378 else {},
7479 event_type = EventType .MCP_TOOLS_LIST .value ,
80+ identify_actor_given_id = identity .user_id if identity else None ,
81+ identify_actor_name = identity .user_name if identity else None ,
82+ identify_data = identity .user_data if identity else None ,
7583 )
7684
7785 # Call the original handler to get the tools
@@ -142,7 +150,7 @@ async def wrapped_call_tool_handler(request: CallToolRequest) -> ServerResult:
142150 session_id = get_server_session_id (server )
143151 request_context = safe_request_context (server )
144152 get_client_info_from_request_context (server , request_context )
145- identify_session (server , request , request_context )
153+ identity = identify_session (server , request , request_context )
146154
147155 write_to_log (
148156 f"Intercepted call to tool '{ tool_name } ' with arguments: { arguments } and request context: { request_context } "
@@ -153,6 +161,9 @@ async def wrapped_call_tool_handler(request: CallToolRequest) -> ServerResult:
153161 parameters = request .params .model_dump () if request .params else {},
154162 event_type = EventType .MCP_TOOLS_CALL .value ,
155163 resource_name = tool_name ,
164+ identify_actor_given_id = identity .user_id if identity else None ,
165+ identify_actor_name = identity .user_name if identity else None ,
166+ identify_data = identity .user_data if identity else None ,
156167 )
157168
158169 # Extract user intent from context (but don't pop yet - we need it for the event)
@@ -220,12 +231,20 @@ async def wrapped_initialize_handler(request: InitializeRequest) -> ServerResult
220231 """Intercept initialize requests to add MCPCat data to the request context."""
221232 session_id = get_server_session_id (server )
222233 request_context = safe_request_context (server )
223- identify_session (server , request , request_context )
234+ try :
235+ identity = identify_session (server , request , request_context )
236+ except Exception as e :
237+ identity = None
238+ write_to_log (f"Ran into an error in session identification, no identity could be determined: { e } " )
239+
224240 event = UnredactedEvent (
225241 session_id = session_id ,
226242 timestamp = datetime .now (timezone .utc ),
227243 parameters = request .params .model_dump () if request .params else {},
228244 event_type = EventType .MCP_INITIALIZE .value ,
245+ identify_actor_given_id = identity .user_id if identity else None ,
246+ identify_actor_name = identity .user_name if identity else None ,
247+ identify_data = identity .user_data if identity else None ,
229248 )
230249
231250 # Call the original handler
@@ -241,14 +260,18 @@ async def wrapped_list_tools_handler(request: ListToolsRequest) -> ServerResult:
241260 session_id = get_server_session_id (server )
242261 request_context = safe_request_context (server )
243262 get_client_info_from_request_context (server , request_context )
244- identify_session (server , request , request_context )
263+ identity = identify_session (server , request , request_context )
264+
245265 event = UnredactedEvent (
246266 session_id = session_id ,
247267 timestamp = datetime .now (timezone .utc ),
248268 parameters = request .params .model_dump ()
249269 if request and request .params
250270 else {},
251271 event_type = EventType .MCP_TOOLS_LIST .value ,
272+ identify_actor_given_id = identity .user_id if identity else None ,
273+ identify_actor_name = identity .user_name if identity else None ,
274+ identify_data = identity .user_data if identity else None ,
252275 )
253276
254277 # Call the original handler - tool modifications are handled by monkey-patch
0 commit comments