Skip to main content
Glama

Obsidian Semantic MCP Server

content-buffer.ts•2.02 kB
/** * Content buffer manager for storing generated content between edit attempts */ export interface BufferedContent { content: string; timestamp: number; filePath?: string; searchText?: string; } export class ContentBufferManager { private static instance: ContentBufferManager; private buffer: Map<string, BufferedContent> = new Map(); private defaultKey = '_last_generated'; private maxAge = 30 * 60 * 1000; // 30 minutes private constructor() {} static getInstance(): ContentBufferManager { if (!ContentBufferManager.instance) { ContentBufferManager.instance = new ContentBufferManager(); } return ContentBufferManager.instance; } /** * Store content in buffer */ store(content: string, key?: string, metadata?: { filePath?: string; searchText?: string }): void { const bufferKey = key || this.defaultKey; this.buffer.set(bufferKey, { content, timestamp: Date.now(), ...metadata }); // Clean old entries this.cleanOldEntries(); } /** * Retrieve content from buffer */ retrieve(key?: string): BufferedContent | null { const bufferKey = key || this.defaultKey; const entry = this.buffer.get(bufferKey); if (!entry) return null; // Check if entry is too old if (Date.now() - entry.timestamp > this.maxAge) { this.buffer.delete(bufferKey); return null; } return entry; } /** * Clear specific buffer or all buffers */ clear(key?: string): void { if (key) { this.buffer.delete(key); } else { this.buffer.clear(); } } /** * Get all buffer keys */ getKeys(): string[] { return Array.from(this.buffer.keys()); } /** * Clean entries older than maxAge */ private cleanOldEntries(): void { const now = Date.now(); for (const [key, entry] of this.buffer.entries()) { if (now - entry.timestamp > this.maxAge) { this.buffer.delete(key); } } } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aaronsb/obsidian-semantic-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server