Skip to main content
Glama
simple_test.go2.7 kB
package example import ( "os" "testing" "github.com/weibaohui/kom/mcp" ) func TestMultiClusterSSE(t *testing.T) { testDir := "/tmp/kom-test" err := os.MkdirAll(testDir, 0755) if err != nil { t.Fatalf("Failed to create test directory: %v", err) } defer os.RemoveAll(testDir) kubeconfig1 := `apiVersion: v1 clusters: - cluster: server: https://cluster1.example.com:6443 insecure-skip-tls-verify: true name: cluster1 contexts: - context: cluster: cluster1 user: admin name: cluster1 current-context: cluster1 kind: Config users: - name: admin user: token: fake-token-1` kubeconfig2 := `apiVersion: v1 clusters: - cluster: server: https://cluster2.example.com:6443 insecure-skip-tls-verify: true name: cluster2 contexts: - context: cluster: cluster2 user: admin name: cluster2 current-context: cluster2 kind: Config users: - name: admin user: token: fake-token-2` file1 := testDir + "/cluster1.yaml" file2 := testDir + "/cluster2.yaml" err = os.WriteFile(file1, []byte(kubeconfig1), 0644) if err != nil { t.Fatalf("Failed to write kubeconfig1: %v", err) } err = os.WriteFile(file2, []byte(kubeconfig2), 0644) if err != nil { t.Fatalf("Failed to write kubeconfig2: %v", err) } cfg := &mcp.ServerConfig{ Name: "kom test", Version: "1.0.0", Port: 9096, Mode: mcp.ServerModeSSE, Kubeconfigs: []mcp.KubeconfigConfig{ {ID: "cluster1", Path: file1, IsDefault: true}, {ID: "cluster2", Path: file2}, }, } server := mcp.GetMCPServerWithOption(cfg) if server == nil { t.Fatal("Failed to create MCP server") } t.Log("Multi-cluster SSE support working") } func TestDirectoryLoading(t *testing.T) { testDir := "/tmp/kom-dir-test" err := os.MkdirAll(testDir, 0755) if err != nil { t.Fatalf("Failed to create test directory: %v", err) } defer os.RemoveAll(testDir) kubeconfig := `apiVersion: v1 clusters: - cluster: server: https://test.example.com:6443 insecure-skip-tls-verify: true name: test-cluster contexts: - context: cluster: test-cluster user: admin name: test-context current-context: test-context kind: Config users: - name: admin user: token: fake-token` err = os.WriteFile(testDir+"/test.yaml", []byte(kubeconfig), 0644) if err != nil { t.Fatalf("Failed to write kubeconfig: %v", err) } configs, err := mcp.LoadKubeconfigsFromDirectory(testDir) if err != nil { t.Fatalf("Failed to load from directory: %v", err) } if len(configs) != 1 { t.Fatalf("Expected 1 config, got %d", len(configs)) } if configs[0].ID != "test" { t.Fatalf("Expected cluster ID 'test', got '%s'", configs[0].ID) } t.Log("Directory loading working") }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/weibaohui/kom'

If you have feedback or need assistance with the MCP directory API, please join our Discord server