@@ -109,8 +109,8 @@ func GetState(name string) (ClientInfo, bool) {
109109// Close closes all MCP clients. This should be called during application shutdown.
110110func Close() error {
111111 var errs []error
112− for name, c := range sessions.Seq2() {
113− if err := c.Close(); err != nil &&
112+ for name, session := range sessions.Seq2() {
113+ if err := session.Close(); err != nil &&
114114 !errors.Is(err, io.EOF) &&
115115 !errors.Is(err, context.Canceled) &&
116116 err.Error() != "signal: killed" {
@@ -154,9 +154,7 @@ func Initialize(ctx context.Context, permissions permission.Service, cfg *config
154154 }
155155 }()
156156
157− ctx, cancel := context.WithTimeout(ctx, mcpTimeout(m))
158− defer cancel()
159−
157+ // createSession handles its own timeout internally.
160158 session, err := createSession(ctx, name, m, cfg.Resolver())
161159 if err != nil {
162160 return
@@ -233,7 +231,6 @@ func updateState(name string, state State, err error, client *mcp.ClientSession,
233231 case StateConnected:
234232 info.ConnectedAt = time.Now()
235233 case StateError:
236− updateTools(name, nil)
237234 sessions.Del(name)
238235 }
239236 states.Set(name, info)