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
TypeScript
/**
* 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