Melt the butter and olive oil in a stockpot over medium heat.
Add shallots and garlic and cook until softened and translucent, about 3-5 minutes.
Add 3 cans of cannellini beans, sage, chicken stock, salt, and pepper. Simmer for 15 minutes.
Remove from heat and puree using an immersion blender until smooth.
Return to the heat, add the half and half and the remaining 2 cans of beans.
Simmer for another 5 minutes until the whole beans are heated through.
Serve hot with garlic bread or bruschetta.