improved mcp reliability

This commit is contained in:
Luxferre
2026-03-22 13:16:39 +02:00
parent a13aa8066a
commit d7e14b2d7c
5 changed files with 160 additions and 9 deletions
+6 -2
View File
@@ -109,6 +109,7 @@ func initialModel() model {
cfg, err := sidekick.LoadConfig("config.toml")
var agent *sidekick.Sidekick
var pool map[string]*sidekick.Sidekick
mcpStats := "No MCP servers configured"
if err != nil {
ac := sidekick.AgentConfig{ID: "tui", Role: sidekick.RoleSpecialist, MaxIterations: 5}
@@ -118,6 +119,9 @@ func initialModel() model {
tmpl, _ := sidekick.LoadPrompts("prompts.toml")
sidekick.InitMCPServers(cfg.MCPServers)
extTools := sidekick.LoadExternalTools(context.Background())
mcpStats = fmt.Sprintf("Connected to %d MCP servers (%d tools loaded)", len(cfg.MCPServers), len(extTools))
pool = make(map[string]*sidekick.Sidekick)
for id, aCfg := range cfg.Agents {
if tmpl != nil && tmpl.Lookup(id) != nil {
@@ -127,7 +131,7 @@ func initialModel() model {
}
}
mCfg := cfg.Models[aCfg.ModelID]
pool[id] = sidekick.NewSidekick(aCfg, mCfg, nil)
pool[id] = sidekick.NewSidekick(aCfg, mCfg, extTools)
}
entryAgent := "coordinator"
if _, ok := pool[entryAgent]; !ok {
@@ -166,7 +170,7 @@ func initialModel() model {
agent: agent,
pool: pool,
history: []sidekick.Message{
{Role: sidekick.MessageRoleSystem, Content: banner + "\n\nSidekick initialized. Type a message below."},
{Role: sidekick.MessageRoleSystem, Content: banner + "\n\nSidekick initialized. " + mcpStats + "\nType a message below."},
},
}
}