Theo N. Truong
|
8780a78165
|
♻️ refactor: MCPManager for Scalability, Fix App-Level Detection, Add Lazy Connections (#8930)
* feat: MCP Connection management overhaul - Making MCPManager manageable
Refactor the monolithic MCPManager into focused, single-responsibility classes:
• MCPServersRegistry: Server configuration discovery and metadata management
• UserConnectionManager: Manages user-level connections
• ConnectionsRepository: Low-level connection pool with lazy loading
• MCPConnectionFactory: Handles MCP connection creation with OAuth support
New Features:
• Lazy loading of app-level connections for horizontal scaling
• Automatic reconnection for app-level connections
• Enhanced OAuth detection with explicit requiresOAuth flag
• Centralized MCP configuration management
Bug Fixes:
• App-level connection detection in MCPManager.callTool
• MCP Connection Reinitialization route behavior
Optimizations:
• MCPConnection.isConnected() caching to reduce overhead
• Concurrent server metadata retrieval instead of sequential
This refactoring addresses scalability bottlenecks and improves reliability
while maintaining backward compatibility with existing configurations.
* feat: Enabled import order in eslint.
* # Moved tests to __tests__ folder
# added tests for MCPServersRegistry.ts
* # Add unit tests for ConnectionsRepository functionality
* # Add unit tests for MCPConnectionFactory functionality
* # Reorganize MCP connection tests and improve error handling
* # reordering imports
* # Update testPathIgnorePatterns in jest.config.mjs to exclude development TypeScript files
* # removed mcp/manager.ts
|
2025-08-13 11:45:06 -04:00 |
|