MCPcopy
hub / github.com/github/github-mcp-server / processToolsets

Method processToolsets

pkg/inventory/builder.go:285–388  ·  view source on GitHub ↗

processToolsets processes the toolsetIDs configuration and returns: - enabledToolsets map (nil means all enabled) - unrecognizedToolsets list for warnings - allToolsetIDs sorted list of all toolset IDs - toolsetIDSet map for O(1) HasToolset lookup - defaultToolsetIDs sorted list of default toolset I

()

Source from the content-addressed store, hash-verified

283// - defaultToolsetIDs sorted list of default toolset IDs
284// - toolsetDescriptions map of toolset ID to description
285func (b *Builder) processToolsets() (map[ToolsetID]bool, []string, []ToolsetID, map[ToolsetID]bool, []ToolsetID, map[ToolsetID]string) {
286 // Single pass: collect all toolset metadata together
287 validIDs := make(map[ToolsetID]bool)
288 defaultIDs := make(map[ToolsetID]bool)
289 descriptions := make(map[ToolsetID]string)
290
291 for i := range b.tools {
292 t := &b.tools[i]
293 validIDs[t.Toolset.ID] = true
294 if t.Toolset.Default {
295 defaultIDs[t.Toolset.ID] = true
296 }
297 if t.Toolset.Description != "" {
298 descriptions[t.Toolset.ID] = t.Toolset.Description
299 }
300 }
301 for i := range b.resourceTemplates {
302 r := &b.resourceTemplates[i]
303 validIDs[r.Toolset.ID] = true
304 if r.Toolset.Default {
305 defaultIDs[r.Toolset.ID] = true
306 }
307 if r.Toolset.Description != "" {
308 descriptions[r.Toolset.ID] = r.Toolset.Description
309 }
310 }
311 for i := range b.prompts {
312 p := &b.prompts[i]
313 validIDs[p.Toolset.ID] = true
314 if p.Toolset.Default {
315 defaultIDs[p.Toolset.ID] = true
316 }
317 if p.Toolset.Description != "" {
318 descriptions[p.Toolset.ID] = p.Toolset.Description
319 }
320 }
321
322 // Build sorted slices from the collected maps
323 allToolsetIDs := make([]ToolsetID, 0, len(validIDs))
324 for id := range validIDs {
325 allToolsetIDs = append(allToolsetIDs, id)
326 }
327 slices.Sort(allToolsetIDs)
328
329 defaultToolsetIDList := make([]ToolsetID, 0, len(defaultIDs))
330 for id := range defaultIDs {
331 defaultToolsetIDList = append(defaultToolsetIDList, id)
332 }
333 slices.Sort(defaultToolsetIDList)
334
335 toolsetIDs := b.toolsetIDs
336
337 // Check for "all" keyword - enables all toolsets
338 for _, id := range toolsetIDs {
339 if strings.TrimSpace(id) == "all" {
340 return nil, nil, allToolsetIDs, validIDs, defaultToolsetIDList, descriptions // nil means all enabled
341 }
342 }

Callers 1

BuildMethod · 0.95

Calls 1

ToolsetIDTypeAlias · 0.85

Tested by

no test coverage detected