Is there any way in MNE that I can add events based on the spikes.
I am testing my dry human skull phantom, where an impulse stimulation is provided in a random time instances to the phantom and the activity is recorded through EEG. The EEG response is therefore spikes.
You could try to make use of mne.preprocessing.annotate_amplitude() by setting its peak parameter (and bad_percent=100 to avoid marking channels as bad).
This won’t create events, but annotations, but you could convert them to events via mne.events_from_annotations().
Alternatively, you could pass the data of a single channel to mne.preprocessing.peak_finder() and then create the events manually.
Just to add to Richard’s answer - to have more control over peak finding you can also use scipy.signal.find_peaks. It returns sample indices corresponding to the peaks that can be easily turned into events array.