根据分析 python sdk没有 go sdk 的 searchconfig。请问有什么好的方案和计划么
`package main
import (
"encoding/json"
"fmt"
"log"
"github.com/nacos-group/nacos-sdk-go/v2/clients"
"github.com/nacos-group/nacos-sdk-go/v2/common/constant"
"github.com/nacos-group/nacos-sdk-go/v2/model"
"github.com/nacos-group/nacos-sdk-go/v2/vo"
)
const (
McpServerVersionGroup = "mcp-server-versions"
ListMcpServerConfigIdPattern = "*mcp-versions.json"
DefaultNacosListConfigPageSize = 50
)
type BasicMcpServerInfo struct {
Name string json:"name"
Id string json:"id"
FrontProtocol string json:"frontProtocol"
Protocol string json:"protocol"
}
func main() {
fmt.Println("===== Nacos McpList Test =====")
sc := []constant.ServerConfig{
*constant.NewServerConfig(
"127.0.0.1",
8848,
),
}
cc := constant.NewClientConfig(
constant.WithTimeoutMs(5000),
constant.WithLogLevel("debug"),
constant.WithNamespaceId(""),
constant.WithUsername("nacos"),
constant.WithPassword("nacos"),
)
clientParam := vo.NacosClientParam{
ClientConfig: cc,
ServerConfigs: sc,
}
configClient, err := clients.NewConfigClient(clientParam)
if err != nil {
log.Fatalf("Failed to create config client: %v", err)
}
fmt.Println("✓ Config client created successfully")
servers, err := listMcpServerConfigs(configClient)
if err != nil {
log.Fatalf("Failed to list MCP server configs: %v", err)
}
fmt.Printf("\n===== Found %d MCP servers =====\n", len(servers))
for _, server := range servers {
fmt.Printf("\nServer:\n")
fmt.Printf(" ID: %s\n", server.Id)
fmt.Printf(" Name: %s\n", server.Name)
fmt.Printf(" FrontProtocol: %s\n", server.FrontProtocol)
fmt.Printf(" Protocol: %s\n", server.Protocol)
}
fmt.Println("\n===== Test completed successfully =====")
}
func listMcpServerConfigs(configClient interface{ SearchConfig(param vo.SearchConfigParam) (*model.ConfigPage, error) }) ([]BasicMcpServerInfo, error) {
currentPageNum := 1
result := make([]BasicMcpServerInfo, 0)
for {
configPage, err := configClient.SearchConfig(vo.SearchConfigParam{
Search: "blur",
DataId: ListMcpServerConfigIdPattern,
Group: McpServerVersionGroup,
PageNo: currentPageNum,
PageSize: DefaultNacosListConfigPageSize,
})
if err != nil {
return nil, fmt.Errorf("search config error: %w", err)
}
if configPage == nil || len(configPage.PageItems) == 0 {
break
}
for _, config := range configPage.PageItems {
mcpServerBasicConfig, err := getConfig(configClient, config.DataId, McpServerVersionGroup)
if err != nil || mcpServerBasicConfig == "" {
continue
}
var info BasicMcpServerInfo
if err := json.Unmarshal([]byte(mcpServerBasicConfig), &info); err != nil {
continue
}
if info.FrontProtocol == "mcp-sse" || info.FrontProtocol == "mcp-streamable" {
result = append(result, info)
}
}
if configPage.PageNumber >= configPage.PagesAvailable {
break
}
currentPageNum++
}
return result, nil
}
func getConfig(client interface{ GetConfig(param vo.ConfigParam) (string, error) }, dataId, group string) (string, error) {
return client.GetConfig(vo.ConfigParam{
Group: group,
DataId: dataId,
})
}
`
根据分析 python sdk没有 go sdk 的 searchconfig。请问有什么好的方案和计划么
`package main
import (
"encoding/json"
"fmt"
"log"
)
const (
McpServerVersionGroup = "mcp-server-versions"
ListMcpServerConfigIdPattern = "*mcp-versions.json"
DefaultNacosListConfigPageSize = 50
)
type BasicMcpServerInfo struct {
Name string
json:"name"Id string
json:"id"FrontProtocol string
json:"frontProtocol"Protocol string
json:"protocol"}
func main() {
fmt.Println("===== Nacos McpList Test =====")
}
func listMcpServerConfigs(configClient interface{ SearchConfig(param vo.SearchConfigParam) (*model.ConfigPage, error) }) ([]BasicMcpServerInfo, error) {
currentPageNum := 1
result := make([]BasicMcpServerInfo, 0)
}
func getConfig(client interface{ GetConfig(param vo.ConfigParam) (string, error) }, dataId, group string) (string, error) {
return client.GetConfig(vo.ConfigParam{
Group: group,
DataId: dataId,
})
}
`