MCPcopy Create free account
hub / github.com/github/gh-aw / getMCPNetworkMigrationCodemod

Function getMCPNetworkMigrationCodemod

pkg/cli/codemod_mcp_network.go:15–149  ·  view source on GitHub ↗

getMCPNetworkMigrationCodemod creates a codemod for migrating per-server MCP network configuration to top-level network configuration

()

Source from the content-addressed store, hash-verified

13
14// getMCPNetworkMigrationCodemod creates a codemod for migrating per-server MCP network configuration to top-level network configuration
15func getMCPNetworkMigrationCodemod() Codemod {
16 return Codemod{
17 ID: "mcp-network-to-top-level-migration",
18 Name: "Migrate MCP network config to top-level",
19 Description: "Moves per-server MCP 'network.allowed' configuration to top-level workflow 'network.allowed'. Per-server network configuration is deprecated.",
20 IntroducedIn: "0.6.0",
21 Apply: func(content string, frontmatter map[string]any) (string, bool, error) {
22 // Check if mcp-servers section exists
23 mcpServersValue, hasMCPServers := frontmatter["mcp-servers"]
24 if !hasMCPServers {
25 return content, false, nil
26 }
27
28 mcpServersMap, ok := mcpServersValue.(map[string]any)
29 if !ok {
30 return content, false, nil
31 }
32
33 // Collect all network.allowed domains from MCP servers
34 var allAllowedDomains []string
35 serversWithNetwork := make(map[string]struct {
36 })
37
38 for serverName, serverValue := range mcpServersMap {
39 serverConfig, ok := serverValue.(map[string]any)
40 if !ok {
41 continue
42 }
43
44 // Check if this server has a network configuration
45 networkValue, hasNetwork := serverConfig["network"]
46 if !hasNetwork {
47 continue
48 }
49
50 networkMap, ok := networkValue.(map[string]any)
51 if !ok {
52 continue
53 }
54
55 // Extract allowed domains
56 allowedValue, hasAllowed := networkMap["allowed"]
57 if !hasAllowed {
58 continue
59 }
60
61 // Convert allowed to []string
62 switch allowed := allowedValue.(type) {
63 case []any:
64 for _, domain := range allowed {
65 if domainStr, ok := domain.(string); ok {
66 allAllowedDomains = append(allAllowedDomains, domainStr)
67 }
68 }
69 // Only mark server as having network if it has domains
70 if len(allowed) > 0 {
71 serversWithNetwork[serverName] = struct {
72 }{}

Calls 7

DeduplicateFunction · 0.92
removeFieldFromMCPServerFunction · 0.85
updateNetworkAllowedFunction · 0.85
addTopLevelNetworkFunction · 0.85
PrintMethod · 0.80
PrintfMethod · 0.45