@@ -158,33 +158,6 @@ def _get_request_context_data(
158158 return request_id , session_id , mcp_transport
159159
160160
161- def _get_span_config (
162- handler_type : str , item_name : str
163- ) -> "tuple[str, str, str, Optional[str]]" :
164- """
165- Get span configuration based on handler type.
166-
167- Returns:
168- Tuple of (span_data_key, span_name, mcp_method_name, result_data_key)
169- Note: result_data_key is None for resources
170- """
171- if handler_type == "tool" :
172- span_data_key = SPANDATA .MCP_TOOL_NAME
173- mcp_method_name = "tools/call"
174- result_data_key = SPANDATA .MCP_TOOL_RESULT_CONTENT
175- elif handler_type == "prompt" :
176- span_data_key = SPANDATA .MCP_PROMPT_NAME
177- mcp_method_name = "prompts/get"
178- result_data_key = SPANDATA .MCP_PROMPT_RESULT_MESSAGE_CONTENT
179- else : # resource
180- span_data_key = SPANDATA .MCP_RESOURCE_URI
181- mcp_method_name = "resources/read"
182- result_data_key = None # Resources don't capture result content
183-
184- span_name = f"{ mcp_method_name } { item_name } "
185- return span_data_key , span_name , mcp_method_name , result_data_key
186-
187-
188161def _set_span_input_data (
189162 span : "Union[StreamedSpan, Span]" ,
190163 handler_name : str ,
@@ -497,10 +470,6 @@ async def _tool_handler_wrapper(
497470 "tool" , original_args , original_kwargs
498471 )
499472
500- span_data_key , span_name , mcp_method_name , result_data_key = _get_span_config (
501- "tool" , handler_name
502- )
503-
504473 scopes = _get_active_http_scopes (ctx = ctx )
505474
506475 isolation_scope_context : "ContextManager[Any]"
@@ -533,7 +502,7 @@ async def _tool_handler_wrapper(
533502 span_mgr : "Union[Span, StreamedSpan]"
534503 if span_streaming :
535504 span_mgr = sentry_sdk .traces .start_span (
536- name = span_name ,
505+ name = f"tools/call { handler_name } " ,
537506 attributes = {
538507 "sentry.op" : OP .MCP_SERVER ,
539508 "sentry.origin" : MCPIntegration .origin ,
@@ -542,7 +511,7 @@ async def _tool_handler_wrapper(
542511 else :
543512 span_mgr = get_start_span_function ()(
544513 op = OP .MCP_SERVER ,
545- name = span_name ,
514+ name = f"tools/call { handler_name } " ,
546515 origin = MCPIntegration .origin ,
547516 )
548517
@@ -551,8 +520,8 @@ async def _tool_handler_wrapper(
551520 _set_span_input_data (
552521 span ,
553522 handler_name ,
554- span_data_key ,
555- mcp_method_name ,
523+ SPANDATA . MCP_TOOL_NAME ,
524+ "tools/call" ,
556525 arguments ,
557526 request_id ,
558527 session_id ,
@@ -574,7 +543,9 @@ async def _tool_handler_wrapper(
574543 sentry_sdk .capture_exception (e )
575544 raise
576545
577- _set_span_output_data (span , result , result_data_key , "tool" )
546+ _set_span_output_data (
547+ span , result , SPANDATA .MCP_TOOL_RESULT_CONTENT , "tool"
548+ )
578549
579550 return result
580551
@@ -619,10 +590,6 @@ async def _prompt_handler_wrapper(
619590 "prompt" , original_args , original_kwargs
620591 )
621592
622- span_data_key , span_name , mcp_method_name , result_data_key = _get_span_config (
623- "prompt" , handler_name
624- )
625-
626593 scopes = _get_active_http_scopes (ctx = ctx )
627594
628595 isolation_scope_context : "ContextManager[Any]"
@@ -655,7 +622,7 @@ async def _prompt_handler_wrapper(
655622 span_mgr : "Union[Span, StreamedSpan]"
656623 if span_streaming :
657624 span_mgr = sentry_sdk .traces .start_span (
658- name = span_name ,
625+ name = f"prompts/get { handler_name } " ,
659626 attributes = {
660627 "sentry.op" : OP .MCP_SERVER ,
661628 "sentry.origin" : MCPIntegration .origin ,
@@ -664,7 +631,7 @@ async def _prompt_handler_wrapper(
664631 else :
665632 span_mgr = get_start_span_function ()(
666633 op = OP .MCP_SERVER ,
667- name = span_name ,
634+ name = f"prompts/get { handler_name } " ,
668635 origin = MCPIntegration .origin ,
669636 )
670637
@@ -673,8 +640,8 @@ async def _prompt_handler_wrapper(
673640 _set_span_input_data (
674641 span ,
675642 handler_name ,
676- span_data_key ,
677- mcp_method_name ,
643+ SPANDATA . MCP_PROMPT_NAME ,
644+ "prompts/get" ,
678645 arguments ,
679646 request_id ,
680647 session_id ,
@@ -694,7 +661,9 @@ async def _prompt_handler_wrapper(
694661 sentry_sdk .capture_exception (e )
695662 raise
696663
697- _set_span_output_data (span , result , result_data_key , "prompt" )
664+ _set_span_output_data (
665+ span , result , SPANDATA .MCP_PROMPT_RESULT_MESSAGE_CONTENT , "prompt"
666+ )
698667
699668 return result
700669
@@ -741,10 +710,6 @@ async def _resource_handler_wrapper(
741710 "resource" , original_args , original_kwargs
742711 )
743712
744- span_data_key , span_name , mcp_method_name , result_data_key = _get_span_config (
745- "resource" , handler_name
746- )
747-
748713 scopes = _get_active_http_scopes (ctx = ctx )
749714
750715 isolation_scope_context : "ContextManager[Any]"
@@ -777,7 +742,7 @@ async def _resource_handler_wrapper(
777742 span_mgr : "Union[Span, StreamedSpan]"
778743 if span_streaming :
779744 span_mgr = sentry_sdk .traces .start_span (
780- name = span_name ,
745+ name = f"resources/read { handler_name } " ,
781746 attributes = {
782747 "sentry.op" : OP .MCP_SERVER ,
783748 "sentry.origin" : MCPIntegration .origin ,
@@ -786,7 +751,7 @@ async def _resource_handler_wrapper(
786751 else :
787752 span_mgr = get_start_span_function ()(
788753 op = OP .MCP_SERVER ,
789- name = span_name ,
754+ name = f"resources/read { handler_name } " ,
790755 origin = MCPIntegration .origin ,
791756 )
792757
@@ -795,8 +760,8 @@ async def _resource_handler_wrapper(
795760 _set_span_input_data (
796761 span ,
797762 handler_name ,
798- span_data_key ,
799- mcp_method_name ,
763+ SPANDATA . MCP_RESOURCE_URI ,
764+ "resources/read" ,
800765 arguments ,
801766 request_id ,
802767 session_id ,
@@ -835,7 +800,7 @@ async def _resource_handler_wrapper(
835800 sentry_sdk .capture_exception (e )
836801 raise
837802
838- _set_span_output_data (span , result , result_data_key , "resource" )
803+ _set_span_output_data (span , result , None , "resource" )
839804
840805 return result
841806
0 commit comments