@@ -20,6 +20,7 @@ import (
20 "github.com/charmbracelet/crush/internal/agent/hyper"
20 "github.com/charmbracelet/crush/internal/agent/hyper"
21 "github.com/charmbracelet/crush/internal/agent/prompt"
21 "github.com/charmbracelet/crush/internal/agent/prompt"
22 "github.com/charmbracelet/crush/internal/agent/tools"
22 "github.com/charmbracelet/crush/internal/agent/tools"
23+ "github.com/charmbracelet/crush/internal/agent/tools/mcp"
23 "github.com/charmbracelet/crush/internal/config"
24 "github.com/charmbracelet/crush/internal/config"
24 "github.com/charmbracelet/crush/internal/csync"
25 "github.com/charmbracelet/crush/internal/csync"
25 "github.com/charmbracelet/crush/internal/history"
26 "github.com/charmbracelet/crush/internal/history"
@@ -411,6 +412,11 @@ func (c *coordinator) buildTools(ctx context.Context, agent config.Agent) ([]fan
415+ // Wait for MCP initialization to complete before reading MCP tools.
416+ if err := mcp.WaitForInit(ctx); err != nil {
417+ return nil, fmt.Errorf("failed to wait for MCP initialization: %w", err)
414 for _, tool := range tools.GetMCPTools(c.permissions, c.cfg.WorkingDir()) {
420 for _, tool := range tools.GetMCPTools(c.permissions, c.cfg.WorkingDir()) {
415 if agent.AllowedMCP == nil {
421 if agent.AllowedMCP == nil {
416 // No MCP restrictions
422 // No MCP restrictions