Skip to main content
Glama
connection.ts1.06 kB
import { mkdirSync } from 'node:fs'; import path from 'node:path'; import Database from 'better-sqlite3'; import { load } from 'sqlite-vec'; import { initializeDatabase } from './schema.js'; export class DatabaseConnection { private db: Database.Database; private static instance: DatabaseConnection; private constructor(dbPath?: string) { const defaultPath = path.join(process.cwd(), 'mcpmem.db'); const finalPath = dbPath || defaultPath; const dir = path.dirname(finalPath); mkdirSync(dir, { recursive: true }); this.db = new Database(finalPath); load(this.db); initializeDatabase(this.db); } public static getInstance(dbPath?: string): DatabaseConnection { if (!DatabaseConnection.instance) { DatabaseConnection.instance = new DatabaseConnection(dbPath); } return DatabaseConnection.instance; } public getDb(): Database.Database { return this.db; } public close(): void { this.db.close(); DatabaseConnection.instance = null as never; } public backup(backupPath: string): void { this.db.backup(backupPath); } }

Latest Blog Posts

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/designly1/mcpmem'

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