@@ -185,7 +185,6 @@ func (h *Handler) onCompositeMessage(ctx context.Context, msg nmcp.Message, m me
185185 }
186186 return
187187 }
188-
189188 }
190189
191190 // All components responded, reply with the last result
@@ -248,6 +247,7 @@ func (h *Handler) onCompositeMessage(ctx context.Context, msg nmcp.Message, m me
248247 Code : - 32603 ,
249248 Message : fmt .Sprintf ("failed to reply to composite server %s: %v" , m .mcpID , err ),
250249 }
250+ return
251251 }
252252
253253 result = compositeResult
@@ -265,7 +265,6 @@ func (h *Handler) onCompositeMessage(ctx context.Context, msg nmcp.Message, m me
265265 compositePrompts = append (compositePrompts , m .toCompositePrompt (componentKey , prompt ))
266266 }
267267 }
268-
269268 compositeResult := nmcp.ListPromptsResult {
270269 Prompts : compositePrompts ,
271270 }
@@ -276,12 +275,11 @@ func (h *Handler) onCompositeMessage(ctx context.Context, msg nmcp.Message, m me
276275 Message : fmt .Sprintf ("failed to reply to composite server %s: %v" , m .mcpID , err ),
277276 }
278277 }
279-
280278 result = compositeResult
281279 return
282280 case methodPromptsGet :
283281 var compositeRequest nmcp.GetPromptRequest
284- if err : = json .Unmarshal (msg .Params , & compositeRequest ); err != nil {
282+ if err = json .Unmarshal (msg .Params , & compositeRequest ); err != nil {
285283 err = & nmcp.RPCError {
286284 Code : - 32602 ,
287285 Message : fmt .Sprintf ("Failed to unmarshal get prompt request: %v" , err ),
@@ -309,11 +307,11 @@ func (h *Handler) onCompositeMessage(ctx context.Context, msg nmcp.Message, m me
309307
310308 componentRequest := m .toComponentGetPromptRequest (componentKey , compositeRequest )
311309
312- b , err := json .Marshal (componentRequest )
313- if err != nil {
310+ b , marshalErr := json .Marshal (componentRequest )
311+ if marshalErr != nil {
314312 err = & nmcp.RPCError {
315313 Code : - 32603 ,
316- Message : fmt .Sprintf ("failed to marshal request for server %s: %v" , client .mcpServer .Name , err ),
314+ Message : fmt .Sprintf ("failed to marshal request for server %s: %v" , client .mcpServer .Name , marshalErr ),
317315 }
318316 return
319317 }
@@ -331,22 +329,23 @@ func (h *Handler) onCompositeMessage(ctx context.Context, msg nmcp.Message, m me
331329 Code : - 32603 ,
332330 Message : fmt .Sprintf ("failed to reply to composite server %s: %v" , m .mcpID , err ),
333331 }
332+ return
334333 }
335334
336335 result = componentResult
337336 return
338337 case methodToolsList :
339338 var compositeTools []nmcp.Tool
340339 for componentKey , client := range clients {
341- var result nmcp.ListToolsResult
342- if err = client .Session .Exchange (ctx , methodToolsList , & msg , & result ); err != nil {
340+ var lr nmcp.ListToolsResult
341+ if err = client .Session .Exchange (ctx , methodToolsList , & msg , & lr ); err != nil {
343342 log .Errorf ("Failed to send %s message to server %s: %v" , msg .Method , client .mcpID , err )
344343 return
345344 }
346- for _ , tool := range result .Tools {
347- compositeTool , err := m .toCompositeTool (componentKey , tool )
348- if err != nil {
349- err = fmt .Errorf ("failed to override tool %s: %w" , tool .Name , err )
345+ for _ , tool := range lr .Tools {
346+ compositeTool , convErr := m .toCompositeTool (componentKey , tool )
347+ if convErr != nil {
348+ err = fmt .Errorf ("failed to override tool %s: %w" , tool .Name , convErr )
350349 return
351350 }
352351
@@ -370,13 +369,13 @@ func (h *Handler) onCompositeMessage(ctx context.Context, msg nmcp.Message, m me
370369 Code : - 32603 ,
371370 Message : fmt .Sprintf ("failed to reply to composite server %s: %v" , m .mcpID , err ),
372371 }
372+ return
373373 }
374-
375374 result = compositeResult
376375 return
377376 case methodToolsCall :
378377 var compositeRequest nmcp.CallToolRequest
379- if err : = json .Unmarshal (msg .Params , & compositeRequest ); err != nil {
378+ if err = json .Unmarshal (msg .Params , & compositeRequest ); err != nil {
380379 err = & nmcp.RPCError {
381380 Code : - 32602 ,
382381 Message : fmt .Sprintf ("Failed to unmarshal tool call request: %v" , err ),
@@ -402,7 +401,8 @@ func (h *Handler) onCompositeMessage(ctx context.Context, msg nmcp.Message, m me
402401 return
403402 }
404403
405- componentRequest , err := m .toComponentCallToolRequest (componentKey , compositeRequest )
404+ var componentRequest * nmcp.CallToolRequest
405+ componentRequest , err = m .toComponentCallToolRequest (componentKey , compositeRequest )
406406 if err != nil {
407407 log .Errorf ("Failed to convert tool call request to component tool call request: %v" , err )
408408 return
@@ -412,13 +412,14 @@ func (h *Handler) onCompositeMessage(ctx context.Context, msg nmcp.Message, m me
412412 Code : - 32602 ,
413413 Message : fmt .Sprintf ("Unknown tool: %s" , compositeRequest .Name ),
414414 }
415+ return
415416 }
416417
417- b , err := json .Marshal (componentRequest )
418- if err != nil {
418+ b , marshalErr := json .Marshal (componentRequest )
419+ if marshalErr != nil {
419420 err = & nmcp.RPCError {
420421 Code : - 32603 ,
421- Message : fmt .Sprintf ("failed to marshal request for server %s: %v" , client .mcpServer .Name , err ),
422+ Message : fmt .Sprintf ("failed to marshal request for server %s: %v" , client .mcpServer .Name , marshalErr ),
422423 }
423424 return
424425 }
@@ -436,6 +437,7 @@ func (h *Handler) onCompositeMessage(ctx context.Context, msg nmcp.Message, m me
436437 Code : - 32603 ,
437438 Message : fmt .Sprintf ("failed to reply to composite server %s: %v" , m .mcpID , err ),
438439 }
440+ return
439441 }
440442
441443 result = componentResult
@@ -466,7 +468,6 @@ func (h *Handler) onCompositeMessage(ctx context.Context, msg nmcp.Message, m me
466468 Message : "Method not allowed" ,
467469 }
468470 }
469-
470471}
471472
472473func normalizeName (name string ) string {
0 commit comments