package mcpserver import ( "context" "iter" "github.com/modelcontextprotocol/go-sdk/mcp" ) type cleanupEventStore struct { base mcp.EventStore onSessionClosed func(string) } func newCleanupEventStore(base mcp.EventStore, onSessionClosed func(string)) mcp.EventStore { return &cleanupEventStore{ base: base, onSessionClosed: onSessionClosed, } } func (s *cleanupEventStore) Open(ctx context.Context, sessionID, streamID string) error { return s.base.Open(ctx, sessionID, streamID) } func (s *cleanupEventStore) Append(ctx context.Context, sessionID, streamID string, data []byte) error { return s.base.Append(ctx, sessionID, streamID, data) } func (s *cleanupEventStore) After(ctx context.Context, sessionID, streamID string, index int) iter.Seq2[[]byte, error] { return s.base.After(ctx, sessionID, streamID, index) } func (s *cleanupEventStore) SessionClosed(ctx context.Context, sessionID string) error { if err := s.base.SessionClosed(ctx, sessionID); err != nil { return err } if s.onSessionClosed != nil { s.onSessionClosed(sessionID) } return nil }