From cd3bd53d7e1ab6631244a39895028235d6dec8d0 Mon Sep 17 00:00:00 2001 From: Lennart Lopin Date: Mon, 17 Nov 2025 11:57:08 -0500 Subject: [PATCH] fix(mcp): always call `ListTools` to discover available tools (#1447) --- internal/agent/tools/mcp/tools.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/agent/tools/mcp/tools.go b/internal/agent/tools/mcp/tools.go index 561783e6f7986a772b2d1deb9bcdd6dac2bf8f34..96aa54117a30cec6c85c07e2533bdfa77fb39e66 100644 --- a/internal/agent/tools/mcp/tools.go +++ b/internal/agent/tools/mcp/tools.go @@ -74,9 +74,9 @@ func RefreshTools(ctx context.Context, name string) { } func getTools(ctx context.Context, session *mcp.ClientSession) ([]*Tool, error) { - if session.InitializeResult().Capabilities.Tools == nil { - return nil, nil - } + // Always call ListTools to get the actual available tools. + // The InitializeResult Capabilities.Tools field may be an empty object {}, + // which is valid per MCP spec, but we still need to call ListTools to discover tools. result, err := session.ListTools(ctx, &mcp.ListToolsParams{}) if err != nil { return nil, err