@@ -87,6 +87,35 @@ func TestIntegrationSessionInitialize(t *testing.T) {
8787 assert .Equal (t , "2.0" , resp ["jsonrpc" ])
8888 assert .Equal (t , float64 (1 ), resp ["id" ])
8989 assert .NotNil (t , resp ["result" ])
90+
91+ // Verify LLMObs task span was created for initialization
92+ spans := tt .WaitForLLMObsSpans (t , 1 )
93+ require .Len (t , spans , 1 )
94+
95+ taskSpan := spans [0 ]
96+ assert .Equal (t , "mcp.initialize" , taskSpan .Name )
97+ assert .Equal (t , "task" , taskSpan .Meta ["span.kind" ])
98+
99+ // Verify input/output annotations exist
100+ assert .Contains (t , taskSpan .Meta , "input" )
101+ assert .Contains (t , taskSpan .Meta , "output" )
102+
103+ // Verify input contains the initialize request data
104+ inputMeta := taskSpan .Meta ["input" ]
105+ assert .NotNil (t , inputMeta )
106+ inputJSON , err := json .Marshal (inputMeta )
107+ require .NoError (t , err )
108+ inputStr := string (inputJSON )
109+ assert .Contains (t , inputStr , "2024-11-05" ) // protocol version
110+ assert .Contains (t , inputStr , "test-client" )
111+
112+ // Verify output contains the result
113+ outputMeta := taskSpan .Meta ["output" ]
114+ assert .NotNil (t , outputMeta )
115+ outputJSON , err := json .Marshal (outputMeta )
116+ require .NoError (t , err )
117+ outputStr := string (outputJSON )
118+ assert .Contains (t , outputStr , "serverInfo" )
90119}
91120
92121func TestIntegrationToolCallSuccess (t * testing.T ) {
0 commit comments