UNPKG

database-mcp

Version:

Model Context Protocol server for multi-database access (PostgreSQL, MySQL, SQLite, Snowflake) with comprehensive introspection and analysis tools

70 lines 2.25 kB
/** * Base Database Interface * Abstract class that defines the interface for all database implementations */ import { DatabaseType, DatabaseQueryResult, DatabaseConnectionInfo, SchemaQueries, InfoQueries, DataTypeMap } from '../types/database'; declare abstract class DatabaseInterface { protected connectionString: string; protected client: any; protected isConnected: boolean; protected abstract type: DatabaseType; constructor(connectionString: string); /** * Connect to the database */ abstract connect(): Promise<void>; /** * Close the database connection */ abstract close(): Promise<void>; /** * Execute a query * @param query - SQL query to execute * @param params - Query parameters * @returns Query result with standardized format */ abstract query(query: string, params?: any[]): Promise<DatabaseQueryResult>; /** * Get database type * @returns Database type (postgresql, mysql, sqlite, etc.) */ abstract getType(): DatabaseType; /** * Get connection status * @returns True if connected */ getConnectionStatus(): boolean; /** * Get database-specific information queries * @returns Object containing database-specific queries */ abstract getInfoQueries(): InfoQueries; /** * Get schema introspection queries * @returns Object containing schema queries for this database type */ abstract getSchemaQueries(): SchemaQueries; /** * Strip SQL comments from query * @param query - SQL query * @returns Query with comments removed */ protected _stripSQLComments(query: string): string; /** * Validate and transform query for this database type * @param query - SQL query * @returns Validated/transformed query */ validateQuery(query: string): string; /** * Get database-specific data type mappings * @returns Data type mappings */ getDataTypeMap(): DataTypeMap; /** * Get connection information (implemented by subclasses) */ protected abstract _getConnectionInfo(): Promise<DatabaseConnectionInfo>; } export default DatabaseInterface; //# sourceMappingURL=base.d.ts.map