config-adapter.ts•1.5 kB
/**
* Configuration Adapter
* Converts between different configuration formats
*/
import { ServerConfig } from '../types/config.js';
import { MCPServerConfig } from '../mcp/mcp-server.js';
/**
* Convert ServerConfig to MCPServerConfig
*/
export function serverConfigToMCPConfig(config: ServerConfig): MCPServerConfig {
return {
name: 'google-drive-mcp-server',
version: '1.0.0',
cacheDirectory: config.cache.directory,
maxCacheSize: config.cache.maxSize,
cacheTTL: config.cache.defaultTTL,
maxFileSize: config.processing.maxFileSize,
logLevel: config.server.logLevel
};
}
/**
* Convert MCPServerConfig to partial ServerConfig
*/
export function mcpConfigToServerConfig(config: MCPServerConfig): Partial<ServerConfig> {
return {
cache: {
directory: config.cacheDirectory || './cache',
maxSize: config.maxCacheSize || '1GB',
defaultTTL: config.cacheTTL || 3600,
cleanupInterval: 300
},
processing: {
maxFileSize: config.maxFileSize || '100MB',
supportedMimeTypes: [
'application/vnd.google-apps.document',
'application/pdf',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'text/plain',
'text/markdown'
],
chunkSize: 4000,
summaryLength: 500
},
server: {
port: 3000,
logLevel: config.logLevel || 'info',
requestTimeout: 30000,
maxConcurrentRequests: 10,
enableMetrics: true
}
};
}