From cb4b893dfc5436c76a1a2e932b6a08da49321204 Mon Sep 17 00:00:00 2001 From: Bryan Frimin Date: Fri, 13 Mar 2026 19:26:29 +0100 Subject: [PATCH] Skip nil MCP servers in WithMCPServers Signed-off-by: Bryan Frimin --- pkg/agent/agent.go | 6 +++++- pkg/agent/mcp_test.go | 13 +++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/pkg/agent/agent.go b/pkg/agent/agent.go index 3d9a6ccad..569ea0050 100644 --- a/pkg/agent/agent.go +++ b/pkg/agent/agent.go @@ -306,7 +306,11 @@ func WithResetToolChoice(reset bool) Option { func WithMCPServers(servers ...*MCPServer) Option { return func(a *Agent) { - a.mcpServers = append(a.mcpServers, servers...) + for _, s := range servers { + if s != nil { + a.mcpServers = append(a.mcpServers, s) + } + } } } diff --git a/pkg/agent/mcp_test.go b/pkg/agent/mcp_test.go index f270209b0..86df974c6 100644 --- a/pkg/agent/mcp_test.go +++ b/pkg/agent/mcp_test.go @@ -26,6 +26,19 @@ import ( "go.probo.inc/probo/pkg/llm" ) +func TestWithMCPServers_SkipsNilEntries(t *testing.T) { + t.Parallel() + + valid := NewMCPServer("valid", nil) + a := &Agent{} + + opt := WithMCPServers(nil, valid, nil) + opt(a) + + require.Len(t, a.mcpServers, 1) + assert.Equal(t, "valid", a.mcpServers[0].Name()) +} + func TestNewMCPServer(t *testing.T) { t.Parallel()