@@ -66,7 +66,7 @@ async def main():
6666from mcp .server .streamable_http import EventStore
6767from mcp .server .streamable_http_manager import StreamableHTTPASGIApp , StreamableHTTPSessionManager
6868from mcp .server .transport_security import TransportSecuritySettings
69- from mcp .shared ._otel import build_server_span_attributes , extract_trace_context , otel_span
69+ from mcp .shared ._otel import extract_trace_context , otel_span
7070from mcp .shared ._stream_protocols import ReadStream , WriteStream
7171from mcp .shared .exceptions import MCPError
7272from mcp .shared .message import ServerMessageMetadata , SessionMessage
@@ -464,17 +464,23 @@ async def _handle_request(
464464 close_standalone_sse_stream_cb = message .message_metadata .close_standalone_sse_stream
465465 request_headers = getattr (request_data , "headers" , None )
466466 session_id = request_headers .get (MCP_SESSION_ID_HEADER ) if request_headers is not None else None
467+ span_attributes : dict [str , Any ] = {
468+ "rpc.system" : "mcp" ,
469+ "rpc.service" : self .name ,
470+ "rpc.method" : req .method ,
471+ "mcp.method.name" : req .method ,
472+ "jsonrpc.request.id" : message .request_id ,
473+ }
474+ resource_uri = getattr (req .params , "uri" , None )
475+ if resource_uri is not None :
476+ span_attributes ["mcp.resource.uri" ] = str (resource_uri )
477+ if session_id is not None :
478+ span_attributes ["mcp.session.id" ] = session_id
467479
468480 with otel_span (
469481 span_name ,
470482 kind = SpanKind .SERVER ,
471- attributes = build_server_span_attributes (
472- service_name = self .name ,
473- method = req .method ,
474- request_id = message .request_id ,
475- params = req .params ,
476- session_id = session_id ,
477- ),
483+ attributes = span_attributes ,
478484 context = parent_context ,
479485 ) as span :
480486 if handler := self ._request_handlers .get (req .method ):
0 commit comments