@simonecoelhosfo/optimizely-mcp-server
Version:
Optimizely MCP Server for AI assistants with integrated CLI tools
89 lines • 2.41 kB
TypeScript
/**
* Optimizely Adapter for Intelligent Query Engine
*
* This adapter provides discovery and execution capabilities for the Optimizely
* data model stored in SQLite. It auto-discovers entities, fields, and relationships
* from the database schema and cached data.
*/
import { Database } from 'better-sqlite3';
import type { DataModelAdapter, EntityDefinition, FieldDefinition, RelationshipMap, AdapterCapabilities } from '../types.js';
/**
* Optimizely-specific adapter configuration
*/
export interface OptimizelyAdapterConfig {
database: Database;
projectFilter?: string[];
}
/**
* Optimizely Adapter implementation
*/
export declare class OptimizelyAdapter implements DataModelAdapter {
name: string;
version: string;
description: string;
private db;
private projectFilter?;
private schemaCache;
constructor(config: OptimizelyAdapterConfig);
/**
* Discover all entities in the Optimizely data model
*/
discoverEntities(): Promise<EntityDefinition[]>;
/**
* Discover fields for a specific entity
*/
discoverFields(entity: string): Promise<FieldDefinition[]>;
/**
* Discover relationships between entities
*/
discoverRelationships(): Promise<RelationshipMap>;
/**
* Execute a native SQL query
*/
executeNativeQuery(query: any): Promise<any[]>;
/**
* Get the database connection
*/
getConnectionPool(): Database;
/**
* Get adapter capabilities
*/
getCapabilities(): AdapterCapabilities;
/**
* Convert table name to entity name
*/
private tableToEntityName;
/**
* Check if table has data_json column
*/
private hasDataJsonColumn;
/**
* Map SQLite type to universal field type
*/
private mapSQLiteType;
/**
* Get JSON schema for entity from FIELDS
*/
private getJsonSchemaForEntity;
/**
* Discover fields within JSON columns
*/
private discoverJsonFields;
/**
* Get fields from FIELDS schema
*/
private getFieldsFromSchema;
/**
* Check if field is a direct column
*/
private isDirectColumn;
/**
* Map schema field type to universal type
*/
private mapFieldType;
/**
* Get virtual entities (for special relationships)
*/
private getVirtualEntities;
}
//# sourceMappingURL=OptimizelyAdapter.d.ts.map