@@ -337,58 +337,39 @@ const (
337337func (tg * ToolsetGroup ) ForMCPRequest (method string , itemName string ) * ToolsetGroup {
338338 result := tg .copy ()
339339
340- switch method {
341- case MCPMethodInitialize :
342- // Capabilities only - no items need to be registered
343- // The server capabilities (tools, resources, prompts support) are set via ServerOptions
340+ // Helper to clear all item types
341+ clearAll := func () {
344342 result .tools = []ServerTool {}
345343 result .resourceTemplates = []ServerResourceTemplate {}
346344 result .prompts = []ServerPrompt {}
345+ }
347346
347+ switch method {
348+ case MCPMethodInitialize :
349+ clearAll ()
348350 case MCPMethodToolsList :
349- // All available tools, but no resources or prompts
350- result .resourceTemplates = []ServerResourceTemplate {}
351- result .prompts = []ServerPrompt {}
352-
351+ result .resourceTemplates , result .prompts = nil , nil
353352 case MCPMethodToolsCall :
354- // Only the specific tool (if found), no resources or prompts
355- result .resourceTemplates = []ServerResourceTemplate {}
356- result .prompts = []ServerPrompt {}
353+ result .resourceTemplates , result .prompts = nil , nil
357354 if itemName != "" {
358355 result .tools = tg .filterToolsByName (itemName )
359356 }
360-
361357 case MCPMethodResourcesList , MCPMethodResourcesTemplatesList :
362- // All available resources, but no tools or prompts
363- result .tools = []ServerTool {}
364- result .prompts = []ServerPrompt {}
365-
358+ result .tools , result .prompts = nil , nil
366359 case MCPMethodResourcesRead :
367- // Only the specific resource template, no tools or prompts
368- result .tools = []ServerTool {}
369- result .prompts = []ServerPrompt {}
360+ result .tools , result .prompts = nil , nil
370361 if itemName != "" {
371362 result .resourceTemplates = tg .filterResourcesByURI (itemName )
372363 }
373-
374364 case MCPMethodPromptsList :
375- // All available prompts, but no tools or resources
376- result .tools = []ServerTool {}
377- result .resourceTemplates = []ServerResourceTemplate {}
378-
365+ result .tools , result .resourceTemplates = nil , nil
379366 case MCPMethodPromptsGet :
380- // Only the specific prompt, no tools or resources
381- result .tools = []ServerTool {}
382- result .resourceTemplates = []ServerResourceTemplate {}
367+ result .tools , result .resourceTemplates = nil , nil
383368 if itemName != "" {
384369 result .prompts = tg .filterPromptsByName (itemName )
385370 }
386-
387371 default :
388- // Unknown method - register nothing
389- result .tools = []ServerTool {}
390- result .resourceTemplates = []ServerResourceTemplate {}
391- result .prompts = []ServerPrompt {}
372+ clearAll ()
392373 }
393374
394375 return result
0 commit comments