UNPKG

codecrucible-synth

Version:

Production-Ready AI Development Platform with Multi-Voice Synthesis, Smithery MCP Integration, Enterprise Security, and Zero-Timeout Reliability

80 lines 2.44 kB
/** * MCP Server Manager - Basic implementation for compatibility * Provides enterprise MCP server management capabilities */ import { EventEmitter } from 'events'; import { logger } from './logger.js'; export class MCPServerManager extends EventEmitter { servers = new Map(); configs = new Map(); constructor() { super(); } async addServer(config) { this.configs.set(config.id, config); const server = { id: config.id, name: config.name, endpoint: config.endpoint, status: 'disconnected', async listTools() { return []; }, async listResources() { return []; }, async listPrompts() { return []; }, }; this.servers.set(config.id, server); this.emit('server-added', server); logger.info(`MCP server added: ${config.name}`); } getServer(id) { return this.servers.get(id); } getAllServers() { return Array.from(this.servers.values()); } async removeServer(id) { const server = this.servers.get(id); if (server) { this.servers.delete(id); this.configs.delete(id); this.emit('server-removed', server); logger.info(`MCP server removed: ${id}`); } } async connectServer(id) { const server = this.servers.get(id); if (server) { server.status = 'connected'; this.emit('server-connected', server); logger.info(`MCP server connected: ${id}`); } } async disconnectServer(id) { const server = this.servers.get(id); if (server) { server.status = 'disconnected'; this.emit('server-disconnected', server); logger.info(`MCP server disconnected: ${id}`); } } getServerStatus(id) { const server = this.servers.get(id); return server?.status; } async healthCheck() { const servers = Array.from(this.servers.values()); const connected = servers.filter(s => s.status === 'connected').length; const failed = servers.filter(s => s.status === 'error').length; return { total: servers.length, connected, failed, }; } } //# sourceMappingURL=mcp-server-manager.js.map