@meetbot/mcp
Version:
Model Context Protocol (MCP) server for Meet.bot booking page API
33 lines • 1.25 kB
JavaScript
/**
* Simple in-memory event store for MCP session resumability
*/
export class InMemoryEventStore {
events = new Map();
async storeEvent(streamId, message) {
if (!this.events.has(streamId)) {
this.events.set(streamId, []);
}
const eventId = `event_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
this.events.get(streamId).push({ id: eventId, message });
return eventId;
}
async replayEventsAfter(lastEventId, { send }) {
// Find the stream that contains the lastEventId
for (const [streamId, events] of this.events.entries()) {
const eventIndex = events.findIndex(event => event.id === lastEventId);
if (eventIndex >= 0) {
// Replay events after the lastEventId
const eventsToReplay = events.slice(eventIndex + 1);
for (const event of eventsToReplay) {
await send(event.id, event.message);
}
return streamId;
}
}
throw new Error(`Event ID ${lastEventId} not found`);
}
async clearSession(streamId) {
this.events.delete(streamId);
}
}
//# sourceMappingURL=in-memory-event-store.js.map