Skip to content

Commit b13d9fe

Browse files
refactor: simplify ForMCPRequest switch cases
1 parent 8b850d0 commit b13d9fe

File tree

1 file changed

+13
-32
lines changed

1 file changed

+13
-32
lines changed

pkg/toolsets/toolsets.go

Lines changed: 13 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -337,58 +337,39 @@ const (
337337
func (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

Comments
 (0)