@@ -11,13 +11,10 @@ import (
1111
1212type Prompt = mcp.Prompt
1313
14−var (
15− allPrompts = csync.NewMap[string, *Prompt]()
16− clientPrompts = csync.NewMap[string, []*Prompt]()
17−)
14+var allPrompts = csync.NewMap[string, []*Prompt]()
1815
1916// Prompts returns all available MCP prompts.
20−func Prompts() iter.Seq2[string, *Prompt] {
17+func Prompts() iter.Seq2[string, []*Prompt] {
2118 return allPrompts.Seq2()
2219}
2320
@@ -65,10 +62,8 @@ func RefreshPrompts(ctx context.Context, name string) {
6562 updatePrompts(name, prompts)
6663
6764 prev, _ := states.Get(name)
68− updateState(name, StateConnected, nil, session, Counts{
69− Prompts: len(prompts),
70− Tools: prev.Counts.Tools,
71− })
65+ prev.Counts.Prompts = len(prompts)
66+ updateState(name, StateConnected, nil, session, prev.Counts)
7267}
7368
7469func getPrompts(ctx context.Context, c *mcp.ClientSession) ([]*Prompt, error) {
@@ -85,14 +80,8 @@ func getPrompts(ctx context.Context, c *mcp.ClientSession) ([]*Prompt, error) {
8580// updatePrompts updates the global mcpPrompts and mcpClient2Prompts maps
8681func updatePrompts(mcpName string, prompts []*Prompt) {
8782 if len(prompts) == 0 {
88− clientPrompts.Del(mcpName)
89− } else {
90− clientPrompts.Set(mcpName, prompts)
91− }
92− for mcpName, prompts := range clientPrompts.Seq2() {
93− for _, p := range prompts {
94− key := mcpName + ":" + p.Name
95− allPrompts.Set(key, p)
96− }
83+ allPrompts.Del(mcpName)
84+ return
9785 }
86+ allPrompts.Set(mcpName, prompts)
9887}