on main help sign in
fix(mcp): always call `ListTools` to discover available tools (#1447)
commitcd3bd53d7e1ab6631244a39895028235d6dec8d0 authorLennart Lopin <novalis78@gmail.com> dateMon 17 Nov 2025, 11:57 (1 year ago) parenta2e2e64
1 file changed+3−3
internal/agent/tools/mcp/tools.go+3−3
internal/agent/tools/mcp/tools.go+3−3
@@ -74,9 +74,9 @@ func RefreshTools(ctx context.Context, name string) {
7474}
7575
7676func getTools(ctx context.Context, session *mcp.ClientSession) ([]*Tool, error) {
77− if session.InitializeResult().Capabilities.Tools == nil {
78− return nil, nil
79− }
77+ // Always call ListTools to get the actual available tools.
78+ // The InitializeResult Capabilities.Tools field may be an empty object {},
79+ // which is valid per MCP spec, but we still need to call ListTools to discover tools.
8080 result, err := session.ListTools(ctx, &mcp.ListToolsParams{})
8181 if err != nil {
8282 return nil, err